@canton-network/wallet-gateway-remote 0.7.0 → 0.8.0

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.
Files changed (42) hide show
  1. package/README.md +11 -1
  2. package/dist/config/Config.d.ts +1 -1
  3. package/dist/dapp-api/controller.d.ts.map +1 -1
  4. package/dist/dapp-api/controller.js +25 -11
  5. package/dist/dapp-api/rpc-gen/typings.d.ts +95 -12
  6. package/dist/dapp-api/rpc-gen/typings.d.ts.map +1 -1
  7. package/dist/example-config.d.ts +82 -0
  8. package/dist/example-config.d.ts.map +1 -0
  9. package/dist/example-config.js +84 -0
  10. package/dist/index.d.ts +2 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +23 -7
  13. package/dist/ledger/party-allocation-service.d.ts +8 -2
  14. package/dist/ledger/party-allocation-service.d.ts.map +1 -1
  15. package/dist/ledger/party-allocation-service.js +9 -6
  16. package/dist/ledger/party-allocation-service.test.js +6 -1
  17. package/dist/user-api/controller.d.ts +2 -0
  18. package/dist/user-api/controller.d.ts.map +1 -1
  19. package/dist/user-api/controller.js +47 -4
  20. package/dist/user-api/rpc-gen/index.d.ts +6 -0
  21. package/dist/user-api/rpc-gen/index.d.ts.map +1 -1
  22. package/dist/user-api/rpc-gen/index.js +2 -0
  23. package/dist/user-api/rpc-gen/typings.d.ts +38 -3
  24. package/dist/user-api/rpc-gen/typings.d.ts.map +1 -1
  25. package/dist/user-api/server.test.js +8 -5
  26. package/dist/web/frontend/404/index.html +2 -2
  27. package/dist/web/frontend/approve/index.html +5 -6
  28. package/dist/web/frontend/assets/{404--ggMeLNi.js → 404-CK2XmoLz.js} +1 -1
  29. package/dist/web/frontend/assets/{approve-BauIyUbe.js → approve-C-O7VrUc.js} +14 -8
  30. package/dist/web/frontend/assets/{callback-CSr6jalP.js → callback-Bgkm99UY.js} +1 -1
  31. package/dist/web/frontend/assets/{index-Lj4FSLif.js → index-BVQSWRTn.js} +62 -54
  32. package/dist/web/frontend/assets/{login-DSxjvFmj.js → login-FaVg_LJv.js} +1 -1
  33. package/dist/web/frontend/assets/settings-YzEHE3VQ.js +26 -0
  34. package/dist/web/frontend/assets/{state-DirtiRBm.js → state-xH49VD_k.js} +1 -1
  35. package/dist/web/frontend/assets/{wallets-D7tP8D1r.js → wallets-CsSlR4-u.js} +1 -1
  36. package/dist/web/frontend/callback/index.html +2 -2
  37. package/dist/web/frontend/index.html +3 -4
  38. package/dist/web/frontend/login/index.html +5 -6
  39. package/dist/web/frontend/settings/index.html +5 -6
  40. package/dist/web/frontend/wallets/index.html +5 -6
  41. package/package.json +17 -17
  42. package/dist/web/frontend/assets/settings-DS2QQIMl.js +0 -26
