@gjermundgaraba/clankerauth-dev 0.28.0 → 0.28.1

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.
@@ -2297,4 +2297,4 @@ zIndex zoom`.split(/\s+/)),RA=new Set([`autofocus`,`autoplay`,`checked`,`control
2297
2297
  at `);return t.length<=1?e:(t.splice(1,1),t.join(`
2298
2298
  at `))}function l1(e,t){class n extends e{#e;constructor(...e){if(s1()){let t=Error.stackTraceLimit;Error.stackTraceLimit=0,super(...e),Error.stackTraceLimit=t}else super(...e);let t=Error().stack;t&&(this.#e=c1(t.replace(/^Error/,this.name)))}get errorStack(){return this.#e}}return Object.defineProperty(n.prototype,"constructor",{get(){return t},enumerable:!1,configurable:!0}),n}var u1={OK:200,CREATED:201,ACCEPTED:202,NO_CONTENT:204,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,TEMPORARY_REDIRECT:307,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,"I'M_A_TEAPOT":418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511};l1(class extends Error{status;body;headers;statusCode;constructor(e=`INTERNAL_SERVER_ERROR`,t=void 0,n={},r=typeof e==`number`?e:u1[e]){if(super(t?.message,t&&`cause`in t?{cause:t.cause}:void 0),this.status=e,this.body=t,this.headers=n,this.statusCode=r,this.name=`APIError`,this.status=e,this.headers=n,this.statusCode=r,t&&`cause`in t){let{cause:e,...n}=t;this.body=Object.defineProperty(n,"cause",{value:e,writable:!0,configurable:!0})}else this.body=t}},Error);var d1=class extends Error{constructor(e,t){super(e,t),this.name=`BetterAuthError`,this.message=e,this.stack=``}},f1=47;function p1(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===f1;)t--;return t===e.length?e:e.slice(0,t)}function m1(e){try{return(p1(new URL(e).pathname)||`/`)!==`/`}catch{throw new d1(`Invalid base URL: ${e}. Please provide a valid base URL.`)}}function h1(e){try{let t=new URL(e);if(t.protocol!==`http:`&&t.protocol!==`https:`)throw new d1(`Invalid base URL: ${e}. URL must include 'http://' or 'https://'`)}catch(t){throw t instanceof d1?t:new d1(`Invalid base URL: ${e}. Please provide a valid base URL.`,{cause:t})}}function g1(e,t=`/api/auth`){if(h1(e),m1(e))return e;let n=p1(e);return!t||t===`/`?n:(t=t.startsWith(`/`)?t:`/${t}`,`${n}${t}`)}function _1(e,t){return!e||e.trim()===``?!1:t===`proto`?e===`http`||e===`https`:t===`host`?[/\.\./,/\0/,/[\s]/,/^[.]/,/[<>'"]/,/javascript:/i,/file:/i,/data:/i].some(t=>t.test(e))?!1:/^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*(:[0-9]{1,5})?$/.test(e)||/^(\d{1,3}\.){3}\d{1,3}(:[0-9]{1,5})?$/.test(e)||/^\[[0-9a-fA-F:]+\](:[0-9]{1,5})?$/.test(e)||/^localhost(:[0-9]{1,5})?$/i.test(e):!1}function v1(e,t,n,r,i){if(e)return g1(e,t);if(r!==!1){let e=z$.BETTER_AUTH_URL||z$.NEXT_PUBLIC_BETTER_AUTH_URL||z$.PUBLIC_BETTER_AUTH_URL||z$.NUXT_PUBLIC_BETTER_AUTH_URL||z$.NUXT_PUBLIC_AUTH_URL||(z$.BASE_URL===`/`?void 0:z$.BASE_URL);if(e)return g1(e,t)}let a=n?.headers.get(`x-forwarded-host`),o=n?.headers.get(`x-forwarded-proto`);if(a&&o&&i&&_1(o,`proto`)&&_1(a,`host`))try{return g1(`${o}://${a}`,t)}catch{}if(n){let e=y1(n.url);if(!e)throw new d1(`Could not get origin from request. Please provide a valid base URL.`);return g1(e,t)}if(typeof window<`u`&&window.location)return g1(window.location.origin,t)}function y1(e){try{let t=new URL(e);return t.origin===`null`?null:t.origin}catch{return null}}var b1=[`javascript:`,`data:`,`vbscript:`];function x1(e){let t;try{t=new URL(e)}catch{return!0}return!b1.includes(t.protocol)}var S1=[],C1=0,w1=null,T1=4,E1=globalThis.nanostoresGlobal||={epoch:0},D1=()=>{let e,t;for(;C1<S1.length;){t=C1,C1+=T1;try{S1[t](S1[t+1].value,S1[t+2],S1[t+3])}catch(t){e=t}}if(S1.length=C1=0,e)throw e},O1=e=>{let t=[],n={eq:Object.is,get(){return n.lc||n.listen(()=>{})(),n.value},init:e,lc:0,listen(e){return n.lc=t.push(e),()=>{for(let t=C1;t<S1.length;)S1[t]===e?S1.splice(t,T1):t+=T1;let r=t.indexOf(e);~r&&(t.splice(r,1),--n.lc||n.off())}},notify(e,r){E1.epoch++;let i=!S1.length&&!0;for(let i of t)w1?.has(i)||(w1?.add(i),S1.push(i,n,e,r));i&&D1()},off(){},set(e){let t=n.value;n.eq(t,e)||(n.value=e,n.notify(t))},subscribe(e){let t=n.listen(e);return e(n.value),t},value:e};return n},k1=2,A1=5,j1=6,M1=10,N1=(e,t,n,r)=>(e.events=e.events||{},e.events[n+M1]||(e.events[n+M1]=r(t=>{e.events[n].reduceRight((e,t)=>(t(e),e),{shared:{},...t})})),e.events[n]=e.events[n]||[],e.events[n].push(t),()=>{let r=e.events[n],i=r.indexOf(t);~i&&(r.splice(i,1),r.length||(e.events[n+M1](),delete e.events[n+M1]))}),P1=(e,t)=>N1(e,t,k1,t=>{let n=e.set,r=e.setKey;return e.setKey&&=(n,i)=>{let a;if(t({abort:()=>{a=!0},changed:n,newValue:{...e.value,[n]:i}}),!a)return r(n,i)},e.set=e=>{let r;if(t({abort:()=>{r=!0},newValue:e}),!r)return n(e)},()=>{e.set=n,e.setKey=r}}),F1=1e3,I1=(e,t)=>N1(e,n=>{let r=t(n);r&&e.events[j1].push(r)},A1,t=>{let n=e.listen;e.listen=(...r)=>(!e.lc&&!e.active&&(e.active=!0,t()),n(...r));let r=e.off;return e.events[j1]=[],e.off=()=>{r(),setTimeout(()=>{if(e.active&&!e.lc){e.active=!1;for(let t of e.events[j1])t();e.events[j1]=[]}},F1)},()=>{e.listen=n,e.off=r}});function L1(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function R1(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!R1(e[n],t[n]))return!1;return!0}if(L1(e)&&L1(t)){let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!(r in t)||!R1(e[r],t[r]))return!1;return!0}return!1}function z1(e,t){return P1(e,({newValue:n,abort:r})=>{t(e.value,n)&&r()})}var B1=Symbol.for(`better-auth:auth-query`);function V1(e){let t=O1(e);return Object.defineProperty(t,B1,{value:!0}),t}var H1={proto:/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,constructor:/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,protoShort:/"__proto__"\s*:/,constructorShort:/"constructor"\s*:/},U1=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/,W1={true:!0,false:!1,null:null,undefined:void 0,nan:NaN,infinity:1/0,"-infinity":-1/0},G1=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,7}))?(?:Z|([+-])(\d{2}):(\d{2}))$/;function K1(e){return e instanceof Date&&!isNaN(e.getTime())}function q1(e){let t=G1.exec(e);if(!t)return null;let[,n,r,i,a,o,s,c,l,u,d]=t,f=new Date(Date.UTC(parseInt(n,10),parseInt(r,10)-1,parseInt(i,10),parseInt(a,10),parseInt(o,10),parseInt(s,10),c?parseInt(c.padEnd(3,`0`),10):0));if(l){let e=(parseInt(u,10)*60+parseInt(d,10))*(l===`+`?-1:1);f.setUTCMinutes(f.getUTCMinutes()+e)}return K1(f)?f:null}function J1(e,t={}){let{strict:n=!1,warnings:r=!1,reviver:i,parseDates:a=!0}=t;if(typeof e!=`string`)return e;let o=e.trim(),s=o.toLowerCase();if(s.length<=9&&s in W1)return W1[s];if(!U1.test(o)){if(n)throw SyntaxError(`[better-json] Invalid JSON`);return e}if(Object.entries(H1).some(([e,t])=>{let n=t.test(o);return n&&r&&console.warn(`[better-json] Detected potential prototype pollution attempt using ${e} pattern`),n})&&n)throw Error(`[better-json] Potential prototype pollution attempt detected`);try{return JSON.parse(o,(e,t)=>{if(e===`__proto__`||e===`constructor`&&t&&typeof t==`object`&&`prototype`in t)r&&console.warn(`[better-json] Dropping "${e}" key to prevent prototype pollution`);else{if(a&&typeof t==`string`){let e=q1(t);if(e)return e}return i?i(e,t):t}})}catch(t){if(n)throw t;return e}}function Y1(e,t={strict:!0}){return J1(e,t)}var X1={id:`redirect`,name:`Redirect`,hooks:{onSuccess(e){if(e.data?.url&&e.data?.redirect&&x1(e.data.url)&&typeof window<`u`&&window.location&&window.location)try{window.location.href=e.data.url}catch{}}}},Z1=Symbol.for(`better-auth:broadcast-channel`),Q1=()=>Math.floor(Date.now()/1e3),$1=class{listeners=new Set;name;constructor(e=`better-auth.message`){this.name=e}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}post(e){if(typeof window<`u`)try{localStorage.setItem(this.name,JSON.stringify({...e,timestamp:Q1()}))}catch{}}setup(){if(typeof window>`u`||window.addEventListener===void 0)return()=>{};let e=e=>{if(e.key!==this.name)return;let t=JSON.parse(e.newValue??`{}`);t?.event===`session`&&t?.data&&this.listeners.forEach(e=>e(t))};return window.addEventListener(`storage`,e),()=>{window.removeEventListener(`storage`,e)}}};function e0(e=`better-auth.message`){return globalThis[Z1]||(globalThis[Z1]=new $1(e)),globalThis[Z1]}var t0=Symbol.for(`better-auth:focus-manager`),n0=class{listeners=new Set;subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setFocused(e){this.listeners.forEach(t=>t(e))}setup(){if(typeof window>`u`||typeof document>`u`||window.addEventListener===void 0)return()=>{};let e=()=>{document.visibilityState===`visible`&&this.setFocused(!0)};return document.addEventListener(`visibilitychange`,e,!1),()=>{document.removeEventListener(`visibilitychange`,e,!1)}}};function r0(){return globalThis[t0]||(globalThis[t0]=new n0),globalThis[t0]}var i0=Symbol.for(`better-auth:online-manager`),a0=class{listeners=new Set;isOnline=typeof navigator<`u`?navigator.onLine:!0;subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setOnline(e){this.isOnline=e,this.listeners.forEach(t=>t(e))}setup(){if(typeof window>`u`||window.addEventListener===void 0)return()=>{};let e=()=>this.setOnline(!0),t=()=>this.setOnline(!1);return window.addEventListener(`online`,e,!1),window.addEventListener(`offline`,t,!1),()=>{window.removeEventListener(`online`,e,!1),window.removeEventListener(`offline`,t,!1)}}};function o0(){return globalThis[i0]||(globalThis[i0]=new a0),globalThis[i0]}var s0=()=>Math.floor(Date.now()/1e3),c0=5;function l0(e){let{fetchSession:t,shouldPollSession:n=()=>!0,sessionSignal:r,options:i={}}=e,a=i.sessionOptions?.refetchInterval??0,o=i.sessionOptions?.refetchOnWindowFocus??!0,s=i.sessionOptions?.refetchWhenOffline??!1,c={isInitialized:!1,lastSessionRequest:0},l=()=>s||o0().isOnline,u=e=>{if(l()){if(e?.event===`storage`)t();else if(e?.event===`poll`)c.lastSessionRequest=s0(),t();else if(e?.event===`visibilitychange`){if(s0()-c.lastSessionRequest<c0)return;c.lastSessionRequest=s0(),t()}else t()}},d=e=>{e0().post({event:`session`,data:{trigger:e},clientId:Math.random().toString(36).substring(7)})},f=()=>{a&&a>0&&(c.pollInterval=setInterval(()=>{n()&&u({event:`poll`})},a*1e3))},p=()=>{c.unsubscribeBroadcast=e0().subscribe(()=>{u({event:`storage`})})},m=()=>{o&&(c.unsubscribeFocus=r0().subscribe(()=>{u({event:`visibilitychange`})}))},h=()=>{c.unsubscribeOnline=o0().subscribe(e=>{e&&u({event:`visibilitychange`})})},g=()=>{c.unsubscribeSignal=r.listen(()=>{t()})};return{init:()=>{c.isInitialized||(c.isInitialized=!0,f(),p(),m(),h(),g(),c.cleanupBroadcastSetup=e0().setup(),c.cleanupFocusSetup=r0().setup(),c.cleanupOnlineSetup=o0().setup())},cleanup:()=>{c.isInitialized&&(c.pollInterval&&=(clearInterval(c.pollInterval),void 0),c.unsubscribeBroadcast&&=(c.unsubscribeBroadcast(),void 0),c.unsubscribeFocus&&=(c.unsubscribeFocus(),void 0),c.unsubscribeOnline&&=(c.unsubscribeOnline(),void 0),c.unsubscribeSignal&&=(c.unsubscribeSignal(),void 0),c.cleanupBroadcastSetup&&=(c.cleanupBroadcastSetup(),void 0),c.cleanupFocusSetup&&=(c.cleanupFocusSetup(),void 0),c.cleanupOnlineSetup&&=(c.cleanupOnlineSetup(),void 0),c.isInitialized=!1,c.lastSessionRequest=0)},triggerRefetch:u,broadcastSessionUpdate:d}}var u0=()=>typeof window>`u`,d0=F1;function f0(e,t){if(typeof window>`u`)return;let n=e.get();n.data===null&&t!==null&&e.set({...n,data:t,error:null,isPending:!1})}function p0(e){return typeof e==`object`&&e&&`data`in e&&`error`in e?e:{data:e,error:null}}function m0(e){return!e||e.session===null&&e.user===null?null:e}function h0(e,t){return R1(e.data,t.data)&&e.error===t.error&&e.isPending===t.isPending&&e.isRefetching===t.isRefetching&&e.refetch===t.refetch}function g0(e,t){let n=O1(!1),r,i=0,a=0;n.listen(()=>{a++,i=0});let o=e=>u(e),s=V1({data:null,error:null,isPending:!0,isRefetching:!1,refetch:o});z1(s,h0);let c=async(t,n)=>{let r=s.value;if(s.set({...r,isPending:r.data===null,isRefetching:!0,error:null,refetch:o}),t.aborted)return`aborted`;try{let r=await e(`/get-session`,{method:`GET`,query:n?.query,signal:t});if(t.aborted)return`aborted`;let{data:i,error:a}=p0(r),c=`fresh`;if(i?.needsRefresh)try{let n=await e(`/get-session`,{method:`POST`,signal:t});if(t.aborted)return`aborted`;({data:i,error:a}=p0(n))}catch{if(t.aborted)return`aborted`;c=`stale`}if(a){let e=s.value,t=a?.status===401;return s.set({data:t?null:e.data,error:a,isPending:!1,isRefetching:!1,refetch:o}),`failed`}let l=m0(i),u=s.value,d=u.data!=null&&l!=null&&R1(u.data,l)?u.data:l;return s.set({data:d,error:null,isPending:!1,isRefetching:!1,refetch:o}),c}catch(e){if(t.aborted)return`aborted`;let n=s.value;return s.set({data:n.data,error:e,isPending:!1,isRefetching:!1,refetch:o}),`failed`}},l=()=>{let e=s.value.data?.session?.expiresAt,t=e instanceof Date?e.getTime():1/0;return Math.min(Date.now()+d0,t)},u=e=>{i=0,r?.cancel();let t=new AbortController,n={cancel:()=>t.abort(),promise:Promise.resolve().then(()=>t.signal.aborted?`aborted`:c(t.signal,e)),revision:a};r=n;let o=e=>{r===n&&(r=void 0,e===`fresh`&&n.revision===a&&(i=l()))};return n.promise.then(o,()=>o(`failed`)),n.promise.then(()=>void 0)},d=()=>r?.revision===a?r.promise.then(()=>void 0):Date.now()<i?Promise.resolve():u(),f=()=>{};return I1(s,()=>{let e;u0()||(e=setTimeout(()=>{d()},0));let r=l0({fetchSession:u,shouldPollSession:()=>s.value.data!=null,sessionSignal:n,options:t});return r.init(),f=r.broadcastSessionUpdate,()=>{e&&clearTimeout(e),r.cleanup()}}),{session:s,$sessionSignal:n,broadcastSessionUpdate:e=>f(e)}}function _0(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)===`[object Module]`:!0}function v0(e,t,n=`.`,r){if(!_0(t))return v0(e,{},n,r);let i={...t};for(let t of Object.keys(e)){if(t===`__proto__`||t===`constructor`)continue;let a=e[t];a!=null&&(r&&r(i,t,a,n)||(i[t]=Array.isArray(a)&&Array.isArray(i[t])?[...a,...i[t]]:_0(a)&&_0(i[t])?v0(a,i[t],(n?`${n}.`:``)+t.toString(),r):a))}return i}function y0(e){return(...t)=>t.reduce((t,n)=>v0(t,n,``,e),{})}var b0=y0(),x0=class extends Error{constructor(e,t,n){super(t||e.toString(),{cause:n}),this.status=e,this.statusText=t,this.error=n,Error.captureStackTrace(this,this.constructor)}},S0=async(e,t)=>{let n=t||{},r={onRequest:[t?.onRequest],onResponse:[t?.onResponse],onSuccess:[t?.onSuccess],onError:[t?.onError],onRetry:[t?.onRetry]};if(!t||!t?.plugins)return{url:e,options:n,hooks:r};for(let i of t?.plugins||[]){if(i.init){let t=await i.init?.call(i,e.toString(),n);n=t.options||n,e=t.url}r.onRequest.push(i.hooks?.onRequest),r.onResponse.push(i.hooks?.onResponse),r.onSuccess.push(i.hooks?.onSuccess),r.onError.push(i.hooks?.onError),r.onRetry.push(i.hooks?.onRetry)}return{url:e,options:n,hooks:r}},C0=class{constructor(e){this.options=e}shouldAttemptRetry(e,t){return this.options.shouldRetry?Promise.resolve(e<this.options.attempts&&this.options.shouldRetry(t)):Promise.resolve(e<this.options.attempts)}getDelay(){return this.options.delay}},w0=class{constructor(e){this.options=e}shouldAttemptRetry(e,t){return this.options.shouldRetry?Promise.resolve(e<this.options.attempts&&this.options.shouldRetry(t)):Promise.resolve(e<this.options.attempts)}getDelay(e){return Math.min(this.options.maxDelay,this.options.baseDelay*2**e)}};function T0(e){if(typeof e==`number`)return new C0({type:`linear`,attempts:e,delay:1e3});switch(e.type){case`linear`:return new C0(e);case`exponential`:return new w0(e);default:throw Error(`Invalid retry strategy`)}}var E0=[`get`,`post`,`put`,`patch`,`delete`];function D0(e){if(!e.startsWith(`@`))return{method:void 0,path:e};let t=e.indexOf(`/`),n=e.slice(1,t===-1?void 0:t);return E0.includes(n)?{method:n,path:t===-1?e:e.slice(t+1)}:{method:void 0,path:e}}var O0=e=>e===`.`||e===`..`,k0=e=>e.split(`:`).map(e=>encodeURIComponent(e)).join(`:`);function A0(e,t){let n=t.get(e);if(n===void 0)return k0(e);if(O0(n))throw TypeError(`Path parameters cannot be reserved path segments`);return encodeURIComponent(n)}function j0(e,t){let{baseURL:n,params:r,query:i}=t||{query:{},params:{},baseURL:``},a=e.startsWith(`http`)?e.split(`/`).slice(0,3).join(`/`):n||``,{path:o}=D0(e);o!==e&&(e=`/${o}`),a.endsWith(`/`)||(a+=`/`);let[s,c]=e.replace(a,``).split(`?`),l=new URLSearchParams(c);for(let[e,t]of Object.entries(i||{})){if(t==null)continue;let n;if(typeof t==`string`)n=t;else if(Array.isArray(t)){for(let n of t)l.append(e,n);continue}else n=JSON.stringify(t);l.set(e,n)}let u=new Map;if(r){if(Array.isArray(r)){let e=s.split(`/`).filter(e=>e.startsWith(`:`));for(let[t,n]of e.entries()){let e=r[t];u.set(n,String(e))}}else for(let[e,t]of Object.entries(r))u.set(`:${e}`,String(t))}s=s.split(`/`).map(e=>A0(e,u)).join(`/`),s=s.replace(/^\/+/,``);let d=l.toString();return d=d.length>0?`?${d}`.replace(/\+/g,`%20`):``,a.startsWith(`http`)?new URL(`${s}${d}`,a):`${a}${s}${d}`}var M0=async e=>{let t={},n=async e=>typeof e==`function`?await e():e;if(e?.auth){if(e.auth.type===`Bearer`){let r=await n(e.auth.token);if(!r)return t;t.authorization=`Bearer ${r}`}else if(e.auth.type===`Basic`){let[r,i]=await Promise.all([n(e.auth.username),n(e.auth.password)]);if(!r||!i)return t;t.authorization=`Basic ${btoa(`${r}:${i}`)}`}else if(e.auth.type===`Custom`){let[r,i]=await Promise.all([n(e.auth.prefix),n(e.auth.value)]);if(!i)return t;t.authorization=`${r??``} ${i}`}}return t},N0=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function P0(e){let t=e.headers.get(`content-type`),n=new Set([`image/svg`,`application/xml`,`application/xhtml`,`application/html`]);if(!t)return`json`;let r=t.split(`;`).shift()||``;return N0.test(r)?`json`:n.has(r)||r.startsWith(`text/`)?`text`:`blob`}function F0(e){try{return JSON.parse(e),!0}catch{return!1}}function I0(e){if(e===void 0)return!1;let t=typeof e;return t===`string`||t===`number`||t===`boolean`||t===null?!0:t===`object`?Array.isArray(e)?!0:e.buffer?!1:e.constructor&&e.constructor.name===`Object`||typeof e.toJSON==`function`:!1}function L0(e){try{return JSON.parse(e)}catch{return e}}function R0(e){return typeof e==`function`}function z0(e){if(e?.customFetchImpl)return e.customFetchImpl;if(typeof globalThis<`u`&&R0(globalThis.fetch))return globalThis.fetch;if(typeof window<`u`&&R0(window.fetch))return window.fetch;throw Error(`No fetch implementation found`)}function B0(...e){let t={};for(let n of e)if(n){if(n instanceof Headers)n.forEach((e,n)=>{t[n]=e});else{let e=Array.isArray(n)?n:Object.entries(n);for(let[n,r]of e)r!=null&&(t[n]=r)}}return t}async function V0(e){let t=new Headers(B0(e?.headers,await M0(e)));if(!t.has(`content-type`)){let n=H0(e?.body);n&&t.set(`content-type`,n)}return t}function H0(e){return I0(e)?`application/json`:null}function U0(e){let t=e.get(`content-type`);return t?t.split(`;`)[0].trim().toLowerCase():null}function W0(e,t){let{body:n}=e;return n?!I0(n)||typeof n==`string`?n:U0(t)===`application/x-www-form-urlencoded`?new URLSearchParams(n).toString():JSON.stringify(n):null}function G0(e,t){if(t?.method)return t.method.toUpperCase();let{method:n}=D0(e);return n?n.toUpperCase():t?.body?`POST`:`GET`}function K0(e,t){let n;return!e?.signal&&e?.timeout&&(n=setTimeout(()=>t?.abort(),e?.timeout)),{abortTimeout:n,clearTimeout:()=>{n&&clearTimeout(n)}}}var q0=class e extends Error{constructor(t,n){super(n||JSON.stringify(t,null,2)),this.issues=t,Object.setPrototypeOf(this,e.prototype)}};async function J0(e,t){let n=await e[`~standard`].validate(t);if(n.issues)throw new q0(n.issues);return n.value}function Y0(e){"@babel/helpers - typeof";return Y0=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Y0(e)}function X0(e,t){if(Y0(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Y0(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Z0(e){var t=X0(e,`string`);return Y0(t)==`symbol`?t:t+``}function Q0(e,t,n){return(t=Z0(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $0(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function e2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?$0(Object(n),!0).forEach(function(t){Q0(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$0(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var t2=async(e,t)=>{var n;let{hooks:r,url:i,options:a}=await S0(e,t),o=z0(a),s=new AbortController,c=a.signal??s.signal,l=j0(i,a),u=await V0(a),d=W0(a,u),f=G0(i,a),p=e2(e2({},a),{},{url:l,headers:u,body:d,method:f,signal:c});for(let e of r.onRequest)if(e){let t=await e(p);typeof t==`object`&&t&&Object.assign(p,t)}(`pipeTo`in p&&typeof p.pipeTo==`function`||typeof(t==null||(n=t.body)==null?void 0:n.pipe)==`function`)&&(`duplex`in p||(p.duplex=`half`));let{clearTimeout:m}=K0(a,s),h=await o(p.url,p);m();let g={response:h,request:p};for(let e of r.onResponse)if(e){var _;let n=await e(e2(e2({},g),{},{response:t!=null&&(_=t.hookOptions)!=null&&_.cloneResponse?h.clone():h}));n instanceof Response?h=n:typeof n==`object`&&n&&(h=n.response)}if(h.ok){if(p.method===`HEAD`)return{data:``,error:null};let e=P0(h),n={data:null,response:h,request:p};if(e===`json`||e===`text`){let e=await h.text();n.data=await(p.jsonParser??L0)(e)}else n.data=await h[e]();p?.output&&p.output&&!p.disableValidation&&(n.data=await J0(p.output,n.data));for(let e of r.onSuccess)if(e){var v;await e(e2(e2({},n),{},{response:t!=null&&(v=t.hookOptions)!=null&&v.cloneResponse?h.clone():h}))}return t?.throw?n.data:{data:n.data,error:null}}let ee=t?.jsonParser??L0,te=await h.text(),ne=F0(te),re=ne?await ee(te):null,ie={response:h,responseText:te,request:p,error:e2(e2({},re),{},{status:h.status,statusText:h.statusText})};for(let e of r.onError)if(e){var ae;await e(e2(e2({},ie),{},{response:t!=null&&(ae=t.hookOptions)!=null&&ae.cloneResponse?h.clone():h}))}if(t?.retry){let n=T0(t.retry),i=t.retryAttempt??0;if(await n.shouldAttemptRetry(i,h)){for(let e of r.onRetry)e&&await e(g);let a=n.getDelay(i);return await new Promise(e=>setTimeout(e,a)),await t2(e,e2(e2({},t),{},{retryAttempt:i+1}))}}if(t?.throw)throw new x0(h.status,h.statusText,ne?re:te);return{data:null,error:e2(e2({},re),{},{status:h.status,statusText:h.statusText})}},n2=e=>({id:`apply-schema`,name:`Apply Schema`,version:`1.0.0`,async init(t,n){var r;let i=e2(e2({},n),e.query!==void 0&&{query:e2(e2({},e.query),n?.query)}),a=((r=e.plugins)==null||(r=r.find(e=>e.schema?.config?t.startsWith(e.schema.config.baseURL||``)||t.startsWith(e.schema.config.prefix||``):!1))==null?void 0:r.schema)||e.schema;if(a){let r=t;a.config?.prefix&&r.startsWith(a.config.prefix)&&(r=r.replace(a.config.prefix,``),a.config.baseURL&&(t=t.replace(a.config.prefix,a.config.baseURL))),a.config?.baseURL&&r.startsWith(a.config.baseURL)&&(r=r.replace(a.config.baseURL,``)),r.startsWith(`/`)&&r.charAt(1)===`@`&&(r=r.substring(1));let o=a.schema[r];if(o){let{method:a,path:s}=D0(r);a&&(t=t.slice(0,t.length-r.length)+s);let c=n?.headers;if(o.headers&&!n?.disableValidation){let e={};if(n?.headers){if(n.headers instanceof Headers)n.headers.forEach((t,n)=>{e[n.toLowerCase()]=t});else if(typeof n.headers==`object`)for(let[t,r]of Object.entries(n.headers))r!=null&&(e[t.toLowerCase()]=r)}let t=await J0(o.headers,e),r={};for(let[e,n]of Object.entries(t))r[e.toLowerCase()]=n;c=r}let l=o.method??a;if(i=e2(e2(e2(e2({},i),l!==void 0&&{method:l}),o.output!==void 0&&{output:o.output}),c!==void 0&&{headers:c}),!n?.disableValidation){if(o.query&&(i.query=await J0(o.query,n?.query),i.query!==null&&typeof i.query==`object`)){let t=e2({},e.query);for(let e of Object.keys(t))n?.query&&Object.prototype.hasOwnProperty.call(n.query,e)&&(t[e]=n.query[e]);i.query=e2(e2({},t),i.query)}i=e2(e2({},i),{},{body:o.input?await J0(o.input,n?.body):n?.body,params:o.params?await J0(o.params,n?.params):n?.params})}return{url:t,options:i}}}return e2({url:t},(n!==void 0||e.query!==void 0)&&{options:i})}}),r2=e=>{async function t(t,n){let r=e2(e2(e2({},e),n),{},{headers:B0(e?.headers,n?.headers),plugins:[...e?.plugins||[],n2(e||{}),...n?.plugins||[]]});if(e?.catchAllError)try{return await t2(t,r)}catch(e){return{data:null,error:{status:500,statusText:`Fetch Error`,message:`Fetch related error. Captured by catchAllError option. See error property for more details.`,error:e}}}return await t2(t,r)}return t},i2=e=>{if(typeof process>`u`)return;let t=e??`/api/auth`;if({}.NEXT_PUBLIC_AUTH_URL)return{}.NEXT_PUBLIC_AUTH_URL;if(typeof window>`u`){if({}.NEXTAUTH_URL)try{return{}.NEXTAUTH_URL}catch{}if({}.VERCEL_URL)try{let e={}.VERCEL_URL.startsWith(`http`)?``:`https://`;return`${new URL(`${e}${{}.VERCEL_URL}`).origin}${t}`}catch{}}},a2=e=>e===`/sign-out`||e===`/update-user`||e===`/update-session`||e===`/sign-up/email`||e===`/sign-in/email`||e===`/delete-user`||e===`/verify-email`||e===`/revoke-sessions`||e===`/revoke-session`||e===`/revoke-other-sessions`||e===`/change-email`||e===`/change-password`,o2=(e,t)=>{let n=`credentials`in Request.prototype,r=v1(e?.baseURL,e?.basePath,void 0,t)??i2(e?.basePath)??`/api/auth`,i=e?.plugins?.flatMap(e=>e.fetchPlugins).filter(e=>e!==void 0)||[],a={id:`lifecycle-hooks`,name:`lifecycle-hooks`,hooks:{onSuccess:e?.fetchOptions?.onSuccess,onError:e?.fetchOptions?.onError,onRequest:e?.fetchOptions?.onRequest,onResponse:e?.fetchOptions?.onResponse}},{onSuccess:o,onError:s,onRequest:c,onResponse:l,...u}=e?.fetchOptions||{},d=r2({baseURL:r,...n?{credentials:`include`}:{},method:`GET`,jsonParser(e){return e?Y1(e,{strict:!1}):null},customFetchImpl:fetch,...u,plugins:[a,...u.plugins||[],...e?.disableDefaultFetchPlugins?[]:[X1],...i]}),{$sessionSignal:f,session:p,broadcastSessionUpdate:m}=g0(d,e),h=!1,g=e=>{h||e===null||(h=!0,f0(p,e))},_=e?.plugins||[],v={},ee={$sessionSignal:f,session:p},te={"/sign-out":`POST`,"/revoke-sessions":`POST`,"/revoke-other-sessions":`POST`,"/delete-user":`POST`},ne=[{signal:`$sessionSignal`,matcher:a2,callback(e){e===`/sign-out`?m(`signout`):(e===`/update-user`||e===`/update-session`)&&m(`updateUser`)}}];for(let e of _)e.getAtoms&&Object.assign(ee,e.getAtoms?.(d)),e.pathMethods&&Object.assign(te,e.pathMethods),e.atomListeners&&ne.push(...e.atomListeners);let re={notify:e=>{ee[e].set(!ee[e].get())},listen:(e,t)=>{ee[e].subscribe(t)},atoms:ee};for(let t of _)t.getActions&&(v=b0(t.getActions?.(d,re,e)??{},v));return{get baseURL(){return r},pluginsActions:v,pluginsAtoms:ee,pluginPathMethods:te,atomListeners:ne,hydrateSession:g,$sessionSignal:f,$fetch:d,$store:re}},s2=()=>({id:`oauth-provider-client`,version:A$,fetchPlugins:[{id:`oauth-provider-signin`,name:`oauth-provider-signin`,description:`Adds the current page query to oauth requests`,hooks:{async onRequest(e){let t=e.headers,n=typeof e.body==`string`?t.get(`content-type`)===`application/x-www-form-urlencoded`?Object.fromEntries(new URLSearchParams(e.body)):o1(e.body??`{}`):e.body;n?.oauth_query||typeof window<`u`&&window?.location?.search&&e.method!==`GET`&&e.method!==`DELETE`&&(e.body=JSON.stringify({...n,oauth_query:k$(window.location.search)}))}}}],$InferServerPlugin:{}}),c2=Symbol.for(`@gjermundgaraba/effect-actions/Anyone`),l2=(e,t)=>{for(let n of e)if(n.caller!==c2&&(t===void 0||n.caller.key!==t.identity.key))throw Error(`Protected action '${n.name}' requires its matching authentication descriptor (give it the authentication whose identity the action's caller names)`)},u2=e=>V.pipe(eD(N(e))),d2=U({path:W(JE([V,lD])),message:V}),f2=Nx(),p2=class e extends eO()(`InvalidInput`,{message:u2(`The input does not match the action's input.`),issues:W(d2).pipe(eD(N([])))},{httpApiStatus:400}){static fromSchemaError=({issue:t,message:n})=>new e({message:n,issues:f2(t).issues.map(e=>({path:(e.path??[]).map(e=>{let t=ue(e)?e:e.key;return le(t)?String(t):t}),message:e.message}))})},m2=class extends eO()(`Unauthenticated`,{message:u2(`Authentication is required.`)},{httpApiStatus:401}){},h2=V.check(cD(/^[\x21\x23-\x5B\x5D-\x7E]+$/)),g2=[m2,class extends eO()(`Forbidden`,{message:u2(`Not allowed.`),scopes:AE(KE(h2))},{httpApiStatus:403}){}];JE(g2);var _2=[p2,...g2],v2=JE(_2),y2=`[A-Za-z0-9_-]{1,128}`,b2=RegExp(`^${y2}$`),x2=e=>{if(!b2.test(e)||e===`then`)throw Error(`Invalid action name: ${e} (use ${y2}, other than "then")`)},S2=(e,t,n,{claimantOf:r=n,labelOf:i=n,fix:a})=>{let o=new Map;for(let s of t){let t=n(s),c=o.get(t);if(c!==void 0){let t=[r(c),r(s)],n=t[0]===t[1]?``:`, claimed by ${t.join(` and `)}`;throw Error(`Duplicate ${e}: ${i(c)}${n} (${a})`)}o.set(t,s)}},C2=(e,t,n=`list it once, or rename one`)=>S2(e,t,e=>e.name,{fix:n}),w2=e=>IS(e)?w2(e.thunk()):e,T2=e=>{let t=w2(e);return FS(t)?t.types.flatMap(T2):[t]},E2=e=>AS(e)?[e.literal]:MS(e)?e.enums.map(([,e])=>e):[void 0],D2=Bw(`httpApiStatus`),O2=e=>D2(e)??(IS(e)?O2(e.thunk()):void 0),k2=e=>{let t=O2(e.ast);return t===void 0?e.annotate({httpApiStatus:422}):D2(e.ast)===void 0?e.annotate({httpApiStatus:t}):e},A2=e=>e===void 0?[]:kE(e)?[e]:e,j2=e=>D2(e)===void 0&&e.checks===void 0&&e.encoding===void 0,M2=e=>j2(e)?IS(e)?M2(e.thunk()):FS(e)?e.types.flatMap(M2):[e]:[e],N2=e=>{let t=new Map;for(let n of e)for(let e of M2(n.ast))t.has(e)||t.set(e,e===n.ast?n:B(e));return[...t.values()]},P2=(e,t=[])=>N2([..._2,...e.error,...t]),F2=(e,t)=>P2(e,e.caller===c2||t.authentication===void 0?t.error:[...t.error,...t.authentication.error]),I2=e=>T2(ww(e)).flatMap(e=>{let t=PS(e)?e.propertySignatures.find(e=>e.name===`_tag`)?.type:void 0;return t===void 0?[]:T2(t).flatMap(E2).filter(oe)}),L2=new Set(_2.flatMap(e=>I2(e.ast))),R2=(e,t)=>{let n=new Set;for(let r of N2(t))for(let t of new Set(I2(r.ast))){if(n.has(t))throw Error(`${e}: error _tag "${t}" names two error schemas, which a client cannot tell apart (reuse one schema value, or merge them into one whose fields tell them apart${L2.has(t)?`; for a built-in's tag, fail with the built-in itself`:``})`);n.add(t)}},z2=(e,t,n)=>{C2(`action`,t);let r={error:A2(n.error),authentication:n.authentication};l2(t,r.authentication);for(let n of t)R2(`${e} of "${n.name}"`,F2(n,r));return r},B2=(e,t)=>t.length===0?bE(nO(e.input))({}):N(t[0]),V2=(e,t)=>{let n=EE(nO(e.input),{errors:`all`});return(...r)=>B2(e,r).pipe(dm(n),bm(p2.fromSchemaError),L(t))},H2=HE(V,PE),U2=e=>kE(e)?e:Reflect.ownKeys(e).length===0?H2:U(e);function W2(e,t){x2(e);let{caller:n,readOnly:r}=t;if(n!==c2&&!ei(n))throw Error(`Missing caller: declare Action.Anyone or an identity service key`);if(n!==c2&&ti(n))throw Error(`Invalid caller: an identity is a Context.Service, not a Context.Reference`);if(r!==!0&&r!==!1)throw Error(`Invalid readOnly: ${String(r)} (set true or false)`);let i={caller:n,name:e,description:t.description,input:U2(t.input??{}),success:t.success===void 0?zE:U2(t.success),error:A2(t.error),readOnly:r,mcp:{...t.mcp}};return R2(`Action "${i.name}"`,P2(i)),i}var G2=`~effect/encoding/Sse/SseError`,K2=class extends Ko(`EventTooLarge`){get message(){return`Pending SSE event exceeded the maximum size of ${this.maxEventSize}`}},q2=class extends Ko(`SseError`){[G2]=G2;get message(){return this.reason.message}},J2=10485760,Y2=e=>F_((t,n)=>P(()=>{let n=[],r,i=Z2(e=>{e._tag===`Retry`?r=e:n.push(e)},e),a=L(t,e=>{for(let t=0;t<e.length;t++){let n=i.feed(e[t]);if(n!==void 0)return I(n)}return $p});return Qp(function e(){if(Ba(n)){let e=n;return n=[],N(e)}return r?I(r):L(a,e)})})),X2=(e,t,n)=>J_(Y2(t),Gk(n4.pipe(QE(e,r4)),n)());function Z2(e,t){let n=t?.maxEventSize??J2,r=t?.dispatchEmptyNamedEvents===!0,i,a,o,s,c=0,l,u,d;return f(),{feed:p,reset:f};function f(){c++,i=!0,a=[],o=0,s=!1,l=void 0,u=void 0,d=``}function p(e){i&&e.startsWith(Q2)&&(e=e.slice(Q2.length)),i=!1;let t=e.length,r=c,l=0;for(;l<t;){if(s&&(s=!1,e.charCodeAt(l)===$2)){++l;continue}let n=l;for(;n<t;){let t=e.charCodeAt(n);if(t===e4||t===$2)break;++n}if(n===t){a.push(e.slice(l)),o+=t-l;break}s=e.charCodeAt(n)===e4;let i=e.slice(l,n);if(a.length>0&&(a.push(i),i=a.join(``),a=[],o=0),m(i),c!==r)return;l=n+1}if(o+d.length>n){let e=new q2({reason:new K2({maxEventSize:n})});return f(),e}}function m(t){if(t.length===0){let t=u!==void 0&&u!==``,n=u||`message`,i=d;u=void 0,d=``,(i.length>0||r&&t)&&e({_tag:`Event`,id:l,event:n,data:i.slice(0,-1)});return}let n=t.indexOf(`:`),i=t,a=``;n>=0&&(i=t.slice(0,n),a=t.slice(t.charCodeAt(n+1)===t4?n+2:n+1)),i===`data`?d+=a+`