@@ -1,4 +1,4 @@
1
- import{o as H,d as l,l as D,e as ge,c as G,s as v,W as De,x as U,a as $e,i as Ue,t as Me}from"./index-Lj4FSLif.js";import{r as x}from"./state-DirtiRBm.js";const ee=crypto,_e=t=>t instanceof CryptoKey,C=new TextEncoder,Y=new TextDecoder;function Le(...t){const e=t.reduce((n,{length:o})=>n+o,0),r=new Uint8Array(e);let s=0;for(const n of t)r.set(n,s),s+=n.length;return r}const ke=t=>{let e=t;typeof e=="string"&&(e=C.encode(e));const r=32768,s=[];for(let n=0;n<e.length;n+=r)s.push(String.fromCharCode.apply(null,e.subarray(n,n+r)));return btoa(s.join(""))},j=t=>ke(t).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"),ze=t=>{const e=atob(t),r=new Uint8Array(e.length);for(let s=0;s<e.length;s++)r[s]=e.charCodeAt(s);return r},te=t=>{let e=t;e instanceof Uint8Array&&(e=Y.decode(e)),e=e.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"");try{return ze(e)}catch{throw new TypeError("The input to be decoded is not correctly encoded.")}};class h extends Error{constructor(e,r){var s;super(e,r),this.code="ERR_JOSE_GENERIC",this.name=this.constructor.name,(s=Error.captureStackTrace)==null||s.call(Error,this,this.constructor)}}h.code="ERR_JOSE_GENERIC";class Fe extends h{constructor(e,r,s="unspecified",n="unspecified"){super(e,{cause:{claim:s,reason:n,payload:r}}),this.code="ERR_JWT_CLAIM_VALIDATION_FAILED",this.claim=s,this.reason=n,this.payload=r}}Fe.code="ERR_JWT_CLAIM_VALIDATION_FAILED";class Ve extends h{constructor(e,r,s="unspecified",n="unspecified"){super(e,{cause:{claim:s,reason:n,payload:r}}),this.code="ERR_JWT_EXPIRED",this.claim=s,this.reason=n,this.payload=r}}Ve.code="ERR_JWT_EXPIRED";class Ge extends h{constructor(){super(...arguments),this.code="ERR_JOSE_ALG_NOT_ALLOWED"}}Ge.code="ERR_JOSE_ALG_NOT_ALLOWED";class E extends h{constructor(){super(...arguments),this.code="ERR_JOSE_NOT_SUPPORTED"}}E.code="ERR_JOSE_NOT_SUPPORTED";class je extends h{constructor(e="decryption operation failed",r){super(e,r),this.code="ERR_JWE_DECRYPTION_FAILED"}}je.code="ERR_JWE_DECRYPTION_FAILED";class qe extends h{constructor(){super(...arguments),this.code="ERR_JWE_INVALID"}}qe.code="ERR_JWE_INVALID";class I extends h{constructor(){super(...arguments),this.code="ERR_JWS_INVALID"}}I.code="ERR_JWS_INVALID";class we extends h{constructor(){super(...arguments),this.code="ERR_JWT_INVALID"}}we.code="ERR_JWT_INVALID";class Be extends h{constructor(){super(...arguments),this.code="ERR_JWK_INVALID"}}Be.code="ERR_JWK_INVALID";class Ye extends h{constructor(){super(...arguments),this.code="ERR_JWKS_INVALID"}}Ye.code="ERR_JWKS_INVALID";class Xe extends h{constructor(e="no applicable key found in the JSON Web Key Set",r){super(e,r),this.code="ERR_JWKS_NO_MATCHING_KEY"}}Xe.code="ERR_JWKS_NO_MATCHING_KEY";class Ze extends h{constructor(e="multiple matching keys found in the JSON Web Key Set",r){super(e,r),this.code="ERR_JWKS_MULTIPLE_MATCHING_KEYS"}}Ze.code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";class Qe extends h{constructor(e="request timed out",r){super(e,r),this.code="ERR_JWKS_TIMEOUT"}}Qe.code="ERR_JWKS_TIMEOUT";class et extends h{constructor(e="signature verification failed",r){super(e,r),this.code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED"}}et.code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";function g(t,e="algorithm.name"){return new TypeError(`CryptoKey does not support this operation, its ${e} must be ${t}`)}function J(t,e){return t.name===e}function q(t){return parseInt(t.name.slice(4),10)}function tt(t){switch(t){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}function rt(t,e){if(e.length&&!e.some(r=>t.usages.includes(r))){let r="CryptoKey does not support this operation, its usages must include ";if(e.length>2){const s=e.pop();r+=`one of ${e.join(", ")}, or ${s}.`}else e.length===2?r+=`one of ${e[0]} or ${e[1]}.`:r+=`${e[0]}.`;throw new TypeError(r)}}function st(t,e,...r){switch(e){case"HS256":case"HS384":case"HS512":{if(!J(t.algorithm,"HMAC"))throw g("HMAC");const s=parseInt(e.slice(2),10);if(q(t.algorithm.hash)!==s)throw g(`SHA-${s}`,"algorithm.hash");break}case"RS256":case"RS384":case"RS512":{if(!J(t.algorithm,"RSASSA-PKCS1-v1_5"))throw g("RSASSA-PKCS1-v1_5");const s=parseInt(e.slice(2),10);if(q(t.algorithm.hash)!==s)throw g(`SHA-${s}`,"algorithm.hash");break}case"PS256":case"PS384":case"PS512":{if(!J(t.algorithm,"RSA-PSS"))throw g("RSA-PSS");const s=parseInt(e.slice(2),10);if(q(t.algorithm.hash)!==s)throw g(`SHA-${s}`,"algorithm.hash");break}case"EdDSA":{if(t.algorithm.name!=="Ed25519"&&t.algorithm.name!=="Ed448")throw g("Ed25519 or Ed448");break}case"Ed25519":{if(!J(t.algorithm,"Ed25519"))throw g("Ed25519");break}case"ES256":case"ES384":case"ES512":{if(!J(t.algorithm,"ECDSA"))throw g("ECDSA");const s=tt(e);if(t.algorithm.namedCurve!==s)throw g(s,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}rt(t,r)}function Se(t,e,...r){var s;if(r=r.filter(Boolean),r.length>2){const n=r.pop();t+=`one of type ${r.join(", ")}, or ${n}.`}else r.length===2?t+=`one of type ${r[0]} or ${r[1]}.`:t+=`of type ${r[0]}.`;return e==null?t+=` Received ${e}`:typeof e=="function"&&e.name?t+=` Received function ${e.name}`:typeof e=="object"&&e!=null&&(s=e.constructor)!=null&&s.name&&(t+=` Received an instance of ${e.constructor.name}`),t}const ue=(t,...e)=>Se("Key must be ",t,...e);function ye(t,e,...r){return Se(`Key for the ${t} algorithm must be `,e,...r)}const be=t=>_e(t)?!0:(t==null?void 0:t[Symbol.toStringTag])==="KeyObject",M=["CryptoKey"],nt=(...t)=>{const e=t.filter(Boolean);if(e.length===0||e.length===1)return!0;let r;for(const s of e){const n=Object.keys(s);if(!r||r.size===0){r=new Set(n);continue}for(const o of n){if(r.has(o))return!1;r.add(o)}}return!0};function ot(t){return typeof t=="object"&&t!==null}function Ee(t){if(!ot(t)||Object.prototype.toString.call(t)!=="[object Object]")return!1;if(Object.getPrototypeOf(t)===null)return!0;let e=t;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}const it=(t,e)=>{if(t.startsWith("RS")||t.startsWith("PS")){const{modulusLength:r}=e.algorithm;if(typeof r!="number"||r<2048)throw new TypeError(`${t} requires key modulusLength to be 2048 bits or larger`)}};function $(t){return Ee(t)&&typeof t.kty=="string"}function at(t){return t.kty!=="oct"&&typeof t.d=="string"}function ct(t){return t.kty!=="oct"&&typeof t.d>"u"}function dt(t){return $(t)&&t.kty==="oct"&&typeof t.k=="string"}function lt(t){let e,r;switch(t.kty){case"RSA":{switch(t.alg){case"PS256":case"PS384":case"PS512":e={name:"RSA-PSS",hash:`SHA-${t.alg.slice(-3)}`},r=t.d?["sign"]:["verify"];break;case"RS256":case"RS384":case"RS512":e={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${t.alg.slice(-3)}`},r=t.d?["sign"]:["verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":e={name:"RSA-OAEP",hash:`SHA-${parseInt(t.alg.slice(-3),10)||1}`},r=t.d?["decrypt","unwrapKey"]:["encrypt","wrapKey"];break;default:throw new E('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}case"EC":{switch(t.alg){case"ES256":e={name:"ECDSA",namedCurve:"P-256"},r=t.d?["sign"]:["verify"];break;case"ES384":e={name:"ECDSA",namedCurve:"P-384"},r=t.d?["sign"]:["verify"];break;case"ES512":e={name:"ECDSA",namedCurve:"P-521"},r=t.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":e={name:"ECDH",namedCurve:t.crv},r=t.d?["deriveBits"]:[];break;default:throw new E('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}case"OKP":{switch(t.alg){case"Ed25519":e={name:"Ed25519"},r=t.d?["sign"]:["verify"];break;case"EdDSA":e={name:t.crv},r=t.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":e={name:t.crv},r=t.d?["deriveBits"]:[];break;default:throw new E('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}default:throw new E('Invalid or unsupported JWK "kty" (Key Type) Parameter value')}return{algorithm:e,keyUsages:r}}const ht=async t=>{if(!t.alg)throw new TypeError('"alg" argument is required when "jwk.alg" is not present');const{algorithm:e,keyUsages:r}=lt(t),s=[e,t.ext??!1,t.key_ops??r],n={...t};return delete n.alg,delete n.use,ee.subtle.importKey("jwk",n,...s)},ve=t=>te(t);let A,T;const Ae=t=>(t==null?void 0:t[Symbol.toStringTag])==="KeyObject",L=async(t,e,r,s,n=!1)=>{let o=t.get(e);if(o!=null&&o[s])return o[s];const i=await ht({...r,alg:s});return n&&Object.freeze(e),o?o[s]=i:t.set(e,{[s]:i}),i},ut=(t,e)=>{if(Ae(t)){let r=t.export({format:"jwk"});return delete r.d,delete r.dp,delete r.dq,delete r.p,delete r.q,delete r.qi,r.k?ve(r.k):(T||(T=new WeakMap),L(T,t,r,e))}return $(t)?t.k?te(t.k):(T||(T=new WeakMap),L(T,t,t,e,!0)):t},pt=(t,e)=>{if(Ae(t)){let r=t.export({format:"jwk"});return r.k?ve(r.k):(A||(A=new WeakMap),L(A,t,r,e))}return $(t)?t.k?te(t.k):(A||(A=new WeakMap),L(A,t,t,e,!0)):t},ft={normalizePublicKey:ut,normalizePrivateKey:pt},R=t=>t==null?void 0:t[Symbol.toStringTag],X=(t,e,r)=>{var s,n;if(e.use!==void 0&&e.use!=="sig")throw new TypeError("Invalid key for this operation, when present its use must be sig");if(e.key_ops!==void 0&&((n=(s=e.key_ops).includes)==null?void 0:n.call(s,r))!==!0)throw new TypeError(`Invalid key for this operation, when present its key_ops must include ${r}`);if(e.alg!==void 0&&e.alg!==t)throw new TypeError(`Invalid key for this operation, when present its alg must be ${t}`);return!0},mt=(t,e,r,s)=>{if(!(e instanceof Uint8Array)){if(s&&$(e)){if(dt(e)&&X(t,e,r))return;throw new TypeError('JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present')}if(!be(e))throw new TypeError(ye(t,e,...M,"Uint8Array",s?"JSON Web Key":null));if(e.type!=="secret")throw new TypeError(`${R(e)} instances for symmetric algorithms must be of type "secret"`)}},gt=(t,e,r,s)=>{if(s&&$(e))switch(r){case"sign":if(at(e)&&X(t,e,r))return;throw new TypeError("JSON Web Key for this operation be a private JWK");case"verify":if(ct(e)&&X(t,e,r))return;throw new TypeError("JSON Web Key for this operation be a public JWK")}if(!be(e))throw new TypeError(ye(t,e,...M,s?"JSON Web Key":null));if(e.type==="secret")throw new TypeError(`${R(e)} instances for asymmetric algorithms must not be of type "secret"`);if(r==="sign"&&e.type==="public")throw new TypeError(`${R(e)} instances for asymmetric algorithm signing must be of type "private"`);if(r==="decrypt"&&e.type==="public")throw new TypeError(`${R(e)} instances for asymmetric algorithm decryption must be of type "private"`);if(e.algorithm&&r==="verify"&&e.type==="private")throw new TypeError(`${R(e)} instances for asymmetric algorithm verifying must be of type "public"`);if(e.algorithm&&r==="encrypt"&&e.type==="private")throw new TypeError(`${R(e)} instances for asymmetric algorithm encryption must be of type "public"`)};function Te(t,e,r,s){e.startsWith("HS")||e==="dir"||e.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(e)?mt(e,r,s,t):gt(e,r,s,t)}Te.bind(void 0,!1);const _t=Te.bind(void 0,!0);function wt(t,e,r,s,n){if(n.crit!==void 0&&(s==null?void 0:s.crit)===void 0)throw new t('"crit" (Critical) Header Parameter MUST be integrity protected');if(!s||s.crit===void 0)return new Set;if(!Array.isArray(s.crit)||s.crit.length===0||s.crit.some(i=>typeof i!="string"||i.length===0))throw new t('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let o;r!==void 0?o=new Map([...Object.entries(r),...e.entries()]):o=e;for(const i of s.crit){if(!o.has(i))throw new E(`Extension Header Parameter "${i}" is not recognized`);if(n[i]===void 0)throw new t(`Extension Header Parameter "${i}" is missing`);if(o.get(i)&&s[i]===void 0)throw new t(`Extension Header Parameter "${i}" MUST be integrity protected`)}return new Set(s.crit)}function St(t,e){const r=`SHA-${t.slice(-3)}`;switch(t){case"HS256":case"HS384":case"HS512":return{hash:r,name:"HMAC"};case"PS256":case"PS384":case"PS512":return{hash:r,name:"RSA-PSS",saltLength:t.slice(-3)>>3};case"RS256":case"RS384":case"RS512":return{hash:r,name:"RSASSA-PKCS1-v1_5"};case"ES256":case"ES384":case"ES512":return{hash:r,name:"ECDSA",namedCurve:e.namedCurve};case"Ed25519":return{name:"Ed25519"};case"EdDSA":return{name:e.name};default:throw new E(`alg ${t} is not supported either by JOSE or your javascript runtime`)}}async function yt(t,e,r){if(e=await ft.normalizePrivateKey(e,t),_e(e))return st(e,t,r),e;if(e instanceof Uint8Array){if(!t.startsWith("HS"))throw new TypeError(ue(e,...M));return ee.subtle.importKey("raw",e,{hash:`SHA-${t.slice(-3)}`,name:"HMAC"},!1,[r])}throw new TypeError(ue(e,...M,"Uint8Array","JSON Web Key"))}const y=t=>Math.floor(t.getTime()/1e3),Ie=60,Re=Ie*60,re=Re*24,bt=re*7,Et=re*365.25,vt=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,B=t=>{const e=vt.exec(t);if(!e||e[4]&&e[1])throw new TypeError("Invalid time period format");const r=parseFloat(e[2]),s=e[3].toLowerCase();let n;switch(s){case"sec":case"secs":case"second":case"seconds":case"s":n=Math.round(r);break;case"minute":case"minutes":case"min":case"mins":case"m":n=Math.round(r*Ie);break;case"hour":case"hours":case"hr":case"hrs":case"h":n=Math.round(r*Re);break;case"day":case"days":case"d":n=Math.round(r*re);break;case"week":case"weeks":case"w":n=Math.round(r*bt);break;default:n=Math.round(r*Et);break}return e[1]==="-"||e[4]==="ago"?-n:n},At=async(t,e,r)=>{const s=await yt(t,e,"sign");it(t,s);const n=await ee.subtle.sign(St(t,s.algorithm),s,r);return new Uint8Array(n)};class Tt{constructor(e){if(!(e instanceof Uint8Array))throw new TypeError("payload must be an instance of Uint8Array");this._payload=e}setProtectedHeader(e){if(this._protectedHeader)throw new TypeError("setProtectedHeader can only be called once");return this._protectedHeader=e,this}setUnprotectedHeader(e){if(this._unprotectedHeader)throw new TypeError("setUnprotectedHeader can only be called once");return this._unprotectedHeader=e,this}async sign(e,r){if(!this._protectedHeader&&!this._unprotectedHeader)throw new I("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!nt(this._protectedHeader,this._unprotectedHeader))throw new I("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const s={...this._protectedHeader,...this._unprotectedHeader},n=wt(I,new Map([["b64",!0]]),r==null?void 0:r.crit,this._protectedHeader,s);let o=!0;if(n.has("b64")&&(o=this._protectedHeader.b64,typeof o!="boolean"))throw new I('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:i}=s;if(typeof i!="string"||!i)throw new I('JWS "alg" (Algorithm) Header Parameter missing or invalid');_t(i,e,"sign");let c=this._payload;o&&(c=C.encode(j(c)));let w;this._protectedHeader?w=C.encode(j(JSON.stringify(this._protectedHeader))):w=C.encode("");const S=Le(w,C.encode("."),c),P=await At(i,e,S),a={signature:j(P),payload:""};return o&&(a.payload=Y.decode(c)),this._unprotectedHeader&&(a.header=this._unprotectedHeader),this._protectedHeader&&(a.protected=Y.decode(w)),a}}class It{constructor(e){this._flattened=new Tt(e)}setProtectedHeader(e){return this._flattened.setProtectedHeader(e),this}async sign(e,r){const s=await this._flattened.sign(e,r);if(s.payload===void 0)throw new TypeError("use the flattened module for creating JWS with b64: false");return`${s.protected}.${s.payload}.${s.signature}`}}function b(t,e){if(!Number.isFinite(e))throw new TypeError(`Invalid ${t} input`);return e}class Rt{constructor(e={}){if(!Ee(e))throw new TypeError("JWT Claims Set MUST be an object");this._payload=e}setIssuer(e){return this._payload={...this._payload,iss:e},this}setSubject(e){return this._payload={...this._payload,sub:e},this}setAudience(e){return this._payload={...this._payload,aud:e},this}setJti(e){return this._payload={...this._payload,jti:e},this}setNotBefore(e){return typeof e=="number"?this._payload={...this._payload,nbf:b("setNotBefore",e)}:e instanceof Date?this._payload={...this._payload,nbf:b("setNotBefore",y(e))}:this._payload={...this._payload,nbf:y(new Date)+B(e)},this}setExpirationTime(e){return typeof e=="number"?this._payload={...this._payload,exp:b("setExpirationTime",e)}:e instanceof Date?this._payload={...this._payload,exp:b("setExpirationTime",y(e))}:this._payload={...this._payload,exp:y(new Date)+B(e)},this}setIssuedAt(e){return typeof e>"u"?this._payload={...this._payload,iat:y(new Date)}:e instanceof Date?this._payload={...this._payload,iat:b("setIssuedAt",y(e))}:typeof e=="string"?this._payload={...this._payload,iat:b("setIssuedAt",y(new Date)+B(e))}:this._payload={...this._payload,iat:b("setIssuedAt",e)},this}}class Ct extends Rt{setProtectedHeader(e){return this._protectedHeader=e,this}async sign(e,r){var n;const s=new It(C.encode(JSON.stringify(this._payload)));if(s.setProtectedHeader(this._protectedHeader),Array.isArray((n=this._protectedHeader)==null?void 0:n.crit)&&this._protectedHeader.crit.includes("b64")&&this._protectedHeader.b64===!1)throw new we("JWTs MUST NOT use unencoded payload");return s.sign(e,r)}}var Wt=H({method:D("authorization_code"),audience:l(),scope:l(),clientId:l()}),Kt=H({method:D("client_credentials"),audience:l(),scope:l(),clientId:l(),clientSecret:l()}),Pt=H({method:D("self_signed"),issuer:l(),audience:l(),scope:l(),clientId:l(),clientSecret:l()});ge("method",[Wt,Kt,Pt]);ge("type",[H({id:l(),type:D("self_signed"),issuer:l()}),H({id:l(),type:D("oauth"),issuer:l(),configUrl:l().url()})]);var xt=class Z{constructor(e,r,s,n=3600){this.auth=e,this.authAdmin=r,this.logger=s,this.expirySeconds=n}async getUserAccessToken(){return this.logger.debug("Fetching self-signed user auth token"),Z.fetchToken(this.logger,{clientId:this.auth.clientId,clientSecret:this.auth.clientSecret,scope:this.auth.scope,audience:this.auth.audience},this.auth.issuer,this.expirySeconds)}async getAdminAccessToken(){if(this.logger.debug("Fetching self-signed admin auth token"),!this.authAdmin)throw new Error("Admin credentials are not configured");return Z.fetchToken(this.logger,{clientId:this.authAdmin.clientId,clientSecret:this.authAdmin.clientSecret,scope:this.authAdmin.scope,audience:this.authAdmin.audience},this.authAdmin.issuer,this.expirySeconds)}static async fetchToken(e,r,s,n=3600){const o=new TextEncoder().encode(r.clientSecret),i=Math.floor(Date.now()/1e3),c=await new Ct({sub:r.clientId,aud:r.audience||"",scope:r.scope||"",iat:i,exp:i+n,iss:s}).setProtectedHeader({alg:"HS256"}).sign(o);return e.info(`Generated self-signed JWT token: ${c}`),c}},Jt=Object.create,se=Object.defineProperty,Nt=Object.getOwnPropertyDescriptor,Ce=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),W=t=>{throw TypeError(t)},Ot=(t,e,r)=>e in t?se(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,pe=(t,e)=>se(t,"name",{value:e,configurable:!0}),Ht=t=>[,,,Jt((t==null?void 0:t[Ce("metadata")])??null)],We=["class","method","getter","setter","accessor","field","value","get","set"],O=t=>t!==void 0&&typeof t!="function"?W("Function expected"):t,Dt=(t,e,r,s,n)=>({kind:We[t],name:e,metadata:s,addInitializer:o=>r._?W("Already initialized"):n.push(O(o||null))}),$t=(t,e)=>Ot(e,Ce("metadata"),t[3]),f=(t,e,r,s)=>{for(var n=0,o=t[e>>1],i=o&&o.length;n<i;n++)e&1?o[n].call(r):s=o[n].call(r,s);return s},K=(t,e,r,s,n,o)=>{var i,c,w,S,P,a=e&7,k=!!(e&8),m=!!(e&16),z=a>3?t.length+1:a?k?1:2:0,le=We[a+5],he=a>3&&(t[z-1]=[]),He=t[z]||(t[z]=[]),p=a&&(!m&&!k&&(n=n.prototype),a<5&&(a>3||!m)&&Nt(a<4?n:{get[r](){return fe(this,o)},set[r](u){return me(this,o,u)}},r));a?m&&a<4&&pe(o,(a>2?"set ":a>1?"get ":"")+r):pe(n,r);for(var F=s.length-1;F>=0;F--)S=Dt(a,r,w={},t[3],He),a&&(S.static=k,S.private=m,P=S.access={has:m?u=>Ut(n,u):u=>r in u},a^3&&(P.get=m?u=>(a^1?fe:Mt)(u,n,a^4?o:p.get):u=>u[r]),a>2&&(P.set=m?(u,V)=>me(u,n,V,a^4?o:p.set):(u,V)=>u[r]=V)),c=(0,s[F])(a?a<4?m?o:p[le]:a>4?void 0:{get:p.get,set:p.set}:n,S),w._=1,a^4||c===void 0?O(c)&&(a>4?he.unshift(c):a?m?o=c:p[le]=c:n=c):typeof c!="object"||c===null?W("Object expected"):(O(i=c.get)&&(p.get=i),O(i=c.set)&&(p.set=i),O(i=c.init)&&he.unshift(i));return a||$t(t,n),p&&se(n,r,p),m?a^4?o:p:n},ne=(t,e,r)=>e.has(t)||W("Cannot "+r),Ut=(t,e)=>Object(e)!==e?W('Cannot use the "in" operator on this value'):t.has(e),fe=(t,e,r)=>(ne(t,e,"read from private field"),r?r.call(t):e.get(t)),N=(t,e,r)=>e.has(t)?W("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),me=(t,e,r,s)=>(ne(t,e,"write to private field"),s?s.call(t,r):e.set(t,r),r),Mt=(t,e,r)=>(ne(t,e,"access private method"),r),Ke,Pe,xe,Je,Ne,Q,Oe,d,oe,ie,ae,ce,de;Oe=[Me("user-ui-login")];class _ extends(Q=Ue,Ne=[x()],Je=[x()],xe=[x()],Pe=[x()],Ke=[x()],Q){constructor(){super(...arguments),N(this,oe,f(d,8,this,[])),f(d,11,this),N(this,ie,f(d,12,this,[])),f(d,15,this),N(this,ae,f(d,16,this,null)),f(d,19,this),N(this,ce,f(d,20,this,null)),f(d,23,this),N(this,de,f(d,24,this,null)),f(d,27,this)}handleChange(e){const r=parseInt(e.target.value);this.selectedNetwork=this.networks[r]??null,this.message=null}async loadNetworks(){return(await G(v.accessToken.get()).request("listNetworks")).networks}async loadIdps(){return(await G(v.accessToken.get()).request("listIdps")).idps}async connectedCallback(){super.connectedCallback(),this.networks=await this.loadNetworks(),this.idps=await this.loadIdps()}async handleConnectToIDP(){if(this.message=null,!this.selectedNetwork){this.messageType="error",this.message="Please select a network before connecting.";return}v.networkId.set(this.selectedNetwork.id);const e=this.idps.find(r=>{var s;return r.id===((s=this.selectedNetwork)==null?void 0:s.identityProviderId)});if(!e){this.messageType="error",this.message="Identity provider misconfigured for this network.";return}if(e.type==="self_signed")await this.selfSign({clientId:this.selectedNetwork.auth.clientId||"",clientSecret:this.selectedNetwork.auth.clientSecret||"",scope:this.selectedNetwork.auth.scope,audience:this.selectedNetwork.auth.audience}),setTimeout(()=>{window.location.replace("/")},400);else if(e.type==="oauth")if(this.selectedNetwork.auth.method==="authorization_code"){const r=`${window.origin}/callback/`;this.messageType="info",this.message=`Redirecting to ${this.selectedNetwork.name}...`;const s=this.selectedNetwork.auth,n=await fetch(e.configUrl||"").then(c=>c.json()),o={configUrl:e.configUrl,clientId:s.clientId,audience:s.audience},i=new URLSearchParams({response_type:"code",client_id:this.selectedNetwork.auth.clientId||"",redirect_uri:r||"",nonce:crypto.randomUUID(),scope:s.scope||"",audience:s.audience||"",state:btoa(JSON.stringify(o))});setTimeout(()=>{window.location.href=`${n.authorization_endpoint}?${i.toString()}`},400)}else{this.messageType="error",this.message="This authentication method is not valid.";return}else this.messageType="error",this.message="This authentication type is not supported yet."}async selfSign(e){const r=await xt.fetchToken(console,e,"unsafe-auth",3600);window.opener&&!window.opener.closed&&window.opener.postMessage({type:De.SPLICE_WALLET_IDP_AUTH_SUCCESS,token:r},"*");const s=JSON.parse(atob(r.split(".")[1]));v.expirationDate.set(new Date(s.exp*1e3).toString()),v.accessToken.set(r),await G(r).request("addSession",{networkId:v.networkId.get()||""})}render(){return U`
1
+ import{o as H,d as l,l as D,e as ge,c as G,s as v,W as De,x as U,a as $e,i as Ue,t as Me}from"./index-BVQSWRTn.js";import{r as x}from"./state-xH49VD_k.js";const ee=crypto,_e=t=>t instanceof CryptoKey,C=new TextEncoder,Y=new TextDecoder;function Le(...t){const e=t.reduce((n,{length:o})=>n+o,0),r=new Uint8Array(e);let s=0;for(const n of t)r.set(n,s),s+=n.length;return r}const ke=t=>{let e=t;typeof e=="string"&&(e=C.encode(e));const r=32768,s=[];for(let n=0;n<e.length;n+=r)s.push(String.fromCharCode.apply(null,e.subarray(n,n+r)));return btoa(s.join(""))},j=t=>ke(t).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"),ze=t=>{const e=atob(t),r=new Uint8Array(e.length);for(let s=0;s<e.length;s++)r[s]=e.charCodeAt(s);return r},te=t=>{let e=t;e instanceof Uint8Array&&(e=Y.decode(e)),e=e.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"");try{return ze(e)}catch{throw new TypeError("The input to be decoded is not correctly encoded.")}};class h extends Error{constructor(e,r){var s;super(e,r),this.code="ERR_JOSE_GENERIC",this.name=this.constructor.name,(s=Error.captureStackTrace)==null||s.call(Error,this,this.constructor)}}h.code="ERR_JOSE_GENERIC";class Fe extends h{constructor(e,r,s="unspecified",n="unspecified"){super(e,{cause:{claim:s,reason:n,payload:r}}),this.code="ERR_JWT_CLAIM_VALIDATION_FAILED",this.claim=s,this.reason=n,this.payload=r}}Fe.code="ERR_JWT_CLAIM_VALIDATION_FAILED";class Ve extends h{constructor(e,r,s="unspecified",n="unspecified"){super(e,{cause:{claim:s,reason:n,payload:r}}),this.code="ERR_JWT_EXPIRED",this.claim=s,this.reason=n,this.payload=r}}Ve.code="ERR_JWT_EXPIRED";class Ge extends h{constructor(){super(...arguments),this.code="ERR_JOSE_ALG_NOT_ALLOWED"}}Ge.code="ERR_JOSE_ALG_NOT_ALLOWED";class E extends h{constructor(){super(...arguments),this.code="ERR_JOSE_NOT_SUPPORTED"}}E.code="ERR_JOSE_NOT_SUPPORTED";class je extends h{constructor(e="decryption operation failed",r){super(e,r),this.code="ERR_JWE_DECRYPTION_FAILED"}}je.code="ERR_JWE_DECRYPTION_FAILED";class qe extends h{constructor(){super(...arguments),this.code="ERR_JWE_INVALID"}}qe.code="ERR_JWE_INVALID";class I extends h{constructor(){super(...arguments),this.code="ERR_JWS_INVALID"}}I.code="ERR_JWS_INVALID";class we extends h{constructor(){super(...arguments),this.code="ERR_JWT_INVALID"}}we.code="ERR_JWT_INVALID";class Be extends h{constructor(){super(...arguments),this.code="ERR_JWK_INVALID"}}Be.code="ERR_JWK_INVALID";class Ye extends h{constructor(){super(...arguments),this.code="ERR_JWKS_INVALID"}}Ye.code="ERR_JWKS_INVALID";class Xe extends h{constructor(e="no applicable key found in the JSON Web Key Set",r){super(e,r),this.code="ERR_JWKS_NO_MATCHING_KEY"}}Xe.code="ERR_JWKS_NO_MATCHING_KEY";class Ze extends h{constructor(e="multiple matching keys found in the JSON Web Key Set",r){super(e,r),this.code="ERR_JWKS_MULTIPLE_MATCHING_KEYS"}}Ze.code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";class Qe extends h{constructor(e="request timed out",r){super(e,r),this.code="ERR_JWKS_TIMEOUT"}}Qe.code="ERR_JWKS_TIMEOUT";class et extends h{constructor(e="signature verification failed",r){super(e,r),this.code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED"}}et.code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";function g(t,e="algorithm.name"){return new TypeError(`CryptoKey does not support this operation, its ${e} must be ${t}`)}function J(t,e){return t.name===e}function q(t){return parseInt(t.name.slice(4),10)}function tt(t){switch(t){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}function rt(t,e){if(e.length&&!e.some(r=>t.usages.includes(r))){let r="CryptoKey does not support this operation, its usages must include ";if(e.length>2){const s=e.pop();r+=`one of ${e.join(", ")}, or ${s}.`}else e.length===2?r+=`one of ${e[0]} or ${e[1]}.`:r+=`${e[0]}.`;throw new TypeError(r)}}function st(t,e,...r){switch(e){case"HS256":case"HS384":case"HS512":{if(!J(t.algorithm,"HMAC"))throw g("HMAC");const s=parseInt(e.slice(2),10);if(q(t.algorithm.hash)!==s)throw g(`SHA-${s}`,"algorithm.hash");break}case"RS256":case"RS384":case"RS512":{if(!J(t.algorithm,"RSASSA-PKCS1-v1_5"))throw g("RSASSA-PKCS1-v1_5");const s=parseInt(e.slice(2),10);if(q(t.algorithm.hash)!==s)throw g(`SHA-${s}`,"algorithm.hash");break}case"PS256":case"PS384":case"PS512":{if(!J(t.algorithm,"RSA-PSS"))throw g("RSA-PSS");const s=parseInt(e.slice(2),10);if(q(t.algorithm.hash)!==s)throw g(`SHA-${s}`,"algorithm.hash");break}case"EdDSA":{if(t.algorithm.name!=="Ed25519"&&t.algorithm.name!=="Ed448")throw g("Ed25519 or Ed448");break}case"Ed25519":{if(!J(t.algorithm,"Ed25519"))throw g("Ed25519");break}case"ES256":case"ES384":case"ES512":{if(!J(t.algorithm,"ECDSA"))throw g("ECDSA");const s=tt(e);if(t.algorithm.namedCurve!==s)throw g(s,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}rt(t,r)}function Se(t,e,...r){var s;if(r=r.filter(Boolean),r.length>2){const n=r.pop();t+=`one of type ${r.join(", ")}, or ${n}.`}else r.length===2?t+=`one of type ${r[0]} or ${r[1]}.`:t+=`of type ${r[0]}.`;return e==null?t+=` Received ${e}`:typeof e=="function"&&e.name?t+=` Received function ${e.name}`:typeof e=="object"&&e!=null&&(s=e.constructor)!=null&&s.name&&(t+=` Received an instance of ${e.constructor.name}`),t}const ue=(t,...e)=>Se("Key must be ",t,...e);function ye(t,e,...r){return Se(`Key for the ${t} algorithm must be `,e,...r)}const be=t=>_e(t)?!0:(t==null?void 0:t[Symbol.toStringTag])==="KeyObject",M=["CryptoKey"],nt=(...t)=>{const e=t.filter(Boolean);if(e.length===0||e.length===1)return!0;let r;for(const s of e){const n=Object.keys(s);if(!r||r.size===0){r=new Set(n);continue}for(const o of n){if(r.has(o))return!1;r.add(o)}}return!0};function ot(t){return typeof t=="object"&&t!==null}function Ee(t){if(!ot(t)||Object.prototype.toString.call(t)!=="[object Object]")return!1;if(Object.getPrototypeOf(t)===null)return!0;let e=t;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}const it=(t,e)=>{if(t.startsWith("RS")||t.startsWith("PS")){const{modulusLength:r}=e.algorithm;if(typeof r!="number"||r<2048)throw new TypeError(`${t} requires key modulusLength to be 2048 bits or larger`)}};function $(t){return Ee(t)&&typeof t.kty=="string"}function at(t){return t.kty!=="oct"&&typeof t.d=="string"}function ct(t){return t.kty!=="oct"&&typeof t.d>"u"}function dt(t){return $(t)&&t.kty==="oct"&&typeof t.k=="string"}function lt(t){let e,r;switch(t.kty){case"RSA":{switch(t.alg){case"PS256":case"PS384":case"PS512":e={name:"RSA-PSS",hash:`SHA-${t.alg.slice(-3)}`},r=t.d?["sign"]:["verify"];break;case"RS256":case"RS384":case"RS512":e={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${t.alg.slice(-3)}`},r=t.d?["sign"]:["verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":e={name:"RSA-OAEP",hash:`SHA-${parseInt(t.alg.slice(-3),10)||1}`},r=t.d?["decrypt","unwrapKey"]:["encrypt","wrapKey"];break;default:throw new E('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}case"EC":{switch(t.alg){case"ES256":e={name:"ECDSA",namedCurve:"P-256"},r=t.d?["sign"]:["verify"];break;case"ES384":e={name:"ECDSA",namedCurve:"P-384"},r=t.d?["sign"]:["verify"];break;case"ES512":e={name:"ECDSA",namedCurve:"P-521"},r=t.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":e={name:"ECDH",namedCurve:t.crv},r=t.d?["deriveBits"]:[];break;default:throw new E('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}case"OKP":{switch(t.alg){case"Ed25519":e={name:"Ed25519"},r=t.d?["sign"]:["verify"];break;case"EdDSA":e={name:t.crv},r=t.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":e={name:t.crv},r=t.d?["deriveBits"]:[];break;default:throw new E('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}default:throw new E('Invalid or unsupported JWK "kty" (Key Type) Parameter value')}return{algorithm:e,keyUsages:r}}const ht=async t=>{if(!t.alg)throw new TypeError('"alg" argument is required when "jwk.alg" is not present');const{algorithm:e,keyUsages:r}=lt(t),s=[e,t.ext??!1,t.key_ops??r],n={...t};return delete n.alg,delete n.use,ee.subtle.importKey("jwk",n,...s)},ve=t=>te(t);let A,T;const Ae=t=>(t==null?void 0:t[Symbol.toStringTag])==="KeyObject",L=async(t,e,r,s,n=!1)=>{let o=t.get(e);if(o!=null&&o[s])return o[s];const i=await ht({...r,alg:s});return n&&Object.freeze(e),o?o[s]=i:t.set(e,{[s]:i}),i},ut=(t,e)=>{if(Ae(t)){let r=t.export({format:"jwk"});return delete r.d,delete r.dp,delete r.dq,delete r.p,delete r.q,delete r.qi,r.k?ve(r.k):(T||(T=new WeakMap),L(T,t,r,e))}return $(t)?t.k?te(t.k):(T||(T=new WeakMap),L(T,t,t,e,!0)):t},pt=(t,e)=>{if(Ae(t)){let r=t.export({format:"jwk"});return r.k?ve(r.k):(A||(A=new WeakMap),L(A,t,r,e))}return $(t)?t.k?te(t.k):(A||(A=new WeakMap),L(A,t,t,e,!0)):t},ft={normalizePublicKey:ut,normalizePrivateKey:pt},R=t=>t==null?void 0:t[Symbol.toStringTag],X=(t,e,r)=>{var s,n;if(e.use!==void 0&&e.use!=="sig")throw new TypeError("Invalid key for this operation, when present its use must be sig");if(e.key_ops!==void 0&&((n=(s=e.key_ops).includes)==null?void 0:n.call(s,r))!==!0)throw new TypeError(`Invalid key for this operation, when present its key_ops must include ${r}`);if(e.alg!==void 0&&e.alg!==t)throw new TypeError(`Invalid key for this operation, when present its alg must be ${t}`);return!0},mt=(t,e,r,s)=>{if(!(e instanceof Uint8Array)){if(s&&$(e)){if(dt(e)&&X(t,e,r))return;throw new TypeError('JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present')}if(!be(e))throw new TypeError(ye(t,e,...M,"Uint8Array",s?"JSON Web Key":null));if(e.type!=="secret")throw new TypeError(`${R(e)} instances for symmetric algorithms must be of type "secret"`)}},gt=(t,e,r,s)=>{if(s&&$(e))switch(r){case"sign":if(at(e)&&X(t,e,r))return;throw new TypeError("JSON Web Key for this operation be a private JWK");case"verify":if(ct(e)&&X(t,e,r))return;throw new TypeError("JSON Web Key for this operation be a public JWK")}if(!be(e))throw new TypeError(ye(t,e,...M,s?"JSON Web Key":null));if(e.type==="secret")throw new TypeError(`${R(e)} instances for asymmetric algorithms must not be of type "secret"`);if(r==="sign"&&e.type==="public")throw new TypeError(`${R(e)} instances for asymmetric algorithm signing must be of type "private"`);if(r==="decrypt"&&e.type==="public")throw new TypeError(`${R(e)} instances for asymmetric algorithm decryption must be of type "private"`);if(e.algorithm&&r==="verify"&&e.type==="private")throw new TypeError(`${R(e)} instances for asymmetric algorithm verifying must be of type "public"`);if(e.algorithm&&r==="encrypt"&&e.type==="private")throw new TypeError(`${R(e)} instances for asymmetric algorithm encryption must be of type "public"`)};function Te(t,e,r,s){e.startsWith("HS")||e==="dir"||e.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(e)?mt(e,r,s,t):gt(e,r,s,t)}Te.bind(void 0,!1);const _t=Te.bind(void 0,!0);function wt(t,e,r,s,n){if(n.crit!==void 0&&(s==null?void 0:s.crit)===void 0)throw new t('"crit" (Critical) Header Parameter MUST be integrity protected');if(!s||s.crit===void 0)return new Set;if(!Array.isArray(s.crit)||s.crit.length===0||s.crit.some(i=>typeof i!="string"||i.length===0))throw new t('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let o;r!==void 0?o=new Map([...Object.entries(r),...e.entries()]):o=e;for(const i of s.crit){if(!o.has(i))throw new E(`Extension Header Parameter "${i}" is not recognized`);if(n[i]===void 0)throw new t(`Extension Header Parameter "${i}" is missing`);if(o.get(i)&&s[i]===void 0)throw new t(`Extension Header Parameter "${i}" MUST be integrity protected`)}return new Set(s.crit)}function St(t,e){const r=`SHA-${t.slice(-3)}`;switch(t){case"HS256":case"HS384":case"HS512":return{hash:r,name:"HMAC"};case"PS256":case"PS384":case"PS512":return{hash:r,name:"RSA-PSS",saltLength:t.slice(-3)>>3};case"RS256":case"RS384":case"RS512":return{hash:r,name:"RSASSA-PKCS1-v1_5"};case"ES256":case"ES384":case"ES512":return{hash:r,name:"ECDSA",namedCurve:e.namedCurve};case"Ed25519":return{name:"Ed25519"};case"EdDSA":return{name:e.name};default:throw new E(`alg ${t} is not supported either by JOSE or your javascript runtime`)}}async function yt(t,e,r){if(e=await ft.normalizePrivateKey(e,t),_e(e))return st(e,t,r),e;if(e instanceof Uint8Array){if(!t.startsWith("HS"))throw new TypeError(ue(e,...M));return ee.subtle.importKey("raw",e,{hash:`SHA-${t.slice(-3)}`,name:"HMAC"},!1,[r])}throw new TypeError(ue(e,...M,"Uint8Array","JSON Web Key"))}const y=t=>Math.floor(t.getTime()/1e3),Ie=60,Re=Ie*60,re=Re*24,bt=re*7,Et=re*365.25,vt=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,B=t=>{const e=vt.exec(t);if(!e||e[4]&&e[1])throw new TypeError("Invalid time period format");const r=parseFloat(e[2]),s=e[3].toLowerCase();let n;switch(s){case"sec":case"secs":case"second":case"seconds":case"s":n=Math.round(r);break;case"minute":case"minutes":case"min":case"mins":case"m":n=Math.round(r*Ie);break;case"hour":case"hours":case"hr":case"hrs":case"h":n=Math.round(r*Re);break;case"day":case"days":case"d":n=Math.round(r*re);break;case"week":case"weeks":case"w":n=Math.round(r*bt);break;default:n=Math.round(r*Et);break}return e[1]==="-"||e[4]==="ago"?-n:n},At=async(t,e,r)=>{const s=await yt(t,e,"sign");it(t,s);const n=await ee.subtle.sign(St(t,s.algorithm),s,r);return new Uint8Array(n)};class Tt{constructor(e){if(!(e instanceof Uint8Array))throw new TypeError("payload must be an instance of Uint8Array");this._payload=e}setProtectedHeader(e){if(this._protectedHeader)throw new TypeError("setProtectedHeader can only be called once");return this._protectedHeader=e,this}setUnprotectedHeader(e){if(this._unprotectedHeader)throw new TypeError("setUnprotectedHeader can only be called once");return this._unprotectedHeader=e,this}async sign(e,r){if(!this._protectedHeader&&!this._unprotectedHeader)throw new I("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!nt(this._protectedHeader,this._unprotectedHeader))throw new I("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const s={...this._protectedHeader,...this._unprotectedHeader},n=wt(I,new Map([["b64",!0]]),r==null?void 0:r.crit,this._protectedHeader,s);let o=!0;if(n.has("b64")&&(o=this._protectedHeader.b64,typeof o!="boolean"))throw new I('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:i}=s;if(typeof i!="string"||!i)throw new I('JWS "alg" (Algorithm) Header Parameter missing or invalid');_t(i,e,"sign");let c=this._payload;o&&(c=C.encode(j(c)));let w;this._protectedHeader?w=C.encode(j(JSON.stringify(this._protectedHeader))):w=C.encode("");const S=Le(w,C.encode("."),c),P=await At(i,e,S),a={signature:j(P),payload:""};return o&&(a.payload=Y.decode(c)),this._unprotectedHeader&&(a.header=this._unprotectedHeader),this._protectedHeader&&(a.protected=Y.decode(w)),a}}class It{constructor(e){this._flattened=new Tt(e)}setProtectedHeader(e){return this._flattened.setProtectedHeader(e),this}async sign(e,r){const s=await this._flattened.sign(e,r);if(s.payload===void 0)throw new TypeError("use the flattened module for creating JWS with b64: false");return`${s.protected}.${s.payload}.${s.signature}`}}function b(t,e){if(!Number.isFinite(e))throw new TypeError(`Invalid ${t} input`);return e}class Rt{constructor(e={}){if(!Ee(e))throw new TypeError("JWT Claims Set MUST be an object");this._payload=e}setIssuer(e){return this._payload={...this._payload,iss:e},this}setSubject(e){return this._payload={...this._payload,sub:e},this}setAudience(e){return this._payload={...this._payload,aud:e},this}setJti(e){return this._payload={...this._payload,jti:e},this}setNotBefore(e){return typeof e=="number"?this._payload={...this._payload,nbf:b("setNotBefore",e)}:e instanceof Date?this._payload={...this._payload,nbf:b("setNotBefore",y(e))}:this._payload={...this._payload,nbf:y(new Date)+B(e)},this}setExpirationTime(e){return typeof e=="number"?this._payload={...this._payload,exp:b("setExpirationTime",e)}:e instanceof Date?this._payload={...this._payload,exp:b("setExpirationTime",y(e))}:this._payload={...this._payload,exp:y(new Date)+B(e)},this}setIssuedAt(e){return typeof e>"u"?this._payload={...this._payload,iat:y(new Date)}:e instanceof Date?this._payload={...this._payload,iat:b("setIssuedAt",y(e))}:typeof e=="string"?this._payload={...this._payload,iat:b("setIssuedAt",y(new Date)+B(e))}:this._payload={...this._payload,iat:b("setIssuedAt",e)},this}}class Ct extends Rt{setProtectedHeader(e){return this._protectedHeader=e,this}async sign(e,r){var n;const s=new It(C.encode(JSON.stringify(this._payload)));if(s.setProtectedHeader(this._protectedHeader),Array.isArray((n=this._protectedHeader)==null?void 0:n.crit)&&this._protectedHeader.crit.includes("b64")&&this._protectedHeader.b64===!1)throw new we("JWTs MUST NOT use unencoded payload");return s.sign(e,r)}}var Wt=H({method:D("authorization_code"),audience:l(),scope:l(),clientId:l()}),Kt=H({method:D("client_credentials"),audience:l(),scope:l(),clientId:l(),clientSecret:l()}),Pt=H({method:D("self_signed"),issuer:l(),audience:l(),scope:l(),clientId:l(),clientSecret:l()});ge("method",[Wt,Kt,Pt]);ge("type",[H({id:l(),type:D("self_signed"),issuer:l()}),H({id:l(),type:D("oauth"),issuer:l(),configUrl:l().url()})]);var xt=class Z{constructor(e,r,s,n=3600){this.auth=e,this.authAdmin=r,this.logger=s,this.expirySeconds=n}async getUserAccessToken(){return this.logger.debug("Fetching self-signed user auth token"),Z.fetchToken(this.logger,{clientId:this.auth.clientId,clientSecret:this.auth.clientSecret,scope:this.auth.scope,audience:this.auth.audience},this.auth.issuer,this.expirySeconds)}async getAdminAccessToken(){if(this.logger.debug("Fetching self-signed admin auth token"),!this.authAdmin)throw new Error("Admin credentials are not configured");return Z.fetchToken(this.logger,{clientId:this.authAdmin.clientId,clientSecret:this.authAdmin.clientSecret,scope:this.authAdmin.scope,audience:this.authAdmin.audience},this.authAdmin.issuer,this.expirySeconds)}static async fetchToken(e,r,s,n=3600){const o=new TextEncoder().encode(r.clientSecret),i=Math.floor(Date.now()/1e3),c=await new Ct({sub:r.clientId,aud:r.audience||"",scope:r.scope||"",iat:i,exp:i+n,iss:s}).setProtectedHeader({alg:"HS256"}).sign(o);return e.info(`Generated self-signed JWT token: ${c}`),c}},Jt=Object.create,se=Object.defineProperty,Nt=Object.getOwnPropertyDescriptor,Ce=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),W=t=>{throw TypeError(t)},Ot=(t,e,r)=>e in t?se(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,pe=(t,e)=>se(t,"name",{value:e,configurable:!0}),Ht=t=>[,,,Jt((t==null?void 0:t[Ce("metadata")])??null)],We=["class","method","getter","setter","accessor","field","value","get","set"],O=t=>t!==void 0&&typeof t!="function"?W("Function expected"):t,Dt=(t,e,r,s,n)=>({kind:We[t],name:e,metadata:s,addInitializer:o=>r._?W("Already initialized"):n.push(O(o||null))}),$t=(t,e)=>Ot(e,Ce("metadata"),t[3]),f=(t,e,r,s)=>{for(var n=0,o=t[e>>1],i=o&&o.length;n<i;n++)e&1?o[n].call(r):s=o[n].call(r,s);return s},K=(t,e,r,s,n,o)=>{var i,c,w,S,P,a=e&7,k=!!(e&8),m=!!(e&16),z=a>3?t.length+1:a?k?1:2:0,le=We[a+5],he=a>3&&(t[z-1]=[]),He=t[z]||(t[z]=[]),p=a&&(!m&&!k&&(n=n.prototype),a<5&&(a>3||!m)&&Nt(a<4?n:{get[r](){return fe(this,o)},set[r](u){return me(this,o,u)}},r));a?m&&a<4&&pe(o,(a>2?"set ":a>1?"get ":"")+r):pe(n,r);for(var F=s.length-1;F>=0;F--)S=Dt(a,r,w={},t[3],He),a&&(S.static=k,S.private=m,P=S.access={has:m?u=>Ut(n,u):u=>r in u},a^3&&(P.get=m?u=>(a^1?fe:Mt)(u,n,a^4?o:p.get):u=>u[r]),a>2&&(P.set=m?(u,V)=>me(u,n,V,a^4?o:p.set):(u,V)=>u[r]=V)),c=(0,s[F])(a?a<4?m?o:p[le]:a>4?void 0:{get:p.get,set:p.set}:n,S),w._=1,a^4||c===void 0?O(c)&&(a>4?he.unshift(c):a?m?o=c:p[le]=c:n=c):typeof c!="object"||c===null?W("Object expected"):(O(i=c.get)&&(p.get=i),O(i=c.set)&&(p.set=i),O(i=c.init)&&he.unshift(i));return a||$t(t,n),p&&se(n,r,p),m?a^4?o:p:n},ne=(t,e,r)=>e.has(t)||W("Cannot "+r),Ut=(t,e)=>Object(e)!==e?W('Cannot use the "in" operator on this value'):t.has(e),fe=(t,e,r)=>(ne(t,e,"read from private field"),r?r.call(t):e.get(t)),N=(t,e,r)=>e.has(t)?W("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),me=(t,e,r,s)=>(ne(t,e,"write to private field"),s?s.call(t,r):e.set(t,r),r),Mt=(t,e,r)=>(ne(t,e,"access private method"),r),Ke,Pe,xe,Je,Ne,Q,Oe,d,oe,ie,ae,ce,de;Oe=[Me("user-ui-login")];class _ extends(Q=Ue,Ne=[x()],Je=[x()],xe=[x()],Pe=[x()],Ke=[x()],Q){constructor(){super(...arguments),N(this,oe,f(d,8,this,[])),f(d,11,this),N(this,ie,f(d,12,this,[])),f(d,15,this),N(this,ae,f(d,16,this,null)),f(d,19,this),N(this,ce,f(d,20,this,null)),f(d,23,this),N(this,de,f(d,24,this,null)),f(d,27,this)}handleChange(e){const r=parseInt(e.target.value);this.selectedNetwork=this.networks[r]??null,this.message=null}async loadNetworks(){return(await G(v.accessToken.get()).request("listNetworks")).networks}async loadIdps(){return(await G(v.accessToken.get()).request("listIdps")).idps}async connectedCallback(){super.connectedCallback(),this.networks=await this.loadNetworks(),this.idps=await this.loadIdps()}async handleConnectToIDP(){if(this.message=null,!this.selectedNetwork){this.messageType="error",this.message="Please select a network before connecting.";return}v.networkId.set(this.selectedNetwork.id);const e=this.idps.find(r=>{var s;return r.id===((s=this.selectedNetwork)==null?void 0:s.identityProviderId)});if(!e){this.messageType="error",this.message="Identity provider misconfigured for this network.";return}if(e.type==="self_signed")await this.selfSign({clientId:this.selectedNetwork.auth.clientId||"",clientSecret:this.selectedNetwork.auth.clientSecret||"",scope:this.selectedNetwork.auth.scope,audience:this.selectedNetwork.auth.audience}),setTimeout(()=>{window.location.replace("/")},400);else if(e.type==="oauth")if(this.selectedNetwork.auth.method==="authorization_code"){const r=`${window.origin}/callback/`;this.messageType="info",this.message=`Redirecting to ${this.selectedNetwork.name}...`;const s=this.selectedNetwork.auth,n=await fetch(e.configUrl||"").then(c=>c.json()),o={configUrl:e.configUrl,clientId:s.clientId,audience:s.audience},i=new URLSearchParams({response_type:"code",client_id:this.selectedNetwork.auth.clientId||"",redirect_uri:r||"",nonce:crypto.randomUUID(),scope:s.scope||"",audience:s.audience||"",state:btoa(JSON.stringify(o))});setTimeout(()=>{window.location.href=`${n.authorization_endpoint}?${i.toString()}`},400)}else{this.messageType="error",this.message="This authentication method is not valid.";return}else this.messageType="error",this.message="This authentication type is not supported yet."}async selfSign(e){const r=await xt.fetchToken(console,e,"unsafe-auth",3600);window.opener&&!window.opener.closed&&window.opener.postMessage({type:De.SPLICE_WALLET_IDP_AUTH_SUCCESS,token:r},"*");const s=JSON.parse(atob(r.split(".")[1]));v.expirationDate.set(new Date(s.exp*1e3).toString()),v.accessToken.set(r),await G(r).request("addSession",{networkId:v.networkId.get()||""})}render(){return U`
2
2
  <div class="card">
3
3
  <h1>Sign in to Canton Network</h1>
4
4
 
@@ -0,0 +1,26 @@
1
+ import{c as w,s as u,h as m,x as R,a as V,i as X,t as Y}from"./index-BVQSWRTn.js";import{r as $}from"./state-xH49VD_k.js";var Z=Object.create,D=Object.defineProperty,j=Object.getOwnPropertyDescriptor,G=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),v=t=>{throw TypeError(t)},ee=(t,e,s)=>e in t?D(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,W=(t,e)=>D(t,"name",{value:e,configurable:!0}),te=t=>[,,,Z((t==null?void 0:t[G("metadata")])??null)],B=["class","method","getter","setter","accessor","field","value","get","set"],y=t=>t!==void 0&&typeof t!="function"?v("Function expected"):t,se=(t,e,s,o,n)=>({kind:B[t],name:e,metadata:o,addInitializer:r=>s._?v("Already initialized"):n.push(y(r||null))}),ie=(t,e)=>ee(e,G("metadata"),t[3]),_=(t,e,s,o)=>{for(var n=0,r=t[e>>1],p=r&&r.length;n<p;n++)e&1?r[n].call(s):o=r[n].call(s,o);return o},f=(t,e,s,o,n,r)=>{var p,c,b,g,I,i=e&7,C=!!(e&8),h=!!(e&16),S=i>3?t.length+1:i?C?1:2:0,M=B[i+5],x=i>3&&(t[S-1]=[]),Q=t[S]||(t[S]=[]),l=i&&(!h&&!C&&(n=n.prototype),i<5&&(i>3||!h)&&j(i<4?n:{get[s](){return E(this,r)},set[s](a){return F(this,r,a)}},s));i?h&&i<4&&W(r,(i>2?"set ":i>1?"get ":"")+s):W(n,s);for(var A=o.length-1;A>=0;A--)g=se(i,s,b={},t[3],Q),i&&(g.static=C,g.private=h,I=g.access={has:h?a=>ne(n,a):a=>s in a},i^3&&(I.get=h?a=>(i^1?E:re)(a,n,i^4?r:l.get):a=>a[s]),i>2&&(I.set=h?(a,N)=>F(a,n,N,i^4?r:l.set):(a,N)=>a[s]=N)),c=(0,o[A])(i?i<4?h?r:l[M]:i>4?void 0:{get:l.get,set:l.set}:n,g),b._=1,i^4||c===void 0?y(c)&&(i>4?x.unshift(c):i?h?r=c:l[M]=c:n=c):typeof c!="object"||c===null?v("Object expected"):(y(p=c.get)&&(l.get=p),y(p=c.set)&&(l.set=p),y(p=c.init)&&x.unshift(p));return i||ie(t,n),l&&D(n,s,l),h?i^4?r:l:n},P=(t,e,s)=>e.has(t)||v("Cannot "+s),ne=(t,e)=>Object(e)!==e?v('Cannot use the "in" operator on this value'):t.has(e),E=(t,e,s)=>(P(t,e,"read from private field"),s?s.call(t):e.get(t)),z=(t,e,s)=>e.has(t)?v("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,s),F=(t,e,s,o)=>(P(t,e,"write to private field"),o?o.call(t,s):e.set(t,s),s),re=(t,e,s)=>(P(t,e,"access private method"),s),H,J,K,T,L,d,U,q,O;L=[Y("user-ui-settings")];class k extends(T=X,K=[$()],J=[$()],H=[$()],T){constructor(){super(...arguments),z(this,U,_(d,8,this,[])),_(d,11,this),z(this,q,_(d,12,this,[])),_(d,15,this),z(this,O,_(d,16,this,[])),_(d,19,this),this.handleNetworkSubmit=async e=>{e.preventDefault();const s=this.toApiAuth(e.network.auth),o=e.network.adminAuth?this.toApiAuth(e.network.adminAuth):{method:"client_credentials",audience:"",scope:"",clientId:"",clientSecret:""},n={id:e.network.id,name:e.network.name,description:e.network.description,identityProviderId:e.network.identityProviderId,...e.network.synchronizerId&&{synchronizerId:e.network.synchronizerId},ledgerApi:e.network.ledgerApi.baseUrl,auth:s,adminAuth:o};try{await w(u.accessToken.get()).request("addNetwork",{network:n}),await this.listNetworks()}catch(r){m(r)}},this.handleIdpSubmit=async e=>{console.log(e);try{await w(u.accessToken.get()).request("addIdp",{idp:e.idp}),await this.listIdps()}catch(s){m(s)}},this.handleIdpDelete=async e=>{console.log(e);try{await w(u.accessToken.get()).request("removeIdp",{identityProviderId:e.idp.id}),await this.listIdps()}catch(s){m(s)}}}connectedCallback(){super.connectedCallback(),this.listNetworks(),this.listSessions(),this.listIdps()}async listNetworks(){const s=await w(u.accessToken.get()).request("listNetworks");this.networks=s.networks}async listSessions(){const s=await w(u.accessToken.get()).request("listSessions");this.sessions=s.sessions}async listIdps(){const s=await w(u.accessToken.get()).request("listIdps");this.idps=s.idps}toApiAuth(e){return{method:e.method,audience:e.audience??"",scope:e.scope??"",clientId:e.clientId??"",issuer:e.issuer??"",clientSecret:e.clientSecret??""}}async handleNetworkDelete(e){if(confirm(`Delete network "${e.network.name}"?`))try{const s={networkName:e.network.id};await w(u.accessToken.get()).request("removeNetwork",s),await this.listNetworks()}catch(s){m(s)}}render(){const e=w(u.accessToken.get());return R`
2
+ <wg-sessions .sessions=${this.sessions}></wg-sessions>
3
+
4
+ <wg-wallets-sync .client=${e}></wg-wallets-sync>
5
+
6
+ <wg-networks
7
+ .networks=${this.networks}
8
+ @network-edit-save=${this.handleNetworkSubmit}
9
+ @delete=${this.handleNetworkDelete}
10
+ ></wg-networks>
11
+
12
+ <wg-idps
13
+ .idps=${this.idps}
14
+ @delete=${this.handleIdpDelete}
15
+ @idp-add=${this.handleIdpSubmit}
16
+ ></wg-idps>
17
+ `}}d=te(T);U=new WeakMap;q=new WeakMap;O=new WeakMap;f(d,4,"networks",K,k,U);f(d,4,"sessions",J,k,q);f(d,4,"idps",H,k,O);k=f(d,0,"UserUiSettings",L,k);k.styles=V`
18
+ :host {
19
+ display: block;
20
+ box-sizing: border-box;
21
+ padding: 0rem;
22
+ max-width: 900px;
23
+ margin: 0 auto;
24
+ font-family: var(--wg-theme-font-family, Arial, sans-serif);
25
+ }
26
+ `;_(d,1,k);
@@ -1,4 +1,4 @@
1
- import{j as u,u as l}from"./index-Lj4FSLif.js";/**
1
+ import{j as u,u as l}from"./index-BVQSWRTn.js";/**
2
2
  * @license
3
3
  * Copyright 2017 Google LLC
4
4
  * SPDX-License-Identifier: BSD-3-Clause
@@ -1,4 +1,4 @@
1
- import{o as xt,r as Bt,n as Tt,g as Pt,d as Mt,h as It,x as Sf,c as kf,s as Hf,f as rt,a as jt,i as Yt,t as zt}from"./index-Lj4FSLif.js";import{r as Rf}from"./state-DirtiRBm.js";/**
1
+ import{o as xt,r as Bt,n as Tt,f as Pt,d as Mt,g as It,x as Sf,c as kf,s as Hf,h as rt,a as jt,i as Yt,t as zt}from"./index-BVQSWRTn.js";import{r as Rf}from"./state-xH49VD_k.js";/**
2
2
  * @license
3
3
  * Copyright 2017 Google LLC
4
4
  * SPDX-License-Identifier: BSD-3-Clause
@@ -3,8 +3,8 @@
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
5
  <title>Wallet Kernel Remote Callback</title>
6
- <script type="module" crossorigin src="/assets/callback-CSr6jalP.js"></script>
7
- <link rel="modulepreload" crossorigin href="/assets/index-Lj4FSLif.js">
6
+ <script type="module" crossorigin src="/assets/callback-Bgkm99UY.js"></script>
7
+ <link rel="modulepreload" crossorigin href="/assets/index-BVQSWRTn.js">
8
8
  <link rel="stylesheet" crossorigin href="/assets/index-HEe9--Xd.css">
9
9
  </head>
10
10
  <body>
@@ -4,13 +4,12 @@
4
4
  <meta charset="UTF-8" />
5
5
  <title>Wallet Kernel Remote</title>
6
6
  <base href="/" />
7
- <script type="module" crossorigin src="/assets/index-Lj4FSLif.js"></script>
7
+ <script type="module" crossorigin src="/assets/index-BVQSWRTn.js"></script>
8
8
  <link rel="stylesheet" crossorigin href="/assets/index-HEe9--Xd.css">
9
9
  </head>
10
10
  <body>
11
- <app-layout iconSrc="/icon.png">
12
- <user-ui-auth-redirect></user-ui-auth-redirect>
11
+ <user-app>
13
12
  <user-ui></user-ui>
14
- </app-layout>
13
+ </user-app>
15
14
  </body>
16
15
  </html>
@@ -3,16 +3,15 @@
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
5
  <title>Wallet Kernel Login</title>
6
- <script type="module" crossorigin src="/assets/login-DSxjvFmj.js"></script>
7
- <link rel="modulepreload" crossorigin href="/assets/index-Lj4FSLif.js">
8
- <link rel="modulepreload" crossorigin href="/assets/state-DirtiRBm.js">
6
+ <script type="module" crossorigin src="/assets/login-FaVg_LJv.js"></script>
7
+ <link rel="modulepreload" crossorigin href="/assets/index-BVQSWRTn.js">
8
+ <link rel="modulepreload" crossorigin href="/assets/state-xH49VD_k.js">
9
9
  <link rel="stylesheet" crossorigin href="/assets/index-HEe9--Xd.css">
10
10
  </head>
11
11
 
12
12
  <body>
13
- <app-layout iconSrc="/icon.png">
14
- <user-ui-auth-redirect></user-ui-auth-redirect>
13
+ <user-app>
15
14
  <user-ui-login></user-ui-login>
16
- </app-layout>
15
+ </user-app>
17
16
  </body>
18
17
  </html>
@@ -3,15 +3,14 @@
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
5
  <title>Wallet Kernel - Settings</title>
6
- <script type="module" crossorigin src="/assets/settings-DS2QQIMl.js"></script>
7
- <link rel="modulepreload" crossorigin href="/assets/index-Lj4FSLif.js">
8
- <link rel="modulepreload" crossorigin href="/assets/state-DirtiRBm.js">
6
+ <script type="module" crossorigin src="/assets/settings-YzEHE3VQ.js"></script>
7
+ <link rel="modulepreload" crossorigin href="/assets/index-BVQSWRTn.js">
8
+ <link rel="modulepreload" crossorigin href="/assets/state-xH49VD_k.js">
9
9
  <link rel="stylesheet" crossorigin href="/assets/index-HEe9--Xd.css">
10
10
  </head>
11
11
  <body>
12
- <app-layout iconSrc="/icon.png">
13
- <user-ui-auth-redirect></user-ui-auth-redirect>
12
+ <user-app>
14
13
  <user-ui-settings></user-ui-settings>
15
- </app-layout>
14
+ </user-app>
16
15
  </body>
17
16
  </html>
@@ -3,15 +3,14 @@
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
5
  <title>Wallet Kernel – Wallets</title>
6
- <script type="module" crossorigin src="/assets/wallets-D7tP8D1r.js"></script>
7
- <link rel="modulepreload" crossorigin href="/assets/index-Lj4FSLif.js">
8
- <link rel="modulepreload" crossorigin href="/assets/state-DirtiRBm.js">
6
+ <script type="module" crossorigin src="/assets/wallets-CsSlR4-u.js"></script>
7
+ <link rel="modulepreload" crossorigin href="/assets/index-BVQSWRTn.js">
8
+ <link rel="modulepreload" crossorigin href="/assets/state-xH49VD_k.js">
9
9
  <link rel="stylesheet" crossorigin href="/assets/index-HEe9--Xd.css">
10
10
  </head>
11
11
  <body>
12
- <app-layout iconSrc="/icon.png">
13
- <user-ui-auth-redirect></user-ui-auth-redirect>
12
+ <user-app>
14
13
  <user-ui-wallets></user-ui-wallets>
15
- </app-layout>
14
+ </user-app>
16
15
  </body>
17
16
  </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@canton-network/wallet-gateway-remote",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "A server-side Wallet Gateway implementation over HTTP",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -32,21 +32,21 @@
32
32
  "access": "public"
33
33
  },
34
34
  "dependencies": {
35
- "@canton-network/core-ledger-client": "^0.19.0",
36
- "@canton-network/core-rpc-errors": "^0.9.0",
37
- "@canton-network/core-signing-fireblocks": "^0.12.0",
38
- "@canton-network/core-signing-internal": "^0.12.0",
39
- "@canton-network/core-signing-lib": "^0.14.0",
40
- "@canton-network/core-signing-participant": "^0.12.0",
41
- "@canton-network/core-signing-store-sql": "^0.13.0",
42
- "@canton-network/core-tx-visualizer": "^0.13.0",
43
- "@canton-network/core-types": "^0.12.0",
44
- "@canton-network/core-wallet-auth": "^0.13.0",
45
- "@canton-network/core-wallet-dapp-rpc-client": "^0.14.0",
46
- "@canton-network/core-wallet-store": "^0.12.0",
47
- "@canton-network/core-wallet-store-sql": "^0.13.0",
48
- "@canton-network/core-wallet-ui-components": "^0.12.0",
49
- "@canton-network/core-wallet-user-rpc-client": "^0.13.0",
35
+ "@canton-network/core-ledger-client": "^0.20.0",
36
+ "@canton-network/core-rpc-errors": "^0.10.0",
37
+ "@canton-network/core-signing-fireblocks": "^0.13.0",
38
+ "@canton-network/core-signing-internal": "^0.13.0",
39
+ "@canton-network/core-signing-lib": "^0.15.0",
40
+ "@canton-network/core-signing-participant": "^0.13.0",
41
+ "@canton-network/core-signing-store-sql": "^0.14.0",
42
+ "@canton-network/core-tx-visualizer": "^0.14.0",
43
+ "@canton-network/core-types": "^0.13.0",
44
+ "@canton-network/core-wallet-auth": "^0.14.0",
45
+ "@canton-network/core-wallet-dapp-rpc-client": "^0.15.0",
46
+ "@canton-network/core-wallet-store": "^0.13.0",
47
+ "@canton-network/core-wallet-store-sql": "^0.14.0",
48
+ "@canton-network/core-wallet-ui-components": "^0.13.0",
49
+ "@canton-network/core-wallet-user-rpc-client": "^0.14.0",
50
50
  "@commander-js/extra-typings": "^14.0.0",
51
51
  "commander": "^14.0.1",
52
52
  "cors": "^2.8.5",
@@ -63,7 +63,7 @@
63
63
  "zod": "^4.1.12"
64
64
  },
65
65
  "devDependencies": {
66
- "@canton-network/core-wallet-store-inmemory": "^0.14.0",
66
+ "@canton-network/core-wallet-store-inmemory": "^0.15.0",
67
67
  "@jest/globals": "^29.0.0",
68
68
  "@swc/core": "^1.11.31",
69
69
  "@swc/jest": "^0.2.38",
@@ -1,26 +0,0 @@
1
- import{c as w,s as u,f as m,x as R,a as V,i as X,t as Y}from"./index-Lj4FSLif.js";import{r as $}from"./state-DirtiRBm.js";var Z=Object.create,U=Object.defineProperty,j=Object.getOwnPropertyDescriptor,G=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),v=t=>{throw TypeError(t)},ee=(t,e,s)=>e in t?U(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,W=(t,e)=>U(t,"name",{value:e,configurable:!0}),te=t=>[,,,Z((t==null?void 0:t[G("metadata")])??null)],B=["class","method","getter","setter","accessor","field","value","get","set"],f=t=>t!==void 0&&typeof t!="function"?v("Function expected"):t,se=(t,e,s,o,n)=>({kind:B[t],name:e,metadata:o,addInitializer:r=>s._?v("Already initialized"):n.push(f(r||null))}),ie=(t,e)=>ee(e,G("metadata"),t[3]),_=(t,e,s,o)=>{for(var n=0,r=t[e>>1],h=r&&r.length;n<h;n++)e&1?r[n].call(s):o=r[n].call(s,o);return o},y=(t,e,s,o,n,r)=>{var h,c,M,g,C,i=e&7,S=!!(e&8),p=!!(e&16),I=i>3?t.length+1:i?S?1:2:0,P=B[i+5],x=i>3&&(t[I-1]=[]),Q=t[I]||(t[I]=[]),l=i&&(!p&&!S&&(n=n.prototype),i<5&&(i>3||!p)&&j(i<4?n:{get[s](){return E(this,r)},set[s](a){return F(this,r,a)}},s));i?p&&i<4&&W(r,(i>2?"set ":i>1?"get ":"")+s):W(n,s);for(var A=o.length-1;A>=0;A--)g=se(i,s,M={},t[3],Q),i&&(g.static=S,g.private=p,C=g.access={has:p?a=>ne(n,a):a=>s in a},i^3&&(C.get=p?a=>(i^1?E:re)(a,n,i^4?r:l.get):a=>a[s]),i>2&&(C.set=p?(a,N)=>F(a,n,N,i^4?r:l.set):(a,N)=>a[s]=N)),c=(0,o[A])(i?i<4?p?r:l[P]:i>4?void 0:{get:l.get,set:l.set}:n,g),M._=1,i^4||c===void 0?f(c)&&(i>4?x.unshift(c):i?p?r=c:l[P]=c:n=c):typeof c!="object"||c===null?v("Object expected"):(f(h=c.get)&&(l.get=h),f(h=c.set)&&(l.set=h),f(h=c.init)&&x.unshift(h));return i||ie(t,n),l&&U(n,s,l),p?i^4?r:l:n},q=(t,e,s)=>e.has(t)||v("Cannot "+s),ne=(t,e)=>Object(e)!==e?v('Cannot use the "in" operator on this value'):t.has(e),E=(t,e,s)=>(q(t,e,"read from private field"),s?s.call(t):e.get(t)),T=(t,e,s)=>e.has(t)?v("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,s),F=(t,e,s,o)=>(q(t,e,"write to private field"),o?o.call(t,s):e.set(t,s),s),re=(t,e,s)=>(q(t,e,"access private method"),s),H,J,K,D,L,d,O,b,z;L=[Y("user-ui-settings")];class k extends(D=X,K=[$()],J=[$()],H=[$()],D){constructor(){super(...arguments),T(this,O,_(d,8,this,[])),_(d,11,this),T(this,b,_(d,12,this,[])),_(d,15,this),T(this,z,_(d,16,this,[])),_(d,19,this),this.handleNetworkSubmit=async e=>{e.preventDefault();const s=this.toApiAuth(e.network.auth),o=e.network.adminAuth?this.toApiAuth(e.network.adminAuth):{method:"client_credentials",audience:"",scope:"",clientId:"",clientSecret:""},n={...e.network,ledgerApi:e.network.ledgerApi.baseUrl,auth:s,adminAuth:o};try{await w(u.accessToken.get()).request("addNetwork",{network:n}),await this.listNetworks()}catch(r){m(r)}},this.handleIdpSubmit=async e=>{console.log(e);try{await w(u.accessToken.get()).request("addIdp",{idp:e.idp}),await this.listIdps()}catch(s){m(s)}},this.handleIdpDelete=async e=>{console.log(e);try{await w(u.accessToken.get()).request("removeIdp",{identityProviderId:e.idp.id}),await this.listIdps()}catch(s){m(s)}}}connectedCallback(){super.connectedCallback(),this.listNetworks(),this.listSessions(),this.listIdps()}async listNetworks(){const s=await w(u.accessToken.get()).request("listNetworks");this.networks=s.networks}async listSessions(){const s=await w(u.accessToken.get()).request("listSessions");this.sessions=s.sessions}async listIdps(){const s=await w(u.accessToken.get()).request("listIdps");this.idps=s.idps}toApiAuth(e){return{method:e.method,audience:e.audience??"",scope:e.scope??"",clientId:e.clientId??"",issuer:e.issuer??"",clientSecret:e.clientSecret??""}}async handleNetworkDelete(e){if(confirm(`Delete network "${e.network.name}"?`))try{const s={networkName:e.network.id};await w(u.accessToken.get()).request("removeNetwork",s),await this.listNetworks()}catch(s){m(s)}}render(){const e=w(u.accessToken.get());return R`
2
- <wg-sessions .sessions=${this.sessions}></wg-sessions>
3
-
4
- <wg-wallets-sync .client=${e}></wg-wallets-sync>
5
-
6
- <wg-networks
7
- .networks=${this.networks}
8
- @network-edit-save=${this.handleNetworkSubmit}
9
- @delete=${this.handleNetworkDelete}
10
- ></wg-networks>
11
-
12
- <wg-idps
13
- .idps=${this.idps}
14
- @delete=${this.handleIdpDelete}
15
- @idp-add=${this.handleIdpSubmit}
16
- ></wg-idps>
17
- `}}d=te(D);O=new WeakMap;b=new WeakMap;z=new WeakMap;y(d,4,"networks",K,k,O);y(d,4,"sessions",J,k,b);y(d,4,"idps",H,k,z);k=y(d,0,"UserUiSettings",L,k);k.styles=V`
18
- :host {
19
- display: block;
20
- box-sizing: border-box;
21
- padding: 0rem;
22
- max-width: 900px;
23
- margin: 0 auto;
24
- font-family: var(--wg-theme-font-family, Arial, sans-serif);
25
- }
26
- `;_(d,1,k);