2299
2299
  `:i===`event`?u=a:i===`id`&&!a.includes(`\0`)?l=a:i===`retry`&&/^\d+$/.test(a)&&e(new a4({duration:Ui(parseInt(a,10)),lastEventId:l}))}}var Q2=``,$2=10,e4=13,t4=32,n4=U({_tag:tD(`Event`),id:ZE(V),event:V,data:V}),r4=fS({decode:e=>e.id===void 0?{event:e.event,data:e.data}:{id:e.id,event:e.event,data:e.data},encode:e=>({_tag:`Event`,id:e.id,event:e.event??`message`,data:e.data})}),i4=`~effect/encoding/Sse/Retry`,a4=class e extends Uo(`Retry`){[i4]=i4;static is(e){return y(e,i4)}static filter(t){return e.is(t)?ia(t):aa(t)}},o4=`~effect/http-api/HttpApiSchema/Stream`;function s4(e){let t=typeof e==`string`?MU(e):e;return e=>e.annotate({httpApiStatus:t})}var c4=(e=>zE.pipe(s4(e)))(204),l4=e=>kE(e)&&y(e,o4),u4=e=>l4(e)&&e._tag===`StreamSse`,d4=e=>l4(e)&&e._tag===`StreamUint8Array`,f4=`~effect/http-api/HttpApiSchema/WithHeaders`,p4=`~effect/http-api/HttpApiSchema/WithHeadersValue`,m4=e=>({[p4]:p4,body:e.body,headers:e.headers}),h4=e=>kE(e)&&y(e,`~effect/http-api/HttpApiSchema/WithHeaders`);function g4(e,t,n){return B(e.ast,{[f4]:f4,schema:t,headers:n})}function _4(e,t){return e.annotate({"~httpApiEncoding":{_tag:t._tag,contentType:t.contentType??v4(t._tag)}})}function v4(e){switch(e){case`Multipart`:return`multipart/form-data`;case`Json`:return`application/json`;case`FormUrlEncoded`:return`application/x-www-form-urlencoded`;case`Uint8Array`:return`application/octet-stream`;case`Text`:return`text/plain`}}function y4(e){return t=>_4(t,{_tag:`Json`,...e})}function b4(e){return t=>_4(t,{_tag:`FormUrlEncoded`,...e})}var x4=e=>{if(OS(e)||OS(ww(e)))return!0;let t=e.encoding?.[0].to;return t!==void 0&&OS(t)},S4=Bw(`~httpApiEncoding`),C4=Bw(`~httpApiWithHeaders`),w4=Bw(`httpApiStatus`),T4={_tag:`Json`,contentType:`application/json`},E4={_tag:`FormUrlEncoded`,contentType:`application/x-www-form-urlencoded`};function D4(e){return S4(e)??T4}function O4(e,t){return S4(e)||(OO(t)?T4:E4)}function k4(e){let t=D4(e);if(t._tag===`Multipart`)throw Error(`Multipart is not supported in response`);return t}function A4(e){return w4(e)??200}function j4(e){return h4(e)?w4(e.ast)??A4(e.schema.ast):A4(e.ast)}function M4(e){return h4(e)&&S4(e.ast)===void 0?k4(e.schema.ast):k4(e.ast)}function N4(e){return w4(e)??500}function P4(e){return h4(e)?w4(e.ast)??N4(e.schema.ast):N4(e.ast)}function F4(e){let t=e.toLowerCase().trim(),n=t.indexOf(`;`);return n===-1?t:t.slice(0,n).trim()}var I4=`~effect/http-api/HttpApiEndpoint`;function L4(e){let t=[];for(let{schemas:n}of e.payload.values())t.push(...n);return t}function R4(e){let t=Array.from(e.success);return Ba(t)?t:[c4]}function z4(e){let t=new Set(e.error),n=e.disableCodecs?l:J4;for(let r of e.middlewares){let e=r;for(let r of e.error)t.add(n(r))}return Array.from(t)}var B4={[I4]:I4,pipe(){return a(this,arguments)},prefix(e){return H4({...V4(this),path:SU(this.path,e)})},middleware(e){return H4({...V4(this),middlewares:new Set([...this.middlewares,e])})},annotate(e,t){return H4({...V4(this),annotations:ai(this.annotations,e,t)})},annotateMerge(e){return H4({...V4(this),annotations:hi(this.annotations,e)})}},V4=e=>({identifier:e.identifier,path:e.path,method:e.method,params:e.params,query:e.query,headers:e.headers,payload:e.payload,success:e.success,error:e.error,annotations:e.annotations,middlewares:e.middlewares,disableCodecs:e.disableCodecs});function H4(e){function t(){}return Object.setPrototypeOf(t,B4),Object.assign(t,e)}var U4=e=>(t,n,r)=>{let i=r?.disableCodecs??!1,a=i?l:rO;return H4({identifier:t,path:n,method:e,params:W4(r?.params,a),query:W4(r?.query,a),headers:W4(r?.headers,a),payload:G4(r?.payload,e,i),success:q4(r?.success,e,i),error:Y4(r?.error,i),annotations:ni(),middlewares:new Set,disableCodecs:i})};function W4(e,t){if(e!==void 0)return kE(e)?t(e):t(U(e))}function G4(e,t,n){let r=new Map;if(e===void 0)return r;let i=Array.isArray(e)?e:kE(e)?[e]:[U(e).pipe(b4())],a=n?l:a3;for(let e of i){let n=O4(e.ast,t),i=F4(n.contentType),o=r.get(i);if(o){if(o.encoding._tag!==n._tag)throw Error(`Multiple payload encodings for content-type: ${n.contentType}`);if(o.encoding._tag===`Multipart`)throw Error(`Multiple multipart payloads for content-type: ${n.contentType}`);o.schemas.push(a(e,t))}else r.set(i,{encoding:n,schemas:[a(e,t)]})}return r}var K4=`effect/http-api/stream/failure`;function q4(e,t,n){if(e===void 0)return new Set;let r=ja(e);return X4(r,t),new Set(n?r:r.map(J4))}var J4=v(e=>l4(e)?e:h4(e)?g4(e,l4(e.schema)?e.schema:i3(e.schema,M4(e)),rO(e.headers)):r3(e));function Y4(e,t){if(e===void 0)return new Set;let n=ja(e);for(let e of n)if(l4(h4(e)?e.schema:e))throw Error(`Streaming schemas are not supported in error responses`);return Q4(n,P4),new Set(t?n:n.map(J4))}function X4(e,t){let n=!1,r=new Map;for(let i of e){let e=h4(i)?i.schema:i,a=j4(i);if(l4(e)){if($4(e,t),n)throw Error(`Multiple streaming success responses are not supported`);n=!0;let i=Z4(r,a);if(i.noContent)throw Error(`Cannot combine no-content and streaming success responses for status: ${a}`);if(i.bufferedContentTypes.has(F4(e.contentType)))throw Error(`Cannot combine buffered and streaming success responses for status ${a} and content-type: ${e.contentType}`);r.set(a,{...i,stream:e})}else{let t=Z4(r,a),n=x4(e.ast);if(t.stream!==void 0){if(n)throw Error(`Cannot combine no-content and streaming success responses for status: ${a}`);let e=M4(i);if(F4(e.contentType)===F4(t.stream.contentType))throw Error(`Cannot combine buffered and streaming success responses for status ${a} and content-type: ${e.contentType}`)}n||t.bufferedContentTypes.add(F4(M4(i).contentType)),t.noContent=t.noContent||n}}Q4(e,j4)}function Z4(e,t){let n=e.get(t);return n===void 0&&(n={bufferedContentTypes:new Set,noContent:!1},e.set(t,n)),n}function Q4(e,t){let n=new Map;for(let r of e){let e=t(r),i=C4(r.ast),a=h4(r)?r.schema:i?.body??r,o=x4(a.ast)?``:F4(l4(a)?a.contentType:M4(r).contentType),s=n.get(e);s===void 0&&(s={headerContentType:void 0,plainContentTypes:new Set},n.set(e,s));let c=()=>Error(`Cannot combine a response with headers with another response for status ${e} and content-type: ${o||`<no content>`}`);if(h4(r)||i!==void 0){if(s.headerContentType!==void 0)throw Error(`Cannot declare multiple responses with headers for status ${e}`);if(s.plainContentTypes.has(o))throw c();s.headerContentType=o}else{if(s.headerContentType===o)throw c();s.plainContentTypes.add(o)}}}function $4(e,t){if(t===`HEAD`)throw Error(`HEAD endpoints cannot declare streaming success responses`);if(u4(e)&&e3(e.events.ast))throw Error(`SSE event name is reserved: ${K4}`)}function e3(e){return t3(ww(e),new Set)}function t3(e,t){if(t.has(e))return!1;if(t.add(e),FS(e))return e.types.some(e=>t3(e,t));if(IS(e))return t3(e.thunk(),t);if(!PS(e))return!1;let n=e.propertySignatures.find(e=>e.name===`event`);return n!==void 0&&n3(n.type,t)}function n3(e,t){if(t.has(e))return!1;t.add(e);let n=ww(e);return n===e?AS(e)?e.literal===K4:FS(e)?e.types.some(e=>n3(e,t)):IS(e)?n3(e.thunk(),t):!1:n3(n,t)}function r3(e){let t=k4(e.ast),n=C4(e.ast);return n===void 0?i3(e,t):e.annotate({"~httpApiWithHeaders":{...n,bodyCodec:i3(n.body,t),headersCodec:rO(n.headers)}})}function i3(e,t){switch(t._tag){case`Json`:return nO(e);case`FormUrlEncoded`:return rO(e);case`Text`:case`Uint8Array`:return e}}function a3(e,t){switch(O4(e.ast,t)._tag){case`Json`:return nO(e);case`FormUrlEncoded`:return rO(e);case`Text`:case`Uint8Array`:case`Multipart`:return e}}var o3=U4(`POST`),s3=`~effect/http-api/HttpApi`,c3={[s3]:s3,pipe(){return a(this,arguments)},add(...e){let t={...this.groups};for(let n of e)Pt(t,n.identifier,n);return u3({...l3(this),groups:t})},addHttpApi(e){let t={...this.groups};for(let n of Object.keys(e.groups)){let r=e.groups[n];Pt(t,n,r.annotateMerge(hi(e.annotations,r.annotations)))}return u3({...l3(this),groups:t})},prefix(e){return u3({...l3(this),groups:Sa(this.groups,t=>t.prefix(e))})},middleware(e){return u3({...l3(this),groups:Sa(this.groups,t=>t.middleware(e))})},annotate(e,t){return u3({...l3(this),annotations:ai(this.annotations,e,t)})},annotateMerge(e){return u3({...l3(this),annotations:hi(this.annotations,e)})}},l3=e=>({identifier:e.identifier,groups:e.groups,annotations:e.annotations}),u3=e=>{function t(){}return Object.setPrototypeOf(t,c3),Object.assign(t,e)},d3=e=>u3({identifier:e,groups:{},annotations:ni()}),f3=(e,t)=>{let n=Object.values(e.groups);for(let r of n){let n=hi(e.annotations,r.annotations);t.onGroup({group:r,mergedAnnotations:n});let i=Object.values(r.endpoints);for(let e of i)(!t.predicate||t.predicate({endpoint:e,group:r}))&&t.onEndpoint({group:r,endpoint:e,middleware:e.middlewares,mergedAnnotations:hi(n,e.annotations),successes:p3(R4(e),j4),errors:p3(z4(e),P4)})}},p3=(e,t)=>{let n=new Map;return e.forEach(r),n;function r(e){if(l4(h4(e)?e.schema:e))return;let r=t(e),i=n.get(r);i===void 0?n.set(r,[e]):i.push(e)}},m3=class extends Lr()(`effect/http-api/HttpApi/ParseOptions`){},h3=class extends Lr()(`effect/http-api/HttpApi/ParamsParseOptions`){},g3=class extends Lr()(`effect/http-api/HttpApi/QueryParseOptions`){},_3=class extends Lr()(`effect/http-api/HttpApi/HeadersParseOptions`){},v3=class extends Lr()(`effect/http-api/HttpApi/PayloadParseOptions`){},y3=class extends Lr()(`effect/http-api/HttpApi/SuccessParseOptions`){},b3=class extends Lr()(`effect/http-api/HttpApi/ErrorParseOptions`){},x3=e=>{let t=si(e,m3);return{params:si(e,h3)??t,query:si(e,g3)??t,headers:si(e,_3)??t,payload:si(e,v3)??t,success:si(e,y3)??t,error:si(e,b3)??t}},S3=`~effect/http-api/HttpApiMiddleware`,C3=`~effect/http-api/HttpApiMiddleware/Security`,w3=()=>(e,t)=>{let n=At(),r;n!==0&&(jt(2),r=new globalThis.Error,jt(n));class i extends Lr()(e){}let a=i;if(Object.defineProperty(i,"stack",{get(){return r?.stack}}),a[S3]=S3,a.error=T3(t?.error),a.requiredForClient=t?.requiredForClient??!1,t?.security!==void 0){if(Object.keys(t.security).length===0)throw Error(`HttpApiMiddleware.Service: security object must not be empty`);a[C3]=C3,a.security=t.security}return a};function T3(e){return e===void 0?new Set:new Set(Array.isArray(e)?e:[e])}var E3=new Set;function D3(e){if(e===void 0)return E3;let t=tw(e.ast);return PS(t)&&t.indexSignatures.length===0?new Set(t.propertySignatures.map(e=>String(e.name))):void 0}var O3=class extends Lr()(`effect/http-api/OpenApi/Description`){},k3=(e,t)=>F(function*(){let n=yield*Am(),r=t.httpClient.pipe(t?.baseUrl===void 0?l:_k(KO(t.baseUrl.toString())));function i(e,t,a,o,s){if(s===-1)return r.execute(a);let c=n.mapUnsafe.get(o[s]);return c===void 0?i(e,t,a,o,s-1):c({endpoint:t,group:e,request:a,next(n){return i(e,t,n,o,s-1)}})}f3(e,{predicate:t?.predicate,onGroup(e){t.onGroup?.(e)},onEndpoint(e){let{group:n,endpoint:r,errors:a,successes:o,mergedAnnotations:s}=e,c=x3(s),l=M3(r.path,r.params),u={orElse:Q3},d=new Map;for(let[e,t]of a.entries()){let n=R3(t);for(let[t,r]of n.entries())I3(d,e,t,N3(r,c.error,c.headers))}for(let[e,t]of d.entries()){let n=L3(t);u[e]=e=>L(vm(n(e),t=>nm(Zf(Wf(new yO({reason:new TO({request:e.request,response:e})})),t))),I)}let f=new Map;for(let[e,t]of o.entries()){let n=R3(t);for(let[t,r]of n.entries())I3(f,e,t,N3(r,c.success,c.headers))}for(let e of H3(r)){let t=V3(e)?e.schema:e;I3(f,j4(e),t.contentType,U3(e,c.success,c.headers))}for(let[e,t]of f.entries())u[e]=L3(t);let p=jk(r.params,e=>EE(e,c.params)),m=L4(r),h=Ba(m)?EE(OO(r.method)?e6(m,r.method):JE(m),c.payload):void 0,g=jk(r.headers,e=>EE(e,c.headers)),_=jk(r.query,e=>EE(e,c.query)),v=Array.from(e.middleware,e=>`${e.key}/Client`),ee=oh(function*(e){let a=RO(r.method)(r.path);if(e!==void 0){if(p!==void 0){let t=yield*p(e.params);a=GO(a,l(t))}if(h!==void 0){if(OO(r.method)){if(e.payload instanceof FormData)a=QO(a,e.payload);else{let t=yield*h(e.payload);a=ZO(a,t)}}else{let t=yield*h(e.payload);a=YO(a,t)}}if(g!==void 0){let t=yield*g(e.headers);a=HO(a,t)}if(_!==void 0){let t=yield*_(e.query);a=YO(a,t)}}let o=yield*i(n,r,a,v,v.length-1);if(e?.responseMode===`response-only`)return o;let s=(u[o.status]??u.orElse)(o,e?.sseOptions),c=yield*t.transformResponse===void 0?s:t.transformResponse(s);return e?.responseMode===`decoded-and-response`?[c,o]:c});t.onEndpoint({...e,endpointFn:ee})}})}),A3=(e,t)=>{let n={};return k3(e,{...t,onGroup({group:e}){e.topLevel||Pt(n,e.identifier,{})},onEndpoint({endpoint:e,endpointFn:t,group:r}){Pt(r.topLevel?n:n[r.identifier],e.identifier,t)}}).pipe(mm(n))},j3=/(\/?):(\w+)(\?)?/g,M3=(e,t)=>{if(t===void 0||!e.includes(`:`))return t=>e;let n=D3(t);return t=>e.replace(j3,(e,r,i,a)=>{if(n!==void 0&&!n.has(i))return e;let o=t[i];if(o===void 0){if(a!==void 0)return``;throw Error(`Missing path parameter: ${i}`)}return`${r}${encodeURIComponent(o)}`})};function N3(e,t,n){let r=e.some(e=>h4(e)||C4(e.ast)!==void 0),i=bE(r?JE(e.map(e=>F3(e,t,n))):X3(e),t);return e=>L(e.arrayBuffer,r?t=>i({body:t,headers:e.headers}):i)}var P3=U({body:FE,headers:FE});function F3(e,t,n){let r=C4(e.ast),i=r===void 0?h4(e)?{body:e.schema,headers:e.headers,toValue:m4}:{body:e,headers:FE,toValue:e=>e.body}:{body:r.bodyCodec,headers:r.headersCodec,toValue:r.transformation.decode},a=bE(Z3(i.body).pipe(QE(i.body)),t),o=bE(i.headers,n);return P3.pipe(QE(h4(e)?e:ME(e),dS({decode:e=>Kp({body:a(e.body),headers:o(e.headers)}).pipe(R(i.toValue),bm(e=>e.issue)),encode:(e,t)=>I(new Tx({message:`Decode only schema`},e,t))})))}function I3(e,t,n,r){let i=F4(n),a=e.get(t);a===void 0?e.set(t,[{contentType:i,decode:r}]):a.push({contentType:i,decode:r})}function L3(e){let t=e[0];return e.length===1&&t!==void 0?t.decode:(t,n)=>{let r=F4(t.headers[`content-type`]??``),i=e.find(e=>e.contentType===r);return i===void 0?z3(t,r,e):i.decode(t,n)}}function R3(e){let t=new Map;for(let n of e){let e=x4((h4(n)?n.schema:n).ast)?``:F4(M4(n).contentType),r=t.get(e);r===void 0?t.set(e,[n]):r.push(n)}return t}function z3(e,t,n){let r=Array.from(new Set(n.map(e=>e.contentType))).join(`, `);return I(new yO({reason:new EO({request:e.request,response:e,description:`Unsupported response content-type for status ${e.status}: ${t||`<missing>`}. Expected one of: ${r}`})}))}var B3=`effect/http-api/stream/failure`,V3=e=>h4(e);function H3(e){let t=[];for(let n of e.success)l4(h4(n)?n.schema:n)&&t.push(n);return t}function U3(e,t,n){let r=V3(e),i=r?e.schema:e,a=d4(i)?void 0:{declaration:i,decoder:W3(i,t)},o=(e,t)=>R(Am(),n=>Fv(a===void 0?e.stream:G3(e.stream,a.declaration,a.decoder(t)),n));if(!r)return o;let s=bE(e.headers,n);return(e,t)=>L(s(e.headers),n=>R(o(e,t),e=>m4({body:e,headers:n})))}function W3(e,t){let n=JE([U({id:jE(V),event:NE(B3),data:OD(nO(ND(e.error,ED())))}),e.events]),r=X2(n,void 0,t);return e=>e===void 0?r:X2(n,e,t)}function G3(e,t,n){let r=sv(e.pipe(Nv,Av(n)),e=>P(()=>{let t;return Qp(()=>t===void 0?L(e,e=>{for(let n=0;n<e.length;n++){let r=e[n];if(r.event===B3&&Bf(r.data)){if(n===0)return nm(r.data);t=r.data,e=e.slice(0,n);break}}return N(e)}):nm(t))}));return t.sseMode===`data`?bv(r,e=>e.data):r}var K3=aD(globalThis.ArrayBuffer,{expected:`ArrayBuffer`}),q3=K3.pipe(QE(jD,fS({decode(e){return new Uint8Array(e)},encode(e){return e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}}))),J3=K3.pipe(QE(V,fS({decode(e){return new TextDecoder().decode(e)},encode(e){let t=new TextEncoder().encode(e);return t.byteLength===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}))),Y3=J3.pipe(QE(JE([NE(``).pipe(QE(LE,fS({decode:()=>void 0,encode:()=>``}))),kD])));function X3(e){return JE(e.map(t));function t(e){return Z3(e).pipe(QE(e))}}function Z3(e){switch(k4(e.ast)._tag){case`Json`:return DS(ww(e.ast))?Y3.pipe(QE(FE,fS({decode:e=>e===void 0?null:e,encode:e=>e===null?void 0:e}))):Y3;case`FormUrlEncoded`:return J3.pipe(QE(WD,fS({decode:e=>Nb(new URLSearchParams(e)),encode:Hb})));case`Uint8Array`:return q3;case`Text`:return J3}}var Q3=e=>I(new yO({reason:new EO({request:e.request,response:e})})),$3=fE(oO);function e6(e,t){return JE(e.map(e=>n6(e,t)))}var t6=new WeakMap;function n6(e,t){let n=e.ast,r=t6.get(n);if(r!==void 0)return r;let i=O4(n,t),a=$3.pipe(QE(e,dS({decode(e,t){return I(new Tx({message:`Encode only schema`},e,t))},encode(e,t){switch(i._tag){case`Multipart`:return I(new Tx({message:`Payload must be a FormData`},e,t));case`Json`:try{return N(mO(JSON.stringify(e),i.contentType))}catch{return I(new Cx({expected:`a JSON-serializable request body`},e,t))}case`Text`:return typeof e==`string`?N(mO(e,i.contentType)):I(new Cx({message:`Expected a string`},e,t));case`FormUrlEncoded`:return be(e)?N(hO(Nb(e),i.contentType)):I(new Cx({message:`Expected a record`},e,t));case`Uint8Array`:return e instanceof Uint8Array?N(uO(e,i.contentType)):I(new Cx({message:`Expected a Uint8Array`},e,t))}}})));return t6.set(n,a),a}var r6=`~effect/http-api/HttpApiGroup`,i6={[r6]:r6,add(...e){let t={...this.endpoints};for(let n of e)Pt(t,n.identifier,n);return o6({...a6(this),endpoints:t})},prefix(e){return o6({...a6(this),endpoints:Sa(this.endpoints,t=>t.prefix(e))})},middleware(e){return o6({...a6(this),endpoints:Sa(this.endpoints,t=>t.middleware(e))})},annotateMerge(e){return o6({...a6(this),annotations:hi(this.annotations,e)})},annotate(e,t){return o6({...a6(this),annotations:ai(this.annotations,e,t)})},annotateEndpointsMerge(e){return o6({...a6(this),endpoints:Sa(this.endpoints,t=>t.annotateMerge(e))})},annotateEndpoints(e,t){return o6({...a6(this),endpoints:Sa(this.endpoints,n=>n.annotate(e,t))})},pipe(){return a(this,arguments)}},a6=e=>({identifier:e.identifier,topLevel:e.topLevel,endpoints:e.endpoints,annotations:e.annotations}),o6=e=>{function t(){}return Object.setPrototypeOf(t,i6),t.key=`effect/http-api/HttpApiGroup/${e.identifier}`,Object.assign(t,e)},s6=(e,t)=>o6({identifier:e,topLevel:t?.topLevel??!1,endpoints:{},annotations:ni()}),c6=`~effect/http-api/HttpApiSecurity`,l6={[c6]:c6,pipe(){return a(this,arguments)}},u6=(e=>Object.assign(Object.create(l6),{_tag:`Http`,scheme:e.scheme,schemeLength:e.scheme.length,annotations:ni()}))({scheme:`Bearer`}),d6=e=>Object.assign(Object.create(l6),{_tag:`ApiKey`,key:e.key,in:e.in??`header`,annotations:ni()}),f6=(e,t,n)=>R(A3(e.api,{baseUrl:n,httpClient:t}),t=>{let n=t;return Object.fromEntries(e.actions.map(e=>{let t=n[e.name];if(t===void 0)throw Error(`No client method for ${e.name} (use the binding \`ActionHttp.make\` returned, whose group holds this action)`);return[e.name,V2(e,e=>t({payload:e}))]}))}),p6=(e,{baseUrl:t,transformClient:n}={})=>L(dk,r=>n===void 0?f6(e,r,t):f6(e,n(r),t)),m6=e=>(e??`/api`).split(`/`).filter(e=>e!==``),h6=e=>`/${e.join(`/`)}`,g6=e=>e.join(`/`)||`/`,_6=(e,t)=>{let n=s6(e,{topLevel:!0}),[r,...i]=t;return d3(`actions`).annotate(m3,{errors:`all`}).add(r===void 0?n:n.add(r,...i))},v6=(e,t,n)=>o3(e.name,t,{payload:e.input.pipe(y4()),success:e.success,error:n.map(k2)});function y6(e,t={}){let n=z2(`ActionHttp binding`,e,t),r=m6(t.prefix),i=n.authentication?.[`~middleware`],a=e.map(e=>{let t=i===void 0||e.caller===c2,a=v6(e,h6([...r,e.name]),F2(e,n)).annotate(O3,e.description);return t?a:a.middleware(i)}),o=_6(g6(r),a);return{actions:e,...n,prefix:h6(r),api:o}}w3()(`effect-actions/ActionHttp/StepUp`),w3()(`effect-actions/ActionHttp/JsonContentType`);function b6(e,{fetch:t,...n}={}){return p6(e,n).pipe(Mm(Ak),Im(Ok,t??((e,t)=>globalThis.fetch(e,t))),ih)}var x6=/^[\w.-]+$/,S6=(e,t,...n)=>{let r=n[0]?.security??u6,i=A2(n[0]?.error);if(!x6.test(e))throw Error(`Invalid authentication name: ${JSON.stringify(e)}, not an OpenAPI key: use only letters, digits, "_", "." and "-"`);if(R2(`Authentication "${e}"`,[..._2,...i]),!Se(r,`Http`)&&!Se(r,`ApiKey`)&&!Se(r,`Basic`))throw Error("Authentication takes one native HttpApiSecurity scheme as `security`: omit it for Bearer, or give one scheme, such as `HttpApiSecurity.basic`, never a record of them");return{name:e,identity:t,security:r,error:i,"~provider":Lr(`effect-actions/Authentication/Provider/${e}`),"~middleware":w3()(`effect-actions/Authentication/Security/${e}`,{security:{[e]:r}}),"~verified":Lr(`effect-actions/Authentication/Verified/${e}`)}},C6=class e extends eO()(`InternalServerError`,{message:V},{httpApiStatus:500}){cause;static of=t=>{let n=new e({message:`Request could not be completed`});return n.cause=t,i(n,`../../packages/admin-api/dist/index.js#of`)}},w6=class extends eO()(`ServiceUnavailable`,{message:V},{httpApiStatus:503}){},T6=class e extends eO()(`ClientNotFound`,{clientId:V,message:V},{httpApiStatus:404}){static of=t=>i(new e({clientId:t,message:`No client ${t} is registered`}),`../../packages/admin-api/dist/index.js#of~2`)},E6=class e extends eO()(`ResourceNotFound`,{identifier:V,message:V},{httpApiStatus:404}){static of=t=>i(new e({identifier:t,message:`No resource ${t} exists`}),`../../packages/admin-api/dist/index.js#of~3`)},D6=class e extends eO()(`ApiKeyNotFound`,{keyId:V,message:V},{httpApiStatus:404}){static of=t=>i(new e({keyId:t,message:`No API key ${t} exists`}),`../../packages/admin-api/dist/index.js#of~4`)},O6=class e extends eO()(`ClientIsAutomatic`,{clientId:V,message:V},{httpApiStatus:409}){static of=t=>i(new e({clientId:t,message:`Client ${t} registered itself; revoke, block or delete it instead`}),`../../packages/admin-api/dist/index.js#of~5`)},k6=class e extends eO()(`OwnerExists`,{message:V},{httpApiStatus:409}){static of=()=>i(new e({message:`Setup already completed`}),`../../packages/admin-api/dist/index.js#of~6`)},A6=class extends eO()(`ProviderRefused`,{message:V},{httpApiStatus:400}){},j6=class extends eO()(`UnreadableRequest`,{message:V},{httpApiStatus:400}){},M6=[w6,C6],N6=class extends Lr()(`clankerauth/CurrentOwner`){},P6=(e=>i(S6(`clankerauth.OwnerSession`,N6,{security:d6({in:`cookie`,key:e}),error:M6}),`../../packages/admin-api/dist/index.js#ownerSession`))(`better-auth.session_token`),F6=S6(`clankerauth.OwnerToken`,N6,{error:M6}),I6=`Passwords have 8 to 128 characters`,L6=U({email:V.check(cD(/\S/u,{message:`Setup requires an email`})),password:V.check(hD(8,{message:I6}),_D(128,{message:I6}))}),R6=YE([`none`,`client_secret_basic`,`client_secret_post`]),z6=YE([`web`,`native`]),B6=W(V).check(xD({message:`Choose unique Resources`})),V6=U({client_name:V,redirect_uris:W(V),resources:B6,token_endpoint_auth_method:R6,application_type:z6}),H6=U({client_id:V,client_name:V,redirect_uris:W(V),application_type:z6}),U6=U({client_id:V}),W6=U({client_id:V,resource:jE(V)}),G6=U({client_id:V,blocked:H}),K6=U({onboarding:jE(YE([`managed`,`dcr`,`cimd`])),blocked:jE(H),client_id:V,client_name:jE(V),redirect_uris:W(V),token_endpoint_auth_method:jE(V),application_type:jE(XE(V)),scope:jE(V),grant_types:jE(W(V))}),q6=K6.pipe(VE({client_secret:jE(V),client_secret_expires_at:jE(RE)})),J6=U({identifier:V,name:V,scopes:W(V)}),Y6=J6.pipe(VE({builtIn:H})),X6=U({identifier:V,name:V.check(cD(/\S/u,{message:`Resources require a name`})),scopes:W(V.check(cD(/^\s*[\x21\x23-\x5B\x5D-\x7E]+\s*$/u,{message:`Resources require well-formed custom scopes`})))}),Z6=U({identifier:V}),Q6=U({resource:J6,created:H}),$6=U({client_id:V,resource:V}),e8=U({client_id:V,resources:B6}),t8=U({clientAccess:W($6)}),n8=HE(V,W(V)),r8=HE(V,W(V).check(hD(1,{message:`Select explicitly granted, currently available Resource scopes`}),xD({message:`Select explicitly granted, currently available Resource scopes`}))).check(bD(1,{message:`Select at least one Resource and scope`})),i8=V.check(_D(100,{message:`Key names require 1–100 characters`}),cD(/\S/u,{message:`Key names require 1–100 characters`})),a8=BD,o8=U({client_id:V,resource:V,scopes:W(V),approvedAt:XE(a8),refreshedAt:XE(a8)}),s8=U({name:i8,permissions:r8,expiresAt:XE(a8)}),c8=U({keyId:V}),l8=U({keyId:V,name:jE(i8),permissions:jE(r8),enabled:jE(H)}),u8=U({keyId:V,name:V,enabled:H,permissions:n8,expiresAt:XE(a8),createdAt:a8}),d8={caller:c2},f8={caller:N6},p8=[W2(`setupStatus`,{description:`Check whether the issuer needs its first owner account.`,readOnly:!0,...d8,error:[C6],success:U({required:H})}),W2(`setupOwner`,{description:`Create the first owner account.`,readOnly:!1,...d8,error:[k6,A6,C6],input:L6,success:U({created:H}).pipe(s4(201))}),W2(`keyList`,{description:`The signed list a resource server verifies API keys against: one sealed entry per key granted on the resource, readable only with that key.`,readOnly:!0,...d8,error:[C6],input:U({resource:V}),success:U({list:V})})],m8=U({clients:W(K6),resources:W(Y6),clientAccess:W($6),connections:W(o8),email:V,issuer:V}),h8=[W2(`listClients`,{description:`List clients, resources, managed clients' resource access (what they may obtain), and every client's connections (what it holds).`,readOnly:!0,...f8,error:[C6],success:m8}),W2(`createClient`,{description:`Register a first-party OAuth client. Returns its secret once when confidential.`,readOnly:!1,...f8,error:[A6,C6],input:V6,success:q6.pipe(s4(201))}),W2(`updateClient`,{description:`Rename a first-party client or change its redirect URIs and application type.`,readOnly:!1,...f8,error:[T6,O6,A6,C6],input:H6,success:K6}),W2(`deleteClient`,{description:`Delete a client and its stored authorization. An automatic client can register again; block it to keep it out.`,readOnly:!1,...f8,error:[T6,C6],input:U6,success:U({deleted:H})}),W2(`revokeClient`,{description:`Revoke a client’s stored authorization, for one resource or all. It must authorize again; an automatic client asks for consent.`,readOnly:!1,...f8,error:[T6,C6],input:W6,success:U({revoked:H})}),W2(`blockClient`,{description:`Block or unblock OAuth authorization for a client.`,readOnly:!1,...f8,error:[T6,C6],input:G6,success:U({blocked:H})}),W2(`rotateClientSecret`,{description:`Rotate a confidential client secret. Returns the new secret once.`,readOnly:!1,...f8,error:[T6,O6,A6,C6],input:U6,success:q6}),W2(`setClientAccess`,{description:`Set the resources a managed client may obtain. Removing one revokes its authorization for it. Automatic clients may ask for any resource with consent.`,readOnly:!1,...f8,error:[T6,O6,C6],input:e8,success:t8}),W2(`getResource`,{description:`Get one resource and its scopes by identifier.`,readOnly:!0,...f8,error:[E6,C6],input:Z6,success:Y6}),W2(`putResource`,{description:`Create an OAuth resource, or update the one with its identifier, to exactly these name and scopes.`,readOnly:!1,...f8,error:[A6,C6],input:X6,success:Q6}),W2(`deleteResource`,{description:`Delete a resource, its client access and every client’s authorization for it. API-key permissions are retained; recreating the resource restores them.`,readOnly:!1,...f8,error:[E6,C6],input:Z6,success:U({deleted:H})}),W2(`listApiKeys`,{description:`List API key metadata without secret values.`,readOnly:!0,...f8,error:[C6],success:U({keys:W(u8)})}),W2(`createApiKey`,{description:`Create a scoped API key. Returns its secret once.`,readOnly:!1,...f8,error:[A6,C6],input:s8,success:u8.pipe(VE({key:V}),s4(201))}),W2(`updateApiKey`,{description:`Update an API key’s name, permissions or enabled state.`,readOnly:!1,...f8,error:[D6,A6,C6],input:l8,success:u8}),W2(`deleteApiKey`,{description:`Delete an API key.`,readOnly:!1,...f8,error:[D6,C6],input:c8,success:U({deleted:H})})],g8=[...new Set([...[...p8,...h8].flatMap(e=>i(e.error,`../../packages/admin-api/dist/index.js#anonymous`)),...M6,j6])],_8=(e=>i(y6([...h8,...p8],{authentication:e}),`../../packages/admin-api/dist/index.js#binding`))(P6);y6(h8,{prefix:`/api/owner`,authentication:F6});function v8(e){return typeof e==`object`&&!!e&&`get`in e&&typeof e.get==`function`&&`lc`in e&&typeof e.lc==`number`}function y8(e){return e.charAt(0).toUpperCase()+e.slice(1)}var b8=/[\p{Ll}\d]+|\p{Lu}+(?!\p{Ll})|\p{Lu}[\p{Ll}\d]+|\p{Lo}+/gu,x8=/['\u2019]/g;function S8(e){return e.replace(x8,``).match(b8)??[]}function C8(e){return S8(e).map(e=>e.toLowerCase()).join(`-`)}function w8(e,t,n){let r=t[e],{fetchOptions:i,query:a,...o}=n||{};return r||(i?.method?i.method:o&&Object.keys(o).length>0?`POST`:`GET`)}function T8(e,t,n,r,i){function a(o=[]){return new Proxy(function(){},{get(t,n){if(typeof n!=`string`||n===`then`||n===`catch`||n===`finally`)return;let r=[...o,n],i=e;for(let e of r)if(i&&typeof i==`object`&&e in i)i=i[e];else{i=void 0;break}return typeof i==`function`||v8(i)?i:a(r)},apply:async(e,a,s)=>{let c=`/`+o.map(C8).join(`/`),l=s[0]||{},u=s[1]||{},{query:d,fetchOptions:f,...p}=l,m={...u,...f},h=w8(c,n,l);return await t(c,{...m,body:h===`GET`?void 0:{...p,...m?.body||{}},query:d||m?.query,method:h,async onSuccess(e){if(await m?.onSuccess?.(e),!i||m.disableSignal)return;let t=i.filter(e=>e.matcher(c));if(!t.length)return;let n=new Set;for(let e of t){let t=r[e.signal];if(!t)return;if(n.has(e.signal))continue;n.add(e.signal);let i=t.get();setTimeout(()=>{t.set(!i)},10),e.callback?.(c)}}})}})}return a()}function E8(e){let{pluginPathMethods:t,pluginsActions:n,pluginsAtoms:r,hydrateSession:i,$fetch:a,atomListeners:o,$store:s}=o2(e),c={};for(let[e,t]of Object.entries(r))c[`use${y8(e)}`]=t;return T8({...n,...c,hydrateSession:i,$fetch:a,$store:s},a,t,r,o)}var D8=b6(_8),O8=yE(JE(g8)),k8=yE(v2),A8=`Request could not be completed. Please try again.`,j8=e=>O8(e)?i(e.message,`src/api.ts#reasonOf`):e instanceof p2?i(g(e.issues,j(({message:e})=>i(e,`src/api.ts#anonymous`)),jo,Na({onEmpty:()=>i(e.message,`src/api.ts#onEmpty`),onNonEmpty:Mo(` `)})),`src/api.ts#reasonOf`):k8(e)?i(e.message,`src/api.ts#reasonOf`):i(A8,`src/api.ts#reasonOf`),M8=e=>i(e.pipe(bm(j8),ym(()=>i(I(A8),`src/api.ts#anonymous~2`))),`src/api.ts#toOwnerSentence`),N8=E8({plugins:[s2()]}),P8=(e,t)=>i(Xp({try:e,catch:()=>i(t,`src/api.ts#catch`)}).pipe(L(({data:e,error:n})=>i(n===null&&e!==null?N(e):I(t),`src/api.ts#anonymous~3`))),`src/api.ts#settled`),F8=Xp({try:()=>i(N8.getSession(),`src/api.ts#try`),catch:()=>i(A8,`src/api.ts#catch~2`)}).pipe(L(({data:e,error:t})=>i(t===null?N(e!==null):I(A8),`src/api.ts#anonymous~4`))),I8=(e,t)=>i(P8(()=>i(N8.signIn.email({email:e,password:t}),`src/api.ts#anonymous~5`),`Sign-in failed. Check your credentials or try again later.`).pipe(hm),`src/api.ts#signIn`),L8=P8(()=>i(N8.signOut(),`src/api.ts#anonymous~6`),`Sign-out failed. Please try again.`).pipe(hm),R8=e=>i(P8(()=>i(N8.oauth2.publicClient({query:{client_id:e}}),`src/api.ts#anonymous~7`),`Sign in through your application to continue authorization.`).pipe(R(({client_name:e})=>i(O(e),`src/api.ts#anonymous~8`))),`src/api.ts#publicClientName`),z8=(e,t)=>i(P8(()=>i(N8.oauth2.consent(D(t,{onNone:()=>i({accept:e},`src/api.ts#onNone`),onSome:t=>i({accept:e,scope:t},`src/api.ts#onSome`)})),`src/api.ts#anonymous~9`),`Authorization could not be completed. Restart from your application.`).pipe(hm),`src/api.ts#decideConsent`),B8=gA({PutResource:{identifier:V,name:V,scopes:W(V)},DeleteResource:{identifier:V},CreateKey:{name:V,permissions:n8,maybeExpiry:UD(V)},RenameKey:{keyId:V,name:V},SetKeyGrants:{keyId:V,permissions:n8},SetKeyEnabled:{keyId:V,isEnabled:H},DeleteKey:{keyId:V,name:V},RegisterClient:{name:V,redirectUris:W(V),resources:W(V),applicationType:z6,authMethod:R6},UpdateClient:{clientId:V,name:V,redirectUris:W(V),applicationType:z6},SetClientAccess:{clientId:V,resources:W(V),removed:W(V)},RevokeClient:{clientId:V,maybeResource:UD(V)},BlockClient:{clientId:V,isBlocked:H},RotateSecret:{clientId:V},DeleteClient:{clientId:V,isManaged:H}}),V8=gA({ClientSecret:{clientId:V,name:V,secret:V},ApiKey:{keyId:V,name:V,key:V}}),H8=e=>i(V8.match(e,{ClientSecret:({clientId:e})=>i(`client:${e}`,`src/page/dashboard/change.ts#ClientSecret`),ApiKey:({keyId:e})=>i(`key:${e}`,`src/page/dashboard/change.ts#ApiKey`)}),`src/page/dashboard/change.ts#credentialId`),U8=(e,t)=>i(B8.matchOrElse(e,{DeleteClient:({clientId:e})=>i(H8(t)===`client:${e}`,`src/page/dashboard/change.ts#DeleteClient`),DeleteKey:({keyId:e})=>i(H8(t)===`key:${e}`,`src/page/dashboard/change.ts#DeleteKey`)},()=>i(!1,`src/page/dashboard/change.ts#anonymous`)),`src/page/dashboard/change.ts#isVoidedBy`),W8=e=>i(!B8.guards.RotateSecret(e),`src/page/dashboard/change.ts#needsReread`),G8=`It must authorize again, and an automatic Client asks for consent.`,K8=e=>i(B8.matchOrElse(e,{DeleteResource:({identifier:e})=>i(w({title:`Delete resource`,question:`Delete this Resource?`,body:`Every Client’s authorization for ${e} is revoked; API-key grants are kept.`,label:`delete`,isDanger:!0}),`src/page/dashboard/change.ts#DeleteResource`),DeleteKey:({name:e})=>i(w({title:`Delete API key`,question:`Delete this API key?`,body:`${e} stops working within about a minute. This cannot be undone.`,label:`delete`,isDanger:!0}),`src/page/dashboard/change.ts#DeleteKey~2`),SetClientAccess:({removed:e})=>i(Na(e,{onEmpty:()=>i(C(),`src/page/dashboard/change.ts#onEmpty`),onNonEmpty:e=>i(w({title:`Remove access`,question:`Remove access?`,body:`This revokes the Client’s authorization for ${Mo(e,`, `)}.`,label:`remove access`,isDanger:!0}),`src/page/dashboard/change.ts#onNonEmpty`)}),`src/page/dashboard/change.ts#SetClientAccess`),RevokeClient:({maybeResource:e})=>i(w({title:`Revoke`,question:D(e,{onNone:()=>i(`Revoke all of this Client’s authorization?`,`src/page/dashboard/change.ts#onNone`),onSome:()=>i(`Revoke this authorization?`,`src/page/dashboard/change.ts#onSome`)}),body:D(e,{onNone:()=>i(G8,`src/page/dashboard/change.ts#onNone~2`),onSome:e=>i(`The Client loses its authorization for ${e}. ${G8}`,`src/page/dashboard/change.ts#onSome~2`)}),label:`revoke`,isDanger:!0}),`src/page/dashboard/change.ts#RevokeClient`),BlockClient:({isBlocked:e})=>i(w(e?{title:`Block client`,question:`Block this Client?`,body:`Its authorization is revoked and it cannot authorize again until you unblock it.`,label:`block`,isDanger:!0}:{title:`Unblock client`,question:`Unblock this Client?`,body:`It may authorize again. Authorization revoked by the block stays revoked.`,label:`unblock`,isDanger:!1}),`src/page/dashboard/change.ts#BlockClient`),RotateSecret:()=>i(w({title:`Rotate secret`,question:`Rotate the secret?`,body:`The old one stops working immediately.`,label:`rotate`,isDanger:!0}),`src/page/dashboard/change.ts#RotateSecret`),DeleteClient:({isManaged:e})=>i(w({title:e?`Delete client`:`Forget client`,question:e?`Delete this Client?`:`Forget this Client?`,body:e?`Its authorization is deleted with it.`:`Its authorization is deleted with it. It can register again; block it to keep it out.`,label:e?`delete`:`forget`,isDanger:!0}),`src/page/dashboard/change.ts#DeleteClient~2`)},()=>i(C(),`src/page/dashboard/change.ts#anonymous~2`)),`src/page/dashboard/change.ts#confirmationOf`),q8=e=>i(B8.match(e,{PutResource:()=>i(`Resource saved.`,`src/page/dashboard/change.ts#PutResource`),DeleteResource:()=>i(`Resource deleted.`,`src/page/dashboard/change.ts#DeleteResource~2`),CreateKey:()=>i(`API key created. Store it now.`,`src/page/dashboard/change.ts#CreateKey`),RenameKey:()=>i(`Key renamed.`,`src/page/dashboard/change.ts#RenameKey`),SetKeyGrants:()=>i(`Grants saved.`,`src/page/dashboard/change.ts#SetKeyGrants`),SetKeyEnabled:({isEnabled:e})=>i(e?`Key enabled.`:`Key disabled.`,`src/page/dashboard/change.ts#SetKeyEnabled`),DeleteKey:()=>i(`Key deleted.`,`src/page/dashboard/change.ts#DeleteKey~3`),RegisterClient:()=>i(`Client registered.`,`src/page/dashboard/change.ts#RegisterClient`),UpdateClient:()=>i(`Client saved.`,`src/page/dashboard/change.ts#UpdateClient`),SetClientAccess:()=>i(`Access saved.`,`src/page/dashboard/change.ts#SetClientAccess~2`),RevokeClient:()=>i(`Authorization revoked.`,`src/page/dashboard/change.ts#RevokeClient~2`),BlockClient:({isBlocked:e})=>i(e?`Client blocked.`:`Client unblocked.`,`src/page/dashboard/change.ts#BlockClient~2`),RotateSecret:()=>i(`Secret rotated. Store it now.`,`src/page/dashboard/change.ts#RotateSecret~2`),DeleteClient:()=>i(`Client deleted.`,`src/page/dashboard/change.ts#DeleteClient~3`)}),`src/page/dashboard/change.ts#announcementOf`),J8=e=>i(g(e.split(/\s+/u),wo(Np),jo),`src/page/dashboard/change.ts#splitWords`),Y8=U({name:V,identifier:V,scopes:V}),X8=U({name:V,grants:n8,expiry:V}),Z8=U({name:V,redirectUris:V,resources:W(V),isNative:H,authMethod:R6}),Q8=gA({Add:{},Edit:{}}),$8=gA({Create:{},Rename:{keyId:V},Grants:{keyId:V}}),e5=gA({Register:{},Edit:{clientId:V},Access:{clientId:V,allowed:W(V)}}),t5=gA({Resource:{mode:Q8,draft:Y8},Key:{mode:$8,draft:X8},Client:{mode:e5,draft:Z8}}),n5=hA({UpdatedResourceName:{value:V},UpdatedResourceIdentifier:{value:V},UpdatedResourceScopes:{value:V},UpdatedKeyName:{value:V},ToggledKeyGrant:{resource:V,scope:V,isChecked:H},UpdatedKeyExpiry:{value:V},UpdatedClientName:{value:V},UpdatedClientRedirectUris:{value:V},ToggledClientResource:{resource:V,isChecked:H},ToggledClientNative:{isChecked:H},SelectedClientAuthMethod:{method:R6}}),r5=()=>i(t5.Resource({mode:Q8.Add(),draft:{name:``,identifier:``,scopes:``}}),`src/page/dashboard/form.ts#addResource`),i5=({name:e,identifier:t,scopes:n})=>i(t5.Resource({mode:Q8.Edit(),draft:{name:e,identifier:t,scopes:Mo(n,` `)}}),`src/page/dashboard/form.ts#editResource`),a5=()=>i(t5.Key({mode:$8.Create(),draft:{name:``,grants:{},expiry:``}}),`src/page/dashboard/form.ts#createKey`),o5=({keyId:e,name:t,permissions:n})=>i(t5.Key({mode:$8.Rename({keyId:e}),draft:{name:t,grants:n,expiry:``}}),`src/page/dashboard/form.ts#renameKey`),s5=(e,t)=>i(Va(t)?[[e,t]]:[],`src/page/dashboard/form.ts#grantEntry`),c5=(e,t)=>i(ga(xo(t,({identifier:t,scopes:n})=>i(s5(t,_o(Sr(ba(e,t),()=>i([],`src/page/dashboard/form.ts#anonymous~2`)),n)),`src/page/dashboard/form.ts#anonymous`))),`src/page/dashboard/form.ts#grantsInForce`),l5=({keyId:e,name:t,permissions:n},r)=>i(t5.Key({mode:$8.Grants({keyId:e}),draft:{name:t,expiry:``,grants:c5(n,r)}}),`src/page/dashboard/form.ts#editGrants`),u5=(e,t)=>i({name:e.client_name??``,redirectUris:Mo(e.redirect_uris,`
2300
- `),resources:t,isNative:e.application_type===`native`,authMethod:`none`},`src/page/dashboard/form.ts#clientDraftOf`),d5=()=>i(t5.Client({mode:e5.Register(),draft:{name:``,redirectUris:``,resources:[],isNative:!1,authMethod:`none`}}),`src/page/dashboard/form.ts#registerClient`),f5=e=>i(t5.Client({mode:e5.Edit({clientId:e.client_id}),draft:u5(e,[])}),`src/page/dashboard/form.ts#editClient`),p5=(e,t)=>i(t5.Client({mode:e5.Access({clientId:e.client_id,allowed:t}),draft:u5(e,t)}),`src/page/dashboard/form.ts#editAccess`),m5=(e,t)=>i(t5.matchOrElse(e,{Resource:e=>i(Q(e,{draft:t}),`src/page/dashboard/form.ts#Resource`)},()=>i(e,`src/page/dashboard/form.ts#anonymous~3`)),`src/page/dashboard/form.ts#editResourceDraft`),h5=(e,t)=>i(t5.matchOrElse(e,{Key:e=>i(Q(e,{draft:t}),`src/page/dashboard/form.ts#Key`)},()=>i(e,`src/page/dashboard/form.ts#anonymous~4`)),`src/page/dashboard/form.ts#editKeyDraft`),g5=(e,t)=>i(t5.matchOrElse(e,{Client:e=>i(Q(e,{draft:t}),`src/page/dashboard/form.ts#Client`)},()=>i(e,`src/page/dashboard/form.ts#anonymous~5`)),`src/page/dashboard/form.ts#editClientDraft`),_5=(e,t)=>i((n=>{let r=wo(n,t=>i(t!==e,`src/page/dashboard/form.ts#anonymous~7`));return i(t?Fa(r,e):r,`src/page/dashboard/form.ts#anonymous~6`)}),`src/page/dashboard/form.ts#toggleValue`),v5=(e,t,n)=>i((r=>{let a=g(ba(r,e),Sr(()=>i([],`src/page/dashboard/form.ts#anonymous~9`)),_5(t,n));return i(Va(a)?Ta(r,e,a):xa(r,e),`src/page/dashboard/form.ts#anonymous~8`)}),`src/page/dashboard/form.ts#toggleGrant`),y5=(e,t)=>i(n5.match(t,{UpdatedResourceName:({value:t})=>i(m5(e,e=>i(Q(e,{name:()=>i(t,`src/page/dashboard/form.ts#name`)}),`src/page/dashboard/form.ts#anonymous~10`)),`src/page/dashboard/form.ts#UpdatedResourceName`),UpdatedResourceIdentifier:({value:t})=>i(m5(e,e=>i(Q(e,{identifier:()=>i(t,`src/page/dashboard/form.ts#identifier`)}),`src/page/dashboard/form.ts#anonymous~11`)),`src/page/dashboard/form.ts#UpdatedResourceIdentifier`),UpdatedResourceScopes:({value:t})=>i(m5(e,e=>i(Q(e,{scopes:()=>i(t,`src/page/dashboard/form.ts#scopes`)}),`src/page/dashboard/form.ts#anonymous~12`)),`src/page/dashboard/form.ts#UpdatedResourceScopes`),UpdatedKeyName:({value:t})=>i(h5(e,e=>i(Q(e,{name:()=>i(t,`src/page/dashboard/form.ts#name~2`)}),`src/page/dashboard/form.ts#anonymous~13`)),`src/page/dashboard/form.ts#UpdatedKeyName`),ToggledKeyGrant:({resource:t,scope:n,isChecked:r})=>i(h5(e,e=>i(Q(e,{grants:v5(t,n,r)}),`src/page/dashboard/form.ts#anonymous~14`)),`src/page/dashboard/form.ts#ToggledKeyGrant`),UpdatedKeyExpiry:({value:t})=>i(h5(e,e=>i(Q(e,{expiry:()=>i(t,`src/page/dashboard/form.ts#expiry`)}),`src/page/dashboard/form.ts#anonymous~15`)),`src/page/dashboard/form.ts#UpdatedKeyExpiry`),UpdatedClientName:({value:t})=>i(g5(e,e=>i(Q(e,{name:()=>i(t,`src/page/dashboard/form.ts#name~3`)}),`src/page/dashboard/form.ts#anonymous~16`)),`src/page/dashboard/form.ts#UpdatedClientName`),UpdatedClientRedirectUris:({value:t})=>i(g5(e,e=>i(Q(e,{redirectUris:()=>i(t,`src/page/dashboard/form.ts#redirectUris`)}),`src/page/dashboard/form.ts#anonymous~17`)),`src/page/dashboard/form.ts#UpdatedClientRedirectUris`),ToggledClientResource:({resource:t,isChecked:n})=>i(g5(e,e=>i(Q(e,{resources:_5(t,n)}),`src/page/dashboard/form.ts#anonymous~18`)),`src/page/dashboard/form.ts#ToggledClientResource`),ToggledClientNative:({isChecked:t})=>i(g5(e,e=>i(Q(e,{isNative:()=>i(t,`src/page/dashboard/form.ts#isNative`)}),`src/page/dashboard/form.ts#anonymous~19`)),`src/page/dashboard/form.ts#ToggledClientNative`),SelectedClientAuthMethod:({method:t})=>i(g5(e,e=>i(Q(e,{authMethod:()=>i(t,`src/page/dashboard/form.ts#authMethod`)}),`src/page/dashboard/form.ts#anonymous~20`)),`src/page/dashboard/form.ts#SelectedClientAuthMethod`)}),`src/page/dashboard/form.ts#update`),b5=`Add at least one redirect URI.`,x5=`Enter the expiry as a date and time, or leave it blank.`,S5=e=>i(Na(J8(e.redirectUris),{onEmpty:()=>i(aa(b5),`src/page/dashboard/form.ts#onEmpty`),onNonEmpty:ia}),`src/page/dashboard/form.ts#redirectUrisOf`),C5=e=>i(g(Pr(e,Np),D({onNone:()=>i(ia(C()),`src/page/dashboard/form.ts#onNone`),onSome:e=>i(Number.isNaN(Date.parse(e))?aa(x5):ia(w(e)),`src/page/dashboard/form.ts#onSome`)})),`src/page/dashboard/form.ts#expiryOf`),w5=e=>i(e.isNative?`native`:`web`,`src/page/dashboard/form.ts#applicationTypeOf`),T5=`A Resource with this identifier exists already: edit it instead.`,E5=(e,t,n)=>{let r={identifier:t.identifier.trim(),name:t.name.trim(),scopes:J8(t.scopes)};return i(Q8.match(e,{Add:()=>i(po(n,r.identifier)?aa(T5):ia(B8.PutResource(r)),`src/page/dashboard/form.ts#Add`),Edit:()=>i(ia(B8.PutResource(r)),`src/page/dashboard/form.ts#Edit`)}),`src/page/dashboard/form.ts#resourceChangeOf`)},D5=(e,t)=>i($8.match(e,{Create:()=>i(da(C5(t.expiry),e=>i(B8.CreateKey({name:t.name.trim(),permissions:t.grants,maybeExpiry:e}),`src/page/dashboard/form.ts#anonymous~21`)),`src/page/dashboard/form.ts#Create`),Rename:({keyId:e})=>i(ia(B8.RenameKey({keyId:e,name:t.name.trim()})),`src/page/dashboard/form.ts#Rename`),Grants:({keyId:e})=>i(ia(B8.SetKeyGrants({keyId:e,permissions:t.grants})),`src/page/dashboard/form.ts#Grants`)}),`src/page/dashboard/form.ts#keyChangeOf`),O5=(e,t)=>i(e5.match(e,{Register:()=>i(da(S5(t),e=>i(B8.RegisterClient({name:t.name.trim(),redirectUris:e,resources:t.resources,applicationType:w5(t),authMethod:t.authMethod}),`src/page/dashboard/form.ts#anonymous~22`)),`src/page/dashboard/form.ts#Register`),Edit:({clientId:e})=>i(da(S5(t),n=>i(B8.UpdateClient({clientId:e,name:t.name.trim(),redirectUris:n,applicationType:w5(t)}),`src/page/dashboard/form.ts#anonymous~23`)),`src/page/dashboard/form.ts#Edit~2`),Access:({clientId:e,allowed:n})=>i(ia(B8.SetClientAccess({clientId:e,resources:t.resources,removed:vo(n,t.resources)})),`src/page/dashboard/form.ts#Access`)}),`src/page/dashboard/form.ts#clientChangeOf`),k5=(e,t)=>i(t5.match(e,{Resource:({mode:e,draft:n})=>i(E5(e,n,t),`src/page/dashboard/form.ts#Resource~2`),Key:({mode:e,draft:t})=>i(D5(e,t),`src/page/dashboard/form.ts#Key~2`),Client:({mode:e,draft:t})=>i(O5(e,t),`src/page/dashboard/form.ts#Client~2`)}),`src/page/dashboard/form.ts#changeOf`),A5=e=>y(e,`parentField`),j5=(e,t,n)=>({...e,[t]:n}),M5=e=>({read:t=>w(t[e.parentField]),write:(t,n)=>j5(t,e.parentField,n),toParentMessage:e.toParentMessage}),N5=(e,t)=>xq({update:(t,n)=>e(t,n),...t}),P5=(e,t,n,r)=>D(r(e.read(t,n)),{onNone:()=>({model:t}),onSome:r=>{let i=e.start(t,n,r);return{model:i.model,commands:[e.fetch(n,i.generation)]}}}),F5=e=>g(e,fm,R(e=>IA(yA(),e))),I5=([e,t])=>[e,z5(t)],L5=hr(pr,([e])=>e),R5=e=>be(e)&&!globalThis.Array.isArray(e),z5=e=>globalThis.Array.isArray(e)?j(e,z5):R5(e)?g(e,va,co(L5),j(I5),ga):e,B5=DE(OD(iO)),V5=e=>{let t=DE(nO(e));return e=>B5(z5(t(e)))},H5=(e,t,n)=>hA({CompletedFetch:{args:n,generation:RE,result:GD(e,t)}}),U5=(e,t,n)=>U({generation:RE,entries:HD(V,U({args:n,data:wA(e,t).schema,generation:RE}))});function W5(e){wA(e.data,e.error);let t=U(e.args);if(Ra(Ca(e.args)))throw Error(`Query.define("${e.name}"): keyed args must include at least one field`);let n=e.toKey??V5(t),r=H5(e.data,e.error,t),i=lH(`Fetch${e.name}`,{args:{args:t,generation:RE},messages:[r.CompletedFetch],execute:({args:t,generation:n})=>g(e.execute(t),fm,R(e=>({_tag:`CompletedFetch`,args:t,generation:n,result:e})))}),a=U5(e.data,e.error,t),o={read:(e,t)=>lte(k(cb(e.entries,n(t)),e=>e.data)),start:(e,t,r)=>{let i=xp(e.generation);return{model:Q(e,{entries:ub(n(t),{args:t,data:r,generation:i}),generation:()=>i}),generation:i}},fetch:(e,t)=>i({args:e,generation:t})},s=()=>a.make({entries:ab(),generation:0}),l=e=>({model:Q(e,{entries:()=>ab()})}),u=(e,t)=>o.read(e,t),d=e=>c(2,(t,n)=>P5(o,t,n,e)),f=d(PA),p=d(NA),m=d(FA),h=(e,t)=>r.match(t,{CompletedFetch({args:t,generation:r,result:i}){let a=n(t),o=cb(e.entries,a);if(T(o))return{model:e};let s=o.value;return!MA(s.data)||r!==s.generation?{model:e}:{model:Q(e,{entries:ub(a,Q(s,{data:()=>IA(s.data,i)}))})}}}),_=e=>({fold:xq({update:h,...e}),reset:Eq({update:l,...e}),revalidate:N5(f,e),revalidateOrLoad:N5(p,e),loadIfMissing:N5(m,e)});function v(e){return A5(e)?_(M5(e)):_(e)}return{Model:a,Message:r,Fetch:i,init:s,reset:l,read:u,update:h,revalidate:f,revalidateOrLoad:p,loadIfMissing:m,lift:v,run:t=>F5(e.execute(t))}}var G5=(e,t)=>hA({CompletedFetch:{generation:RE,result:GD(e,t)}}),K5=(e,t)=>U({data:wA(e,t).schema,generation:RE});function q5(e){let t=K5(e.data,e.error),n=G5(e.data,e.error),r=lH(`Fetch${e.name}`,{args:{generation:RE},messages:[n.CompletedFetch],execute:({generation:t})=>g(e.execute,fm,R(e=>n.CompletedFetch({generation:t,result:e})))}),i={read:e=>e.data,start:(e,t,n)=>{let r=xp(e.generation);return{model:Q(e,{data:()=>n,generation:()=>r}),generation:r}},fetch:(e,t)=>r({generation:t})},a=()=>t.make({data:vA(),generation:0}),o=e=>({model:Q(e,{data:()=>vA()})}),s=e=>e.data,c=e=>P5(i,e,void 0,PA),l=e=>P5(i,e,void 0,NA),u=e=>P5(i,e,void 0,FA),d=(e,t)=>n.match(t,{CompletedFetch({generation:t,result:n}){let r=s(e);return!MA(r)||t!==e.generation?{model:e}:{model:Q(e,{data:()=>IA(r,n)})}}}),f=e=>({fold:xq({update:d,...e}),reset:Eq({update:o,...e}),revalidate:Eq({update:c,...e}),revalidateOrLoad:Eq({update:l,...e}),loadIfMissing:Eq({update:u,...e})});function p(e){return A5(e)?f(M5(e)):f(e)}return{Model:t,Message:n,Fetch:r,init:a,reset:o,read:s,update:d,revalidate:c,revalidateOrLoad:l,loadIfMissing:u,lift:p,run:F5(e.execute)}}var J5=e=>y(e,`args`);function Y5(e){return J5(e)?W5(e):q5(e)}var X5=Y5({name:`Listing`,data:U({overview:m8,keys:W(u8)}),error:V,execute:Kp({overview:D8.listClients(),keys:R(D8.listApiKeys(),({keys:e})=>i(e,`src/page/dashboard/listing.ts#anonymous`))},{concurrency:`unbounded`}).pipe(M8)}),Z5=U({credential:V8,copy:pZ}),Q5=YE([`Page`,`Editor`,`Confirm`]),$5=gA({Idle:{},Saving:{},SigningOut:{}}),e7=U({place:Q5,title:V,reason:V}),t7=U({listing:X5.Model,credentials:W(Z5),issuerCopy:pZ,editor:kX,maybeForm:UD(t5),confirm:eZ,maybePending:UD(B8),activity:$5,maybeRefusal:UD(e7)}),n7=e=>i(X5.read(e.listing),`src/page/dashboard/model.ts#listingOf`),r7=e=>i($5.guards.Saving(e.activity),`src/page/dashboard/model.ts#isSaving`),i7=e=>i(!$5.guards.Idle(e.activity)||!jA(n7(e)),`src/page/dashboard/model.ts#isHeld`),a7=e=>i(IX(e.editor)||lZ(e.confirm),`src/page/dashboard/model.ts#isDialogOpen`),o7=(e,t)=>i(Mr(e.maybeRefusal,e=>i(e.place===t,`src/page/dashboard/model.ts#anonymous`)),`src/page/dashboard/model.ts#refusalAt`),s7=e=>i(Or(e.maybePending,K8),`src/page/dashboard/model.ts#pendingConfirmation`),$=hA({GotListingMessage:{message:X5.Message},ClickedRetryListing:{},ClickedOpenForm:{form:t5},GotFormMessage:{message:n5},SubmittedForm:{},ClickedChange:{change:B8},SucceededSaveChange:{change:B8,maybeCredential:UD(V8)},FailedSaveChange:{reason:V},ClickedDismissCredentials:{},ClickedSignOut:{},SucceededSignOut:{},FailedSignOut:{reason:V},GotEditorMessage:{message:MX},GotConfirmMessage:{message:tZ},GotCredentialCopyMessage:{credentialId:V,message:mZ},GotIssuerCopyMessage:{message:mZ},GotTopBarMessage:{message:CQ},CompletedAnnounce:{},CompletedFocus:{}}),c7=ste({Clients:{},Resources:{},Keys:{},Login:{},Setup:{},Consent:{},NotFound:{path:V}}),l7=[`Clients`,`Resources`,`Keys`];c7.subset(l7);var u7=g(iW,sW(c7.Clients)),d7=g(rW(`resources`),sW(c7.Resources)),f7=g(rW(`keys`),sW(c7.Keys)),p7=g(rW(`login`),sW(c7.Login)),m7=g(rW(`setup`),sW(c7.Setup)),h7=lW(oW(d7,f7,p7,m7,g(rW(`consent`),sW(c7.Consent)),u7),c7.NotFound),g7=c7.isAnyOf(l7),_7=e=>i(k(O(e.client_secret),t=>i(V8.ClientSecret({clientId:e.client_id,name:e.client_name??e.client_id,secret:t}),`src/page/dashboard/command.ts#anonymous`)),`src/page/dashboard/command.ts#clientSecretOf`),v7=mm(C()),y7=e=>i(M8(B8.match(e,{PutResource:({identifier:e,name:t,scopes:n})=>i(D8.putResource({identifier:e,name:t,scopes:n}).pipe(v7),`src/page/dashboard/command.ts#PutResource`),DeleteResource:({identifier:e})=>i(D8.deleteResource({identifier:e}).pipe(v7),`src/page/dashboard/command.ts#DeleteResource`),CreateKey:({name:e,permissions:t,maybeExpiry:n})=>i(Qp(()=>i(D8.createApiKey({name:e,permissions:t,expiresAt:wr(k(n,e=>i(sy(new Date(e)),`src/page/dashboard/command.ts#anonymous~3`)))}),`src/page/dashboard/command.ts#anonymous~2`)).pipe(R(({keyId:e,name:t,key:n})=>i(w(V8.ApiKey({keyId:e,name:t,key:n})),`src/page/dashboard/command.ts#anonymous~4`))),`src/page/dashboard/command.ts#CreateKey`),RenameKey:({keyId:e,name:t})=>i(D8.updateApiKey({keyId:e,name:t}).pipe(v7),`src/page/dashboard/command.ts#RenameKey`),SetKeyGrants:({keyId:e,permissions:t})=>i(D8.updateApiKey({keyId:e,permissions:t}).pipe(v7),`src/page/dashboard/command.ts#SetKeyGrants`),SetKeyEnabled:({keyId:e,isEnabled:t})=>i(D8.updateApiKey({keyId:e,enabled:t}).pipe(v7),`src/page/dashboard/command.ts#SetKeyEnabled`),DeleteKey:({keyId:e})=>i(D8.deleteApiKey({keyId:e}).pipe(v7),`src/page/dashboard/command.ts#DeleteKey`),RegisterClient:({name:e,redirectUris:t,resources:n,applicationType:r,authMethod:a})=>i(D8.createClient({client_name:e,redirect_uris:t,resources:n,application_type:r,token_endpoint_auth_method:a}).pipe(R(_7)),`src/page/dashboard/command.ts#RegisterClient`),UpdateClient:({clientId:e,name:t,redirectUris:n,applicationType:r})=>i(D8.updateClient({client_id:e,client_name:t,redirect_uris:n,application_type:r}).pipe(v7),`src/page/dashboard/command.ts#UpdateClient`),SetClientAccess:({clientId:e,resources:t})=>i(D8.setClientAccess({client_id:e,resources:t}).pipe(v7),`src/page/dashboard/command.ts#SetClientAccess`),RevokeClient:({clientId:e,maybeResource:t})=>i(D(t,{onNone:()=>i(D8.revokeClient({client_id:e}),`src/page/dashboard/command.ts#onNone`),onSome:t=>i(D8.revokeClient({client_id:e,resource:t}),`src/page/dashboard/command.ts#onSome`)}).pipe(v7),`src/page/dashboard/command.ts#RevokeClient`),BlockClient:({clientId:e,isBlocked:t})=>i(D8.blockClient({client_id:e,blocked:t}).pipe(v7),`src/page/dashboard/command.ts#BlockClient`),RotateSecret:({clientId:e})=>i(D8.rotateClientSecret({client_id:e}).pipe(R(_7)),`src/page/dashboard/command.ts#RotateSecret`),DeleteClient:({clientId:e})=>i(D8.deleteClient({client_id:e}).pipe(v7),`src/page/dashboard/command.ts#DeleteClient`)})),`src/page/dashboard/command.ts#saveChange`),b7=Wi(20),x7=lH(`SaveChange`,{args:{change:B8},messages:[$.SucceededSaveChange,$.FailedSaveChange],execute:({change:e})=>i(y7(e).pipe(Om({onFailure:e=>i($.FailedSaveChange({reason:e}),`src/page/dashboard/command.ts#onFailure`),onSuccess:t=>i($.SucceededSaveChange({change:e,maybeCredential:t}),`src/page/dashboard/command.ts#onSuccess`)}),wm({duration:b7,orElse:()=>i(N($.FailedSaveChange({reason:`The issuer did not answer in time. Check whether the change was made before trying again.`})),`src/page/dashboard/command.ts#orElse`)})),`src/page/dashboard/command.ts#execute`)}),S7=lH(`SignOut`,{messages:[$.SucceededSignOut,$.FailedSignOut],execute:L8.pipe(um(KU(p7())),Om({onFailure:e=>i($.FailedSignOut({reason:e}),`src/page/dashboard/command.ts#onFailure~2`),onSuccess:()=>i($.SucceededSignOut(),`src/page/dashboard/command.ts#onSuccess~2`)}))}),C7=`dashboard-editor-form`,w7=`dashboard-refusal`,T7=`Saved, but the dashboard could not refresh.`,E7=X5.lift({parentField:`listing`,toParentMessage:e=>i($.GotListingMessage({message:e}),`src/page/dashboard/update.ts#toParentMessage`)}),D7=()=>i(E7.loadIfMissing({listing:X5.init(),credentials:[],issuerCopy:hZ({id:`copy-issuer`}),editor:PX({id:`dashboard-editor`}),maybeForm:C(),confirm:rZ({id:`dashboard-confirm`}),maybePending:C(),activity:$5.Idle(),maybeRefusal:C()}),`src/page/dashboard/update.ts#init`),O7=DX(EZ,{read:e=>i(e.editor,`src/page/dashboard/update.ts#read`),write:(e,t)=>i(Q(e,{editor:()=>i(t,`src/page/dashboard/update.ts#editor`)}),`src/page/dashboard/update.ts#write`),toParentMessage:e=>i($.GotEditorMessage({message:e}),`src/page/dashboard/update.ts#toParentMessage~2`),isCloseHeld:r7}),k7=(e,t)=>i(Q(e,{maybeRefusal:Mr(e=>i(e.place!==t,`src/page/dashboard/update.ts#anonymous`))}),`src/page/dashboard/update.ts#withoutRefusalAt`),A7=e=>lZ(e.confirm)?i(`Confirm`,`src/page/dashboard/update.ts#placeOf`):IX(e.editor)?i(`Editor`,`src/page/dashboard/update.ts#placeOf`):i(`Page`,`src/page/dashboard/update.ts#placeOf`),j7=(e,t)=>i({model:Q(e,{activity:()=>i($5.Saving(),`src/page/dashboard/update.ts#activity`),maybeRefusal:()=>i(C(),`src/page/dashboard/update.ts#maybeRefusal`)}),commands:[...A7(e)===`Editor`?[QX({id:CX(C7)})]:[],x7({change:t})]},`src/page/dashboard/update.ts#saving`),M7={read:e=>i(w(e.confirm),`src/page/dashboard/update.ts#read~2`),write:(e,t)=>i(Q(e,{confirm:()=>i(t,`src/page/dashboard/update.ts#confirm`)}),`src/page/dashboard/update.ts#write~2`),toParentMessage:e=>i($.GotConfirmMessage({message:e}),`src/page/dashboard/update.ts#toParentMessage~3`),foldOutMessage:nZ.match({Confirmed:()=>i((e=>i(D(e.maybePending,{onNone:()=>i({model:e},`src/page/dashboard/update.ts#onNone`),onSome:t=>i($5.guards.Idle(e.activity)?j7(e,t):{model:e},`src/page/dashboard/update.ts#onSome`)}),`src/page/dashboard/update.ts#anonymous~2`)),`src/page/dashboard/update.ts#Confirmed`),Cancelled:()=>i((e=>i({model:e},`src/page/dashboard/update.ts#anonymous~3`)),`src/page/dashboard/update.ts#Cancelled`)})},N7=(e,t)=>i(xq({update:(t,n)=>i(aZ(t,n,{isCloseHeld:r7(e)}),`src/page/dashboard/update.ts#update`),...M7})(e,t),`src/page/dashboard/update.ts#foldConfirm`),P7=Eq({update:oZ,...M7}),F7=Eq({update:sZ,...M7}),I7=xq({update:CZ,read:e=>i(w(e.issuerCopy),`src/page/dashboard/update.ts#read~3`),write:(e,t)=>i(Q(e,{issuerCopy:()=>i(t,`src/page/dashboard/update.ts#issuerCopy`)}),`src/page/dashboard/update.ts#write~3`),toParentMessage:e=>i($.GotIssuerCopyMessage({message:e}),`src/page/dashboard/update.ts#toParentMessage~4`)}),L7=e=>i((t=>i(H8(t.credential)===e,`src/page/dashboard/update.ts#anonymous~4`)),`src/page/dashboard/update.ts#isCredential`),R7=Sq({update:CZ,readAt:(e,t)=>i(k(io(e.credentials,L7(t)),({copy:e})=>i(e,`src/page/dashboard/update.ts#anonymous~5`)),`src/page/dashboard/update.ts#readAt`),writeAt:(e,t,n)=>i(Q(e,{credentials:j(e=>i(L7(t)(e)?Q(e,{copy:()=>i(n,`src/page/dashboard/update.ts#copy`)}):e,`src/page/dashboard/update.ts#anonymous~6`))}),`src/page/dashboard/update.ts#writeAt`),toParentMessage:(e,t)=>i($.GotCredentialCopyMessage({credentialId:e,message:t}),`src/page/dashboard/update.ts#toParentMessage~5`)}),z7=(e,t)=>i7(e)?i({model:e},`src/page/dashboard/update.ts#requested`):i(D(K8(t),{onNone:()=>i(j7(e,t),`src/page/dashboard/update.ts#onNone~2`),onSome:()=>i(P7(k7(Q(e,{maybePending:()=>i(w(t),`src/page/dashboard/update.ts#maybePending`)}),`Confirm`)),`src/page/dashboard/update.ts#onSome~2`)}),`src/page/dashboard/update.ts#requested`),B7=e=>i(`copy-${H8(e)}`,`src/page/dashboard/update.ts#copyIdOf`),V7=(e,t,n)=>i(Ia(wo(e,({credential:e})=>i(!U8(t,e)&&!Fr(n,t=>i(H8(t)===H8(e),`src/page/dashboard/update.ts#anonymous~8`)),`src/page/dashboard/update.ts#anonymous~7`)),jr(k(n,e=>i({credential:e,copy:hZ({id:B7(e)})},`src/page/dashboard/update.ts#anonymous~9`)))),`src/page/dashboard/update.ts#credentialsAfter`),H7=e=>i(IX(e.editor)?O7.close(e):{model:e},`src/page/dashboard/update.ts#closeEditor`),U7=e=>i(lZ(e.confirm)?F7(e):{model:e},`src/page/dashboard/update.ts#closeConfirm`),pte=(e,t,n)=>i(bq(Q(e,{activity:()=>i($5.Idle(),`src/page/dashboard/update.ts#activity~2`),credentials:e=>i(V7(e,t,n),`src/page/dashboard/update.ts#credentials`)}),[H7,U7,...W8(t)?[E7.revalidateOrLoad]:[],e=>i({model:e,commands:[Gq({text:q8(t)}),...Ma(k(n,e=>i(QX({id:B7(e)}),`src/page/dashboard/update.ts#anonymous~11`)))]},`src/page/dashboard/update.ts#anonymous~10`)]),`src/page/dashboard/update.ts#saved`),mte=(e,t)=>{let n=A7(e),r=Q(e,{activity:()=>i($5.Idle(),`src/page/dashboard/update.ts#activity~3`),maybeRefusal:()=>i(w({place:n,title:`Not saved`,reason:t}),`src/page/dashboard/update.ts#maybeRefusal~2`)});return i(n===`Page`?{model:r,commands:[QX({id:w7})]}:{model:r},`src/page/dashboard/update.ts#refused`)},hte=e=>i(D(TA(n7(e)),{onNone:()=>i([],`src/page/dashboard/update.ts#onNone~3`),onSome:({overview:e})=>i(j(e.resources,({identifier:e})=>i(e,`src/page/dashboard/update.ts#anonymous~12`)),`src/page/dashboard/update.ts#onSome~3`)}),`src/page/dashboard/update.ts#resourceIdentifiers`),gte=e=>i(D(e.maybeForm,{onNone:()=>i({model:e},`src/page/dashboard/update.ts#onNone~4`),onSome:t=>i(fa(k5(t,hte(e)),{onFailure:t=>i({model:Q(e,{maybeRefusal:()=>i(w({place:`Editor`,title:`Not saved`,reason:t}),`src/page/dashboard/update.ts#maybeRefusal~3`)})},`src/page/dashboard/update.ts#onFailure`),onSuccess:t=>i(z7(e,t),`src/page/dashboard/update.ts#onSuccess`)}),`src/page/dashboard/update.ts#onSome~4`)}),`src/page/dashboard/update.ts#submitted`),_te=(e,t)=>i(i7(e)?{model:e}:O7.open(k7(Q(e,{maybeForm:()=>i(w(t),`src/page/dashboard/update.ts#maybeForm`)}),`Editor`)),`src/page/dashboard/update.ts#formOpened`),vte=(e,t)=>i($.match(t,{GotListingMessage:({message:t})=>{let n=E7.fold(e,t);return i(!AA(n7(e))&&AA(n7(n.model))?{model:n.model,commands:[...n.commands??[],Gq({text:T7})]}:n,`src/page/dashboard/update.ts#GotListingMessage`)},ClickedRetryListing:()=>i(E7.revalidateOrLoad(e),`src/page/dashboard/update.ts#ClickedRetryListing`),ClickedOpenForm:({form:t})=>i(_te(e,t),`src/page/dashboard/update.ts#ClickedOpenForm`),GotFormMessage:({message:t})=>i({model:Q(e,{maybeForm:k(e=>i(y5(e,t),`src/page/dashboard/update.ts#anonymous~13`))})},`src/page/dashboard/update.ts#GotFormMessage`),SubmittedForm:()=>i(gte(e),`src/page/dashboard/update.ts#SubmittedForm`),ClickedChange:({change:t})=>i(z7(e,t),`src/page/dashboard/update.ts#ClickedChange`),SucceededSaveChange:({change:t,maybeCredential:n})=>i(pte(e,t,n),`src/page/dashboard/update.ts#SucceededSaveChange`),FailedSaveChange:({reason:t})=>i(mte(e,t),`src/page/dashboard/update.ts#FailedSaveChange`),ClickedDismissCredentials:()=>i({model:Q(e,{credentials:()=>i([],`src/page/dashboard/update.ts#credentials~2`)})},`src/page/dashboard/update.ts#ClickedDismissCredentials`),ClickedSignOut:()=>i($5.guards.Idle(e.activity)?{model:Q(e,{activity:()=>i($5.SigningOut(),`src/page/dashboard/update.ts#activity~4`)}),commands:[S7()]}:{model:e},`src/page/dashboard/update.ts#ClickedSignOut`),SucceededSignOut:()=>i({model:e},`src/page/dashboard/update.ts#SucceededSignOut`),FailedSignOut:({reason:t})=>i({model:Q(e,{activity:()=>i($5.Idle(),`src/page/dashboard/update.ts#activity~5`),maybeRefusal:()=>i(w({place:`Page`,title:`Not signed out`,reason:t}),`src/page/dashboard/update.ts#maybeRefusal~4`)}),commands:[QX({id:w7})]},`src/page/dashboard/update.ts#FailedSignOut`),GotEditorMessage:({message:t})=>i(O7.update(e,t),`src/page/dashboard/update.ts#GotEditorMessage`),GotConfirmMessage:({message:t})=>i(N7(e,t),`src/page/dashboard/update.ts#GotConfirmMessage`),GotCredentialCopyMessage:({credentialId:t,message:n})=>i(R7(e,t,n),`src/page/dashboard/update.ts#GotCredentialCopyMessage`),GotIssuerCopyMessage:({message:t})=>i(I7(e,t),`src/page/dashboard/update.ts#GotIssuerCopyMessage`),GotTopBarMessage:()=>i({model:e},`src/page/dashboard/update.ts#GotTopBarMessage`),CompletedAnnounce:()=>i({model:e},`src/page/dashboard/update.ts#CompletedAnnounce`),CompletedFocus:()=>i({model:e},`src/page/dashboard/update.ts#CompletedFocus`)}),`src/page/dashboard/update.ts#update~2`),W7=`clankerauth`,G7=e=>i(w$({brand:[T$({label:W7},e)]},e),`src/page/wall.ts#markView`),K7=(e,t,n)=>i(C$({body:[n.h1([n.Class(`sr-only`)],[e]),t]},n),`src/page/wall.ts#wallView`),q7=(e,t,n)=>i(K7(e,SX({isNarrow:!0,...t,body:[G7(n),...t.body]},n),n),`src/page/wall.ts#wallCardView`),J7=(e,t,n)=>i(K7(e,wX({isNarrow:!0,...t,body:[G7(n),...t.body]},n),n),`src/page/wall.ts#wallFormView`),yte=new Intl.DateTimeFormat(sX,{day:`numeric`,month:`short`,year:`numeric`,hour:`2-digit`,minute:`2-digit`,hourCycle:`h23`}),Y7=e=>i(yte.format(dy(e)),`src/page/dashboard/parts.ts#momentOf`),X7=(e,t)=>i(t.p([t.Class(`note-line`)],[e]),`src/page/dashboard/parts.ts#noteView`),Z7=(e,t)=>i(Na(e,{onEmpty:()=>i([],`src/page/dashboard/parts.ts#onEmpty`),onNonEmpty:e=>i([t.span([t.Class(`push`)],[E$({body:e},t)])],`src/page/dashboard/parts.ts#onNonEmpty`)}),`src/page/dashboard/parts.ts#footView`),Q7=(e,t)=>i(oX({label:e.label,isSmall:!0,isDisabled:e.isHeld,onClick:e.onClick,attributes:[t.AriaLabel(`${e.label} ${e.itemName}`)]},t),`src/page/dashboard/parts.ts#itemButtonView`),$7=(e,t,n)=>i(Na(e,{onEmpty:()=>i([t],`src/page/codes.ts#onEmpty`),onNonEmpty:e=>i(uo(j(e,e=>i(n.code([],[e]),`src/page/codes.ts#anonymous`)),` `),`src/page/codes.ts#onNonEmpty`)}),`src/page/codes.ts#codesView`),bte=`Compatible MCP clients register themselves when they connect; registration alone grants no access. Revoking or blocking stops new authorization and refresh at once; already-issued access tokens stay valid until they expire, at most fifteen minutes.`,xte={managed:`Managed registration · first party, no consent screen`,dcr:`Dynamic registration`,cimd:`Client ID Metadata Document`},e9=({onboarding:e})=>i(e===void 0||e===`managed`,`src/page/dashboard/clients.ts#isManaged`),t9=({client_id:e,client_name:t})=>i(t??e,`src/page/dashboard/clients.ts#nameOf`),Ste=({listing:e,isHeld:t},n)=>i(XZ({title:`Clients`,meta:`${e.overview.clients.length}`,actions:[oX({label:`register client`,glyph:`plus`,isDisabled:t,onClick:$.ClickedOpenForm({form:d5()})},n)]},n),`src/page/dashboard/clients.ts#clientsHeadView`),Cte=({approvedAt:e,refreshedAt:t})=>i(Mo([D(O(e),{onNone:()=>i(`First party, no consent`,`src/page/dashboard/clients.ts#onNone`),onSome:e=>i(`Approved ${Y7(e)}`,`src/page/dashboard/clients.ts#onSome`)}),D(O(t),{onNone:()=>i(`no refresh token`,`src/page/dashboard/clients.ts#onNone~2`),onSome:e=>i(`last token ${Y7(e)}`,`src/page/dashboard/clients.ts#onSome~2`)})],` · `),`src/page/dashboard/clients.ts#historyOf`),wte=(e,t,n)=>{let{resources:r,connections:a}=e.listing.overview,o=e=>i(D(io(r,t=>i(t.identifier===e,`src/page/dashboard/clients.ts#anonymous`)),{onNone:()=>i(e,`src/page/dashboard/clients.ts#onNone~3`),onSome:({name:e})=>i(e,`src/page/dashboard/clients.ts#onSome~3`)}),`src/page/dashboard/clients.ts#resourceName`);return i(g(a,wo(({client_id:e})=>i(e===t.client_id,`src/page/dashboard/clients.ts#anonymous~2`)),Na({onEmpty:()=>i(X7(e9(t)?`Holds no refresh token.`:`No Resource approved yet.`,n),`src/page/dashboard/clients.ts#onEmpty`),onNonEmpty:r=>i(OQ({label:`Connections of ${t9(t)}`,rows:r,rowKey:({resource:e})=>i(e,`src/page/dashboard/clients.ts#rowKey`),columns:[{key:`resource`,header:`Resource`,cell:({resource:e})=>i([o(e),` `,n.code([],[e])],`src/page/dashboard/clients.ts#cell`)},{key:`scopes`,header:`Scopes`,cell:({scopes:e})=>i([Na(e,{onEmpty:()=>i(`No Resource scopes`,`src/page/dashboard/clients.ts#onEmpty~2`),onNonEmpty:Mo(` · `)})],`src/page/dashboard/clients.ts#cell~2`)},{key:`history`,header:`History`,cell:e=>i([Cte(e)],`src/page/dashboard/clients.ts#cell~3`)}],actions:({resource:r})=>i([oX({label:`revoke`,isSmall:!0,isDisabled:e.isHeld,onClick:$.ClickedChange({change:B8.RevokeClient({clientId:t.client_id,maybeResource:w(r)})}),attributes:[n.AriaLabel(`Revoke ${o(r)}`)]},n)],`src/page/dashboard/clients.ts#actions`)},n),`src/page/dashboard/clients.ts#onNonEmpty`)})),`src/page/dashboard/clients.ts#connectionsView`)},Tte=(e,t,n,r)=>{let{client_id:a,blocked:o=!1,token_endpoint_auth_method:s}=t,c=s!==`none`,l=(n,a)=>i(Q7({label:n,itemName:t9(t),onClick:a,isHeld:e.isHeld},r),`src/page/dashboard/clients.ts#smallButton`),u=e=>i($.ClickedChange({change:e}),`src/page/dashboard/clients.ts#change`);return i([...e9(t)?[l(`edit`,$.ClickedOpenForm({form:f5(t)})),l(`access`,$.ClickedOpenForm({form:p5(t,n)}))]:[],...e9(t)&&c?[l(`rotate secret`,u(B8.RotateSecret({clientId:a})))]:[],l(`revoke all`,u(B8.RevokeClient({clientId:a,maybeResource:C()}))),l(o?`unblock`:`block`,u(B8.BlockClient({clientId:a,isBlocked:!o}))),l(e9(t)?`delete`:`forget`,u(B8.DeleteClient({clientId:a,isManaged:e9(t)})))],`src/page/dashboard/clients.ts#clientButtons`)},Ete=(e,t,n)=>{let{resources:r,clientAccess:a}=e.listing.overview,o=xo(a,({client_id:e,resource:n})=>i(e===t.client_id?[n]:[],`src/page/dashboard/clients.ts#anonymous~3`));return i(QZ({id:`client-${t.client_id}`,title:t.client_name??`Unnamed client`,meta:t.token_endpoint_auth_method===`none`?`public · pkce`:`confidential · pkce`,body:[rQ({items:[{label:`client id`,value:[t.client_id],isCode:!0},{label:`redirect uris`,value:$7(t.redirect_uris,`None`,n)},{label:`registration`,value:[xte[t.onboarding??`managed`]]},...t.blocked===!0?[{label:`status`,value:[gX({label:`blocked`,tone:`Blocked`},n)]}]:[],...e9(t)?[{label:`allowed resources`,value:[`${o.length} of ${r.length}`]}]:[]]},n),wte(e,t,n),X7(e9(t)?`Skips consent for its allowed Resources. Removing one revokes its authorization for it.`:`May ask for any Resource; each needs your consent. Revoke a connection, or block the Client to keep it out.`,n)],foot:Z7(Tte(e,t,o,n),n)},n),`src/page/dashboard/clients.ts#clientPanel`)},Dte=(e,t)=>i([X7(bte,t),...Na(e.listing.overview.clients,{onEmpty:()=>i([QZ({id:`clients-empty`,title:`Clients`,meta:`0`,body:[_X({title:`No Clients registered`,headingLevel:3,body:[`Connect your MCP client to a configured server to onboard automatically, or register a managed Client here.`]},t)]},t)],`src/page/dashboard/clients.ts#onEmpty~3`),onNonEmpty:n=>i(j(n,n=>i(Ete(e,n,t),`src/page/dashboard/clients.ts#anonymous~4`)),`src/page/dashboard/clients.ts#onNonEmpty~2`)})],`src/page/dashboard/clients.ts#clientsPanels`),Ote=e=>i(t5.match(e,{Resource:({mode:e})=>i(Q8.match(e,{Add:()=>i({title:`Add resource`,submit:`add resource`},`src/page/dashboard/formView.ts#Add`),Edit:()=>i({title:`Edit resource`,submit:`save resource`},`src/page/dashboard/formView.ts#Edit`)}),`src/page/dashboard/formView.ts#Resource`),Key:({mode:e})=>i($8.match(e,{Create:()=>i({title:`Create API key`,submit:`create key`},`src/page/dashboard/formView.ts#Create`),Rename:()=>i({title:`Rename key`,submit:`save name`},`src/page/dashboard/formView.ts#Rename`),Grants:()=>i({title:`Edit grants`,submit:`save grants`},`src/page/dashboard/formView.ts#Grants`)}),`src/page/dashboard/formView.ts#Key`),Client:({mode:e})=>i(e5.match(e,{Register:()=>i({title:`Register client`,submit:`register client`},`src/page/dashboard/formView.ts#Register`),Edit:()=>i({title:`Edit client`,submit:`save client`},`src/page/dashboard/formView.ts#Edit~2`),Access:()=>i({title:`Allowed resources`,submit:`save access`},`src/page/dashboard/formView.ts#Access`)}),`src/page/dashboard/formView.ts#Client`)}),`src/page/dashboard/formView.ts#labelsOf`),kte={none:`Public client (PKCE only)`,client_secret_basic:`Confidential client · HTTP Basic secret`,client_secret_post:`Confidential client · secret in request body`},Ate=`Optional. Separate scopes with spaces. offline_access is reserved.`,jte=3,n9=(e,t,n)=>i(NZ({id:`form-name`,label:e.label,value:e.value,onInput:e.onInput,isRequired:!0,inputAttributes:t.initialFocus},n),`src/page/dashboard/formView.ts#nameField`),Mte=({mode:e,draft:t},n,r)=>{let a=Q8.guards.Add(e);return i([n9({label:`Name`,value:t.name,onInput:e=>i(n5.UpdatedResourceName({value:e}),`src/page/dashboard/formView.ts#onInput`)},n,r),a?NZ({id:`form-identifier`,label:`HTTP or HTTPS identifier`,type:`url`,value:t.identifier,onInput:e=>i(n5.UpdatedResourceIdentifier({value:e}),`src/page/dashboard/formView.ts#onInput~2`),isRequired:!0,isMono:!0,help:`The identifier is the token audience and cannot be changed later. Use the canonical form a client sends back, such as the application’s origin root with its trailing slash.`,inputAttributes:[r.Placeholder(`https://notes.internal/`)]},r):rQ({items:[{label:`identifier`,value:[t.identifier],isCode:!0}]},r),NZ({id:`form-scopes`,label:`Scopes`,value:t.scopes,onInput:e=>i(n5.UpdatedResourceScopes({value:e}),`src/page/dashboard/formView.ts#onInput~3`),isMono:!0,help:a?Ate:`Added scopes need new consent. Removed scopes are no longer issued, but approvals are kept and work again if the scope is restored.`,inputAttributes:[r.Placeholder(`notes:read notes:write`)]},r)],`src/page/dashboard/formView.ts#resourceFields`)},r9=(e,t,n)=>i(Na(t,{onEmpty:()=>i([X7(`Add a Resource to grant access.`,n)],`src/page/dashboard/formView.ts#onEmpty`),onNonEmpty:t=>i(j(t,({identifier:t,name:r,scopes:a})=>i(PZ({id:`form-grants-${t}`,label:r,body:[n.code([],[t]),iQ({label:`Scopes of ${r}`,rows:j(a,r=>i(dQ({key:r,body:[n.code([],[r])],select:{id:`form-grant-${t}-${r}`,isChecked:Fr(ba(e,t),e=>i(po(e,r),`src/page/dashboard/formView.ts#anonymous~3`)),onToggle:e=>i(n5.ToggledKeyGrant({resource:t,scope:r,isChecked:e}),`src/page/dashboard/formView.ts#onToggle`)}},n),`src/page/dashboard/formView.ts#anonymous~2`))},n)]},n),`src/page/dashboard/formView.ts#anonymous`)),`src/page/dashboard/formView.ts#onNonEmpty`)}),`src/page/dashboard/formView.ts#grantsView`),Nte=({mode:e,draft:t},n,r)=>{let a=n9({label:`Name`,value:t.name,onInput:e=>i(n5.UpdatedKeyName({value:e}),`src/page/dashboard/formView.ts#onInput~4`)},n,r);return i($8.match(e,{Create:()=>i([a,...r9(t.grants,n.resources,r),NZ({id:`form-expiry`,label:`Expiry (optional)`,type:`datetime-local`,value:t.expiry,onInput:e=>i(n5.UpdatedKeyExpiry({value:e}),`src/page/dashboard/formView.ts#onInput~5`),help:`Blank means valid until revoked. The key is shown once and works within about a minute.`},r)],`src/page/dashboard/formView.ts#Create~2`),Rename:()=>i([a],`src/page/dashboard/formView.ts#Rename~2`),Grants:()=>i([...r9(t.grants,n.resources,r),X7(`Saving replaces all grants, including any not currently available, with the selected scopes.`,r)],`src/page/dashboard/formView.ts#Grants~2`)}),`src/page/dashboard/formView.ts#keyFields`)},i9=(e,t,n)=>i(Na(t,{onEmpty:()=>i(X7(`There are no Resources yet; add one to give this Client access.`,n),`src/page/dashboard/formView.ts#onEmpty~2`),onNonEmpty:t=>i(PZ({id:`form-resources`,label:`Allowed resources`,body:[iQ({label:`Allowed resources`,rows:j(t,({identifier:t,name:r})=>i(dQ({key:t,body:[r,` `,n.code([],[t])],select:{id:`form-resource-${t}`,isChecked:po(e,t),onToggle:e=>i(n5.ToggledClientResource({resource:t,isChecked:e}),`src/page/dashboard/formView.ts#onToggle~2`)}},n),`src/page/dashboard/formView.ts#anonymous~4`))},n)]},n),`src/page/dashboard/formView.ts#onNonEmpty~2`)}),`src/page/dashboard/formView.ts#resourceChoicesView`),a9=(e,t)=>i(kQ({id:`form-redirect-uris`,label:`Redirect URIs`,value:e,onInput:e=>i(n5.UpdatedClientRedirectUris({value:e}),`src/page/dashboard/formView.ts#onInput~6`),help:`One per line.`,isRequired:!0,isMono:!0,rows:jte,textareaAttributes:[t.Placeholder(`https://app.internal/callback`),t.Spellcheck(!1)]},t),`src/page/dashboard/formView.ts#redirectUrisField`),Pte=CE(R6),Fte=(e,t)=>i(gQ({id:`form-auth-method`,label:`Client authentication`,value:e,onChange:t=>i(n5.SelectedClientAuthMethod({method:Sr(Pte(t),()=>i(e,`src/page/dashboard/formView.ts#anonymous~5`))}),`src/page/dashboard/formView.ts#onChange`),options:j(R6.literals,e=>i({value:e,label:kte[e]},`src/page/dashboard/formView.ts#anonymous~6`)),help:`S256 PKCE is always required. It cannot be changed after registration.`},t),`src/page/dashboard/formView.ts#authMethodField`),o9=(e,t)=>i(TX({id:`form-native`,label:`Native or desktop client`,note:`Its redirect is a loopback address on the device.`,isChecked:e,onToggle:e=>i(n5.ToggledClientNative({isChecked:e}),`src/page/dashboard/formView.ts#onToggle~3`)},t),`src/page/dashboard/formView.ts#nativeChoice`),Ite=({mode:e,draft:t},n,r)=>{let a=n9({label:`Client name`,value:t.name,onInput:e=>i(n5.UpdatedClientName({value:e}),`src/page/dashboard/formView.ts#onInput~7`)},n,r);return i(e5.match(e,{Register:()=>i([a,a9(t.redirectUris,r),i9(t.resources,n.resources,r),o9(t.isNative,r),Fte(t.authMethod,r),X7(`Clients you register here are first party and skip the consent screen.`,r)],`src/page/dashboard/formView.ts#Register~2`),Edit:()=>i([a,a9(t.redirectUris,r),o9(t.isNative,r),X7(`The authentication method is fixed at registration.`,r)],`src/page/dashboard/formView.ts#Edit~3`),Access:()=>i([i9(t.resources,n.resources,r),X7(`This Client skips consent for the Resources ticked here. Unticking one revokes its authorization for it.`,r)],`src/page/dashboard/formView.ts#Access~2`)}),`src/page/dashboard/formView.ts#clientFields`)},Lte=FP((e,t,n)=>i(SQ({body:t5.match(e,{Resource:e=>i(Mte(e,t,n),`src/page/dashboard/formView.ts#Resource~2`),Key:e=>i(Nte(e,t,n),`src/page/dashboard/formView.ts#Key~2`),Client:e=>i(Ite(e,t,n),`src/page/dashboard/formView.ts#Client~2`)})},n),`src/page/dashboard/formView.ts#anonymous~7`)),Rte=`Direct access for CLIs and automation. Keys carry only the scopes you select, filtered by current Resource policy. Policy changes do not revoke stored grants; restoring policy restores access. Resource servers verify keys offline: a new key works within seconds and a key's expiry applies at once; any other change takes effect within about a minute, and a Resource server that cannot reach this issuer keeps accepting the keys it last saw for up to 24 hours. A key granted on clankerauth administration administers this issuer, and every change to it applies at once.`,zte=(e,t)=>i(XZ({title:`API keys`,meta:`${e.listing.keys.length}`,actions:[oX({label:`create key`,glyph:`plus`,isDisabled:e.isHeld,onClick:$.ClickedOpenForm({form:a5()})},t)]},t),`src/page/dashboard/keys.ts#keysHeadView`),Bte=(e,t)=>i(Na(va(e.permissions),{onEmpty:()=>i([`None`],`src/page/dashboard/keys.ts#onEmpty`),onNonEmpty:e=>i(uo(j(e,([e,n])=>i(t.span([],[t.code([],[e]),` `,Mo(n,` · `)]),`src/page/dashboard/keys.ts#anonymous`)),t.br([])),`src/page/dashboard/keys.ts#onNonEmpty`)}),`src/page/dashboard/keys.ts#grantsView`),Vte=(e,t,n)=>{let{keyId:r,name:a,enabled:o,expiresAt:s,createdAt:c}=t,l=(t,r)=>i(Q7({label:t,itemName:a,onClick:r,isHeld:e.isHeld},n),`src/page/dashboard/keys.ts#smallButton`);return i(QZ({id:`key-${r}`,title:a,meta:o?`enabled`:`disabled`,body:[rQ({items:[{label:`state`,value:[gX(o?{label:`enabled`,tone:`Go`}:{label:`disabled`},n)]},{label:`expires`,value:[D(O(s),{onNone:()=>i(`Valid until revoked`,`src/page/dashboard/keys.ts#onNone`),onSome:Y7})]},{label:`created`,value:[Y7(c)]},{label:`grants`,value:Bte(t,n)}]},n)],foot:Z7([l(`rename`,$.ClickedOpenForm({form:o5(t)})),l(`edit grants`,$.ClickedOpenForm({form:l5(t,e.listing.overview.resources)})),l(o?`disable`:`enable`,$.ClickedChange({change:B8.SetKeyEnabled({keyId:r,isEnabled:!o})})),l(`delete`,$.ClickedChange({change:B8.DeleteKey({keyId:r,name:a})}))],n)},n),`src/page/dashboard/keys.ts#keyPanel`)},Hte=(e,t)=>i([X7(Rte,t),...Na(e.listing.keys,{onEmpty:()=>i([QZ({id:`keys-empty`,title:`API keys`,meta:`0`,body:[_X({title:`No API keys`,headingLevel:3,body:[`Create a key for a CLI or automation that needs direct access.`]},t)]},t)],`src/page/dashboard/keys.ts#onEmpty~2`),onNonEmpty:n=>i(j(n,n=>i(Vte(e,n,t),`src/page/dashboard/keys.ts#anonymous~2`)),`src/page/dashboard/keys.ts#onNonEmpty~2`)})],`src/page/dashboard/keys.ts#keysPanels`),Ute=`Built-in administration resource, fixed. OAuth access tokens and API keys granted on it administer this issuer. clankerauth:read allows listing; clankerauth:write also allows every change.`,Wte=({listing:e,isHeld:t},n)=>i(XZ({title:`Resources`,meta:`${e.overview.resources.length}`,actions:[oX({label:`add resource`,glyph:`plus`,isDisabled:t,onClick:$.ClickedOpenForm({form:r5()})},n)]},n),`src/page/dashboard/resources.ts#resourcesHeadView`),Gte=({listing:e},t)=>{let{clients:n,connections:r}=e.overview;return i(g(n,wo(({client_id:e})=>i(Do(r,n=>i(n.client_id===e&&n.resource===t,`src/page/dashboard/resources.ts#anonymous~2`)),`src/page/dashboard/resources.ts#anonymous`)),Na({onEmpty:()=>i(`None`,`src/page/dashboard/resources.ts#onEmpty`),onNonEmpty:_(j(({client_id:e,client_name:t})=>i(t??e,`src/page/dashboard/resources.ts#anonymous~3`)),Mo(`, `))})),`src/page/dashboard/resources.ts#connectedNames`)},Kte=(e,t,n)=>{let{identifier:r,name:a,scopes:o,builtIn:s}=t;return i(QZ({id:`resource-${r}`,title:a,meta:s?`built in`:`${o.length} scopes`,body:[rQ({items:[{label:`identifier`,value:[r],isCode:!0},{label:`scopes`,value:$7(o,`None`,n)},{label:`connected clients`,value:[Gte(e,r)]}]},n),...s?[X7(Ute,n)]:[]],foot:Z7(s?[]:[Q7({label:`edit`,itemName:a,onClick:$.ClickedOpenForm({form:i5(t)}),isHeld:e.isHeld},n),Q7({label:`delete`,itemName:a,onClick:$.ClickedChange({change:B8.DeleteResource({identifier:r})}),isHeld:e.isHeld},n)],n)},n),`src/page/dashboard/resources.ts#resourcePanel`)},qte=(e,t)=>i([X7(`Protected APIs and MCP servers, and the scopes they define.`,t),...Na(e.listing.overview.resources,{onEmpty:()=>i([QZ({id:`resources-empty`,title:`Resources`,meta:`0`,body:[_X({title:`Add your first Resource`,headingLevel:3,body:[`Define a protected API or MCP server. Compatible MCP clients onboard automatically when you connect.`]},t)]},t)],`src/page/dashboard/resources.ts#onEmpty~2`),onNonEmpty:n=>i(j(n,n=>i(Kte(e,n,t),`src/page/dashboard/resources.ts#anonymous~4`)),`src/page/dashboard/resources.ts#onNonEmpty`)})],`src/page/dashboard/resources.ts#resourcesPanels`),s9=e=>i(TZ({body:[e.h1([e.Class(`sr-only`)],[`Dashboard`]),WZ({isLoading:!0,label:`loading the dashboard`},e)]},e),`src/page/dashboard/view.ts#waitingView`),Jte=(e,t)=>i(q7(`Unable to continue`,{title:`Dashboard`,meta:`not available`,actions:[UZ({label:`sign in`,href:p7()},t),oX({label:`try again`,variant:`Primary`,isDefault:!0,onClick:$.ClickedRetryListing()},t)],body:[$X({tone:`Error`,title:`Unable to continue`,body:[e]},t)]},t),`src/page/dashboard/view.ts#unavailableView`),Yte=(e,t,n,r)=>i(S$({brand:[T$({label:W7,href:u7()},r)],nav:[YZ({label:`Dashboard`,items:[{href:u7(),label:`clients`,count:t.overview.clients.length,isCurrent:c7.guards.Clients(n)},{href:d7(),label:`resources`,count:t.overview.resources.length,isCurrent:c7.guards.Resources(n)},{href:f7(),label:`api keys`,count:t.keys.length,isCurrent:c7.guards.Keys(n)}]},r)],tools:[r.span([r.Class(`meta`)],[t.overview.email]),cX({glyph:`log-out`,label:`Sign out`,onClick:$.ClickedSignOut(),isDisabled:!$5.guards.Idle(e.activity)},r)],toParentMessage:e=>i($.GotTopBarMessage({message:e}),`src/page/dashboard/view.ts#toParentMessage`)},r),`src/page/dashboard/view.ts#topBarView`),Xte=(e,t)=>i([...AA(n7(e))?[mX({title:`Not refreshed`,body:[T7],actions:[oX({label:`retry refresh`,isSmall:!0,onClick:$.ClickedRetryListing()},t)]},t)]:[],...jr(k(o7(e,`Page`),({title:e,reason:n})=>i(mX({tone:`Error`,title:e,body:[n],attributes:[t.Id(w7),t.Tabindex(-1)]},t),`src/page/dashboard/view.ts#anonymous`)))],`src/page/dashboard/view.ts#noticesView`),Zte=e=>i(V8.match(e,{ClientSecret:({name:e})=>i(`${e} client secret`,`src/page/dashboard/view.ts#ClientSecret`),ApiKey:({name:e})=>i(`${e} API key`,`src/page/dashboard/view.ts#ApiKey`)}),`src/page/dashboard/view.ts#credentialLabel`),c9=e=>i(V8.match(e,{ClientSecret:({secret:e})=>i(e,`src/page/dashboard/view.ts#ClientSecret~2`),ApiKey:({key:e})=>i(e,`src/page/dashboard/view.ts#ApiKey~2`)}),`src/page/dashboard/view.ts#secretOf`),Qte=({credential:e,copy:t},n)=>{let r=Zte(e),a=n.submodel({slotId:gZ(t),model:t,view:wZ,viewInputs:{text:c9(e),label:`Copy ${r}`},toParentMessage:t=>i($.GotCredentialCopyMessage({credentialId:H8(e),message:t}),`src/page/dashboard/view.ts#toParentMessage~2`)});return i([...V8.match(e,{ClientSecret:({clientId:e})=>i([rQ({items:[{label:`client id`,value:[e],isCode:!0}]},n)],`src/page/dashboard/view.ts#ClientSecret~3`),ApiKey:()=>i([],`src/page/dashboard/view.ts#ApiKey~3`)}),fQ({value:c9(e),label:r,actions:[a]},n)],`src/page/dashboard/view.ts#credentialView`)},$te=(e,t)=>i(Na(e.credentials,{onEmpty:()=>i([],`src/page/dashboard/view.ts#onEmpty`),onNonEmpty:e=>i([QZ({id:`credentials`,title:`New credentials`,meta:`shown once`,body:[mX({glyph:`key`,title:`Store these now`,body:[`API keys and client secrets are shown only once. Once dismissed, they cannot be shown again.`]},t),...xo(e,e=>i(Qte(e,t),`src/page/dashboard/view.ts#anonymous~2`)),t.div([t.Class(`save-row`)],[t.span([t.Class(`push`)],[oX({label:`I've stored them`,variant:`Primary`,onClick:$.ClickedDismissCredentials()},t)])])]},t)],`src/page/dashboard/view.ts#onNonEmpty`)}),`src/page/dashboard/view.ts#credentialsView`),ene=(e,t,n)=>{let{issuer:r,email:a}=t.overview;return i(QZ({id:`issuer`,title:`Issuer`,meta:`canonical`,body:[rQ({items:[{label:`issuer`,value:[r],isCode:!0,actions:[n.submodel({slotId:gZ(e.issuerCopy),model:e.issuerCopy,view:wZ,viewInputs:{text:r,label:`Copy issuer`},toParentMessage:e=>i($.GotIssuerCopyMessage({message:e}),`src/page/dashboard/view.ts#toParentMessage~3`)})]},{label:`signed in as`,value:[a]}]},n)]},n),`src/page/dashboard/view.ts#issuerView`)},tne=(e,t,n)=>i(G(t).pipe(nA({Clients:()=>i({head:Ste(e,n),panels:Dte(e,n)},`src/page/dashboard/view.ts#Clients`),Resources:()=>i({head:Wte(e,n),panels:qte(e,n)},`src/page/dashboard/view.ts#Resources`),Keys:()=>i({head:zte(e,n),panels:Hte(e,n)},`src/page/dashboard/view.ts#Keys`)})),`src/page/dashboard/view.ts#sectionViews`),l9=e=>i((()=>i(Mq(e),`src/page/dashboard/view.ts#anonymous~3`)),`src/page/dashboard/view.ts#liveRegionView`),nne=(e,t,n,r,a)=>{let{title:o,submit:s}=Ote(t);return i(wX({id:C7,title:o,titleAttributes:r.title,closeAttributes:r.closeButton,isBusy:r7(e),onSubmit:$.SubmittedForm(),actionBarAttributes:r.actionBar,cancel:`cancel`,submit:s,body:[...jr(k(o7(e,`Editor`),({title:e,reason:t})=>i(mX({tone:`Error`,title:e,body:[t]},a),`src/page/dashboard/view.ts#anonymous~4`))),a.submodel({slotId:`dashboard-form`,model:t,view:Lte,viewInputs:{resources:n.listing.overview.resources,initialFocus:r.initialFocus},toParentMessage:e=>i($.GotFormMessage({message:e}),`src/page/dashboard/view.ts#toParentMessage~4`)})]},a),`src/page/dashboard/view.ts#editorCardView`)},rne=(e,t,n)=>i(n.submodel({slotId:FX(e.editor),model:e.editor,view:XX,viewInputs:{toLiveRegionView:IX(e.editor)&&!lZ(e.confirm)?l9(n):void 0,toView:r=>i(D(e.maybeForm,{onNone:()=>i(n.empty,`src/page/dashboard/view.ts#onNone`),onSome:a=>i(nne(e,a,t,r,n),`src/page/dashboard/view.ts#onSome`)}),`src/page/dashboard/view.ts#toView`)},toParentMessage:e=>i($.GotEditorMessage({message:e}),`src/page/dashboard/view.ts#toParentMessage~5`)}),`src/page/dashboard/view.ts#editorView`),ine={title:``,question:``,body:``,label:``,isDanger:!1},ane=(e,t)=>{let n=Sr(s7(e),()=>i(ine,`src/page/dashboard/view.ts#anonymous~5`));return i(t.submodel({slotId:cZ(e.confirm),model:e.confirm,view:dZ,viewInputs:{title:n.title,question:n.question,body:[n.body],label:n.label,isDanger:n.isDanger,isBusy:r7(e),toDetailView:D(o7(e,`Confirm`),{onNone:()=>i(void 0,`src/page/dashboard/view.ts#onNone~2`),onSome:({title:e,reason:n})=>i((()=>i([mX({tone:`Error`,title:e,body:[n]},t)],`src/page/dashboard/view.ts#anonymous~6`)),`src/page/dashboard/view.ts#onSome~2`)}),toLiveRegionView:lZ(e.confirm)?l9(t):void 0},toParentMessage:e=>i($.GotConfirmMessage({message:e}),`src/page/dashboard/view.ts#toParentMessage~6`)}),`src/page/dashboard/view.ts#confirmView`)},u9=(e,t,n,r)=>{let a={listing:t,isHeld:i7(e)},{head:o,panels:s}=tne(a,n,r);return i(r.div([],[Yte(e,t,n,r),TZ({body:[o,...Xte(e,r),...$te(e,r),...s,ene(e,t,r)]},r),rne(e,a,r),ane(e,r)]),`src/page/dashboard/view.ts#consoleView`)},one=FP((e,{section:t},n)=>i(cte(n7(e),{onIdle:()=>i(s9(n),`src/page/dashboard/view.ts#onIdle`),onLoading:()=>i(s9(n),`src/page/dashboard/view.ts#onLoading`),onFailure:e=>i(Jte(e,n),`src/page/dashboard/view.ts#onFailure`),onRefreshing:r=>i(u9(e,r,t,n),`src/page/dashboard/view.ts#onRefreshing`),onStale:({data:r})=>i(u9(e,r,t,n),`src/page/dashboard/view.ts#onStale`),onSuccess:r=>i(u9(e,r,t,n),`src/page/dashboard/view.ts#onSuccess`)}),`src/page/dashboard/view.ts#anonymous~7`)),d9=U({clientId:V,scopes:W(V),resources:W(V),maybeRedirect:UD(V),maybeClaims:UD(V)}),sne=YE([`Undecided`,`Allowing`,`Denying`]),f9=gA({Stopped:{reason:V},Loading:{request:d9},Asking:{request:d9,maybeName:UD(V),granted:W(V),decision:sne,maybeRefusal:UD(V),isClaimsOpen:H}}),p9=hA({SucceededFetchClientName:{maybeName:UD(V)},FailedFetchClientName:{reason:V},ToggledScope:{scope:V,isChecked:H},ToggledClaims:{isOpen:H},ClickedAllow:{},ClickedDeny:{},SucceededDecideConsent:{},FailedDecideConsent:{reason:V}}),cne=lH(`FetchClientName`,{args:{clientId:V},messages:[p9.SucceededFetchClientName,p9.FailedFetchClientName],execute:({clientId:e})=>i(R8(e).pipe(Om({onFailure:e=>i(p9.FailedFetchClientName({reason:e}),`src/page/consent.ts#onFailure`),onSuccess:e=>i(p9.SucceededFetchClientName({maybeName:e}),`src/page/consent.ts#onSuccess`)})),`src/page/consent.ts#execute`)}),lne=lH(`DecideConsent`,{args:{accept:H,maybeScope:UD(V)},messages:[p9.SucceededDecideConsent,p9.FailedDecideConsent],execute:({accept:e,maybeScope:t})=>i(z8(e,t).pipe(Om({onFailure:e=>i(p9.FailedDecideConsent({reason:e}),`src/page/consent.ts#onFailure~2`),onSuccess:()=>i(p9.SucceededDecideConsent(),`src/page/consent.ts#onSuccess~2`)})),`src/page/consent.ts#execute~2`)}),une=`Start authorization from your application; this consent link is incomplete.`,dne=e=>{let t=new URLSearchParams(e);return i(g(O(t.get(`client_id`)),Mr(Np),Mr(()=>i(t.has(`sig`),`src/page/consent.ts#anonymous`)),k(e=>i({clientId:e,scopes:g(t.get(`scope`)??``,Pp(` `),wo(Np)),resources:t.getAll(`resource`),maybeRedirect:O(t.get(`redirect_uri`)),maybeClaims:O(t.get(`claims`))},`src/page/consent.ts#anonymous~2`))),`src/page/consent.ts#requestOf`)},fne=e=>i(D(dne(e),{onNone:()=>i({model:f9.Stopped({reason:une})},`src/page/consent.ts#onNone`),onSome:e=>i({model:f9.Loading({request:e}),commands:[cne({clientId:e.clientId})]},`src/page/consent.ts#onSome`)}),`src/page/consent.ts#init`),pne=`Tick at least one permission, or deny the request.`,m9=(e,t)=>i(f9.matchOrElse(e,{Asking:t},()=>i({model:e},`src/page/consent.ts#anonymous~3`)),`src/page/consent.ts#whileAsking`),h9=(e,t,n)=>i({model:Q(e,{decision:()=>i(t,`src/page/consent.ts#decision`),maybeRefusal:()=>i(C(),`src/page/consent.ts#maybeRefusal`)}),commands:[lne({accept:t===`Allowing`,maybeScope:n})]},`src/page/consent.ts#decided`),mne=e=>i(Na(e.granted,{onEmpty:()=>i(Na(e.request.scopes,{onEmpty:()=>i(h9(e,`Allowing`,C()),`src/page/consent.ts#onEmpty~2`),onNonEmpty:()=>i({model:Q(e,{maybeRefusal:()=>i(w(pne),`src/page/consent.ts#maybeRefusal~2`)})},`src/page/consent.ts#onNonEmpty`)}),`src/page/consent.ts#onEmpty`),onNonEmpty:t=>i(h9(e,`Allowing`,w(Mo(t,` `))),`src/page/consent.ts#onNonEmpty~2`)}),`src/page/consent.ts#allowed`),g9=(e,t)=>i(e.decision===`Undecided`?t(e):{model:e},`src/page/consent.ts#whenUndecided`),hne=(e,t)=>i(p9.match(t,{SucceededFetchClientName:({maybeName:t})=>i(f9.matchOrElse(e,{Loading:({request:e})=>i({model:f9.Asking({request:e,maybeName:t,granted:e.scopes,decision:`Undecided`,maybeRefusal:C(),isClaimsOpen:!1})},`src/page/consent.ts#Loading`)},()=>i({model:e},`src/page/consent.ts#anonymous~4`)),`src/page/consent.ts#SucceededFetchClientName`),FailedFetchClientName:({reason:e})=>i({model:f9.Stopped({reason:e})},`src/page/consent.ts#FailedFetchClientName`),ToggledScope:({scope:t,isChecked:n})=>i(m9(e,e=>i({model:Q(e,{granted:r=>i(wo(e.request.scopes,e=>i(e===t?n:po(r,e),`src/page/consent.ts#anonymous~6`)),`src/page/consent.ts#granted`)})},`src/page/consent.ts#anonymous~5`)),`src/page/consent.ts#ToggledScope`),ToggledClaims:({isOpen:t})=>i(m9(e,e=>i({model:Q(e,{isClaimsOpen:()=>i(t,`src/page/consent.ts#isClaimsOpen`)})},`src/page/consent.ts#anonymous~7`)),`src/page/consent.ts#ToggledClaims`),ClickedAllow:()=>i(m9(e,e=>i(g9(e,mne),`src/page/consent.ts#anonymous~8`)),`src/page/consent.ts#ClickedAllow`),ClickedDeny:()=>i(m9(e,e=>i(g9(e,e=>i(h9(e,`Denying`,C()),`src/page/consent.ts#anonymous~10`)),`src/page/consent.ts#anonymous~9`)),`src/page/consent.ts#ClickedDeny`),SucceededDecideConsent:()=>i({model:e},`src/page/consent.ts#SucceededDecideConsent`),FailedDecideConsent:({reason:t})=>i(m9(e,e=>i({model:Q(e,{decision:()=>i(`Undecided`,`src/page/consent.ts#decision~2`),maybeRefusal:()=>i(w(t),`src/page/consent.ts#maybeRefusal~3`)})},`src/page/consent.ts#anonymous~11`)),`src/page/consent.ts#FailedDecideConsent`)}),`src/page/consent.ts#update`),_9=`Allow this connection?`,gne=e=>i(g(e,Pr(e=>i(URL.canParse(e),`src/page/consent.ts#anonymous~12`)),k(e=>i(new URL(e),`src/page/consent.ts#anonymous~13`)),Mr(({protocol:e})=>i(e===`https:`,`src/page/consent.ts#anonymous~14`)),k(({hostname:e})=>i(e,`src/page/consent.ts#anonymous~15`))),`src/page/consent.ts#metadataHostOf`),_ne=(e,t)=>i(q7(_9,{title:`Allow access`,meta:`not available`,body:[$X({tone:`Error`,title:`Unable to continue`,body:[e]},t)]},t),`src/page/consent.ts#stoppedView`),vne=e=>i(q7(_9,{title:`Allow access`,body:[WZ({isLoading:!0,label:`reading the request`},e)]},e),`src/page/consent.ts#loadingView`),yne=(e,t)=>i(Na(e.request.scopes,{onEmpty:()=>i(t.p([t.Class(`note-line`)],[`No permissions requested beyond signing in.`]),`src/page/consent.ts#onEmpty~3`),onNonEmpty:n=>i(iQ({label:`Requested access`,rows:j(n,n=>i(dQ({key:n,body:[t.code([],[n])],select:{id:`consent-scope-${n}`,isChecked:po(e.granted,n),onToggle:e=>i(p9.ToggledScope({scope:n,isChecked:e}),`src/page/consent.ts#onToggle`)}},t),`src/page/consent.ts#anonymous~16`))},t),`src/page/consent.ts#onNonEmpty~3`)}),`src/page/consent.ts#scopesView`),bne=(e,t)=>i([oX({label:`deny`,onClick:p9.ClickedDeny(),isBusy:e.decision===`Denying`,isDisabled:e.decision===`Allowing`},t),oX({label:`allow access`,variant:`Primary`,isDefault:!0,onClick:p9.ClickedAllow(),isBusy:e.decision===`Allowing`,isDisabled:e.decision===`Denying`},t)],`src/page/consent.ts#decisionActionsView`),xne=({clientId:e,maybeRedirect:t,resources:n},r,a)=>i([HZ({label:r,isLarge:!0,meta:[a.code([],[e])]},a),a.p([],[a.strong([],[r]),` wants to act on your behalf.`]),...jr(k(gne(e),e=>i(a.p([],[`Client metadata host: `,a.strong([],[e])]),`src/page/consent.ts#anonymous~17`))),rQ({items:[{label:`client id`,value:[e],isCode:!0},{label:`callback`,value:D(t,{onNone:()=>i([`Not supplied in this request`],`src/page/consent.ts#onNone~2`),onSome:e=>i([a.code([],[e])],`src/page/consent.ts#onSome~2`)})},{label:`only for`,value:$7(n,`None in this request`,a)}]},a),a.p([a.Class(`note-line`)],[`The client supplies its display name. Review the identifier and callback before approving.`])],`src/page/consent.ts#requestDetailsView`),Sne=(e,t)=>i(jr(k(e.request.maybeClaims,n=>i(DZ({id:`consent-claims`,label:`additional identity claims`,isOpen:e.isClaimsOpen,onToggle:e=>i(p9.ToggledClaims({isOpen:e}),`src/page/consent.ts#onToggle~2`),body:[EX({label:`Requested claims`,body:[n]},t)]},t),`src/page/consent.ts#anonymous~18`))),`src/page/consent.ts#claimsView`),Cne=(e,t)=>i(jr(k(e.maybeRefusal,e=>i(mX({tone:`Error`,title:`Not answered`,body:[e]},t),`src/page/consent.ts#anonymous~19`))),`src/page/consent.ts#refusalView`),wne=(e,t)=>i(q7(_9,{title:`Allow access`,meta:`permission request`,isNarrow:!1,actions:bne(e,t),body:[...xne(e.request,Sr(e.maybeName,()=>i(e.request.clientId,`src/page/consent.ts#anonymous~20`)),t),yne(e,t),t.p([t.Class(`note-line`)],[`Untick anything this Client should not get. It receives only what stays ticked. Access tokens expire after fifteen minutes; offline access lets the Client renew them until you revoke its authorization.`]),...Sne(e,t),...Cne(e,t)]},t),`src/page/consent.ts#askingView`),Tne=FP((e,t)=>i(f9.match(e,{Stopped:({reason:e})=>i(_ne(e,t),`src/page/consent.ts#Stopped`),Loading:()=>i(vne(t),`src/page/consent.ts#Loading~2`),Asking:e=>i(wne(e,t),`src/page/consent.ts#Asking`)}),`src/page/consent.ts#anonymous~21`)),v9=gA({Missing:{field:YE([`Email`,`Password`])},Refused:{reason:V}}),y9=gA({ContinueAuthorization:{},RedirectTo:{destination:V}}),Ene=U({email:V,password:V,isPasswordShown:H,isSigningIn:H,maybeProblem:UD(v9),continuation:y9}),b9=hA({UpdatedEmail:{value:V},UpdatedPassword:{value:V},ToggledPasswordShown:{},SubmittedSignIn:{},SucceededSignIn:{},FailedSignIn:{reason:V},CompletedFocus:{},CompletedContinueAfterSignIn:{}}),x9=(e,t)=>{let n=new URLSearchParams(e);return i({email:``,password:``,isPasswordShown:!1,isSigningIn:!1,maybeProblem:C(),continuation:n.has(`sig`)?y9.ContinueAuthorization():y9.RedirectTo({destination:n.get(`rd`)??t})},`src/page/login.ts#init`)},Dne=lH(`SignIn`,{args:{email:V,password:V},messages:[b9.SucceededSignIn,b9.FailedSignIn],execute:({email:e,password:t})=>i(I8(e,t).pipe(Om({onFailure:e=>i(b9.FailedSignIn({reason:e}),`src/page/login.ts#onFailure`),onSuccess:()=>i(b9.SucceededSignIn(),`src/page/login.ts#onSuccess`)})),`src/page/login.ts#execute`)}),One=lH(`ContinueAfterSignIn`,{args:{destination:V},messages:[b9.CompletedContinueAfterSignIn],execute:({destination:e})=>i(Qp(()=>i(KU(URL.canParse(e,location.origin)&&new URL(e,location.origin).origin===location.origin?e:u7()),`src/page/login.ts#anonymous`)).pipe(mm(b9.CompletedContinueAfterSignIn())),`src/page/login.ts#execute~2`)}),S9=e=>i(y9.match(e.continuation,{ContinueAuthorization:()=>i(C(),`src/page/login.ts#ContinueAuthorization`),RedirectTo:({destination:e})=>i(w(One({destination:e})),`src/page/login.ts#RedirectTo`)}),`src/page/login.ts#continuationOf`),C9=`login`,w9={Email:`login-email`,Password:`login-password`},kne=e=>e.email.trim()===``?i(w(`Email`),`src/page/login.ts#missingFieldOf`):e.password===``?i(w(`Password`),`src/page/login.ts#missingFieldOf`):i(C(),`src/page/login.ts#missingFieldOf`),Ane=e=>i(D(kne(e),{onNone:()=>i({model:Q(e,{isSigningIn:()=>i(!0,`src/page/login.ts#isSigningIn`),isPasswordShown:()=>i(!1,`src/page/login.ts#isPasswordShown`),maybeProblem:()=>i(C(),`src/page/login.ts#maybeProblem`)}),commands:[QX({id:CX(C9)}),Dne({email:e.email.trim(),password:e.password})]},`src/page/login.ts#onNone`),onSome:t=>i({model:Q(e,{maybeProblem:()=>i(w(v9.Missing({field:t})),`src/page/login.ts#maybeProblem~2`)}),commands:[QX({id:w9[t]})]},`src/page/login.ts#onSome`)}),`src/page/login.ts#submitted`),jne=(e,t)=>i(b9.match(t,{UpdatedEmail:({value:t})=>i({model:Q(e,{email:()=>i(t,`src/page/login.ts#email`)})},`src/page/login.ts#UpdatedEmail`),UpdatedPassword:({value:t})=>i({model:Q(e,{password:()=>i(t,`src/page/login.ts#password`)})},`src/page/login.ts#UpdatedPassword`),ToggledPasswordShown:()=>i({model:Q(e,{isPasswordShown:Wk})},`src/page/login.ts#ToggledPasswordShown`),SubmittedSignIn:()=>i(e.isSigningIn?{model:e}:Ane(e),`src/page/login.ts#SubmittedSignIn`),SucceededSignIn:()=>i(D(S9(e),{onNone:()=>i({model:e},`src/page/login.ts#onNone~2`),onSome:t=>i({model:e,commands:[t]},`src/page/login.ts#onSome~2`)}),`src/page/login.ts#SucceededSignIn`),FailedSignIn:({reason:t})=>i({model:Q(e,{isSigningIn:()=>i(!1,`src/page/login.ts#isSigningIn~2`),maybeProblem:()=>i(w(v9.Refused({reason:t})),`src/page/login.ts#maybeProblem~3`)})},`src/page/login.ts#FailedSignIn`),CompletedFocus:()=>i({model:e},`src/page/login.ts#CompletedFocus`),CompletedContinueAfterSignIn:()=>i({model:e},`src/page/login.ts#CompletedContinueAfterSignIn`)}),`src/page/login.ts#update`),Mne={Email:`Enter your email address.`,Password:`Enter your password.`},Nne=(e,t)=>i(D(e.maybeProblem,{onNone:()=>i([],`src/page/login.ts#onNone~3`),onSome:e=>i(v9.matchOrElse(e,{Refused:({reason:e})=>i([mX({tone:`Error`,title:`Not signed in`,body:[e]},t)],`src/page/login.ts#Refused`)},()=>i([],`src/page/login.ts#anonymous~2`)),`src/page/login.ts#onSome~3`)}),`src/page/login.ts#refusalView`),T9=(e,t)=>i(Fr(e.maybeProblem,e=>i(v9.matchOrElse(e,{Missing:e=>i(e.field===t,`src/page/login.ts#Missing`)},()=>i(!1,`src/page/login.ts#anonymous~4`)),`src/page/login.ts#anonymous~3`))?Mne[t]:void 0,`src/page/login.ts#missingSentenceOf`),Pne=FP((e,t)=>i(J7(`Sign in to clankerauth`,{id:C9,title:`Sign in`,meta:`owner`,submit:`sign in`,isBusy:e.isSigningIn,onSubmit:b9.SubmittedSignIn(),body:[t.p([t.Class(`note-line`)],[`Use your local account to continue. Password sign-in only: there is no external identity provider.`]),...Nne(e,t),NZ({id:w9.Email,label:`Email`,type:`email`,value:e.email,onInput:e=>i(b9.UpdatedEmail({value:e}),`src/page/login.ts#onInput`),isBoxed:!0,isRequired:!0,error:T9(e,`Email`),inputAttributes:[t.Autocomplete(`username`),t.Placeholder(`owner@example.internal`)]},t),tQ({id:w9.Password,label:`Password`,value:e.password,onInput:e=>i(b9.UpdatedPassword({value:e}),`src/page/login.ts#onInput~2`),isShown:e.isPasswordShown,onToggleShown:b9.ToggledPasswordShown(),isRequired:!0,error:T9(e,`Password`),autocomplete:`current-password`},t)]},t),`src/page/login.ts#anonymous~5`)),E9=YE([`Email`,`Password`,`Confirmation`]),D9=gA({Invalid:{field:E9,sentence:V},Refused:{reason:V}}),Fne=U({email:V,password:V,confirmation:V,isPasswordShown:H,isConfirmationShown:H,isCreating:H,maybeProblem:UD(D9)}),Ine=YE([`Created`,`AlreadyOwned`]),O9=hA({UpdatedEmail:{value:V},UpdatedPassword:{value:V},UpdatedConfirmation:{value:V},ToggledPasswordShown:{},ToggledConfirmationShown:{},SubmittedSetup:{},SucceededSetupOwner:{outcome:Ine},RejectedSetupInput:{field:E9,sentence:V},FailedSetupOwner:{reason:V},CompletedFocus:{}}),k9=hA({CreatedOwner:{},FoundOwner:{}}),Lne=()=>i({email:``,password:``,confirmation:``,isPasswordShown:!1,isConfirmationShown:!1,isCreating:!1,maybeProblem:C()},`src/page/setup.ts#init`),Rne=new Map([[`email`,`Email`],[`password`,`Password`]]),zne=e=>i(io(e.issues,({path:e,message:t})=>i(k(Or(qa(e),e=>i(O(Rne.get(e)),`src/page/setup.ts#anonymous~2`)),e=>i(O9.RejectedSetupInput({field:e,sentence:t}),`src/page/setup.ts#anonymous~3`)),`src/page/setup.ts#anonymous`)),`src/page/setup.ts#rejectedFieldOf`),Bne=lH(`SetupOwner`,{args:{email:V,password:V},messages:[O9.SucceededSetupOwner,O9.RejectedSetupInput,O9.FailedSetupOwner],execute:({email:e,password:t})=>i(D8.setupOwner({email:e,password:t}).pipe(mm(O9.SucceededSetupOwner({outcome:`Created`})),_m(`OwnerExists`,()=>i(N(O9.SucceededSetupOwner({outcome:`AlreadyOwned`})),`src/page/setup.ts#anonymous~4`)),_m(`InvalidInput`,e=>i(D(zne(e),{onNone:()=>i(I(e),`src/page/setup.ts#onNone`),onSome:N}),`src/page/setup.ts#anonymous~5`)),M8,Om({onFailure:e=>i(O9.FailedSetupOwner({reason:e}),`src/page/setup.ts#onFailure`),onSuccess:e=>i(e,`src/page/setup.ts#onSuccess`)})),`src/page/setup.ts#execute`)}),A9=`setup`,j9={Email:`setup-email`,Password:`setup-password`,Confirmation:`setup-confirmation`},M9=(e,t,n)=>i({model:Q(e,{isCreating:()=>i(!1,`src/page/setup.ts#isCreating`),maybeProblem:()=>i(w(D9.Invalid({field:t,sentence:n})),`src/page/setup.ts#maybeProblem`)}),commands:[QX({id:j9[t]})]},`src/page/setup.ts#invalid`),Vne=e=>i(e.password===e.confirmation?{model:Q(e,{isCreating:()=>i(!0,`src/page/setup.ts#isCreating~2`),isPasswordShown:()=>i(!1,`src/page/setup.ts#isPasswordShown`),isConfirmationShown:()=>i(!1,`src/page/setup.ts#isConfirmationShown`),maybeProblem:()=>i(C(),`src/page/setup.ts#maybeProblem~2`)}),commands:[QX({id:CX(A9)}),Bne({email:e.email.trim(),password:e.password})]}:M9(e,`Confirmation`,`Passwords do not match.`),`src/page/setup.ts#submitted`),Hne=(e,t)=>i(O9.match(t,{UpdatedEmail:({value:t})=>i({model:Q(e,{email:()=>i(t,`src/page/setup.ts#email`)})},`src/page/setup.ts#UpdatedEmail`),UpdatedPassword:({value:t})=>i({model:Q(e,{password:()=>i(t,`src/page/setup.ts#password`)})},`src/page/setup.ts#UpdatedPassword`),UpdatedConfirmation:({value:t})=>i({model:Q(e,{confirmation:()=>i(t,`src/page/setup.ts#confirmation`)})},`src/page/setup.ts#UpdatedConfirmation`),ToggledPasswordShown:()=>i({model:Q(e,{isPasswordShown:Wk})},`src/page/setup.ts#ToggledPasswordShown`),ToggledConfirmationShown:()=>i({model:Q(e,{isConfirmationShown:Wk})},`src/page/setup.ts#ToggledConfirmationShown`),SubmittedSetup:()=>i(e.isCreating?{model:e}:Vne(e),`src/page/setup.ts#SubmittedSetup`),SucceededSetupOwner:({outcome:t})=>i({model:e,outMessage:G(t).pipe($k(),K(`Created`,()=>i(k9.CreatedOwner(),`src/page/setup.ts#anonymous~6`)),K(`AlreadyOwned`,()=>i(k9.FoundOwner(),`src/page/setup.ts#anonymous~7`)),aA)},`src/page/setup.ts#SucceededSetupOwner`),RejectedSetupInput:({field:t,sentence:n})=>i(M9(e,t,n),`src/page/setup.ts#RejectedSetupInput`),FailedSetupOwner:({reason:t})=>i({model:Q(e,{isCreating:()=>i(!1,`src/page/setup.ts#isCreating~3`),maybeProblem:()=>i(w(D9.Refused({reason:t})),`src/page/setup.ts#maybeProblem~3`)})},`src/page/setup.ts#FailedSetupOwner`),CompletedFocus:()=>i({model:e},`src/page/setup.ts#CompletedFocus`)}),`src/page/setup.ts#update`),Une=(e,t)=>i(D(e.maybeProblem,{onNone:()=>i([],`src/page/setup.ts#onNone~2`),onSome:e=>i(D9.matchOrElse(e,{Refused:({reason:e})=>i([mX({tone:`Error`,title:`Not created`,body:[e]},t)],`src/page/setup.ts#Refused`)},()=>i([],`src/page/setup.ts#anonymous~8`)),`src/page/setup.ts#onSome`)}),`src/page/setup.ts#refusalView`),N9=(e,t)=>i(Tr(Or(e.maybeProblem,e=>i(D9.matchOrElse(e,{Invalid:e=>i(e.field===t?w(e.sentence):C(),`src/page/setup.ts#Invalid`)},()=>i(C(),`src/page/setup.ts#anonymous~10`)),`src/page/setup.ts#anonymous~9`))),`src/page/setup.ts#invalidSentenceOf`),Wne=FP((e,t)=>i(J7(`Set up clankerauth`,{id:A9,title:`Setup`,meta:`first run`,submit:`create account`,isBusy:e.isCreating,onSubmit:O9.SubmittedSetup(),body:[t.p([t.Class(`note-line`)],[`Create the owner account for your private applications. It manages Clients and Resources and approves access, and it stays on your infrastructure.`]),...Une(e,t),NZ({id:j9.Email,label:`Email`,type:`email`,value:e.email,onInput:e=>i(O9.UpdatedEmail({value:e}),`src/page/setup.ts#onInput`),isBoxed:!0,isRequired:!0,error:N9(e,`Email`),inputAttributes:[t.Autocomplete(`username`),t.Placeholder(`owner@example.internal`)]},t),tQ({id:j9.Password,label:`Password`,value:e.password,onInput:e=>i(O9.UpdatedPassword({value:e}),`src/page/setup.ts#onInput~2`),isShown:e.isPasswordShown,onToggleShown:O9.ToggledPasswordShown(),isRequired:!0,error:N9(e,`Password`),help:`${I6}. Save your password somewhere safe.`,autocomplete:`new-password`},t),tQ({id:j9.Confirmation,label:`Confirm password`,value:e.confirmation,onInput:e=>i(O9.UpdatedConfirmation({value:e}),`src/page/setup.ts#onInput~3`),isShown:e.isConfirmationShown,onToggleShown:O9.ToggledConfirmationShown(),toggleLabel:`Show confirmation`,isRequired:!0,error:N9(e,`Confirmation`),autocomplete:`new-password`},t)]},t),`src/page/setup.ts#anonymous~11`)),P9=gA({SetupRequired:{},SignedIn:{},SignedOut:{}}),F9=gA({Starting:{},Failed:{reason:V},NotFound:{},Setup:{setup:Fne},Login:{login:Ene},Consent:{consent:f9},Dashboard:{dashboard:t7}}),Gne=U({url:IU,page:F9,tips:FQ}),I9=e=>i(h7(e.url),`src/model.ts#routeOf`),L9=hA({SucceededCheckAccess:{access:P9},FailedCheckAccess:{reason:V},ClickedRetryAccess:{},ClickedLink:{request:UU},ChangedUrl:{url:IU},CompletedNavigateInternal:{},CompletedReplaceUrl:{},CompletedLoadUrl:{},CompletedReloadPage:{},CompletedScrollToFragment:{},GotSetupMessage:{message:O9},GotLoginMessage:{message:b9},GotConsentMessage:{message:p9},GotDashboardMessage:{message:$},GotTipsMessage:{message:IQ}}),R9=lH(`CheckAccess`,{messages:[L9.SucceededCheckAccess,L9.FailedCheckAccess],execute:D8.setupStatus().pipe(M8,L(({required:e})=>i(e?N(P9.SetupRequired()):R(F8,e=>i(e?P9.SignedIn():P9.SignedOut(),`src/main.ts#anonymous~2`)),`src/main.ts#anonymous`)),Om({onFailure:e=>i(L9.FailedCheckAccess({reason:e}),`src/main.ts#onFailure`),onSuccess:e=>i(L9.SucceededCheckAccess({access:e}),`src/main.ts#onSuccess`)}))}),Kne=lH(`NavigateInternal`,{args:{url:V},messages:[L9.CompletedNavigateInternal],execute:({url:e})=>i(WU(e).pipe(mm(L9.CompletedNavigateInternal())),`src/main.ts#execute`)}),z9=lH(`ReplaceUrl`,{args:{url:V},messages:[L9.CompletedReplaceUrl],execute:({url:e})=>i(GU(e).pipe(mm(L9.CompletedReplaceUrl())),`src/main.ts#execute~2`)}),B9=lH(`LoadUrl`,{args:{href:V},messages:[L9.CompletedLoadUrl],execute:({href:e})=>i(KU(e).pipe(mm(L9.CompletedLoadUrl())),`src/main.ts#execute~3`)}),qne=lH(`ReloadPage`,{messages:[L9.CompletedReloadPage],execute:P(()=>i(location.reload(),`src/main.ts#anonymous~3`)).pipe(mm(L9.CompletedReloadPage()))}),Jne=e=>i(Sr(e.search,()=>i(``,`src/main.ts#anonymous~4`)),`src/main.ts#searchOf`),Yne=e=>i(L9.GotSetupMessage({message:e}),`src/main.ts#toSetupMessage`),V9=e=>i(L9.GotLoginMessage({message:e}),`src/main.ts#toLoginMessage`),H9=e=>i(L9.GotConsentMessage({message:e}),`src/main.ts#toConsentMessage`),U9=e=>i(L9.GotDashboardMessage({message:e}),`src/main.ts#toDashboardMessage`),W9=(e,t)=>i(Q(e,{page:()=>i(t,`src/main.ts#page`)}),`src/main.ts#withPage`),G9=e=>i({model:W9(e,F9.Setup({setup:Lne()}))},`src/main.ts#setupPage`),K9=(e,t,n)=>i({model:W9(e,F9.Login({login:x9(t,n)}))},`src/main.ts#loginPage`),Xne=(e,t)=>{let n=x9(t,u7());return i(D(S9(n),{onNone:()=>i({model:W9(e,F9.Login({login:n}))},`src/main.ts#onNone`),onSome:t=>i({model:e,commands:dH([t],V9)},`src/main.ts#onSome`)}),`src/main.ts#signedInLoginPage`)},q9=(e,t)=>i(Oq(fne(t),{toParentModel:t=>i(W9(e,F9.Consent({consent:t})),`src/main.ts#toParentModel`),toParentMessage:H9}),`src/main.ts#consentPage`),J9=e=>i(Oq(D7(),{toParentModel:t=>i(W9(e,F9.Dashboard({dashboard:t})),`src/main.ts#toParentModel~2`),toParentMessage:U9}),`src/main.ts#dashboardPage`),Y9=e=>i({model:W9(e,F9.NotFound())},`src/main.ts#notFoundPage`),X9=(e,t)=>i({model:e.model,commands:[...e.commands??[],z9({url:t})]},`src/main.ts#redirected`),Zne=(e,t)=>{let n=I9(e),r=Jne(e.url);return i(P9.match(t,{SetupRequired:()=>i(c7.guards.Setup(n)?G9(e):X9(G9(e),m7()),`src/main.ts#SetupRequired`),SignedIn:()=>i(c7.match(n,{Clients:()=>i(J9(e),`src/main.ts#Clients`),Resources:()=>i(J9(e),`src/main.ts#Resources`),Keys:()=>i(J9(e),`src/main.ts#Keys`),Login:()=>i(Xne(e,r),`src/main.ts#Login`),Setup:()=>i(X9(J9(e),u7()),`src/main.ts#Setup`),Consent:()=>i(q9(e,r),`src/main.ts#Consent`),NotFound:()=>i(Y9(e),`src/main.ts#NotFound`)}),`src/main.ts#SignedIn`),SignedOut:()=>i(c7.match(n,{Clients:()=>i(K9(e,r,e.url.pathname),`src/main.ts#Clients~2`),Resources:()=>i(K9(e,r,e.url.pathname),`src/main.ts#Resources~2`),Keys:()=>i(K9(e,r,e.url.pathname),`src/main.ts#Keys~2`),Login:()=>i(K9(e,r,u7()),`src/main.ts#Login~2`),Setup:()=>i(X9(K9(e,``,u7()),p7()),`src/main.ts#Setup~2`),Consent:()=>i(q9(e,r),`src/main.ts#Consent~2`),NotFound:()=>i(Y9(e),`src/main.ts#NotFound~2`)}),`src/main.ts#SignedOut`)}),`src/main.ts#pageFor`)},Z9=(e,t)=>i(F9.match(e,{Starting:()=>i(!0,`src/main.ts#Starting`),Failed:()=>i(!1,`src/main.ts#Failed`),NotFound:()=>i(c7.guards.NotFound(t),`src/main.ts#NotFound~3`),Setup:()=>i(c7.guards.Setup(t),`src/main.ts#Setup~3`),Login:()=>i(c7.guards.Login(t),`src/main.ts#Login~3`),Consent:()=>i(c7.guards.Consent(t),`src/main.ts#Consent~3`),Dashboard:()=>i(g7(t),`src/main.ts#Dashboard`)}),`src/main.ts#isServedBy`),Qne=e=>i({model:{url:e,page:F9.Starting(),tips:LQ({id:`page-tip`})},commands:[R9()]},`src/main.ts#init`),$ne=xq({update:Hne,read:e=>i(F9.matchOrElse(e.page,{Setup:({setup:e})=>i(w(e),`src/main.ts#Setup~4`)},()=>i(C(),`src/main.ts#anonymous~7`)),`src/main.ts#read`),write:(e,t)=>i(W9(e,F9.Setup({setup:t})),`src/main.ts#write`),toParentMessage:Yne,foldOutMessage:k9.match({CreatedOwner:()=>i((e=>i(X9(J9(e),u7()),`src/main.ts#anonymous~5`)),`src/main.ts#CreatedOwner`),FoundOwner:()=>i((e=>i(X9(K9(e,``,u7()),p7()),`src/main.ts#anonymous~6`)),`src/main.ts#FoundOwner`)})}),ere=xq({update:jne,read:e=>i(F9.matchOrElse(e.page,{Login:({login:e})=>i(w(e),`src/main.ts#Login~4`)},()=>i(C(),`src/main.ts#anonymous~8`)),`src/main.ts#read~2`),write:(e,t)=>i(W9(e,F9.Login({login:t})),`src/main.ts#write~2`),toParentMessage:V9}),tre=xq({update:hne,read:e=>i(F9.matchOrElse(e.page,{Consent:({consent:e})=>i(w(e),`src/main.ts#Consent~4`)},()=>i(C(),`src/main.ts#anonymous~9`)),`src/main.ts#read~3`),write:(e,t)=>i(W9(e,F9.Consent({consent:t})),`src/main.ts#write~3`),toParentMessage:H9}),nre=xq({update:vte,read:e=>i(F9.matchOrElse(e.page,{Dashboard:({dashboard:e})=>i(w(e),`src/main.ts#Dashboard~2`)},()=>i(C(),`src/main.ts#anonymous~10`)),`src/main.ts#read~4`),write:(e,t)=>i(W9(e,F9.Dashboard({dashboard:t})),`src/main.ts#write~4`),toParentMessage:U9}),rre=xq({update:l$,read:e=>i(w(e.tips),`src/main.ts#read~5`),write:(e,t)=>i(Q(e,{tips:()=>i(t,`src/main.ts#tips`)}),`src/main.ts#write~5`),toParentMessage:e=>i(L9.GotTipsMessage({message:e}),`src/main.ts#toParentMessage`)}),ire=Nr(Ep),are=(e,t)=>i(t.pathname===e.url.pathname&&ire(t.search,e.url.search)?t.hash:C(),`src/main.ts#fragmentOf`),ore=(e,t)=>i(D(are(e,t),{onSome:t=>i({model:e,commands:[bQ({maybeFragment:w(t)})]},`src/main.ts#onSome~2`),onNone:()=>i(Z9(e.page,h7(t))?{model:e,commands:[Kne({url:HU(t)})]}:{model:e,commands:[B9({href:HU(t)})]},`src/main.ts#onNone~2`)}),`src/main.ts#internalLinkClicked`),sre=(e,t)=>i(UU.match(t,{Internal:({url:t})=>i(ore(e,t),`src/main.ts#Internal`),External:({href:t})=>i({model:e,commands:[B9({href:t})]},`src/main.ts#External`)}),`src/main.ts#linkClicked`),cre=(e,t)=>i(Z9(e.page,h7(t))?{model:Q(e,{url:()=>i(t,`src/main.ts#url`)}),commands:[bQ({maybeFragment:t.hash})]}:{model:e,commands:[qne()]},`src/main.ts#urlChanged`),lre=(e,t)=>i(L9.match(t,{SucceededCheckAccess:({access:t})=>i(Zne(e,t),`src/main.ts#SucceededCheckAccess`),FailedCheckAccess:({reason:t})=>i({model:W9(e,F9.Failed({reason:t}))},`src/main.ts#FailedCheckAccess`),ClickedRetryAccess:()=>i({model:W9(e,F9.Starting()),commands:[R9()]},`src/main.ts#ClickedRetryAccess`),ClickedLink:({request:t})=>i(sre(e,t),`src/main.ts#ClickedLink`),ChangedUrl:({url:t})=>i(cre(e,t),`src/main.ts#ChangedUrl`),CompletedNavigateInternal:()=>i({model:e},`src/main.ts#CompletedNavigateInternal`),CompletedReplaceUrl:()=>i({model:e},`src/main.ts#CompletedReplaceUrl`),CompletedLoadUrl:()=>i({model:e},`src/main.ts#CompletedLoadUrl`),CompletedReloadPage:()=>i({model:e},`src/main.ts#CompletedReloadPage`),CompletedScrollToFragment:()=>i({model:e},`src/main.ts#CompletedScrollToFragment`),GotSetupMessage:({message:t})=>i($ne(e,t),`src/main.ts#GotSetupMessage`),GotLoginMessage:({message:t})=>i(ere(e,t),`src/main.ts#GotLoginMessage`),GotConsentMessage:({message:t})=>i(tre(e,t),`src/main.ts#GotConsentMessage`),GotDashboardMessage:({message:t})=>i(nre(e,t),`src/main.ts#GotDashboardMessage`),GotTipsMessage:({message:t})=>i(rre(e,t),`src/main.ts#GotTipsMessage`)}),`src/main.ts#update`),ure=ZU(y$(`tip`))({read:e=>i(w(e.tips),`src/main.ts#read~6`),toParentMessage:e=>i(L9.GotTipsMessage({message:e}),`src/main.ts#toParentMessage~2`)}),Q9=e=>i(`${e} | ${W7}`,`src/view.ts#titled`),$9=e=>i(g7(e)?e:c7.Clients(),`src/view.ts#sectionOf`),dre=e=>i(c7.matchOrElse($9(e),{Resources:()=>i(Q9(`Resources`),`src/view.ts#Resources`),Keys:()=>i(Q9(`API keys`),`src/view.ts#Keys`)},()=>i(Q9(`Clients`),`src/view.ts#anonymous`)),`src/view.ts#dashboardTitle`),fre=e=>i(F9.match(e.page,{Starting:()=>i(W7,`src/view.ts#Starting`),Failed:()=>i(Q9(`Unable to continue`),`src/view.ts#Failed`),NotFound:()=>i(Q9(`Not found`),`src/view.ts#NotFound`),Setup:()=>i(Q9(`Set up`),`src/view.ts#Setup`),Login:()=>i(Q9(`Sign in`),`src/view.ts#Login`),Consent:()=>i(Q9(`Allow access`),`src/view.ts#Consent`),Dashboard:()=>i(dre(I9(e)),`src/view.ts#Dashboard`)}),`src/view.ts#titleOf`),pre=e=>i(TZ({body:[e.h1([e.Class(`sr-only`)],[W7]),WZ({isLoading:!0,label:`loading`},e)]},e),`src/view.ts#startingView`),mre=(e,t)=>i(q7(`Unable to continue`,{title:W7,meta:`not available`,actions:[UZ({label:`sign in`,href:p7()},t),oX({label:`try again`,variant:`Primary`,isDefault:!0,onClick:L9.ClickedRetryAccess()},t)],body:[$X({tone:`Error`,title:`Unable to continue`,body:[e]},t)]},t),`src/view.ts#failedView`),hre=e=>i(q7(`Not found`,{title:W7,meta:`404`,actions:[UZ({label:`go to the dashboard`,href:u7()},e)],body:[$X({tone:`Error`,title:`Not found`,body:[`Nothing lives at this address.`]},e)]},e),`src/view.ts#notFoundView`),gre=(e,t)=>i(F9.match(e.page,{Starting:()=>i(pre(t),`src/view.ts#Starting~2`),Failed:({reason:e})=>i(mre(e,t),`src/view.ts#Failed~2`),NotFound:()=>i(hre(t),`src/view.ts#NotFound~2`),Setup:({setup:e})=>i(t.submodel({slotId:`setup`,model:e,view:Wne,toParentMessage:e=>i(L9.GotSetupMessage({message:e}),`src/view.ts#toParentMessage`)}),`src/view.ts#Setup~2`),Login:({login:e})=>i(t.submodel({slotId:`login`,model:e,view:Pne,toParentMessage:e=>i(L9.GotLoginMessage({message:e}),`src/view.ts#toParentMessage~2`)}),`src/view.ts#Login~2`),Consent:({consent:e})=>i(t.submodel({slotId:`consent`,model:e,view:Tne,toParentMessage:e=>i(L9.GotConsentMessage({message:e}),`src/view.ts#toParentMessage~3`)}),`src/view.ts#Consent~2`),Dashboard:({dashboard:n})=>i(t.submodel({slotId:`dashboard`,model:n,view:one,viewInputs:{section:$9(I9(e))},toParentMessage:e=>i(L9.GotDashboardMessage({message:e}),`src/view.ts#toParentMessage~4`)}),`src/view.ts#Dashboard~2`)}),`src/view.ts#pageView`),_re=e=>i(F9.matchOrElse(e,{Dashboard:({dashboard:e})=>i(a7(e),`src/view.ts#Dashboard~3`)},()=>i(!1,`src/view.ts#anonymous~2`)),`src/view.ts#isLiveRegionInDialog`);vq(dq({Model:Gne,init:Qne,update:lre,view:(e,t)=>i({title:fre(e),body:t.div([],[vQ(t),gre(e,t),..._re(e.page)?[]:[Mq(t)],t.submodel({slotId:RQ(e.tips),model:e.tips,view:x$,toParentMessage:e=>i(L9.GotTipsMessage({message:e}),`src/view.ts#toParentMessage~5`)})])},`src/view.ts#view`),subscriptions:ure,resources:Uk,container:document.getElementById(`root`),routing:{onUrlRequest:e=>i(L9.ClickedLink({request:e}),`src/entry.ts#onUrlRequest`),onUrlChange:e=>i(L9.ChangedUrl({url:e}),`src/entry.ts#onUrlChange`)}}));
2300
+ `),resources:t,isNative:e.application_type===`native`,authMethod:`none`},`src/page/dashboard/form.ts#clientDraftOf`),d5=()=>i(t5.Client({mode:e5.Register(),draft:{name:``,redirectUris:``,resources:[],isNative:!1,authMethod:`none`}}),`src/page/dashboard/form.ts#registerClient`),f5=e=>i(t5.Client({mode:e5.Edit({clientId:e.client_id}),draft:u5(e,[])}),`src/page/dashboard/form.ts#editClient`),p5=(e,t)=>i(t5.Client({mode:e5.Access({clientId:e.client_id,allowed:t}),draft:u5(e,t)}),`src/page/dashboard/form.ts#editAccess`),m5=(e,t)=>i(t5.matchOrElse(e,{Resource:e=>i(Q(e,{draft:t}),`src/page/dashboard/form.ts#Resource`)},()=>i(e,`src/page/dashboard/form.ts#anonymous~3`)),`src/page/dashboard/form.ts#editResourceDraft`),h5=(e,t)=>i(t5.matchOrElse(e,{Key:e=>i(Q(e,{draft:t}),`src/page/dashboard/form.ts#Key`)},()=>i(e,`src/page/dashboard/form.ts#anonymous~4`)),`src/page/dashboard/form.ts#editKeyDraft`),g5=(e,t)=>i(t5.matchOrElse(e,{Client:e=>i(Q(e,{draft:t}),`src/page/dashboard/form.ts#Client`)},()=>i(e,`src/page/dashboard/form.ts#anonymous~5`)),`src/page/dashboard/form.ts#editClientDraft`),_5=(e,t)=>i((n=>{let r=wo(n,t=>i(t!==e,`src/page/dashboard/form.ts#anonymous~7`));return i(t?Fa(r,e):r,`src/page/dashboard/form.ts#anonymous~6`)}),`src/page/dashboard/form.ts#toggleValue`),v5=(e,t,n)=>i((r=>{let a=g(ba(r,e),Sr(()=>i([],`src/page/dashboard/form.ts#anonymous~9`)),_5(t,n));return i(Va(a)?Ta(r,e,a):xa(r,e),`src/page/dashboard/form.ts#anonymous~8`)}),`src/page/dashboard/form.ts#toggleGrant`),y5=(e,t)=>i(n5.match(t,{UpdatedResourceName:({value:t})=>i(m5(e,e=>i(Q(e,{name:()=>i(t,`src/page/dashboard/form.ts#name`)}),`src/page/dashboard/form.ts#anonymous~10`)),`src/page/dashboard/form.ts#UpdatedResourceName`),UpdatedResourceIdentifier:({value:t})=>i(m5(e,e=>i(Q(e,{identifier:()=>i(t,`src/page/dashboard/form.ts#identifier`)}),`src/page/dashboard/form.ts#anonymous~11`)),`src/page/dashboard/form.ts#UpdatedResourceIdentifier`),UpdatedResourceScopes:({value:t})=>i(m5(e,e=>i(Q(e,{scopes:()=>i(t,`src/page/dashboard/form.ts#scopes`)}),`src/page/dashboard/form.ts#anonymous~12`)),`src/page/dashboard/form.ts#UpdatedResourceScopes`),UpdatedKeyName:({value:t})=>i(h5(e,e=>i(Q(e,{name:()=>i(t,`src/page/dashboard/form.ts#name~2`)}),`src/page/dashboard/form.ts#anonymous~13`)),`src/page/dashboard/form.ts#UpdatedKeyName`),ToggledKeyGrant:({resource:t,scope:n,isChecked:r})=>i(h5(e,e=>i(Q(e,{grants:v5(t,n,r)}),`src/page/dashboard/form.ts#anonymous~14`)),`src/page/dashboard/form.ts#ToggledKeyGrant`),UpdatedKeyExpiry:({value:t})=>i(h5(e,e=>i(Q(e,{expiry:()=>i(t,`src/page/dashboard/form.ts#expiry`)}),`src/page/dashboard/form.ts#anonymous~15`)),`src/page/dashboard/form.ts#UpdatedKeyExpiry`),UpdatedClientName:({value:t})=>i(g5(e,e=>i(Q(e,{name:()=>i(t,`src/page/dashboard/form.ts#name~3`)}),`src/page/dashboard/form.ts#anonymous~16`)),`src/page/dashboard/form.ts#UpdatedClientName`),UpdatedClientRedirectUris:({value:t})=>i(g5(e,e=>i(Q(e,{redirectUris:()=>i(t,`src/page/dashboard/form.ts#redirectUris`)}),`src/page/dashboard/form.ts#anonymous~17`)),`src/page/dashboard/form.ts#UpdatedClientRedirectUris`),ToggledClientResource:({resource:t,isChecked:n})=>i(g5(e,e=>i(Q(e,{resources:_5(t,n)}),`src/page/dashboard/form.ts#anonymous~18`)),`src/page/dashboard/form.ts#ToggledClientResource`),ToggledClientNative:({isChecked:t})=>i(g5(e,e=>i(Q(e,{isNative:()=>i(t,`src/page/dashboard/form.ts#isNative`)}),`src/page/dashboard/form.ts#anonymous~19`)),`src/page/dashboard/form.ts#ToggledClientNative`),SelectedClientAuthMethod:({method:t})=>i(g5(e,e=>i(Q(e,{authMethod:()=>i(t,`src/page/dashboard/form.ts#authMethod`)}),`src/page/dashboard/form.ts#anonymous~20`)),`src/page/dashboard/form.ts#SelectedClientAuthMethod`)}),`src/page/dashboard/form.ts#update`),b5=`Add at least one redirect URI.`,x5=`Enter the expiry as a date and time, or leave it blank.`,S5=e=>i(Na(J8(e.redirectUris),{onEmpty:()=>i(aa(b5),`src/page/dashboard/form.ts#onEmpty`),onNonEmpty:ia}),`src/page/dashboard/form.ts#redirectUrisOf`),C5=e=>i(g(Pr(e,Np),D({onNone:()=>i(ia(C()),`src/page/dashboard/form.ts#onNone`),onSome:e=>i(Number.isNaN(Date.parse(e))?aa(x5):ia(w(e)),`src/page/dashboard/form.ts#onSome`)})),`src/page/dashboard/form.ts#expiryOf`),w5=e=>i(e.isNative?`native`:`web`,`src/page/dashboard/form.ts#applicationTypeOf`),T5=`A Resource with this identifier exists already: edit it instead.`,E5=(e,t,n)=>{let r={identifier:t.identifier.trim(),name:t.name.trim(),scopes:J8(t.scopes)};return i(Q8.match(e,{Add:()=>i(po(n,r.identifier)?aa(T5):ia(B8.PutResource(r)),`src/page/dashboard/form.ts#Add`),Edit:()=>i(ia(B8.PutResource(r)),`src/page/dashboard/form.ts#Edit`)}),`src/page/dashboard/form.ts#resourceChangeOf`)},D5=(e,t)=>i($8.match(e,{Create:()=>i(da(C5(t.expiry),e=>i(B8.CreateKey({name:t.name.trim(),permissions:t.grants,maybeExpiry:e}),`src/page/dashboard/form.ts#anonymous~21`)),`src/page/dashboard/form.ts#Create`),Rename:({keyId:e})=>i(ia(B8.RenameKey({keyId:e,name:t.name.trim()})),`src/page/dashboard/form.ts#Rename`),Grants:({keyId:e})=>i(ia(B8.SetKeyGrants({keyId:e,permissions:t.grants})),`src/page/dashboard/form.ts#Grants`)}),`src/page/dashboard/form.ts#keyChangeOf`),O5=(e,t)=>i(e5.match(e,{Register:()=>i(da(S5(t),e=>i(B8.RegisterClient({name:t.name.trim(),redirectUris:e,resources:t.resources,applicationType:w5(t),authMethod:t.authMethod}),`src/page/dashboard/form.ts#anonymous~22`)),`src/page/dashboard/form.ts#Register`),Edit:({clientId:e})=>i(da(S5(t),n=>i(B8.UpdateClient({clientId:e,name:t.name.trim(),redirectUris:n,applicationType:w5(t)}),`src/page/dashboard/form.ts#anonymous~23`)),`src/page/dashboard/form.ts#Edit~2`),Access:({clientId:e,allowed:n})=>i(ia(B8.SetClientAccess({clientId:e,resources:t.resources,removed:vo(n,t.resources)})),`src/page/dashboard/form.ts#Access`)}),`src/page/dashboard/form.ts#clientChangeOf`),k5=(e,t)=>i(t5.match(e,{Resource:({mode:e,draft:n})=>i(E5(e,n,t),`src/page/dashboard/form.ts#Resource~2`),Key:({mode:e,draft:t})=>i(D5(e,t),`src/page/dashboard/form.ts#Key~2`),Client:({mode:e,draft:t})=>i(O5(e,t),`src/page/dashboard/form.ts#Client~2`)}),`src/page/dashboard/form.ts#changeOf`),A5=e=>y(e,`parentField`),j5=(e,t,n)=>({...e,[t]:n}),M5=e=>({read:t=>w(t[e.parentField]),write:(t,n)=>j5(t,e.parentField,n),toParentMessage:e.toParentMessage}),N5=(e,t)=>xq({update:(t,n)=>e(t,n),...t}),P5=(e,t,n,r)=>D(r(e.read(t,n)),{onNone:()=>({model:t}),onSome:r=>{let i=e.start(t,n,r);return{model:i.model,commands:[e.fetch(n,i.generation)]}}}),F5=e=>g(e,fm,R(e=>IA(yA(),e))),I5=([e,t])=>[e,z5(t)],L5=hr(pr,([e])=>e),R5=e=>be(e)&&!globalThis.Array.isArray(e),z5=e=>globalThis.Array.isArray(e)?j(e,z5):R5(e)?g(e,va,co(L5),j(I5),ga):e,B5=DE(OD(iO)),V5=e=>{let t=DE(nO(e));return e=>B5(z5(t(e)))},H5=(e,t,n)=>hA({CompletedFetch:{args:n,generation:RE,result:GD(e,t)}}),U5=(e,t,n)=>U({generation:RE,entries:HD(V,U({args:n,data:wA(e,t).schema,generation:RE}))});function W5(e){wA(e.data,e.error);let t=U(e.args);if(Ra(Ca(e.args)))throw Error(`Query.define("${e.name}"): keyed args must include at least one field`);let n=e.toKey??V5(t),r=H5(e.data,e.error,t),i=lH(`Fetch${e.name}`,{args:{args:t,generation:RE},messages:[r.CompletedFetch],execute:({args:t,generation:n})=>g(e.execute(t),fm,R(e=>({_tag:`CompletedFetch`,args:t,generation:n,result:e})))}),a=U5(e.data,e.error,t),o={read:(e,t)=>lte(k(cb(e.entries,n(t)),e=>e.data)),start:(e,t,r)=>{let i=xp(e.generation);return{model:Q(e,{entries:ub(n(t),{args:t,data:r,generation:i}),generation:()=>i}),generation:i}},fetch:(e,t)=>i({args:e,generation:t})},s=()=>a.make({entries:ab(),generation:0}),l=e=>({model:Q(e,{entries:()=>ab()})}),u=(e,t)=>o.read(e,t),d=e=>c(2,(t,n)=>P5(o,t,n,e)),f=d(PA),p=d(NA),m=d(FA),h=(e,t)=>r.match(t,{CompletedFetch({args:t,generation:r,result:i}){let a=n(t),o=cb(e.entries,a);if(T(o))return{model:e};let s=o.value;return!MA(s.data)||r!==s.generation?{model:e}:{model:Q(e,{entries:ub(a,Q(s,{data:()=>IA(s.data,i)}))})}}}),_=e=>({fold:xq({update:h,...e}),reset:Eq({update:l,...e}),revalidate:N5(f,e),revalidateOrLoad:N5(p,e),loadIfMissing:N5(m,e)});function v(e){return A5(e)?_(M5(e)):_(e)}return{Model:a,Message:r,Fetch:i,init:s,reset:l,read:u,update:h,revalidate:f,revalidateOrLoad:p,loadIfMissing:m,lift:v,run:t=>F5(e.execute(t))}}var G5=(e,t)=>hA({CompletedFetch:{generation:RE,result:GD(e,t)}}),K5=(e,t)=>U({data:wA(e,t).schema,generation:RE});function q5(e){let t=K5(e.data,e.error),n=G5(e.data,e.error),r=lH(`Fetch${e.name}`,{args:{generation:RE},messages:[n.CompletedFetch],execute:({generation:t})=>g(e.execute,fm,R(e=>n.CompletedFetch({generation:t,result:e})))}),i={read:e=>e.data,start:(e,t,n)=>{let r=xp(e.generation);return{model:Q(e,{data:()=>n,generation:()=>r}),generation:r}},fetch:(e,t)=>r({generation:t})},a=()=>t.make({data:vA(),generation:0}),o=e=>({model:Q(e,{data:()=>vA()})}),s=e=>e.data,c=e=>P5(i,e,void 0,PA),l=e=>P5(i,e,void 0,NA),u=e=>P5(i,e,void 0,FA),d=(e,t)=>n.match(t,{CompletedFetch({generation:t,result:n}){let r=s(e);return!MA(r)||t!==e.generation?{model:e}:{model:Q(e,{data:()=>IA(r,n)})}}}),f=e=>({fold:xq({update:d,...e}),reset:Eq({update:o,...e}),revalidate:Eq({update:c,...e}),revalidateOrLoad:Eq({update:l,...e}),loadIfMissing:Eq({update:u,...e})});function p(e){return A5(e)?f(M5(e)):f(e)}return{Model:t,Message:n,Fetch:r,init:a,reset:o,read:s,update:d,revalidate:c,revalidateOrLoad:l,loadIfMissing:u,lift:p,run:F5(e.execute)}}var J5=e=>y(e,`args`);function Y5(e){return J5(e)?W5(e):q5(e)}var X5=Y5({name:`Listing`,data:U({overview:m8,keys:W(u8)}),error:V,execute:Kp({overview:D8.listClients(),keys:R(D8.listApiKeys(),({keys:e})=>i(e,`src/page/dashboard/listing.ts#anonymous`))},{concurrency:`unbounded`}).pipe(M8)}),Z5=U({credential:V8,copy:pZ}),Q5=YE([`Page`,`Editor`,`Confirm`]),$5=gA({Idle:{},Saving:{},SigningOut:{}}),e7=U({place:Q5,title:V,reason:V}),t7=U({listing:X5.Model,credentials:W(Z5),issuerCopy:pZ,editor:kX,maybeForm:UD(t5),confirm:eZ,maybePending:UD(B8),activity:$5,maybeRefusal:UD(e7)}),n7=e=>i(X5.read(e.listing),`src/page/dashboard/model.ts#listingOf`),r7=e=>i($5.guards.Saving(e.activity),`src/page/dashboard/model.ts#isSaving`),i7=e=>i(!$5.guards.Idle(e.activity)||!jA(n7(e)),`src/page/dashboard/model.ts#isHeld`),a7=e=>i(IX(e.editor)||lZ(e.confirm),`src/page/dashboard/model.ts#isDialogOpen`),o7=(e,t)=>i(Mr(e.maybeRefusal,e=>i(e.place===t,`src/page/dashboard/model.ts#anonymous`)),`src/page/dashboard/model.ts#refusalAt`),s7=e=>i(Or(e.maybePending,K8),`src/page/dashboard/model.ts#pendingConfirmation`),$=hA({GotListingMessage:{message:X5.Message},ClickedRetryListing:{},ClickedOpenForm:{form:t5},GotFormMessage:{message:n5},SubmittedForm:{},ClickedChange:{change:B8},SucceededSaveChange:{change:B8,maybeCredential:UD(V8)},FailedSaveChange:{reason:V},ClickedDismissCredentials:{},ClickedSignOut:{},SucceededSignOut:{},FailedSignOut:{reason:V},GotEditorMessage:{message:MX},GotConfirmMessage:{message:tZ},GotCredentialCopyMessage:{credentialId:V,message:mZ},GotIssuerCopyMessage:{message:mZ},GotTopBarMessage:{message:CQ},CompletedAnnounce:{},CompletedFocus:{}}),c7=ste({Clients:{},Resources:{},Keys:{},Login:{},Setup:{},Consent:{},NotFound:{path:V}}),l7=[`Clients`,`Resources`,`Keys`];c7.subset(l7);var u7=g(iW,sW(c7.Clients)),d7=g(rW(`resources`),sW(c7.Resources)),f7=g(rW(`keys`),sW(c7.Keys)),p7=g(rW(`login`),sW(c7.Login)),m7=g(rW(`setup`),sW(c7.Setup)),h7=lW(oW(d7,f7,p7,m7,g(rW(`consent`),sW(c7.Consent)),u7),c7.NotFound),g7=c7.isAnyOf(l7),_7=e=>i(k(O(e.client_secret),t=>i(V8.ClientSecret({clientId:e.client_id,name:e.client_name??e.client_id,secret:t}),`src/page/dashboard/command.ts#anonymous`)),`src/page/dashboard/command.ts#clientSecretOf`),v7=mm(C()),y7=e=>i(M8(B8.match(e,{PutResource:({identifier:e,name:t,scopes:n})=>i(D8.putResource({identifier:e,name:t,scopes:n}).pipe(v7),`src/page/dashboard/command.ts#PutResource`),DeleteResource:({identifier:e})=>i(D8.deleteResource({identifier:e}).pipe(v7),`src/page/dashboard/command.ts#DeleteResource`),CreateKey:({name:e,permissions:t,maybeExpiry:n})=>i(Qp(()=>i(D8.createApiKey({name:e,permissions:t,expiresAt:wr(k(n,e=>i(sy(new Date(e)),`src/page/dashboard/command.ts#anonymous~3`)))}),`src/page/dashboard/command.ts#anonymous~2`)).pipe(R(({keyId:e,name:t,key:n})=>i(w(V8.ApiKey({keyId:e,name:t,key:n})),`src/page/dashboard/command.ts#anonymous~4`))),`src/page/dashboard/command.ts#CreateKey`),RenameKey:({keyId:e,name:t})=>i(D8.updateApiKey({keyId:e,name:t}).pipe(v7),`src/page/dashboard/command.ts#RenameKey`),SetKeyGrants:({keyId:e,permissions:t})=>i(D8.updateApiKey({keyId:e,permissions:t}).pipe(v7),`src/page/dashboard/command.ts#SetKeyGrants`),SetKeyEnabled:({keyId:e,isEnabled:t})=>i(D8.updateApiKey({keyId:e,enabled:t}).pipe(v7),`src/page/dashboard/command.ts#SetKeyEnabled`),DeleteKey:({keyId:e})=>i(D8.deleteApiKey({keyId:e}).pipe(v7),`src/page/dashboard/command.ts#DeleteKey`),RegisterClient:({name:e,redirectUris:t,resources:n,applicationType:r,authMethod:a})=>i(D8.createClient({client_name:e,redirect_uris:t,resources:n,application_type:r,token_endpoint_auth_method:a}).pipe(R(_7)),`src/page/dashboard/command.ts#RegisterClient`),UpdateClient:({clientId:e,name:t,redirectUris:n,applicationType:r})=>i(D8.updateClient({client_id:e,client_name:t,redirect_uris:n,application_type:r}).pipe(v7),`src/page/dashboard/command.ts#UpdateClient`),SetClientAccess:({clientId:e,resources:t})=>i(D8.setClientAccess({client_id:e,resources:t}).pipe(v7),`src/page/dashboard/command.ts#SetClientAccess`),RevokeClient:({clientId:e,maybeResource:t})=>i(D(t,{onNone:()=>i(D8.revokeClient({client_id:e}),`src/page/dashboard/command.ts#onNone`),onSome:t=>i(D8.revokeClient({client_id:e,resource:t}),`src/page/dashboard/command.ts#onSome`)}).pipe(v7),`src/page/dashboard/command.ts#RevokeClient`),BlockClient:({clientId:e,isBlocked:t})=>i(D8.blockClient({client_id:e,blocked:t}).pipe(v7),`src/page/dashboard/command.ts#BlockClient`),RotateSecret:({clientId:e})=>i(D8.rotateClientSecret({client_id:e}).pipe(R(_7)),`src/page/dashboard/command.ts#RotateSecret`),DeleteClient:({clientId:e})=>i(D8.deleteClient({client_id:e}).pipe(v7),`src/page/dashboard/command.ts#DeleteClient`)})),`src/page/dashboard/command.ts#saveChange`),b7=Wi(20),x7=lH(`SaveChange`,{args:{change:B8},messages:[$.SucceededSaveChange,$.FailedSaveChange],execute:({change:e})=>i(y7(e).pipe(Om({onFailure:e=>i($.FailedSaveChange({reason:e}),`src/page/dashboard/command.ts#onFailure`),onSuccess:t=>i($.SucceededSaveChange({change:e,maybeCredential:t}),`src/page/dashboard/command.ts#onSuccess`)}),wm({duration:b7,orElse:()=>i(N($.FailedSaveChange({reason:`The issuer did not answer in time. Check whether the change was made before trying again.`})),`src/page/dashboard/command.ts#orElse`)})),`src/page/dashboard/command.ts#execute`)}),S7=lH(`SignOut`,{messages:[$.SucceededSignOut,$.FailedSignOut],execute:L8.pipe(um(KU(p7())),Om({onFailure:e=>i($.FailedSignOut({reason:e}),`src/page/dashboard/command.ts#onFailure~2`),onSuccess:()=>i($.SucceededSignOut(),`src/page/dashboard/command.ts#onSuccess~2`)}))}),C7=`dashboard-editor-form`,w7=`dashboard-refusal`,T7=`Saved, but the dashboard could not refresh.`,E7=X5.lift({parentField:`listing`,toParentMessage:e=>i($.GotListingMessage({message:e}),`src/page/dashboard/update.ts#toParentMessage`)}),D7=()=>i(E7.loadIfMissing({listing:X5.init(),credentials:[],issuerCopy:hZ({id:`copy-issuer`}),editor:PX({id:`dashboard-editor`}),maybeForm:C(),confirm:rZ({id:`dashboard-confirm`}),maybePending:C(),activity:$5.Idle(),maybeRefusal:C()}),`src/page/dashboard/update.ts#init`),O7=DX(EZ,{read:e=>i(e.editor,`src/page/dashboard/update.ts#read`),write:(e,t)=>i(Q(e,{editor:()=>i(t,`src/page/dashboard/update.ts#editor`)}),`src/page/dashboard/update.ts#write`),toParentMessage:e=>i($.GotEditorMessage({message:e}),`src/page/dashboard/update.ts#toParentMessage~2`),isCloseHeld:r7}),k7=(e,t)=>i(Q(e,{maybeRefusal:Mr(e=>i(e.place!==t,`src/page/dashboard/update.ts#anonymous`))}),`src/page/dashboard/update.ts#withoutRefusalAt`),A7=e=>lZ(e.confirm)?i(`Confirm`,`src/page/dashboard/update.ts#placeOf`):IX(e.editor)?i(`Editor`,`src/page/dashboard/update.ts#placeOf`):i(`Page`,`src/page/dashboard/update.ts#placeOf`),j7=(e,t)=>i({model:Q(e,{activity:()=>i($5.Saving(),`src/page/dashboard/update.ts#activity`),maybeRefusal:()=>i(C(),`src/page/dashboard/update.ts#maybeRefusal`)}),commands:[...A7(e)===`Editor`?[QX({id:CX(C7)})]:[],x7({change:t})]},`src/page/dashboard/update.ts#saving`),M7={read:e=>i(w(e.confirm),`src/page/dashboard/update.ts#read~2`),write:(e,t)=>i(Q(e,{confirm:()=>i(t,`src/page/dashboard/update.ts#confirm`)}),`src/page/dashboard/update.ts#write~2`),toParentMessage:e=>i($.GotConfirmMessage({message:e}),`src/page/dashboard/update.ts#toParentMessage~3`),foldOutMessage:nZ.match({Confirmed:()=>i((e=>i(D(e.maybePending,{onNone:()=>i({model:e},`src/page/dashboard/update.ts#onNone`),onSome:t=>i($5.guards.Idle(e.activity)?j7(e,t):{model:e},`src/page/dashboard/update.ts#onSome`)}),`src/page/dashboard/update.ts#anonymous~2`)),`src/page/dashboard/update.ts#Confirmed`),Cancelled:()=>i((e=>i({model:e},`src/page/dashboard/update.ts#anonymous~3`)),`src/page/dashboard/update.ts#Cancelled`)})},N7=(e,t)=>i(xq({update:(t,n)=>i(aZ(t,n,{isCloseHeld:r7(e)}),`src/page/dashboard/update.ts#update`),...M7})(e,t),`src/page/dashboard/update.ts#foldConfirm`),P7=Eq({update:oZ,...M7}),F7=Eq({update:sZ,...M7}),I7=xq({update:CZ,read:e=>i(w(e.issuerCopy),`src/page/dashboard/update.ts#read~3`),write:(e,t)=>i(Q(e,{issuerCopy:()=>i(t,`src/page/dashboard/update.ts#issuerCopy`)}),`src/page/dashboard/update.ts#write~3`),toParentMessage:e=>i($.GotIssuerCopyMessage({message:e}),`src/page/dashboard/update.ts#toParentMessage~4`)}),L7=e=>i((t=>i(H8(t.credential)===e,`src/page/dashboard/update.ts#anonymous~4`)),`src/page/dashboard/update.ts#isCredential`),R7=Sq({update:CZ,readAt:(e,t)=>i(k(io(e.credentials,L7(t)),({copy:e})=>i(e,`src/page/dashboard/update.ts#anonymous~5`)),`src/page/dashboard/update.ts#readAt`),writeAt:(e,t,n)=>i(Q(e,{credentials:j(e=>i(L7(t)(e)?Q(e,{copy:()=>i(n,`src/page/dashboard/update.ts#copy`)}):e,`src/page/dashboard/update.ts#anonymous~6`))}),`src/page/dashboard/update.ts#writeAt`),toParentMessage:(e,t)=>i($.GotCredentialCopyMessage({credentialId:e,message:t}),`src/page/dashboard/update.ts#toParentMessage~5`)}),z7=(e,t)=>i7(e)?i({model:e},`src/page/dashboard/update.ts#requested`):i(D(K8(t),{onNone:()=>i(j7(e,t),`src/page/dashboard/update.ts#onNone~2`),onSome:()=>i(P7(k7(Q(e,{maybePending:()=>i(w(t),`src/page/dashboard/update.ts#maybePending`)}),`Confirm`)),`src/page/dashboard/update.ts#onSome~2`)}),`src/page/dashboard/update.ts#requested`),B7=e=>i(`copy-${H8(e)}`,`src/page/dashboard/update.ts#copyIdOf`),V7=(e,t,n)=>i(Ia(wo(e,({credential:e})=>i(!U8(t,e)&&!Fr(n,t=>i(H8(t)===H8(e),`src/page/dashboard/update.ts#anonymous~8`)),`src/page/dashboard/update.ts#anonymous~7`)),jr(k(n,e=>i({credential:e,copy:hZ({id:B7(e)})},`src/page/dashboard/update.ts#anonymous~9`)))),`src/page/dashboard/update.ts#credentialsAfter`),H7=e=>i(IX(e.editor)?O7.close(e):{model:e},`src/page/dashboard/update.ts#closeEditor`),U7=e=>i(lZ(e.confirm)?F7(e):{model:e},`src/page/dashboard/update.ts#closeConfirm`),pte=(e,t,n)=>i(bq(Q(e,{activity:()=>i($5.Idle(),`src/page/dashboard/update.ts#activity~2`),credentials:e=>i(V7(e,t,n),`src/page/dashboard/update.ts#credentials`)}),[H7,U7,...W8(t)?[E7.revalidateOrLoad]:[],e=>i({model:e,commands:[Gq({text:q8(t)}),...Ma(k(n,e=>i(QX({id:B7(e)}),`src/page/dashboard/update.ts#anonymous~11`)))]},`src/page/dashboard/update.ts#anonymous~10`)]),`src/page/dashboard/update.ts#saved`),mte=(e,t)=>{let n=A7(e),r=Q(e,{activity:()=>i($5.Idle(),`src/page/dashboard/update.ts#activity~3`),maybeRefusal:()=>i(w({place:n,title:`Not saved`,reason:t}),`src/page/dashboard/update.ts#maybeRefusal~2`)});return i(n===`Page`?{model:r,commands:[QX({id:w7})]}:{model:r},`src/page/dashboard/update.ts#refused`)},hte=e=>i(D(TA(n7(e)),{onNone:()=>i([],`src/page/dashboard/update.ts#onNone~3`),onSome:({overview:e})=>i(j(e.resources,({identifier:e})=>i(e,`src/page/dashboard/update.ts#anonymous~12`)),`src/page/dashboard/update.ts#onSome~3`)}),`src/page/dashboard/update.ts#resourceIdentifiers`),gte=e=>i(D(e.maybeForm,{onNone:()=>i({model:e},`src/page/dashboard/update.ts#onNone~4`),onSome:t=>i(fa(k5(t,hte(e)),{onFailure:t=>i({model:Q(e,{maybeRefusal:()=>i(w({place:`Editor`,title:`Not saved`,reason:t}),`src/page/dashboard/update.ts#maybeRefusal~3`)})},`src/page/dashboard/update.ts#onFailure`),onSuccess:t=>i(z7(e,t),`src/page/dashboard/update.ts#onSuccess`)}),`src/page/dashboard/update.ts#onSome~4`)}),`src/page/dashboard/update.ts#submitted`),_te=(e,t)=>i(i7(e)?{model:e}:O7.open(k7(Q(e,{maybeForm:()=>i(w(t),`src/page/dashboard/update.ts#maybeForm`)}),`Editor`)),`src/page/dashboard/update.ts#formOpened`),vte=(e,t)=>i($.match(t,{GotListingMessage:({message:t})=>{let n=E7.fold(e,t);return i(!AA(n7(e))&&AA(n7(n.model))?{model:n.model,commands:[...n.commands??[],Gq({text:T7})]}:n,`src/page/dashboard/update.ts#GotListingMessage`)},ClickedRetryListing:()=>i(E7.revalidateOrLoad(e),`src/page/dashboard/update.ts#ClickedRetryListing`),ClickedOpenForm:({form:t})=>i(_te(e,t),`src/page/dashboard/update.ts#ClickedOpenForm`),GotFormMessage:({message:t})=>i({model:Q(e,{maybeForm:k(e=>i(y5(e,t),`src/page/dashboard/update.ts#anonymous~13`))})},`src/page/dashboard/update.ts#GotFormMessage`),SubmittedForm:()=>i(gte(e),`src/page/dashboard/update.ts#SubmittedForm`),ClickedChange:({change:t})=>i(z7(e,t),`src/page/dashboard/update.ts#ClickedChange`),SucceededSaveChange:({change:t,maybeCredential:n})=>i(pte(e,t,n),`src/page/dashboard/update.ts#SucceededSaveChange`),FailedSaveChange:({reason:t})=>i(mte(e,t),`src/page/dashboard/update.ts#FailedSaveChange`),ClickedDismissCredentials:()=>i({model:Q(e,{credentials:()=>i([],`src/page/dashboard/update.ts#credentials~2`)})},`src/page/dashboard/update.ts#ClickedDismissCredentials`),ClickedSignOut:()=>i($5.guards.Idle(e.activity)?{model:Q(e,{activity:()=>i($5.SigningOut(),`src/page/dashboard/update.ts#activity~4`)}),commands:[S7()]}:{model:e},`src/page/dashboard/update.ts#ClickedSignOut`),SucceededSignOut:()=>i({model:e},`src/page/dashboard/update.ts#SucceededSignOut`),FailedSignOut:({reason:t})=>i({model:Q(e,{activity:()=>i($5.Idle(),`src/page/dashboard/update.ts#activity~5`),maybeRefusal:()=>i(w({place:`Page`,title:`Not signed out`,reason:t}),`src/page/dashboard/update.ts#maybeRefusal~4`)}),commands:[QX({id:w7})]},`src/page/dashboard/update.ts#FailedSignOut`),GotEditorMessage:({message:t})=>i(O7.update(e,t),`src/page/dashboard/update.ts#GotEditorMessage`),GotConfirmMessage:({message:t})=>i(N7(e,t),`src/page/dashboard/update.ts#GotConfirmMessage`),GotCredentialCopyMessage:({credentialId:t,message:n})=>i(R7(e,t,n),`src/page/dashboard/update.ts#GotCredentialCopyMessage`),GotIssuerCopyMessage:({message:t})=>i(I7(e,t),`src/page/dashboard/update.ts#GotIssuerCopyMessage`),GotTopBarMessage:()=>i({model:e},`src/page/dashboard/update.ts#GotTopBarMessage`),CompletedAnnounce:()=>i({model:e},`src/page/dashboard/update.ts#CompletedAnnounce`),CompletedFocus:()=>i({model:e},`src/page/dashboard/update.ts#CompletedFocus`)}),`src/page/dashboard/update.ts#update~2`),W7=`clankerauth`,G7=e=>i(w$({brand:[T$({label:W7},e)]},e),`src/page/wall.ts#markView`),K7=(e,t,n)=>i(C$({body:[n.h1([n.Class(`sr-only`)],[e]),t]},n),`src/page/wall.ts#wallView`),q7=(e,t,n)=>i(K7(e,SX({isNarrow:!0,...t,body:[G7(n),...t.body]},n),n),`src/page/wall.ts#wallCardView`),J7=(e,t,n)=>i(K7(e,wX({isNarrow:!0,...t,body:[G7(n),...t.body]},n),n),`src/page/wall.ts#wallFormView`),yte=new Intl.DateTimeFormat(sX,{day:`numeric`,month:`short`,year:`numeric`,hour:`2-digit`,minute:`2-digit`,hourCycle:`h23`}),Y7=e=>i(yte.format(dy(e)),`src/page/dashboard/parts.ts#momentOf`),X7=(e,t)=>i(t.p([t.Class(`note-line`)],[e]),`src/page/dashboard/parts.ts#noteView`),Z7=(e,t)=>i(Na(e,{onEmpty:()=>i([],`src/page/dashboard/parts.ts#onEmpty`),onNonEmpty:e=>i([t.span([t.Class(`push`)],[E$({body:e},t)])],`src/page/dashboard/parts.ts#onNonEmpty`)}),`src/page/dashboard/parts.ts#footView`),Q7=(e,t)=>i(oX({label:e.label,isSmall:!0,isDisabled:e.isHeld,onClick:e.onClick,attributes:[t.AriaLabel(`${e.label} ${e.itemName}`)]},t),`src/page/dashboard/parts.ts#itemButtonView`),$7=(e,t,n)=>i(Na(e,{onEmpty:()=>i([t],`src/page/codes.ts#onEmpty`),onNonEmpty:e=>i(uo(j(e,e=>i(n.code([],[e]),`src/page/codes.ts#anonymous`)),` `),`src/page/codes.ts#onNonEmpty`)}),`src/page/codes.ts#codesView`),bte=`Compatible MCP clients register themselves when they connect; registration alone grants no access. Revoking or blocking stops new authorization and refresh at once; already-issued access tokens stay valid until they expire, at most fifteen minutes.`,xte={managed:`Managed registration · first party, no consent screen`,dcr:`Dynamic registration`,cimd:`Client ID Metadata Document`},e9=({onboarding:e})=>i(e===void 0||e===`managed`,`src/page/dashboard/clients.ts#isManaged`),t9=({client_id:e,client_name:t})=>i(t??e,`src/page/dashboard/clients.ts#nameOf`),Ste=({listing:e,isHeld:t},n)=>i(XZ({title:`Clients`,meta:`${e.overview.clients.length}`,actions:[oX({label:`register client`,glyph:`plus`,isDisabled:t,onClick:$.ClickedOpenForm({form:d5()})},n)]},n),`src/page/dashboard/clients.ts#clientsHeadView`),Cte=({approvedAt:e,refreshedAt:t})=>i(Mo([D(O(e),{onNone:()=>i(`First party, no consent`,`src/page/dashboard/clients.ts#onNone`),onSome:e=>i(`Approved ${Y7(e)}`,`src/page/dashboard/clients.ts#onSome`)}),D(O(t),{onNone:()=>i(`no refresh token`,`src/page/dashboard/clients.ts#onNone~2`),onSome:e=>i(`last token ${Y7(e)}`,`src/page/dashboard/clients.ts#onSome~2`)})],` · `),`src/page/dashboard/clients.ts#historyOf`),wte=(e,t,n)=>{let{resources:r,connections:a}=e.listing.overview,o=e=>i(D(io(r,t=>i(t.identifier===e,`src/page/dashboard/clients.ts#anonymous`)),{onNone:()=>i(e,`src/page/dashboard/clients.ts#onNone~3`),onSome:({name:e})=>i(e,`src/page/dashboard/clients.ts#onSome~3`)}),`src/page/dashboard/clients.ts#resourceName`);return i(g(a,wo(({client_id:e})=>i(e===t.client_id,`src/page/dashboard/clients.ts#anonymous~2`)),Na({onEmpty:()=>i(X7(e9(t)?`Holds no refresh token.`:`No Resource approved yet.`,n),`src/page/dashboard/clients.ts#onEmpty`),onNonEmpty:r=>i(OQ({label:`Connections of ${t9(t)}`,rows:r,rowKey:({resource:e})=>i(e,`src/page/dashboard/clients.ts#rowKey`),columns:[{key:`resource`,header:`Resource`,cell:({resource:e})=>i([o(e),` `,n.code([],[e])],`src/page/dashboard/clients.ts#cell`)},{key:`scopes`,header:`Scopes`,cell:({scopes:e})=>i([Na(e,{onEmpty:()=>i(`No Resource scopes`,`src/page/dashboard/clients.ts#onEmpty~2`),onNonEmpty:Mo(` · `)})],`src/page/dashboard/clients.ts#cell~2`)},{key:`history`,header:`History`,cell:e=>i([Cte(e)],`src/page/dashboard/clients.ts#cell~3`)}],actions:({resource:r})=>i([oX({label:`revoke`,isSmall:!0,isDisabled:e.isHeld,onClick:$.ClickedChange({change:B8.RevokeClient({clientId:t.client_id,maybeResource:w(r)})}),attributes:[n.AriaLabel(`Revoke ${o(r)}`)]},n)],`src/page/dashboard/clients.ts#actions`)},n),`src/page/dashboard/clients.ts#onNonEmpty`)})),`src/page/dashboard/clients.ts#connectionsView`)},Tte=(e,t,n,r)=>{let{client_id:a,blocked:o=!1,token_endpoint_auth_method:s}=t,c=s!==`none`,l=(n,a)=>i(Q7({label:n,itemName:t9(t),onClick:a,isHeld:e.isHeld},r),`src/page/dashboard/clients.ts#smallButton`),u=e=>i($.ClickedChange({change:e}),`src/page/dashboard/clients.ts#change`);return i([...e9(t)?[l(`edit`,$.ClickedOpenForm({form:f5(t)})),l(`access`,$.ClickedOpenForm({form:p5(t,n)}))]:[],...e9(t)&&c?[l(`rotate secret`,u(B8.RotateSecret({clientId:a})))]:[],l(`revoke all`,u(B8.RevokeClient({clientId:a,maybeResource:C()}))),l(o?`unblock`:`block`,u(B8.BlockClient({clientId:a,isBlocked:!o}))),l(e9(t)?`delete`:`forget`,u(B8.DeleteClient({clientId:a,isManaged:e9(t)})))],`src/page/dashboard/clients.ts#clientButtons`)},Ete=(e,t,n)=>{let{resources:r,clientAccess:a}=e.listing.overview,o=xo(a,({client_id:e,resource:n})=>i(e===t.client_id?[n]:[],`src/page/dashboard/clients.ts#anonymous~3`));return i(QZ({id:`client-${t.client_id}`,title:t.client_name??`Unnamed client`,meta:t.token_endpoint_auth_method===`none`?`public · pkce`:`confidential · pkce`,body:[rQ({items:[{label:`client id`,value:[t.client_id],isCode:!0},{label:`redirect uris`,value:$7(t.redirect_uris,`None`,n)},{label:`registration`,value:[xte[t.onboarding??`managed`]]},...t.blocked===!0?[{label:`status`,value:[gX({label:`blocked`,tone:`Blocked`},n)]}]:[],...e9(t)?[{label:`allowed resources`,value:[`${o.length} of ${r.length}`]}]:[]]},n),wte(e,t,n),X7(e9(t)?`Skips consent for its allowed Resources. Removing one revokes its authorization for it.`:`May ask for any Resource; each needs your consent. Revoke a connection, or block the Client to keep it out.`,n)],foot:Z7(Tte(e,t,o,n),n)},n),`src/page/dashboard/clients.ts#clientPanel`)},Dte=(e,t)=>i([X7(bte,t),...Na(e.listing.overview.clients,{onEmpty:()=>i([QZ({id:`clients-empty`,title:`Clients`,meta:`0`,body:[_X({title:`No Clients registered`,headingLevel:3,body:[`Connect your MCP client to a configured server to onboard automatically, or register a managed Client here.`]},t)]},t)],`src/page/dashboard/clients.ts#onEmpty~3`),onNonEmpty:n=>i(j(n,n=>i(Ete(e,n,t),`src/page/dashboard/clients.ts#anonymous~4`)),`src/page/dashboard/clients.ts#onNonEmpty~2`)})],`src/page/dashboard/clients.ts#clientsPanels`),Ote=e=>i(t5.match(e,{Resource:({mode:e})=>i(Q8.match(e,{Add:()=>i({title:`Add resource`,submit:`add resource`},`src/page/dashboard/formView.ts#Add`),Edit:()=>i({title:`Edit resource`,submit:`save resource`},`src/page/dashboard/formView.ts#Edit`)}),`src/page/dashboard/formView.ts#Resource`),Key:({mode:e})=>i($8.match(e,{Create:()=>i({title:`Create API key`,submit:`create key`},`src/page/dashboard/formView.ts#Create`),Rename:()=>i({title:`Rename key`,submit:`save name`},`src/page/dashboard/formView.ts#Rename`),Grants:()=>i({title:`Edit grants`,submit:`save grants`},`src/page/dashboard/formView.ts#Grants`)}),`src/page/dashboard/formView.ts#Key`),Client:({mode:e})=>i(e5.match(e,{Register:()=>i({title:`Register client`,submit:`register client`},`src/page/dashboard/formView.ts#Register`),Edit:()=>i({title:`Edit client`,submit:`save client`},`src/page/dashboard/formView.ts#Edit~2`),Access:()=>i({title:`Allowed resources`,submit:`save access`},`src/page/dashboard/formView.ts#Access`)}),`src/page/dashboard/formView.ts#Client`)}),`src/page/dashboard/formView.ts#labelsOf`),kte={none:`Public client (PKCE only)`,client_secret_basic:`Confidential client · HTTP Basic secret`,client_secret_post:`Confidential client · secret in request body`},Ate=`Optional. Separate scopes with spaces. offline_access is reserved.`,jte=3,n9=(e,t,n)=>i(NZ({id:`form-name`,label:e.label,value:e.value,onInput:e.onInput,isRequired:!0,inputAttributes:t.initialFocus},n),`src/page/dashboard/formView.ts#nameField`),Mte=({mode:e,draft:t},n,r)=>{let a=Q8.guards.Add(e);return i([n9({label:`Name`,value:t.name,onInput:e=>i(n5.UpdatedResourceName({value:e}),`src/page/dashboard/formView.ts#onInput`)},n,r),a?NZ({id:`form-identifier`,label:`HTTP or HTTPS identifier`,type:`url`,value:t.identifier,onInput:e=>i(n5.UpdatedResourceIdentifier({value:e}),`src/page/dashboard/formView.ts#onInput~2`),isRequired:!0,isMono:!0,help:`The identifier is the token audience and cannot be changed later. Use the canonical form a client sends back, such as the application’s origin root with its trailing slash.`,inputAttributes:[r.Placeholder(`https://notes.internal/`)]},r):rQ({items:[{label:`identifier`,value:[t.identifier],isCode:!0}]},r),NZ({id:`form-scopes`,label:`Scopes`,value:t.scopes,onInput:e=>i(n5.UpdatedResourceScopes({value:e}),`src/page/dashboard/formView.ts#onInput~3`),isMono:!0,help:a?Ate:`Added scopes need new consent. Removed scopes are no longer issued, but approvals are kept and work again if the scope is restored.`,inputAttributes:[r.Placeholder(`notes:read notes:write`)]},r)],`src/page/dashboard/formView.ts#resourceFields`)},r9=(e,t,n)=>i(Na(t,{onEmpty:()=>i([X7(`Add a Resource to grant access.`,n)],`src/page/dashboard/formView.ts#onEmpty`),onNonEmpty:t=>i(j(t,({identifier:t,name:r,scopes:a})=>i(PZ({id:`form-grants-${t}`,label:r,body:[n.code([],[t]),iQ({label:`Scopes of ${r}`,rows:j(a,r=>i(dQ({key:r,body:[n.code([],[r])],select:{id:`form-grant-${t}-${r}`,isChecked:Fr(ba(e,t),e=>i(po(e,r),`src/page/dashboard/formView.ts#anonymous~3`)),onToggle:e=>i(n5.ToggledKeyGrant({resource:t,scope:r,isChecked:e}),`src/page/dashboard/formView.ts#onToggle`)}},n),`src/page/dashboard/formView.ts#anonymous~2`))},n)]},n),`src/page/dashboard/formView.ts#anonymous`)),`src/page/dashboard/formView.ts#onNonEmpty`)}),`src/page/dashboard/formView.ts#grantsView`),Nte=({mode:e,draft:t},n,r)=>{let a=n9({label:`Name`,value:t.name,onInput:e=>i(n5.UpdatedKeyName({value:e}),`src/page/dashboard/formView.ts#onInput~4`)},n,r);return i($8.match(e,{Create:()=>i([a,...r9(t.grants,n.resources,r),NZ({id:`form-expiry`,label:`Expiry (optional)`,type:`datetime-local`,value:t.expiry,onInput:e=>i(n5.UpdatedKeyExpiry({value:e}),`src/page/dashboard/formView.ts#onInput~5`),help:`Blank means valid until revoked. The key is shown once and works within about a minute.`},r)],`src/page/dashboard/formView.ts#Create~2`),Rename:()=>i([a],`src/page/dashboard/formView.ts#Rename~2`),Grants:()=>i([...r9(t.grants,n.resources,r),X7(`Saving replaces all grants, including any not currently available, with the selected scopes.`,r)],`src/page/dashboard/formView.ts#Grants~2`)}),`src/page/dashboard/formView.ts#keyFields`)},i9=(e,t,n)=>i(Na(t,{onEmpty:()=>i(X7(`There are no Resources yet; add one to give this Client access.`,n),`src/page/dashboard/formView.ts#onEmpty~2`),onNonEmpty:t=>i(PZ({id:`form-resources`,label:`Allowed resources`,body:[iQ({label:`Allowed resources`,rows:j(t,({identifier:t,name:r})=>i(dQ({key:t,body:[r,` `,n.code([],[t])],select:{id:`form-resource-${t}`,isChecked:po(e,t),onToggle:e=>i(n5.ToggledClientResource({resource:t,isChecked:e}),`src/page/dashboard/formView.ts#onToggle~2`)}},n),`src/page/dashboard/formView.ts#anonymous~4`))},n)]},n),`src/page/dashboard/formView.ts#onNonEmpty~2`)}),`src/page/dashboard/formView.ts#resourceChoicesView`),a9=(e,t)=>i(kQ({id:`form-redirect-uris`,label:`Redirect URIs`,value:e,onInput:e=>i(n5.UpdatedClientRedirectUris({value:e}),`src/page/dashboard/formView.ts#onInput~6`),help:`One per line.`,isRequired:!0,isMono:!0,rows:jte,textareaAttributes:[t.Placeholder(`https://app.internal/callback`),t.Spellcheck(!1)]},t),`src/page/dashboard/formView.ts#redirectUrisField`),Pte=CE(R6),Fte=(e,t)=>i(gQ({id:`form-auth-method`,label:`Client authentication`,value:e,onChange:t=>i(n5.SelectedClientAuthMethod({method:Sr(Pte(t),()=>i(e,`src/page/dashboard/formView.ts#anonymous~5`))}),`src/page/dashboard/formView.ts#onChange`),options:j(R6.literals,e=>i({value:e,label:kte[e]},`src/page/dashboard/formView.ts#anonymous~6`)),help:`S256 PKCE is always required. It cannot be changed after registration.`},t),`src/page/dashboard/formView.ts#authMethodField`),o9=(e,t)=>i(TX({id:`form-native`,label:`Native or desktop client`,note:`Its redirect is a loopback address on the device.`,isChecked:e,onToggle:e=>i(n5.ToggledClientNative({isChecked:e}),`src/page/dashboard/formView.ts#onToggle~3`)},t),`src/page/dashboard/formView.ts#nativeChoice`),Ite=({mode:e,draft:t},n,r)=>{let a=n9({label:`Client name`,value:t.name,onInput:e=>i(n5.UpdatedClientName({value:e}),`src/page/dashboard/formView.ts#onInput~7`)},n,r);return i(e5.match(e,{Register:()=>i([a,a9(t.redirectUris,r),i9(t.resources,n.resources,r),o9(t.isNative,r),Fte(t.authMethod,r),X7(`Clients you register here are first party and skip the consent screen.`,r)],`src/page/dashboard/formView.ts#Register~2`),Edit:()=>i([a,a9(t.redirectUris,r),o9(t.isNative,r),X7(`The authentication method is fixed at registration.`,r)],`src/page/dashboard/formView.ts#Edit~3`),Access:()=>i([i9(t.resources,n.resources,r),X7(`This Client skips consent for the Resources ticked here. Unticking one revokes its authorization for it.`,r)],`src/page/dashboard/formView.ts#Access~2`)}),`src/page/dashboard/formView.ts#clientFields`)},Lte=FP((e,t,n)=>i(SQ({body:t5.match(e,{Resource:e=>i(Mte(e,t,n),`src/page/dashboard/formView.ts#Resource~2`),Key:e=>i(Nte(e,t,n),`src/page/dashboard/formView.ts#Key~2`),Client:e=>i(Ite(e,t,n),`src/page/dashboard/formView.ts#Client~2`)})},n),`src/page/dashboard/formView.ts#anonymous~7`)),Rte=`Direct access for CLIs and automation. Keys carry only the scopes you select, filtered by current Resource policy. Policy changes do not revoke stored grants; restoring policy restores access. Resource servers verify keys offline: a new key works within seconds and a key's expiry applies at once; any other change takes effect within about a minute, and a Resource server that cannot reach this issuer keeps accepting the keys it last saw for up to 24 hours. A grant on clankerauth administration lets a key administer this issuer; disabling, deleting or re-scoping the key ends that access at once.`,zte=(e,t)=>i(XZ({title:`API keys`,meta:`${e.listing.keys.length}`,actions:[oX({label:`create key`,glyph:`plus`,isDisabled:e.isHeld,onClick:$.ClickedOpenForm({form:a5()})},t)]},t),`src/page/dashboard/keys.ts#keysHeadView`),Bte=(e,t)=>i(Na(va(e.permissions),{onEmpty:()=>i([`None`],`src/page/dashboard/keys.ts#onEmpty`),onNonEmpty:e=>i(uo(j(e,([e,n])=>i(t.span([],[t.code([],[e]),` `,Mo(n,` · `)]),`src/page/dashboard/keys.ts#anonymous`)),t.br([])),`src/page/dashboard/keys.ts#onNonEmpty`)}),`src/page/dashboard/keys.ts#grantsView`),Vte=(e,t,n)=>{let{keyId:r,name:a,enabled:o,expiresAt:s,createdAt:c}=t,l=(t,r)=>i(Q7({label:t,itemName:a,onClick:r,isHeld:e.isHeld},n),`src/page/dashboard/keys.ts#smallButton`);return i(QZ({id:`key-${r}`,title:a,meta:o?`enabled`:`disabled`,body:[rQ({items:[{label:`state`,value:[gX(o?{label:`enabled`,tone:`Go`}:{label:`disabled`},n)]},{label:`expires`,value:[D(O(s),{onNone:()=>i(`Valid until revoked`,`src/page/dashboard/keys.ts#onNone`),onSome:Y7})]},{label:`created`,value:[Y7(c)]},{label:`grants`,value:Bte(t,n)}]},n)],foot:Z7([l(`rename`,$.ClickedOpenForm({form:o5(t)})),l(`edit grants`,$.ClickedOpenForm({form:l5(t,e.listing.overview.resources)})),l(o?`disable`:`enable`,$.ClickedChange({change:B8.SetKeyEnabled({keyId:r,isEnabled:!o})})),l(`delete`,$.ClickedChange({change:B8.DeleteKey({keyId:r,name:a})}))],n)},n),`src/page/dashboard/keys.ts#keyPanel`)},Hte=(e,t)=>i([X7(Rte,t),...Na(e.listing.keys,{onEmpty:()=>i([QZ({id:`keys-empty`,title:`API keys`,meta:`0`,body:[_X({title:`No API keys`,headingLevel:3,body:[`Create a key for a CLI or automation that needs direct access.`]},t)]},t)],`src/page/dashboard/keys.ts#onEmpty~2`),onNonEmpty:n=>i(j(n,n=>i(Vte(e,n,t),`src/page/dashboard/keys.ts#anonymous~2`)),`src/page/dashboard/keys.ts#onNonEmpty~2`)})],`src/page/dashboard/keys.ts#keysPanels`),Ute=`Built-in administration resource, fixed. OAuth access tokens and API keys granted on it administer this issuer. clankerauth:read allows listing; clankerauth:write also allows every change.`,Wte=({listing:e,isHeld:t},n)=>i(XZ({title:`Resources`,meta:`${e.overview.resources.length}`,actions:[oX({label:`add resource`,glyph:`plus`,isDisabled:t,onClick:$.ClickedOpenForm({form:r5()})},n)]},n),`src/page/dashboard/resources.ts#resourcesHeadView`),Gte=({listing:e},t)=>{let{clients:n,connections:r}=e.overview;return i(g(n,wo(({client_id:e})=>i(Do(r,n=>i(n.client_id===e&&n.resource===t,`src/page/dashboard/resources.ts#anonymous~2`)),`src/page/dashboard/resources.ts#anonymous`)),Na({onEmpty:()=>i(`None`,`src/page/dashboard/resources.ts#onEmpty`),onNonEmpty:_(j(({client_id:e,client_name:t})=>i(t??e,`src/page/dashboard/resources.ts#anonymous~3`)),Mo(`, `))})),`src/page/dashboard/resources.ts#connectedNames`)},Kte=(e,t,n)=>{let{identifier:r,name:a,scopes:o,builtIn:s}=t;return i(QZ({id:`resource-${r}`,title:a,meta:s?`built in`:`${o.length} scopes`,body:[rQ({items:[{label:`identifier`,value:[r],isCode:!0},{label:`scopes`,value:$7(o,`None`,n)},{label:`connected clients`,value:[Gte(e,r)]}]},n),...s?[X7(Ute,n)]:[]],foot:Z7(s?[]:[Q7({label:`edit`,itemName:a,onClick:$.ClickedOpenForm({form:i5(t)}),isHeld:e.isHeld},n),Q7({label:`delete`,itemName:a,onClick:$.ClickedChange({change:B8.DeleteResource({identifier:r})}),isHeld:e.isHeld},n)],n)},n),`src/page/dashboard/resources.ts#resourcePanel`)},qte=(e,t)=>i([X7(`Protected APIs and MCP servers, and the scopes they define.`,t),...Na(e.listing.overview.resources,{onEmpty:()=>i([QZ({id:`resources-empty`,title:`Resources`,meta:`0`,body:[_X({title:`Add your first Resource`,headingLevel:3,body:[`Define a protected API or MCP server. Compatible MCP clients onboard automatically when you connect.`]},t)]},t)],`src/page/dashboard/resources.ts#onEmpty~2`),onNonEmpty:n=>i(j(n,n=>i(Kte(e,n,t),`src/page/dashboard/resources.ts#anonymous~4`)),`src/page/dashboard/resources.ts#onNonEmpty`)})],`src/page/dashboard/resources.ts#resourcesPanels`),s9=e=>i(TZ({body:[e.h1([e.Class(`sr-only`)],[`Dashboard`]),WZ({isLoading:!0,label:`loading the dashboard`},e)]},e),`src/page/dashboard/view.ts#waitingView`),Jte=(e,t)=>i(q7(`Unable to continue`,{title:`Dashboard`,meta:`not available`,actions:[UZ({label:`sign in`,href:p7()},t),oX({label:`try again`,variant:`Primary`,isDefault:!0,onClick:$.ClickedRetryListing()},t)],body:[$X({tone:`Error`,title:`Unable to continue`,body:[e]},t)]},t),`src/page/dashboard/view.ts#unavailableView`),Yte=(e,t,n,r)=>i(S$({brand:[T$({label:W7,href:u7()},r)],nav:[YZ({label:`Dashboard`,items:[{href:u7(),label:`clients`,count:t.overview.clients.length,isCurrent:c7.guards.Clients(n)},{href:d7(),label:`resources`,count:t.overview.resources.length,isCurrent:c7.guards.Resources(n)},{href:f7(),label:`api keys`,count:t.keys.length,isCurrent:c7.guards.Keys(n)}]},r)],tools:[r.span([r.Class(`meta`)],[t.overview.email]),cX({glyph:`log-out`,label:`Sign out`,onClick:$.ClickedSignOut(),isDisabled:!$5.guards.Idle(e.activity)},r)],toParentMessage:e=>i($.GotTopBarMessage({message:e}),`src/page/dashboard/view.ts#toParentMessage`)},r),`src/page/dashboard/view.ts#topBarView`),Xte=(e,t)=>i([...AA(n7(e))?[mX({title:`Not refreshed`,body:[T7],actions:[oX({label:`retry refresh`,isSmall:!0,onClick:$.ClickedRetryListing()},t)]},t)]:[],...jr(k(o7(e,`Page`),({title:e,reason:n})=>i(mX({tone:`Error`,title:e,body:[n],attributes:[t.Id(w7),t.Tabindex(-1)]},t),`src/page/dashboard/view.ts#anonymous`)))],`src/page/dashboard/view.ts#noticesView`),Zte=e=>i(V8.match(e,{ClientSecret:({name:e})=>i(`${e} client secret`,`src/page/dashboard/view.ts#ClientSecret`),ApiKey:({name:e})=>i(`${e} API key`,`src/page/dashboard/view.ts#ApiKey`)}),`src/page/dashboard/view.ts#credentialLabel`),c9=e=>i(V8.match(e,{ClientSecret:({secret:e})=>i(e,`src/page/dashboard/view.ts#ClientSecret~2`),ApiKey:({key:e})=>i(e,`src/page/dashboard/view.ts#ApiKey~2`)}),`src/page/dashboard/view.ts#secretOf`),Qte=({credential:e,copy:t},n)=>{let r=Zte(e),a=n.submodel({slotId:gZ(t),model:t,view:wZ,viewInputs:{text:c9(e),label:`Copy ${r}`},toParentMessage:t=>i($.GotCredentialCopyMessage({credentialId:H8(e),message:t}),`src/page/dashboard/view.ts#toParentMessage~2`)});return i([...V8.match(e,{ClientSecret:({clientId:e})=>i([rQ({items:[{label:`client id`,value:[e],isCode:!0}]},n)],`src/page/dashboard/view.ts#ClientSecret~3`),ApiKey:()=>i([],`src/page/dashboard/view.ts#ApiKey~3`)}),fQ({value:c9(e),label:r,actions:[a]},n)],`src/page/dashboard/view.ts#credentialView`)},$te=(e,t)=>i(Na(e.credentials,{onEmpty:()=>i([],`src/page/dashboard/view.ts#onEmpty`),onNonEmpty:e=>i([QZ({id:`credentials`,title:`New credentials`,meta:`shown once`,body:[mX({glyph:`key`,title:`Store these now`,body:[`API keys and client secrets are shown only once. Once dismissed, they cannot be shown again.`]},t),...xo(e,e=>i(Qte(e,t),`src/page/dashboard/view.ts#anonymous~2`)),t.div([t.Class(`save-row`)],[t.span([t.Class(`push`)],[oX({label:`I've stored them`,variant:`Primary`,onClick:$.ClickedDismissCredentials()},t)])])]},t)],`src/page/dashboard/view.ts#onNonEmpty`)}),`src/page/dashboard/view.ts#credentialsView`),ene=(e,t,n)=>{let{issuer:r,email:a}=t.overview;return i(QZ({id:`issuer`,title:`Issuer`,meta:`canonical`,body:[rQ({items:[{label:`issuer`,value:[r],isCode:!0,actions:[n.submodel({slotId:gZ(e.issuerCopy),model:e.issuerCopy,view:wZ,viewInputs:{text:r,label:`Copy issuer`},toParentMessage:e=>i($.GotIssuerCopyMessage({message:e}),`src/page/dashboard/view.ts#toParentMessage~3`)})]},{label:`signed in as`,value:[a]}]},n)]},n),`src/page/dashboard/view.ts#issuerView`)},tne=(e,t,n)=>i(G(t).pipe(nA({Clients:()=>i({head:Ste(e,n),panels:Dte(e,n)},`src/page/dashboard/view.ts#Clients`),Resources:()=>i({head:Wte(e,n),panels:qte(e,n)},`src/page/dashboard/view.ts#Resources`),Keys:()=>i({head:zte(e,n),panels:Hte(e,n)},`src/page/dashboard/view.ts#Keys`)})),`src/page/dashboard/view.ts#sectionViews`),l9=e=>i((()=>i(Mq(e),`src/page/dashboard/view.ts#anonymous~3`)),`src/page/dashboard/view.ts#liveRegionView`),nne=(e,t,n,r,a)=>{let{title:o,submit:s}=Ote(t);return i(wX({id:C7,title:o,titleAttributes:r.title,closeAttributes:r.closeButton,isBusy:r7(e),onSubmit:$.SubmittedForm(),actionBarAttributes:r.actionBar,cancel:`cancel`,submit:s,body:[...jr(k(o7(e,`Editor`),({title:e,reason:t})=>i(mX({tone:`Error`,title:e,body:[t]},a),`src/page/dashboard/view.ts#anonymous~4`))),a.submodel({slotId:`dashboard-form`,model:t,view:Lte,viewInputs:{resources:n.listing.overview.resources,initialFocus:r.initialFocus},toParentMessage:e=>i($.GotFormMessage({message:e}),`src/page/dashboard/view.ts#toParentMessage~4`)})]},a),`src/page/dashboard/view.ts#editorCardView`)},rne=(e,t,n)=>i(n.submodel({slotId:FX(e.editor),model:e.editor,view:XX,viewInputs:{toLiveRegionView:IX(e.editor)&&!lZ(e.confirm)?l9(n):void 0,toView:r=>i(D(e.maybeForm,{onNone:()=>i(n.empty,`src/page/dashboard/view.ts#onNone`),onSome:a=>i(nne(e,a,t,r,n),`src/page/dashboard/view.ts#onSome`)}),`src/page/dashboard/view.ts#toView`)},toParentMessage:e=>i($.GotEditorMessage({message:e}),`src/page/dashboard/view.ts#toParentMessage~5`)}),`src/page/dashboard/view.ts#editorView`),ine={title:``,question:``,body:``,label:``,isDanger:!1},ane=(e,t)=>{let n=Sr(s7(e),()=>i(ine,`src/page/dashboard/view.ts#anonymous~5`));return i(t.submodel({slotId:cZ(e.confirm),model:e.confirm,view:dZ,viewInputs:{title:n.title,question:n.question,body:[n.body],label:n.label,isDanger:n.isDanger,isBusy:r7(e),toDetailView:D(o7(e,`Confirm`),{onNone:()=>i(void 0,`src/page/dashboard/view.ts#onNone~2`),onSome:({title:e,reason:n})=>i((()=>i([mX({tone:`Error`,title:e,body:[n]},t)],`src/page/dashboard/view.ts#anonymous~6`)),`src/page/dashboard/view.ts#onSome~2`)}),toLiveRegionView:lZ(e.confirm)?l9(t):void 0},toParentMessage:e=>i($.GotConfirmMessage({message:e}),`src/page/dashboard/view.ts#toParentMessage~6`)}),`src/page/dashboard/view.ts#confirmView`)},u9=(e,t,n,r)=>{let a={listing:t,isHeld:i7(e)},{head:o,panels:s}=tne(a,n,r);return i(r.div([],[Yte(e,t,n,r),TZ({body:[o,...Xte(e,r),...$te(e,r),...s,ene(e,t,r)]},r),rne(e,a,r),ane(e,r)]),`src/page/dashboard/view.ts#consoleView`)},one=FP((e,{section:t},n)=>i(cte(n7(e),{onIdle:()=>i(s9(n),`src/page/dashboard/view.ts#onIdle`),onLoading:()=>i(s9(n),`src/page/dashboard/view.ts#onLoading`),onFailure:e=>i(Jte(e,n),`src/page/dashboard/view.ts#onFailure`),onRefreshing:r=>i(u9(e,r,t,n),`src/page/dashboard/view.ts#onRefreshing`),onStale:({data:r})=>i(u9(e,r,t,n),`src/page/dashboard/view.ts#onStale`),onSuccess:r=>i(u9(e,r,t,n),`src/page/dashboard/view.ts#onSuccess`)}),`src/page/dashboard/view.ts#anonymous~7`)),d9=U({clientId:V,scopes:W(V),resources:W(V),maybeRedirect:UD(V),maybeClaims:UD(V)}),sne=YE([`Undecided`,`Allowing`,`Denying`]),f9=gA({Stopped:{reason:V},Loading:{request:d9},Asking:{request:d9,maybeName:UD(V),granted:W(V),decision:sne,maybeRefusal:UD(V),isClaimsOpen:H}}),p9=hA({SucceededFetchClientName:{maybeName:UD(V)},FailedFetchClientName:{reason:V},ToggledScope:{scope:V,isChecked:H},ToggledClaims:{isOpen:H},ClickedAllow:{},ClickedDeny:{},SucceededDecideConsent:{},FailedDecideConsent:{reason:V}}),cne=lH(`FetchClientName`,{args:{clientId:V},messages:[p9.SucceededFetchClientName,p9.FailedFetchClientName],execute:({clientId:e})=>i(R8(e).pipe(Om({onFailure:e=>i(p9.FailedFetchClientName({reason:e}),`src/page/consent.ts#onFailure`),onSuccess:e=>i(p9.SucceededFetchClientName({maybeName:e}),`src/page/consent.ts#onSuccess`)})),`src/page/consent.ts#execute`)}),lne=lH(`DecideConsent`,{args:{accept:H,maybeScope:UD(V)},messages:[p9.SucceededDecideConsent,p9.FailedDecideConsent],execute:({accept:e,maybeScope:t})=>i(z8(e,t).pipe(Om({onFailure:e=>i(p9.FailedDecideConsent({reason:e}),`src/page/consent.ts#onFailure~2`),onSuccess:()=>i(p9.SucceededDecideConsent(),`src/page/consent.ts#onSuccess~2`)})),`src/page/consent.ts#execute~2`)}),une=`Start authorization from your application; this consent link is incomplete.`,dne=e=>{let t=new URLSearchParams(e);return i(g(O(t.get(`client_id`)),Mr(Np),Mr(()=>i(t.has(`sig`),`src/page/consent.ts#anonymous`)),k(e=>i({clientId:e,scopes:g(t.get(`scope`)??``,Pp(` `),wo(Np)),resources:t.getAll(`resource`),maybeRedirect:O(t.get(`redirect_uri`)),maybeClaims:O(t.get(`claims`))},`src/page/consent.ts#anonymous~2`))),`src/page/consent.ts#requestOf`)},fne=e=>i(D(dne(e),{onNone:()=>i({model:f9.Stopped({reason:une})},`src/page/consent.ts#onNone`),onSome:e=>i({model:f9.Loading({request:e}),commands:[cne({clientId:e.clientId})]},`src/page/consent.ts#onSome`)}),`src/page/consent.ts#init`),pne=`Tick at least one permission, or deny the request.`,m9=(e,t)=>i(f9.matchOrElse(e,{Asking:t},()=>i({model:e},`src/page/consent.ts#anonymous~3`)),`src/page/consent.ts#whileAsking`),h9=(e,t,n)=>i({model:Q(e,{decision:()=>i(t,`src/page/consent.ts#decision`),maybeRefusal:()=>i(C(),`src/page/consent.ts#maybeRefusal`)}),commands:[lne({accept:t===`Allowing`,maybeScope:n})]},`src/page/consent.ts#decided`),mne=e=>i(Na(e.granted,{onEmpty:()=>i(Na(e.request.scopes,{onEmpty:()=>i(h9(e,`Allowing`,C()),`src/page/consent.ts#onEmpty~2`),onNonEmpty:()=>i({model:Q(e,{maybeRefusal:()=>i(w(pne),`src/page/consent.ts#maybeRefusal~2`)})},`src/page/consent.ts#onNonEmpty`)}),`src/page/consent.ts#onEmpty`),onNonEmpty:t=>i(h9(e,`Allowing`,w(Mo(t,` `))),`src/page/consent.ts#onNonEmpty~2`)}),`src/page/consent.ts#allowed`),g9=(e,t)=>i(e.decision===`Undecided`?t(e):{model:e},`src/page/consent.ts#whenUndecided`),hne=(e,t)=>i(p9.match(t,{SucceededFetchClientName:({maybeName:t})=>i(f9.matchOrElse(e,{Loading:({request:e})=>i({model:f9.Asking({request:e,maybeName:t,granted:e.scopes,decision:`Undecided`,maybeRefusal:C(),isClaimsOpen:!1})},`src/page/consent.ts#Loading`)},()=>i({model:e},`src/page/consent.ts#anonymous~4`)),`src/page/consent.ts#SucceededFetchClientName`),FailedFetchClientName:({reason:e})=>i({model:f9.Stopped({reason:e})},`src/page/consent.ts#FailedFetchClientName`),ToggledScope:({scope:t,isChecked:n})=>i(m9(e,e=>i({model:Q(e,{granted:r=>i(wo(e.request.scopes,e=>i(e===t?n:po(r,e),`src/page/consent.ts#anonymous~6`)),`src/page/consent.ts#granted`)})},`src/page/consent.ts#anonymous~5`)),`src/page/consent.ts#ToggledScope`),ToggledClaims:({isOpen:t})=>i(m9(e,e=>i({model:Q(e,{isClaimsOpen:()=>i(t,`src/page/consent.ts#isClaimsOpen`)})},`src/page/consent.ts#anonymous~7`)),`src/page/consent.ts#ToggledClaims`),ClickedAllow:()=>i(m9(e,e=>i(g9(e,mne),`src/page/consent.ts#anonymous~8`)),`src/page/consent.ts#ClickedAllow`),ClickedDeny:()=>i(m9(e,e=>i(g9(e,e=>i(h9(e,`Denying`,C()),`src/page/consent.ts#anonymous~10`)),`src/page/consent.ts#anonymous~9`)),`src/page/consent.ts#ClickedDeny`),SucceededDecideConsent:()=>i({model:e},`src/page/consent.ts#SucceededDecideConsent`),FailedDecideConsent:({reason:t})=>i(m9(e,e=>i({model:Q(e,{decision:()=>i(`Undecided`,`src/page/consent.ts#decision~2`),maybeRefusal:()=>i(w(t),`src/page/consent.ts#maybeRefusal~3`)})},`src/page/consent.ts#anonymous~11`)),`src/page/consent.ts#FailedDecideConsent`)}),`src/page/consent.ts#update`),_9=`Allow this connection?`,gne=e=>i(g(e,Pr(e=>i(URL.canParse(e),`src/page/consent.ts#anonymous~12`)),k(e=>i(new URL(e),`src/page/consent.ts#anonymous~13`)),Mr(({protocol:e})=>i(e===`https:`,`src/page/consent.ts#anonymous~14`)),k(({hostname:e})=>i(e,`src/page/consent.ts#anonymous~15`))),`src/page/consent.ts#metadataHostOf`),_ne=(e,t)=>i(q7(_9,{title:`Allow access`,meta:`not available`,body:[$X({tone:`Error`,title:`Unable to continue`,body:[e]},t)]},t),`src/page/consent.ts#stoppedView`),vne=e=>i(q7(_9,{title:`Allow access`,body:[WZ({isLoading:!0,label:`reading the request`},e)]},e),`src/page/consent.ts#loadingView`),yne=(e,t)=>i(Na(e.request.scopes,{onEmpty:()=>i(t.p([t.Class(`note-line`)],[`No permissions requested beyond signing in.`]),`src/page/consent.ts#onEmpty~3`),onNonEmpty:n=>i(iQ({label:`Requested access`,rows:j(n,n=>i(dQ({key:n,body:[t.code([],[n])],select:{id:`consent-scope-${n}`,isChecked:po(e.granted,n),onToggle:e=>i(p9.ToggledScope({scope:n,isChecked:e}),`src/page/consent.ts#onToggle`)}},t),`src/page/consent.ts#anonymous~16`))},t),`src/page/consent.ts#onNonEmpty~3`)}),`src/page/consent.ts#scopesView`),bne=(e,t)=>i([oX({label:`deny`,onClick:p9.ClickedDeny(),isBusy:e.decision===`Denying`,isDisabled:e.decision===`Allowing`},t),oX({label:`allow access`,variant:`Primary`,isDefault:!0,onClick:p9.ClickedAllow(),isBusy:e.decision===`Allowing`,isDisabled:e.decision===`Denying`},t)],`src/page/consent.ts#decisionActionsView`),xne=({clientId:e,maybeRedirect:t,resources:n},r,a)=>i([HZ({label:r,isLarge:!0,meta:[a.code([],[e])]},a),a.p([],[a.strong([],[r]),` wants to act on your behalf.`]),...jr(k(gne(e),e=>i(a.p([],[`Client metadata host: `,a.strong([],[e])]),`src/page/consent.ts#anonymous~17`))),rQ({items:[{label:`client id`,value:[e],isCode:!0},{label:`callback`,value:D(t,{onNone:()=>i([`Not supplied in this request`],`src/page/consent.ts#onNone~2`),onSome:e=>i([a.code([],[e])],`src/page/consent.ts#onSome~2`)})},{label:`only for`,value:$7(n,`None in this request`,a)}]},a),a.p([a.Class(`note-line`)],[`The client supplies its display name. Review the identifier and callback before approving.`])],`src/page/consent.ts#requestDetailsView`),Sne=(e,t)=>i(jr(k(e.request.maybeClaims,n=>i(DZ({id:`consent-claims`,label:`additional identity claims`,isOpen:e.isClaimsOpen,onToggle:e=>i(p9.ToggledClaims({isOpen:e}),`src/page/consent.ts#onToggle~2`),body:[EX({label:`Requested claims`,body:[n]},t)]},t),`src/page/consent.ts#anonymous~18`))),`src/page/consent.ts#claimsView`),Cne=(e,t)=>i(jr(k(e.maybeRefusal,e=>i(mX({tone:`Error`,title:`Not answered`,body:[e]},t),`src/page/consent.ts#anonymous~19`))),`src/page/consent.ts#refusalView`),wne=(e,t)=>i(q7(_9,{title:`Allow access`,meta:`permission request`,isNarrow:!1,actions:bne(e,t),body:[...xne(e.request,Sr(e.maybeName,()=>i(e.request.clientId,`src/page/consent.ts#anonymous~20`)),t),yne(e,t),t.p([t.Class(`note-line`)],[`Untick anything this Client should not get. It receives only what stays ticked. Access tokens expire after fifteen minutes; offline access lets the Client renew them until you revoke its authorization.`]),...Sne(e,t),...Cne(e,t)]},t),`src/page/consent.ts#askingView`),Tne=FP((e,t)=>i(f9.match(e,{Stopped:({reason:e})=>i(_ne(e,t),`src/page/consent.ts#Stopped`),Loading:()=>i(vne(t),`src/page/consent.ts#Loading~2`),Asking:e=>i(wne(e,t),`src/page/consent.ts#Asking`)}),`src/page/consent.ts#anonymous~21`)),v9=gA({Missing:{field:YE([`Email`,`Password`])},Refused:{reason:V}}),y9=gA({ContinueAuthorization:{},RedirectTo:{destination:V}}),Ene=U({email:V,password:V,isPasswordShown:H,isSigningIn:H,maybeProblem:UD(v9),continuation:y9}),b9=hA({UpdatedEmail:{value:V},UpdatedPassword:{value:V},ToggledPasswordShown:{},SubmittedSignIn:{},SucceededSignIn:{},FailedSignIn:{reason:V},CompletedFocus:{},CompletedContinueAfterSignIn:{}}),x9=(e,t)=>{let n=new URLSearchParams(e);return i({email:``,password:``,isPasswordShown:!1,isSigningIn:!1,maybeProblem:C(),continuation:n.has(`sig`)?y9.ContinueAuthorization():y9.RedirectTo({destination:n.get(`rd`)??t})},`src/page/login.ts#init`)},Dne=lH(`SignIn`,{args:{email:V,password:V},messages:[b9.SucceededSignIn,b9.FailedSignIn],execute:({email:e,password:t})=>i(I8(e,t).pipe(Om({onFailure:e=>i(b9.FailedSignIn({reason:e}),`src/page/login.ts#onFailure`),onSuccess:()=>i(b9.SucceededSignIn(),`src/page/login.ts#onSuccess`)})),`src/page/login.ts#execute`)}),One=lH(`ContinueAfterSignIn`,{args:{destination:V},messages:[b9.CompletedContinueAfterSignIn],execute:({destination:e})=>i(Qp(()=>i(KU(URL.canParse(e,location.origin)&&new URL(e,location.origin).origin===location.origin?e:u7()),`src/page/login.ts#anonymous`)).pipe(mm(b9.CompletedContinueAfterSignIn())),`src/page/login.ts#execute~2`)}),S9=e=>i(y9.match(e.continuation,{ContinueAuthorization:()=>i(C(),`src/page/login.ts#ContinueAuthorization`),RedirectTo:({destination:e})=>i(w(One({destination:e})),`src/page/login.ts#RedirectTo`)}),`src/page/login.ts#continuationOf`),C9=`login`,w9={Email:`login-email`,Password:`login-password`},kne=e=>e.email.trim()===``?i(w(`Email`),`src/page/login.ts#missingFieldOf`):e.password===``?i(w(`Password`),`src/page/login.ts#missingFieldOf`):i(C(),`src/page/login.ts#missingFieldOf`),Ane=e=>i(D(kne(e),{onNone:()=>i({model:Q(e,{isSigningIn:()=>i(!0,`src/page/login.ts#isSigningIn`),isPasswordShown:()=>i(!1,`src/page/login.ts#isPasswordShown`),maybeProblem:()=>i(C(),`src/page/login.ts#maybeProblem`)}),commands:[QX({id:CX(C9)}),Dne({email:e.email.trim(),password:e.password})]},`src/page/login.ts#onNone`),onSome:t=>i({model:Q(e,{maybeProblem:()=>i(w(v9.Missing({field:t})),`src/page/login.ts#maybeProblem~2`)}),commands:[QX({id:w9[t]})]},`src/page/login.ts#onSome`)}),`src/page/login.ts#submitted`),jne=(e,t)=>i(b9.match(t,{UpdatedEmail:({value:t})=>i({model:Q(e,{email:()=>i(t,`src/page/login.ts#email`)})},`src/page/login.ts#UpdatedEmail`),UpdatedPassword:({value:t})=>i({model:Q(e,{password:()=>i(t,`src/page/login.ts#password`)})},`src/page/login.ts#UpdatedPassword`),ToggledPasswordShown:()=>i({model:Q(e,{isPasswordShown:Wk})},`src/page/login.ts#ToggledPasswordShown`),SubmittedSignIn:()=>i(e.isSigningIn?{model:e}:Ane(e),`src/page/login.ts#SubmittedSignIn`),SucceededSignIn:()=>i(D(S9(e),{onNone:()=>i({model:e},`src/page/login.ts#onNone~2`),onSome:t=>i({model:e,commands:[t]},`src/page/login.ts#onSome~2`)}),`src/page/login.ts#SucceededSignIn`),FailedSignIn:({reason:t})=>i({model:Q(e,{isSigningIn:()=>i(!1,`src/page/login.ts#isSigningIn~2`),maybeProblem:()=>i(w(v9.Refused({reason:t})),`src/page/login.ts#maybeProblem~3`)})},`src/page/login.ts#FailedSignIn`),CompletedFocus:()=>i({model:e},`src/page/login.ts#CompletedFocus`),CompletedContinueAfterSignIn:()=>i({model:e},`src/page/login.ts#CompletedContinueAfterSignIn`)}),`src/page/login.ts#update`),Mne={Email:`Enter your email address.`,Password:`Enter your password.`},Nne=(e,t)=>i(D(e.maybeProblem,{onNone:()=>i([],`src/page/login.ts#onNone~3`),onSome:e=>i(v9.matchOrElse(e,{Refused:({reason:e})=>i([mX({tone:`Error`,title:`Not signed in`,body:[e]},t)],`src/page/login.ts#Refused`)},()=>i([],`src/page/login.ts#anonymous~2`)),`src/page/login.ts#onSome~3`)}),`src/page/login.ts#refusalView`),T9=(e,t)=>i(Fr(e.maybeProblem,e=>i(v9.matchOrElse(e,{Missing:e=>i(e.field===t,`src/page/login.ts#Missing`)},()=>i(!1,`src/page/login.ts#anonymous~4`)),`src/page/login.ts#anonymous~3`))?Mne[t]:void 0,`src/page/login.ts#missingSentenceOf`),Pne=FP((e,t)=>i(J7(`Sign in to clankerauth`,{id:C9,title:`Sign in`,meta:`owner`,submit:`sign in`,isBusy:e.isSigningIn,onSubmit:b9.SubmittedSignIn(),body:[t.p([t.Class(`note-line`)],[`Use your local account to continue. Password sign-in only: there is no external identity provider.`]),...Nne(e,t),NZ({id:w9.Email,label:`Email`,type:`email`,value:e.email,onInput:e=>i(b9.UpdatedEmail({value:e}),`src/page/login.ts#onInput`),isBoxed:!0,isRequired:!0,error:T9(e,`Email`),inputAttributes:[t.Autocomplete(`username`),t.Placeholder(`owner@example.internal`)]},t),tQ({id:w9.Password,label:`Password`,value:e.password,onInput:e=>i(b9.UpdatedPassword({value:e}),`src/page/login.ts#onInput~2`),isShown:e.isPasswordShown,onToggleShown:b9.ToggledPasswordShown(),isRequired:!0,error:T9(e,`Password`),autocomplete:`current-password`},t)]},t),`src/page/login.ts#anonymous~5`)),E9=YE([`Email`,`Password`,`Confirmation`]),D9=gA({Invalid:{field:E9,sentence:V},Refused:{reason:V}}),Fne=U({email:V,password:V,confirmation:V,isPasswordShown:H,isConfirmationShown:H,isCreating:H,maybeProblem:UD(D9)}),Ine=YE([`Created`,`AlreadyOwned`]),O9=hA({UpdatedEmail:{value:V},UpdatedPassword:{value:V},UpdatedConfirmation:{value:V},ToggledPasswordShown:{},ToggledConfirmationShown:{},SubmittedSetup:{},SucceededSetupOwner:{outcome:Ine},RejectedSetupInput:{field:E9,sentence:V},FailedSetupOwner:{reason:V},CompletedFocus:{}}),k9=hA({CreatedOwner:{},FoundOwner:{}}),Lne=()=>i({email:``,password:``,confirmation:``,isPasswordShown:!1,isConfirmationShown:!1,isCreating:!1,maybeProblem:C()},`src/page/setup.ts#init`),Rne=new Map([[`email`,`Email`],[`password`,`Password`]]),zne=e=>i(io(e.issues,({path:e,message:t})=>i(k(Or(qa(e),e=>i(O(Rne.get(e)),`src/page/setup.ts#anonymous~2`)),e=>i(O9.RejectedSetupInput({field:e,sentence:t}),`src/page/setup.ts#anonymous~3`)),`src/page/setup.ts#anonymous`)),`src/page/setup.ts#rejectedFieldOf`),Bne=lH(`SetupOwner`,{args:{email:V,password:V},messages:[O9.SucceededSetupOwner,O9.RejectedSetupInput,O9.FailedSetupOwner],execute:({email:e,password:t})=>i(D8.setupOwner({email:e,password:t}).pipe(mm(O9.SucceededSetupOwner({outcome:`Created`})),_m(`OwnerExists`,()=>i(N(O9.SucceededSetupOwner({outcome:`AlreadyOwned`})),`src/page/setup.ts#anonymous~4`)),_m(`InvalidInput`,e=>i(D(zne(e),{onNone:()=>i(I(e),`src/page/setup.ts#onNone`),onSome:N}),`src/page/setup.ts#anonymous~5`)),M8,Om({onFailure:e=>i(O9.FailedSetupOwner({reason:e}),`src/page/setup.ts#onFailure`),onSuccess:e=>i(e,`src/page/setup.ts#onSuccess`)})),`src/page/setup.ts#execute`)}),A9=`setup`,j9={Email:`setup-email`,Password:`setup-password`,Confirmation:`setup-confirmation`},M9=(e,t,n)=>i({model:Q(e,{isCreating:()=>i(!1,`src/page/setup.ts#isCreating`),maybeProblem:()=>i(w(D9.Invalid({field:t,sentence:n})),`src/page/setup.ts#maybeProblem`)}),commands:[QX({id:j9[t]})]},`src/page/setup.ts#invalid`),Vne=e=>i(e.password===e.confirmation?{model:Q(e,{isCreating:()=>i(!0,`src/page/setup.ts#isCreating~2`),isPasswordShown:()=>i(!1,`src/page/setup.ts#isPasswordShown`),isConfirmationShown:()=>i(!1,`src/page/setup.ts#isConfirmationShown`),maybeProblem:()=>i(C(),`src/page/setup.ts#maybeProblem~2`)}),commands:[QX({id:CX(A9)}),Bne({email:e.email.trim(),password:e.password})]}:M9(e,`Confirmation`,`Passwords do not match.`),`src/page/setup.ts#submitted`),Hne=(e,t)=>i(O9.match(t,{UpdatedEmail:({value:t})=>i({model:Q(e,{email:()=>i(t,`src/page/setup.ts#email`)})},`src/page/setup.ts#UpdatedEmail`),UpdatedPassword:({value:t})=>i({model:Q(e,{password:()=>i(t,`src/page/setup.ts#password`)})},`src/page/setup.ts#UpdatedPassword`),UpdatedConfirmation:({value:t})=>i({model:Q(e,{confirmation:()=>i(t,`src/page/setup.ts#confirmation`)})},`src/page/setup.ts#UpdatedConfirmation`),ToggledPasswordShown:()=>i({model:Q(e,{isPasswordShown:Wk})},`src/page/setup.ts#ToggledPasswordShown`),ToggledConfirmationShown:()=>i({model:Q(e,{isConfirmationShown:Wk})},`src/page/setup.ts#ToggledConfirmationShown`),SubmittedSetup:()=>i(e.isCreating?{model:e}:Vne(e),`src/page/setup.ts#SubmittedSetup`),SucceededSetupOwner:({outcome:t})=>i({model:e,outMessage:G(t).pipe($k(),K(`Created`,()=>i(k9.CreatedOwner(),`src/page/setup.ts#anonymous~6`)),K(`AlreadyOwned`,()=>i(k9.FoundOwner(),`src/page/setup.ts#anonymous~7`)),aA)},`src/page/setup.ts#SucceededSetupOwner`),RejectedSetupInput:({field:t,sentence:n})=>i(M9(e,t,n),`src/page/setup.ts#RejectedSetupInput`),FailedSetupOwner:({reason:t})=>i({model:Q(e,{isCreating:()=>i(!1,`src/page/setup.ts#isCreating~3`),maybeProblem:()=>i(w(D9.Refused({reason:t})),`src/page/setup.ts#maybeProblem~3`)})},`src/page/setup.ts#FailedSetupOwner`),CompletedFocus:()=>i({model:e},`src/page/setup.ts#CompletedFocus`)}),`src/page/setup.ts#update`),Une=(e,t)=>i(D(e.maybeProblem,{onNone:()=>i([],`src/page/setup.ts#onNone~2`),onSome:e=>i(D9.matchOrElse(e,{Refused:({reason:e})=>i([mX({tone:`Error`,title:`Not created`,body:[e]},t)],`src/page/setup.ts#Refused`)},()=>i([],`src/page/setup.ts#anonymous~8`)),`src/page/setup.ts#onSome`)}),`src/page/setup.ts#refusalView`),N9=(e,t)=>i(Tr(Or(e.maybeProblem,e=>i(D9.matchOrElse(e,{Invalid:e=>i(e.field===t?w(e.sentence):C(),`src/page/setup.ts#Invalid`)},()=>i(C(),`src/page/setup.ts#anonymous~10`)),`src/page/setup.ts#anonymous~9`))),`src/page/setup.ts#invalidSentenceOf`),Wne=FP((e,t)=>i(J7(`Set up clankerauth`,{id:A9,title:`Setup`,meta:`first run`,submit:`create account`,isBusy:e.isCreating,onSubmit:O9.SubmittedSetup(),body:[t.p([t.Class(`note-line`)],[`Create the owner account for your private applications. It manages Clients and Resources and approves access, and it stays on your infrastructure.`]),...Une(e,t),NZ({id:j9.Email,label:`Email`,type:`email`,value:e.email,onInput:e=>i(O9.UpdatedEmail({value:e}),`src/page/setup.ts#onInput`),isBoxed:!0,isRequired:!0,error:N9(e,`Email`),inputAttributes:[t.Autocomplete(`username`),t.Placeholder(`owner@example.internal`)]},t),tQ({id:j9.Password,label:`Password`,value:e.password,onInput:e=>i(O9.UpdatedPassword({value:e}),`src/page/setup.ts#onInput~2`),isShown:e.isPasswordShown,onToggleShown:O9.ToggledPasswordShown(),isRequired:!0,error:N9(e,`Password`),help:`${I6}. Save your password somewhere safe.`,autocomplete:`new-password`},t),tQ({id:j9.Confirmation,label:`Confirm password`,value:e.confirmation,onInput:e=>i(O9.UpdatedConfirmation({value:e}),`src/page/setup.ts#onInput~3`),isShown:e.isConfirmationShown,onToggleShown:O9.ToggledConfirmationShown(),toggleLabel:`Show confirmation`,isRequired:!0,error:N9(e,`Confirmation`),autocomplete:`new-password`},t)]},t),`src/page/setup.ts#anonymous~11`)),P9=gA({SetupRequired:{},SignedIn:{},SignedOut:{}}),F9=gA({Starting:{},Failed:{reason:V},NotFound:{},Setup:{setup:Fne},Login:{login:Ene},Consent:{consent:f9},Dashboard:{dashboard:t7}}),Gne=U({url:IU,page:F9,tips:FQ}),I9=e=>i(h7(e.url),`src/model.ts#routeOf`),L9=hA({SucceededCheckAccess:{access:P9},FailedCheckAccess:{reason:V},ClickedRetryAccess:{},ClickedLink:{request:UU},ChangedUrl:{url:IU},CompletedNavigateInternal:{},CompletedReplaceUrl:{},CompletedLoadUrl:{},CompletedReloadPage:{},CompletedScrollToFragment:{},GotSetupMessage:{message:O9},GotLoginMessage:{message:b9},GotConsentMessage:{message:p9},GotDashboardMessage:{message:$},GotTipsMessage:{message:IQ}}),R9=lH(`CheckAccess`,{messages:[L9.SucceededCheckAccess,L9.FailedCheckAccess],execute:D8.setupStatus().pipe(M8,L(({required:e})=>i(e?N(P9.SetupRequired()):R(F8,e=>i(e?P9.SignedIn():P9.SignedOut(),`src/main.ts#anonymous~2`)),`src/main.ts#anonymous`)),Om({onFailure:e=>i(L9.FailedCheckAccess({reason:e}),`src/main.ts#onFailure`),onSuccess:e=>i(L9.SucceededCheckAccess({access:e}),`src/main.ts#onSuccess`)}))}),Kne=lH(`NavigateInternal`,{args:{url:V},messages:[L9.CompletedNavigateInternal],execute:({url:e})=>i(WU(e).pipe(mm(L9.CompletedNavigateInternal())),`src/main.ts#execute`)}),z9=lH(`ReplaceUrl`,{args:{url:V},messages:[L9.CompletedReplaceUrl],execute:({url:e})=>i(GU(e).pipe(mm(L9.CompletedReplaceUrl())),`src/main.ts#execute~2`)}),B9=lH(`LoadUrl`,{args:{href:V},messages:[L9.CompletedLoadUrl],execute:({href:e})=>i(KU(e).pipe(mm(L9.CompletedLoadUrl())),`src/main.ts#execute~3`)}),qne=lH(`ReloadPage`,{messages:[L9.CompletedReloadPage],execute:P(()=>i(location.reload(),`src/main.ts#anonymous~3`)).pipe(mm(L9.CompletedReloadPage()))}),Jne=e=>i(Sr(e.search,()=>i(``,`src/main.ts#anonymous~4`)),`src/main.ts#searchOf`),Yne=e=>i(L9.GotSetupMessage({message:e}),`src/main.ts#toSetupMessage`),V9=e=>i(L9.GotLoginMessage({message:e}),`src/main.ts#toLoginMessage`),H9=e=>i(L9.GotConsentMessage({message:e}),`src/main.ts#toConsentMessage`),U9=e=>i(L9.GotDashboardMessage({message:e}),`src/main.ts#toDashboardMessage`),W9=(e,t)=>i(Q(e,{page:()=>i(t,`src/main.ts#page`)}),`src/main.ts#withPage`),G9=e=>i({model:W9(e,F9.Setup({setup:Lne()}))},`src/main.ts#setupPage`),K9=(e,t,n)=>i({model:W9(e,F9.Login({login:x9(t,n)}))},`src/main.ts#loginPage`),Xne=(e,t)=>{let n=x9(t,u7());return i(D(S9(n),{onNone:()=>i({model:W9(e,F9.Login({login:n}))},`src/main.ts#onNone`),onSome:t=>i({model:e,commands:dH([t],V9)},`src/main.ts#onSome`)}),`src/main.ts#signedInLoginPage`)},q9=(e,t)=>i(Oq(fne(t),{toParentModel:t=>i(W9(e,F9.Consent({consent:t})),`src/main.ts#toParentModel`),toParentMessage:H9}),`src/main.ts#consentPage`),J9=e=>i(Oq(D7(),{toParentModel:t=>i(W9(e,F9.Dashboard({dashboard:t})),`src/main.ts#toParentModel~2`),toParentMessage:U9}),`src/main.ts#dashboardPage`),Y9=e=>i({model:W9(e,F9.NotFound())},`src/main.ts#notFoundPage`),X9=(e,t)=>i({model:e.model,commands:[...e.commands??[],z9({url:t})]},`src/main.ts#redirected`),Zne=(e,t)=>{let n=I9(e),r=Jne(e.url);return i(P9.match(t,{SetupRequired:()=>i(c7.guards.Setup(n)?G9(e):X9(G9(e),m7()),`src/main.ts#SetupRequired`),SignedIn:()=>i(c7.match(n,{Clients:()=>i(J9(e),`src/main.ts#Clients`),Resources:()=>i(J9(e),`src/main.ts#Resources`),Keys:()=>i(J9(e),`src/main.ts#Keys`),Login:()=>i(Xne(e,r),`src/main.ts#Login`),Setup:()=>i(X9(J9(e),u7()),`src/main.ts#Setup`),Consent:()=>i(q9(e,r),`src/main.ts#Consent`),NotFound:()=>i(Y9(e),`src/main.ts#NotFound`)}),`src/main.ts#SignedIn`),SignedOut:()=>i(c7.match(n,{Clients:()=>i(K9(e,r,e.url.pathname),`src/main.ts#Clients~2`),Resources:()=>i(K9(e,r,e.url.pathname),`src/main.ts#Resources~2`),Keys:()=>i(K9(e,r,e.url.pathname),`src/main.ts#Keys~2`),Login:()=>i(K9(e,r,u7()),`src/main.ts#Login~2`),Setup:()=>i(X9(K9(e,``,u7()),p7()),`src/main.ts#Setup~2`),Consent:()=>i(q9(e,r),`src/main.ts#Consent~2`),NotFound:()=>i(Y9(e),`src/main.ts#NotFound~2`)}),`src/main.ts#SignedOut`)}),`src/main.ts#pageFor`)},Z9=(e,t)=>i(F9.match(e,{Starting:()=>i(!0,`src/main.ts#Starting`),Failed:()=>i(!1,`src/main.ts#Failed`),NotFound:()=>i(c7.guards.NotFound(t),`src/main.ts#NotFound~3`),Setup:()=>i(c7.guards.Setup(t),`src/main.ts#Setup~3`),Login:()=>i(c7.guards.Login(t),`src/main.ts#Login~3`),Consent:()=>i(c7.guards.Consent(t),`src/main.ts#Consent~3`),Dashboard:()=>i(g7(t),`src/main.ts#Dashboard`)}),`src/main.ts#isServedBy`),Qne=e=>i({model:{url:e,page:F9.Starting(),tips:LQ({id:`page-tip`})},commands:[R9()]},`src/main.ts#init`),$ne=xq({update:Hne,read:e=>i(F9.matchOrElse(e.page,{Setup:({setup:e})=>i(w(e),`src/main.ts#Setup~4`)},()=>i(C(),`src/main.ts#anonymous~7`)),`src/main.ts#read`),write:(e,t)=>i(W9(e,F9.Setup({setup:t})),`src/main.ts#write`),toParentMessage:Yne,foldOutMessage:k9.match({CreatedOwner:()=>i((e=>i(X9(J9(e),u7()),`src/main.ts#anonymous~5`)),`src/main.ts#CreatedOwner`),FoundOwner:()=>i((e=>i(X9(K9(e,``,u7()),p7()),`src/main.ts#anonymous~6`)),`src/main.ts#FoundOwner`)})}),ere=xq({update:jne,read:e=>i(F9.matchOrElse(e.page,{Login:({login:e})=>i(w(e),`src/main.ts#Login~4`)},()=>i(C(),`src/main.ts#anonymous~8`)),`src/main.ts#read~2`),write:(e,t)=>i(W9(e,F9.Login({login:t})),`src/main.ts#write~2`),toParentMessage:V9}),tre=xq({update:hne,read:e=>i(F9.matchOrElse(e.page,{Consent:({consent:e})=>i(w(e),`src/main.ts#Consent~4`)},()=>i(C(),`src/main.ts#anonymous~9`)),`src/main.ts#read~3`),write:(e,t)=>i(W9(e,F9.Consent({consent:t})),`src/main.ts#write~3`),toParentMessage:H9}),nre=xq({update:vte,read:e=>i(F9.matchOrElse(e.page,{Dashboard:({dashboard:e})=>i(w(e),`src/main.ts#Dashboard~2`)},()=>i(C(),`src/main.ts#anonymous~10`)),`src/main.ts#read~4`),write:(e,t)=>i(W9(e,F9.Dashboard({dashboard:t})),`src/main.ts#write~4`),toParentMessage:U9}),rre=xq({update:l$,read:e=>i(w(e.tips),`src/main.ts#read~5`),write:(e,t)=>i(Q(e,{tips:()=>i(t,`src/main.ts#tips`)}),`src/main.ts#write~5`),toParentMessage:e=>i(L9.GotTipsMessage({message:e}),`src/main.ts#toParentMessage`)}),ire=Nr(Ep),are=(e,t)=>i(t.pathname===e.url.pathname&&ire(t.search,e.url.search)?t.hash:C(),`src/main.ts#fragmentOf`),ore=(e,t)=>i(D(are(e,t),{onSome:t=>i({model:e,commands:[bQ({maybeFragment:w(t)})]},`src/main.ts#onSome~2`),onNone:()=>i(Z9(e.page,h7(t))?{model:e,commands:[Kne({url:HU(t)})]}:{model:e,commands:[B9({href:HU(t)})]},`src/main.ts#onNone~2`)}),`src/main.ts#internalLinkClicked`),sre=(e,t)=>i(UU.match(t,{Internal:({url:t})=>i(ore(e,t),`src/main.ts#Internal`),External:({href:t})=>i({model:e,commands:[B9({href:t})]},`src/main.ts#External`)}),`src/main.ts#linkClicked`),cre=(e,t)=>i(Z9(e.page,h7(t))?{model:Q(e,{url:()=>i(t,`src/main.ts#url`)}),commands:[bQ({maybeFragment:t.hash})]}:{model:e,commands:[qne()]},`src/main.ts#urlChanged`),lre=(e,t)=>i(L9.match(t,{SucceededCheckAccess:({access:t})=>i(Zne(e,t),`src/main.ts#SucceededCheckAccess`),FailedCheckAccess:({reason:t})=>i({model:W9(e,F9.Failed({reason:t}))},`src/main.ts#FailedCheckAccess`),ClickedRetryAccess:()=>i({model:W9(e,F9.Starting()),commands:[R9()]},`src/main.ts#ClickedRetryAccess`),ClickedLink:({request:t})=>i(sre(e,t),`src/main.ts#ClickedLink`),ChangedUrl:({url:t})=>i(cre(e,t),`src/main.ts#ChangedUrl`),CompletedNavigateInternal:()=>i({model:e},`src/main.ts#CompletedNavigateInternal`),CompletedReplaceUrl:()=>i({model:e},`src/main.ts#CompletedReplaceUrl`),CompletedLoadUrl:()=>i({model:e},`src/main.ts#CompletedLoadUrl`),CompletedReloadPage:()=>i({model:e},`src/main.ts#CompletedReloadPage`),CompletedScrollToFragment:()=>i({model:e},`src/main.ts#CompletedScrollToFragment`),GotSetupMessage:({message:t})=>i($ne(e,t),`src/main.ts#GotSetupMessage`),GotLoginMessage:({message:t})=>i(ere(e,t),`src/main.ts#GotLoginMessage`),GotConsentMessage:({message:t})=>i(tre(e,t),`src/main.ts#GotConsentMessage`),GotDashboardMessage:({message:t})=>i(nre(e,t),`src/main.ts#GotDashboardMessage`),GotTipsMessage:({message:t})=>i(rre(e,t),`src/main.ts#GotTipsMessage`)}),`src/main.ts#update`),ure=ZU(y$(`tip`))({read:e=>i(w(e.tips),`src/main.ts#read~6`),toParentMessage:e=>i(L9.GotTipsMessage({message:e}),`src/main.ts#toParentMessage~2`)}),Q9=e=>i(`${e} | ${W7}`,`src/view.ts#titled`),$9=e=>i(g7(e)?e:c7.Clients(),`src/view.ts#sectionOf`),dre=e=>i(c7.matchOrElse($9(e),{Resources:()=>i(Q9(`Resources`),`src/view.ts#Resources`),Keys:()=>i(Q9(`API keys`),`src/view.ts#Keys`)},()=>i(Q9(`Clients`),`src/view.ts#anonymous`)),`src/view.ts#dashboardTitle`),fre=e=>i(F9.match(e.page,{Starting:()=>i(W7,`src/view.ts#Starting`),Failed:()=>i(Q9(`Unable to continue`),`src/view.ts#Failed`),NotFound:()=>i(Q9(`Not found`),`src/view.ts#NotFound`),Setup:()=>i(Q9(`Set up`),`src/view.ts#Setup`),Login:()=>i(Q9(`Sign in`),`src/view.ts#Login`),Consent:()=>i(Q9(`Allow access`),`src/view.ts#Consent`),Dashboard:()=>i(dre(I9(e)),`src/view.ts#Dashboard`)}),`src/view.ts#titleOf`),pre=e=>i(TZ({body:[e.h1([e.Class(`sr-only`)],[W7]),WZ({isLoading:!0,label:`loading`},e)]},e),`src/view.ts#startingView`),mre=(e,t)=>i(q7(`Unable to continue`,{title:W7,meta:`not available`,actions:[UZ({label:`sign in`,href:p7()},t),oX({label:`try again`,variant:`Primary`,isDefault:!0,onClick:L9.ClickedRetryAccess()},t)],body:[$X({tone:`Error`,title:`Unable to continue`,body:[e]},t)]},t),`src/view.ts#failedView`),hre=e=>i(q7(`Not found`,{title:W7,meta:`404`,actions:[UZ({label:`go to the dashboard`,href:u7()},e)],body:[$X({tone:`Error`,title:`Not found`,body:[`Nothing lives at this address.`]},e)]},e),`src/view.ts#notFoundView`),gre=(e,t)=>i(F9.match(e.page,{Starting:()=>i(pre(t),`src/view.ts#Starting~2`),Failed:({reason:e})=>i(mre(e,t),`src/view.ts#Failed~2`),NotFound:()=>i(hre(t),`src/view.ts#NotFound~2`),Setup:({setup:e})=>i(t.submodel({slotId:`setup`,model:e,view:Wne,toParentMessage:e=>i(L9.GotSetupMessage({message:e}),`src/view.ts#toParentMessage`)}),`src/view.ts#Setup~2`),Login:({login:e})=>i(t.submodel({slotId:`login`,model:e,view:Pne,toParentMessage:e=>i(L9.GotLoginMessage({message:e}),`src/view.ts#toParentMessage~2`)}),`src/view.ts#Login~2`),Consent:({consent:e})=>i(t.submodel({slotId:`consent`,model:e,view:Tne,toParentMessage:e=>i(L9.GotConsentMessage({message:e}),`src/view.ts#toParentMessage~3`)}),`src/view.ts#Consent~2`),Dashboard:({dashboard:n})=>i(t.submodel({slotId:`dashboard`,model:n,view:one,viewInputs:{section:$9(I9(e))},toParentMessage:e=>i(L9.GotDashboardMessage({message:e}),`src/view.ts#toParentMessage~4`)}),`src/view.ts#Dashboard~2`)}),`src/view.ts#pageView`),_re=e=>i(F9.matchOrElse(e,{Dashboard:({dashboard:e})=>i(a7(e),`src/view.ts#Dashboard~3`)},()=>i(!1,`src/view.ts#anonymous~2`)),`src/view.ts#isLiveRegionInDialog`);vq(dq({Model:Gne,init:Qne,update:lre,view:(e,t)=>i({title:fre(e),body:t.div([],[vQ(t),gre(e,t),..._re(e.page)?[]:[Mq(t)],t.submodel({slotId:RQ(e.tips),model:e.tips,view:x$,toParentMessage:e=>i(L9.GotTipsMessage({message:e}),`src/view.ts#toParentMessage~5`)})])},`src/view.ts#view`),subscriptions:ure,resources:Uk,container:document.getElementById(`root`),routing:{onUrlRequest:e=>i(L9.ClickedLink({request:e}),`src/entry.ts#onUrlRequest`),onUrlChange:e=>i(L9.ChangedUrl({url:e}),`src/entry.ts#onUrlChange`)}}));
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <meta name="color-scheme" content="light" />
7
7
  <title>clankerauth</title>
8
- <script type="module" crossorigin src="/assets/index-CsAjd9GO.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-CUtKq3-M.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/assets/index-C-vB7TuL.css">
10
10
  </head>
11
11
  <body>