@multiplatform.one/wallet 7.7.3 → 7.7.6

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 (61) hide show
  1. package/dist/cjs/SiweKeycloakProvider.native.js.map +1 -1
  2. package/dist/cjs/base64.native.js.map +1 -1
  3. package/dist/cjs/context.native.js.map +1 -1
  4. package/dist/cjs/hooks/context.native.js.map +1 -1
  5. package/dist/cjs/hooks/index.native.js.map +1 -1
  6. package/dist/cjs/hooks/useSiweKeycloak.native.js.map +1 -1
  7. package/dist/cjs/index.native.js +1 -1
  8. package/dist/cjs/index.native.js.map +1 -1
  9. package/dist/cjs/render.native.js +1 -1
  10. package/dist/cjs/render.native.js.map +1 -1
  11. package/dist/cjs/siwe.native.js.map +1 -1
  12. package/dist/cjs/types.native.js.map +1 -1
  13. package/dist/cjs/util.native.js.map +1 -1
  14. package/dist/esm/SiweKeycloakProvider.native.js.map +1 -1
  15. package/dist/esm/base64.native.js.map +1 -1
  16. package/dist/esm/context.native.js.map +1 -1
  17. package/dist/esm/hooks/context.native.js.map +1 -1
  18. package/dist/esm/hooks/index.native.js.map +1 -1
  19. package/dist/esm/hooks/useSiweKeycloak.native.js.map +1 -1
  20. package/dist/esm/index.native.js.map +1 -1
  21. package/dist/esm/render.native.js.map +1 -1
  22. package/dist/esm/siwe.native.js.map +1 -1
  23. package/dist/esm/types.native.js.map +1 -1
  24. package/dist/esm/util.native.js.map +1 -1
  25. package/package.json +7 -6
  26. package/types/SiweKeycloakProvider.d.ts +28 -0
  27. package/types/SiweKeycloakProvider.d.ts.map +1 -0
  28. package/types/base64.d.ts +2 -0
  29. package/types/base64.d.ts.map +1 -0
  30. package/types/context.d.ts +7 -0
  31. package/types/context.d.ts.map +1 -0
  32. package/types/hooks/context.d.ts +7 -0
  33. package/types/hooks/context.d.ts.map +1 -0
  34. package/types/hooks/index.d.ts +2 -0
  35. package/types/hooks/index.d.ts.map +1 -0
  36. package/types/hooks/useSiweKeycloak.d.ts +11 -0
  37. package/types/hooks/useSiweKeycloak.d.ts.map +1 -0
  38. package/types/index.d.ts +30 -0
  39. package/types/index.d.ts.map +1 -0
  40. package/types/render.d.ts +7 -0
  41. package/types/render.d.ts.map +1 -0
  42. package/types/siwe.d.ts +17 -0
  43. package/types/siwe.d.ts.map +1 -0
  44. package/types/types.d.ts +7 -0
  45. package/types/types.d.ts.map +1 -0
  46. package/types/util.d.ts +4 -0
  47. package/types/util.d.ts.map +1 -0
  48. package/dist/cjs/base64.spec.cjs +0 -57
  49. package/dist/cjs/base64.spec.native.js +0 -79
  50. package/dist/cjs/base64.spec.native.js.map +0 -1
  51. package/dist/cjs/util.spec.cjs +0 -53
  52. package/dist/cjs/util.spec.native.js +0 -62
  53. package/dist/cjs/util.spec.native.js.map +0 -1
  54. package/dist/esm/base64.spec.mjs +0 -58
  55. package/dist/esm/base64.spec.mjs.map +0 -1
  56. package/dist/esm/base64.spec.native.js +0 -77
  57. package/dist/esm/base64.spec.native.js.map +0 -1
  58. package/dist/esm/util.spec.mjs +0 -54
  59. package/dist/esm/util.spec.mjs.map +0 -1
  60. package/dist/esm/util.spec.native.js +0 -60
  61. package/dist/esm/util.spec.native.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","React","createRoot","SiweKeycloakProvider","Siwe","render","param","element","onAddresses","onSetClient","onSetConnect","onSetOpenAbout","onSetOpenOnboarding","onSetOpenProfile","onSetOpenSIWE","onSetOpenSwitchNetworks","onSetSignOut","onSetWalletClient","setTokens","_setTokens","props","document","createElement","window","root","children"],"sources":["../../src/render.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAAOA,GAAA,IAAAC,IAAW;AAClB,OAAAC,KAAS;AACT,SAASC,UAAA,0BAA4B;AAErC,SAASC,oBAAY;AA4Bf,SAAAC,IAAA;AArBC,SAASC,OAAOC,KAAA;EACrB;IAAAC,OAAA;IAAAC,WAAA;IAAAC,WAAA;IAAAC,YAAA;IAAAC,cAAA;IAAAC,mBAAA;IAAAC,gBAAA;IAAAC,aAAA;IAAAC,uBAAA;IAAAC,YAAA;IAAAC,iBAAA;IAAAC,SAAA,EAAAC,UAAA;IAAA,GAAAC;EAAA,IAAAd,KAAA;EACA,KAAAC,OAAA,EAAAA,OAAA,GAAAc,QAAA,CAAAC,aAAA;EACA,KAAAf,OAAA;EACAgB,MAAA,CAAAtB,KAAA,GAAAA,KAAA;EACA,IAAAuB,IAAA,GAAAtB,UAAA,CAAAK,OAAA;EACAiB,IAAA,CAAAnB,MAAA,gBAAAL,IAAA,CAAAG,oBAAA;IACA,GAAAiB,KAAA;IACAK,QAAA,iBAAAzB,IAAA,CAAAI,IAAA;MACAI,WAAA;MACAC,WAAA;MACAC,YAAA;MACAC,cAAW;MACRC,mBAAA;MACaC,gBAAA;MACZC,aAAU;MACVC,uBAAU;MACdC,YAAe;MACfC;IACA;EAAK,EACH;AACE;AAAC,SAAAZ,MACC","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","React","createRoot","SiweKeycloakProvider","Siwe","render","param","element","onAddresses","onSetClient","onSetConnect","onSetOpenAbout","onSetOpenOnboarding","onSetOpenProfile","onSetOpenSIWE","onSetOpenSwitchNetworks","onSetSignOut","onSetWalletClient","setTokens","_setTokens","props","document","createElement","window","root","children"],"sources":["render.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport React from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { SiweKeycloakProvider } from \".\";\nimport { Siwe } from \"./siwe\";\nfunction render(param) {\n var { element, onAddresses, onSetClient, onSetConnect, onSetOpenAbout, onSetOpenOnboarding, onSetOpenProfile, onSetOpenSIWE, onSetOpenSwitchNetworks, onSetSignOut, onSetWalletClient, setTokens: _setTokens, ...props } = param;\n if (!element) element = document.createElement(\"div\");\n if (!element) return;\n window.React = React;\n var root = createRoot(element);\n root.render(/* @__PURE__ */ _jsx(SiweKeycloakProvider, {\n ...props,\n children: /* @__PURE__ */ _jsx(Siwe, {\n onAddresses,\n onSetClient,\n onSetConnect,\n onSetOpenAbout,\n onSetOpenOnboarding,\n onSetOpenProfile,\n onSetOpenSIWE,\n onSetOpenSwitchNetworks,\n onSetSignOut,\n onSetWalletClient\n })\n }));\n}\nexport {\n render\n};\n//# sourceMappingURL=render.js.map\n"],"mappings":"AAAA,SAASA,GAAG,IAAIC,IAAI,QAAQ,mBAAmB;AAC/C,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,oBAAoB,QAAQ,mBAAG;AACxC,SAASC,IAAI,QAAQ,kBAAQ;AAC7B,SAASC,MAAMA,CAACC,KAAK,EAAE;EACrB,IAAI;IAAEC,OAAO;IAAEC,WAAW;IAAEC,WAAW;IAAEC,YAAY;IAAEC,cAAc;IAAEC,mBAAmB;IAAEC,gBAAgB;IAAEC,aAAa;IAAEC,uBAAuB;IAAEC,YAAY;IAAEC,iBAAiB;IAAEC,SAAS,EAAEC,UAAU;IAAE,GAAGC;EAAM,CAAC,GAAGd,KAAK;EAChO,IAAI,CAACC,OAAO,EAAEA,OAAO,GAAGc,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;EACrD,IAAI,CAACf,OAAO,EAAE;EACdgB,MAAM,CAACtB,KAAK,GAAGA,KAAK;EACpB,IAAIuB,IAAI,GAAGtB,UAAU,CAACK,OAAO,CAAC;EAC9BiB,IAAI,CAACnB,MAAM,CAAC,eAAgBL,IAAI,CAACG,oBAAoB,EAAE;IACrD,GAAGiB,KAAK;IACRK,QAAQ,EAAE,eAAgBzB,IAAI,CAACI,IAAI,EAAE;MACnCI,WAAW;MACXC,WAAW;MACXC,YAAY;MACZC,cAAc;MACdC,mBAAmB;MACnBC,gBAAgB;MAChBC,aAAa;MACbC,uBAAuB;MACvBC,YAAY;MACZC;IACF,CAAC;EACH,CAAC,CAAC,CAAC;AACL;AACA,SACEZ,MAAM","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useAccount","useClient","useWalletClient","useSiweKeycloak","Siwe","param","onSetOpenAbout","onSetOpenOnboarding","onSetOpenProfile","onSetOpenSIWE","onSetOpenSwitchNetworks","onSetSignOut","onSetClient","onSetWalletClient","onSetConnect","onAddresses","addresses","data","walletClient","client","openAbout","openOnboarding","openProfile","openSIWE","openSwitchNetworks","signOut","connect"],"sources":["../../src/siwe.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,SAAA,QAAiB;AAE1B,SAAmCC,UAAA,EAAYC,SAAA,EAAWC,eAAA,QAAuB;AACjF,SAASC,eAAA,QAAuB;AAezB,SAASC,KAAKC,KAAA;EACnB;IAAAC,cAAA;IAAAC,mBAAA;IAAAC,gBAAA;IAAAC,aAAA;IAAAC,uBAAA;IAAAC,YAAA;IAAAC,WAAA;IAAAC,iBAAA;IAAAC,YAAA;IAAAC;EAAA,IAAAV,KAAA;EACA;IAAAW;EAAA,IAAAhB,UAAA;EACA;IAAAiB,IAAA,EAAAC;EAAA,IAAAhB,eAAA;EACA,IAAAiB,MAAA,GAAAlB,SAAA;EACA;IAAAmB,SAAA;IAAAC,cAAA;IAAAC,WAAA;IAAAC,QAAA;IAAAC,kBAAA;IAAAC,OAAA;IAAAC;EAAA,IAAAvB,eAAA;EACAJ,SAAA;IACA,OAAAO,cAAA,CAAAc,SAAA;EACA,IACAd,cAAA,EACAc,SAAA,CACY;EACZrB,SAAQ,aAAU;IAClB,OAAQQ,mBAAmB,CAAAc,cAAI;EAC/B,IACAd,mBAAmB,EAEnBc,cAAgB,CAChB;EACAtB,SAAA,CAAU,YAAM;IAChB,OAAAS,gBAAgB,CAAAc,WAAc,CAAQ;EACtC,IACEd,gBAAM,EACNc,WAAC,CACH;EACAvB,SAAA,CAAU,YAAM;IAChB,OAAAU,aAAgB,CAAAc,QAAA;EACd,IACFd,aAAI,EACJc,QAAU,CACR;EACFxB,SAAI,aAAa;IACjB,OAAAW,uBAAgB,CAAAc,kBAAA;EACd,IACFd,uBAAyB,EACzBc,kBAAgB,CAChB;EACFzB,SAAA","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useAccount","useClient","useWalletClient","useSiweKeycloak","Siwe","param","onSetOpenAbout","onSetOpenOnboarding","onSetOpenProfile","onSetOpenSIWE","onSetOpenSwitchNetworks","onSetSignOut","onSetClient","onSetWalletClient","onSetConnect","onAddresses","addresses","data","walletClient","client","openAbout","openOnboarding","openProfile","openSIWE","openSwitchNetworks","signOut","connect","length"],"sources":["siwe.native.js"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useAccount, useClient, useWalletClient } from \"wagmi\";\nimport { useSiweKeycloak } from \"./hooks/useSiweKeycloak\";\nfunction Siwe(param) {\n var { onSetOpenAbout, onSetOpenOnboarding, onSetOpenProfile, onSetOpenSIWE, onSetOpenSwitchNetworks, onSetSignOut, onSetClient, onSetWalletClient, onSetConnect, onAddresses } = param;\n var { addresses } = useAccount();\n var { data: walletClient } = useWalletClient();\n var client = useClient();\n var { openAbout, openOnboarding, openProfile, openSIWE, openSwitchNetworks, signOut, connect } = useSiweKeycloak();\n useEffect(function() {\n return onSetOpenAbout(openAbout);\n }, [\n onSetOpenAbout,\n openAbout\n ]);\n useEffect(function() {\n return onSetOpenOnboarding(openOnboarding);\n }, [\n onSetOpenOnboarding,\n openOnboarding\n ]);\n useEffect(function() {\n return onSetOpenProfile(openProfile);\n }, [\n onSetOpenProfile,\n openProfile\n ]);\n useEffect(function() {\n return onSetOpenSIWE(openSIWE);\n }, [\n onSetOpenSIWE,\n openSIWE\n ]);\n useEffect(function() {\n return onSetOpenSwitchNetworks(openSwitchNetworks);\n }, [\n onSetOpenSwitchNetworks,\n openSwitchNetworks\n ]);\n useEffect(function() {\n return onSetSignOut(signOut);\n }, [\n onSetSignOut,\n signOut\n ]);\n useEffect(function() {\n if (walletClient) onSetWalletClient(walletClient);\n }, [\n onSetWalletClient,\n walletClient\n ]);\n useEffect(function() {\n if (client) onSetClient(client);\n }, [\n onSetClient,\n client\n ]);\n useEffect(function() {\n onSetConnect(connect);\n }, [\n onSetConnect,\n connect\n ]);\n useEffect(function() {\n return onAddresses === null || onAddresses === void 0 ? void 0 : onAddresses(addresses || []);\n }, [\n onAddresses,\n addresses === null || addresses === void 0 ? void 0 : addresses.length\n ]);\n return null;\n}\nexport {\n Siwe\n};\n//# sourceMappingURL=siwe.js.map\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,UAAU,EAAEC,SAAS,EAAEC,eAAe,QAAQ,OAAO;AAC9D,SAASC,eAAe,QAAQ,mCAAyB;AACzD,SAASC,IAAIA,CAACC,KAAK,EAAE;EACnB,IAAI;IAAEC,cAAc;IAAEC,mBAAmB;IAAEC,gBAAgB;IAAEC,aAAa;IAAEC,uBAAuB;IAAEC,YAAY;IAAEC,WAAW;IAAEC,iBAAiB;IAAEC,YAAY;IAAEC;EAAY,CAAC,GAAGV,KAAK;EACtL,IAAI;IAAEW;EAAU,CAAC,GAAGhB,UAAU,CAAC,CAAC;EAChC,IAAI;IAAEiB,IAAI,EAAEC;EAAa,CAAC,GAAGhB,eAAe,CAAC,CAAC;EAC9C,IAAIiB,MAAM,GAAGlB,SAAS,CAAC,CAAC;EACxB,IAAI;IAAEmB,SAAS;IAAEC,cAAc;IAAEC,WAAW;IAAEC,QAAQ;IAAEC,kBAAkB;IAAEC,OAAO;IAAEC;EAAQ,CAAC,GAAGvB,eAAe,CAAC,CAAC;EAClHJ,SAAS,CAAC,YAAW;IACnB,OAAOO,cAAc,CAACc,SAAS,CAAC;EAClC,CAAC,EAAE,CACDd,cAAc,EACdc,SAAS,CACV,CAAC;EACFrB,SAAS,CAAC,YAAW;IACnB,OAAOQ,mBAAmB,CAACc,cAAc,CAAC;EAC5C,CAAC,EAAE,CACDd,mBAAmB,EACnBc,cAAc,CACf,CAAC;EACFtB,SAAS,CAAC,YAAW;IACnB,OAAOS,gBAAgB,CAACc,WAAW,CAAC;EACtC,CAAC,EAAE,CACDd,gBAAgB,EAChBc,WAAW,CACZ,CAAC;EACFvB,SAAS,CAAC,YAAW;IACnB,OAAOU,aAAa,CAACc,QAAQ,CAAC;EAChC,CAAC,EAAE,CACDd,aAAa,EACbc,QAAQ,CACT,CAAC;EACFxB,SAAS,CAAC,YAAW;IACnB,OAAOW,uBAAuB,CAACc,kBAAkB,CAAC;EACpD,CAAC,EAAE,CACDd,uBAAuB,EACvBc,kBAAkB,CACnB,CAAC;EACFzB,SAAS,CAAC,YAAW;IACnB,OAAOY,YAAY,CAACc,OAAO,CAAC;EAC9B,CAAC,EAAE,CACDd,YAAY,EACZc,OAAO,CACR,CAAC;EACF1B,SAAS,CAAC,YAAW;IACnB,IAAImB,YAAY,EAAEL,iBAAiB,CAACK,YAAY,CAAC;EACnD,CAAC,EAAE,CACDL,iBAAiB,EACjBK,YAAY,CACb,CAAC;EACFnB,SAAS,CAAC,YAAW;IACnB,IAAIoB,MAAM,EAAEP,WAAW,CAACO,MAAM,CAAC;EACjC,CAAC,EAAE,CACDP,WAAW,EACXO,MAAM,CACP,CAAC;EACFpB,SAAS,CAAC,YAAW;IACnBe,YAAY,CAACY,OAAO,CAAC;EACvB,CAAC,EAAE,CACDZ,YAAY,EACZY,OAAO,CACR,CAAC;EACF3B,SAAS,CAAC,YAAW;IACnB,OAAOgB,WAAW,KAAK,IAAI,IAAIA,WAAW,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,WAAW,CAACC,SAAS,IAAI,EAAE,CAAC;EAC/F,CAAC,EAAE,CACDD,WAAW,EACXC,SAAS,KAAK,IAAI,IAAIA,SAAS,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,SAAS,CAACW,MAAM,CACvE,CAAC;EACF,OAAO,IAAI;AACb;AACA,SACEvB,IAAI","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["types.native.js"],"sourcesContent":["//# sourceMappingURL=types.js.map\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["SiweMessage","getNonce","keycloakSiweUrl","res","fetch","credentials","ok","data","text","length","Error","createMessage","nonce","address","chainId","window","version","domain","location","host","uri","origin","statement","prepareMessage"],"sources":["../../src/util.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAmB;AAG5B,eAAsBC,SAASC,eAAA,EAAyB;EACtD,IAAAC,GAAM,SAAMC,KAAM,IAAMF,eAAG,QAAe;IACxCG,WAAA,EAAa;EACf,CAAC;EACD,IAAIF,GAAA,CAAIG,EAAA,EAAI;IACV,IAAAC,IAAM,SAAOJ,GAAM,CAAAK,IAAI;IACvB,IAAID,IAAA,KAAM,IAAQ,IAAAA,IAAO,uBAAAA,IAAA,CAAAE,MAAA,SAAAF,IAAA;EAC3B;EACA,MAAM,IAAIG,KAAA,CAAM,qBAAqB;AACvC;AAEA,eAAsBC,cAAcC,KAAA,EAAeC,OAAA,EAAkBC,OAAA,EAAiB;EACpF,IAAI,OAAOC,MAAA,KAAW,aAAa;IACjC,MAAM,IAAIL,KAAA,CAAM,wCAAwC;EAC1D;EACA,OAAO,IAAIV,WAAA,CAAY;IACrBgB,OAAA,EAAS;IACTC,MAAA,EAAQF,MAAA,CAAOG,QAAA,CAASC,IAAA;IACxBC,GAAA,EAAKL,MAAA,CAAOG,QAAA,CAASG,MAAA;IACrBR,OAAA;IACAC,OAAA;IACAF,KAAA;IACAU,SAAA,EAAW;EACb,CAAC,EAAEC,cAAA,CAAe;AACpB","ignoreList":[]}
1
+ {"version":3,"names":["SiweMessage","getNonce","keycloakSiweUrl","res","fetch","credentials","ok","data","text","length","Error","createMessage","nonce","address","chainId","window","version","domain","location","host","uri","origin","statement","prepareMessage"],"sources":["util.native.js"],"sourcesContent":["import { SiweMessage } from \"siwe\";\nasync function getNonce(keycloakSiweUrl) {\n var res = await fetch(`${keycloakSiweUrl}/nonce`, {\n credentials: \"include\"\n });\n if (res.ok) {\n var data = await res.text();\n if (data === null || data === void 0 ? void 0 : data.length) return data;\n }\n throw new Error(\"failed to get nonce\");\n}\nasync function createMessage(nonce, address, chainId) {\n if (typeof window === \"undefined\") {\n throw new Error(\"createMessage requires browser context\");\n }\n return new SiweMessage({\n version: \"1\",\n domain: window.location.host,\n uri: window.location.origin,\n address,\n chainId,\n nonce,\n statement: \"Sign in With Ethereum.\"\n }).prepareMessage();\n}\nexport {\n createMessage,\n getNonce\n};\n//# sourceMappingURL=util.js.map\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,MAAM;AAClC,eAAeC,QAAQA,CAACC,eAAe,EAAE;EACvC,IAAIC,GAAG,GAAG,MAAMC,KAAK,CAAC,GAAGF,eAAe,QAAQ,EAAE;IAChDG,WAAW,EAAE;EACf,CAAC,CAAC;EACF,IAAIF,GAAG,CAACG,EAAE,EAAE;IACV,IAAIC,IAAI,GAAG,MAAMJ,GAAG,CAACK,IAAI,CAAC,CAAC;IAC3B,IAAID,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,IAAI,CAACE,MAAM,EAAE,OAAOF,IAAI;EAC1E;EACA,MAAM,IAAIG,KAAK,CAAC,qBAAqB,CAAC;AACxC;AACA,eAAeC,aAAaA,CAACC,KAAK,EAAEC,OAAO,EAAEC,OAAO,EAAE;EACpD,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,MAAM,IAAIL,KAAK,CAAC,wCAAwC,CAAC;EAC3D;EACA,OAAO,IAAIV,WAAW,CAAC;IACrBgB,OAAO,EAAE,GAAG;IACZC,MAAM,EAAEF,MAAM,CAACG,QAAQ,CAACC,IAAI;IAC5BC,GAAG,EAAEL,MAAM,CAACG,QAAQ,CAACG,MAAM;IAC3BR,OAAO;IACPC,OAAO;IACPF,KAAK;IACLU,SAAS,EAAE;EACb,CAAC,CAAC,CAACC,cAAc,CAAC,CAAC;AACrB;AACA,SACEZ,aAAa,EACbV,QAAQ","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplatform.one/wallet",
3
- "version": "7.7.3",
3
+ "version": "7.7.6",
4
4
  "description": "siwe keycloak client",
5
5
  "keywords": [
6
6
  "4361",
@@ -43,9 +43,9 @@
43
43
  },
44
44
  "dependencies": {
45
45
  "siwe": "^3.0.0",
46
- "@multiplatform.one/keycloak-js": "7.7.3",
47
- "@multiplatform.one/store": "7.7.3",
48
- "@multiplatform.one/web3": "7.7.3"
46
+ "@multiplatform.one/keycloak-js": "7.7.6",
47
+ "@multiplatform.one/store": "7.7.6",
48
+ "@multiplatform.one/web3": "7.7.6"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@tamagui/build": "2.7.6",
@@ -60,7 +60,8 @@
60
60
  "react-native-web": "^0.21.2",
61
61
  "typescript": "~5.9.3",
62
62
  "viem": "^2.48.7",
63
- "wagmi": "^3.7.1"
63
+ "wagmi": "^3.7.1",
64
+ "@multiplatform.one/config": "7.7.6"
64
65
  },
65
66
  "peerDependencies": {
66
67
  "@tanstack/react-query": "^5.62.16",
@@ -74,7 +75,7 @@
74
75
  "node": ">=22.0.0"
75
76
  },
76
77
  "scripts": {
77
- "build": "rm -rf dist types 2>/dev/null && tamagui-build",
78
+ "build": "rm -rf dist types 2>/dev/null && tamagui-build --ts-project ./tsconfig.build.json --exclude '\\.spec\\.|\\.test\\.|\\.stories\\.'",
78
79
  "test": "vitest run --coverage --coverage.provider=v8 --coverage.reporter=text --coverage.reporter=lcov --coverage.reporter=html",
79
80
  "typecheck": "tsgo --noEmit"
80
81
  }
@@ -0,0 +1,28 @@
1
+ import type { CreateConfigParameters } from "@wagmi/core";
2
+ import type { PropsWithChildren } from "react";
3
+ import type { CoinbaseWalletParameters } from "wagmi/connectors";
4
+ import type { KeycloakConfig } from "./types";
5
+ export interface Tokens {
6
+ accessToken: string;
7
+ idToken: string;
8
+ refreshToken: string;
9
+ }
10
+ export interface SiweKeycloakProviderProps extends PropsWithChildren {
11
+ appDescription?: string;
12
+ appIcon?: string;
13
+ appName?: string;
14
+ appUrl?: string;
15
+ clearTokens?: () => void | Promise<void>;
16
+ coinbaseWalletPreference?: CoinbaseWalletParameters<"4">["preference"];
17
+ debug?: boolean;
18
+ getTokens?: () => Tokens | Promise<Tokens>;
19
+ keycloak?: Partial<KeycloakConfig>;
20
+ onSignedIn?: () => any;
21
+ onSignedInFailed?: (err: Error) => any;
22
+ setTokens?: (tokens: Tokens) => void | Promise<void>;
23
+ siwe?: boolean;
24
+ wagmi?: Partial<CreateConfigParameters>;
25
+ walletConnectProjectId?: string;
26
+ }
27
+ export declare function SiweKeycloakProvider({ children, clearTokens: clearTokensProp, debug, getTokens: getTokensProp, keycloak: keycloakProp, siwe, setTokens: setTokensProp, wagmi: wagmiProp, onSignedIn, onSignedInFailed, ...props }: SiweKeycloakProviderProps): import("react/jsx-runtime").JSX.Element;
28
+ //# sourceMappingURL=SiweKeycloakProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SiweKeycloakProvider.d.ts","sourceRoot":"","sources":["../src/SiweKeycloakProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAQ1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAI/C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAGjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C,MAAM,WAAW,MAAM;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,wBAAwB,CAAC,EAAE,wBAAwB,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;IACvE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC;IACvB,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,CAAC;IACvC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAQD,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,WAAW,EAAE,eAAe,EAC5B,KAAK,EACL,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,YAAY,EACtB,IAAI,EACJ,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,SAAS,EAChB,UAAU,EACV,gBAAgB,EAChB,GAAG,KAAK,EACT,EAAE,yBAAyB,2CAyO3B"}
@@ -0,0 +1,2 @@
1
+ export declare function encodeBase64(input: string): string;
2
+ //# sourceMappingURL=base64.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../src/base64.ts"],"names":[],"mappings":"AAiBA,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQlD"}
@@ -0,0 +1,7 @@
1
+ import type Keycloak from "@multiplatform.one/keycloak-js";
2
+ interface SiweKeycloakContextValue {
3
+ keycloak?: Keycloak;
4
+ }
5
+ export declare const SiweKeycloakContext: import("react").Context<SiweKeycloakContextValue>;
6
+ export {};
7
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gCAAgC,CAAC;AAG3D,UAAU,wBAAwB;IAChC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,eAAO,MAAM,mBAAmB,mDAE/B,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type Keycloak from "@multiplatform.one/keycloak-js";
2
+ interface SiweKeycloakContextValue {
3
+ keycloak?: Keycloak;
4
+ }
5
+ export declare const SiweKeycloakContext: import("react").Context<SiweKeycloakContextValue>;
6
+ export {};
7
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/hooks/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gCAAgC,CAAC;AAG3D,UAAU,wBAAwB;IAChC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,eAAO,MAAM,mBAAmB,mDAE/B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./useSiweKeycloak";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare function useSiweKeycloak(): {
2
+ signOut: any;
3
+ openSIWE: (triggerSIWE?: boolean) => void;
4
+ openSwitchNetworks: () => void;
5
+ openOnboarding: () => void;
6
+ openAbout: () => void;
7
+ openProfile: () => void;
8
+ keycloak: import("@multiplatform.one/keycloak-js").default | undefined;
9
+ connect(): void;
10
+ };
11
+ //# sourceMappingURL=useSiweKeycloak.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSiweKeycloak.d.ts","sourceRoot":"","sources":["../../src/hooks/useSiweKeycloak.ts"],"names":[],"mappings":"AAKA,wBAAgB,eAAe;;;;;;;;;EAiB9B"}
@@ -0,0 +1,30 @@
1
+ import type { GetWalletClientData } from "@wagmi/core/query";
2
+ import type { Address } from "viem";
3
+ import type { UseClientReturnType } from "wagmi";
4
+ import type { RenderOptions } from "./render";
5
+ import type { KeycloakConfig } from "./types";
6
+ export interface SiweKeycloakOptions extends RenderOptions {
7
+ }
8
+ export declare class SiweKeycloak {
9
+ private _walletClientResolvers;
10
+ addresses: readonly [Address, ...Address[]] | readonly Address[];
11
+ client?: UseClientReturnType;
12
+ connect?: () => Promise<void>;
13
+ keycloakConfig: KeycloakConfig;
14
+ openAbout?: () => any;
15
+ openOnboarding?: () => any;
16
+ openProfile?: () => Promise<void>;
17
+ openSIWE?: () => Promise<void>;
18
+ openSwitchNetworks?: () => any;
19
+ signOut?: () => any;
20
+ walletClient?: GetWalletClientData<any, any>;
21
+ constructor(options?: Omit<SiweKeycloakOptions, "onSetClient" | "onSetConnect" | "onSetOpenAbout" | "onSetOpenOnboarding" | "onSetOpenProfile" | "onSetOpenSIWE" | "onSetOpenSwitchNetworks" | "onSetSignOut" | "onSetWalletClient">);
22
+ private _asyncTrigger;
23
+ getNonce(): Promise<string>;
24
+ createMessage(address: Address): Promise<string | undefined>;
25
+ }
26
+ export * from "./SiweKeycloakProvider";
27
+ export * from "./hooks";
28
+ export * from "./types";
29
+ export * from "./util";
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,WAAW,mBAAoB,SAAQ,aAAa;CAAG;AAE7D,qBAAa,YAAY;IACvB,OAAO,CAAC,sBAAsB,CAAiC;IAE/D,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,SAAS,OAAO,EAAE,CAAM;IACtE,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,GAAG,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;IACpB,YAAY,CAAC,EAAE,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAG3C,OAAO,CAAC,EAAE,IAAI,CACZ,mBAAmB,EACjB,aAAa,GACb,cAAc,GACd,gBAAgB,GAChB,qBAAqB,GACrB,kBAAkB,GAClB,eAAe,GACf,yBAAyB,GACzB,cAAc,GACd,mBAAmB,CACtB;IA4DH,OAAO,CAAC,aAAa;IAcf,QAAQ;IAMR,aAAa,CAAC,OAAO,EAAE,OAAO;CAKrC;AAED,cAAc,wBAAwB,CAAC;AACvC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { SiweProps } from "./siwe";
2
+ import type { SiweKeycloakProviderProps } from "./index";
3
+ export interface RenderOptions extends SiweKeycloakProviderProps, SiweProps {
4
+ element?: HTMLElement | null;
5
+ }
6
+ export declare function render({ element, onAddresses, onSetClient, onSetConnect, onSetOpenAbout, onSetOpenOnboarding, onSetOpenProfile, onSetOpenSIWE, onSetOpenSwitchNetworks, onSetSignOut, onSetWalletClient, setTokens: _setTokens, ...props }: RenderOptions): void;
7
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEzD,MAAM,WAAW,aAAc,SAAQ,yBAAyB,EAAE,SAAS;IACzE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,WAAW,EACX,WAAW,EACX,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,EACjB,SAAS,EAAE,UAAU,EACrB,GAAG,KAAK,EACT,EAAE,aAAa,QAqBf"}
@@ -0,0 +1,17 @@
1
+ import type { GetWalletClientData } from "@wagmi/core/query";
2
+ import type { Address } from "viem";
3
+ import { type UseClientReturnType } from "wagmi";
4
+ export interface SiweProps {
5
+ onSetOpenAbout: (openAbout: () => void) => void;
6
+ onSetOpenOnboarding: (openOnboarding: () => void) => void;
7
+ onSetOpenProfile: (openProfile: () => void) => void;
8
+ onSetOpenSIWE: (openSIWE: (triggerSIWE?: boolean) => void) => void;
9
+ onSetOpenSwitchNetworks: (openSwitchNetworks: () => void) => void;
10
+ onSetSignOut: (signOut: () => void) => void;
11
+ onSetClient: (client: UseClientReturnType) => void;
12
+ onSetConnect: (connect: () => void) => void;
13
+ onSetWalletClient: (walletClient: GetWalletClientData<any, any>) => void;
14
+ onAddresses?: (addresses: readonly [Address, ...Address[]] | readonly Address[]) => void;
15
+ }
16
+ export declare function Siwe({ onSetOpenAbout, onSetOpenOnboarding, onSetOpenProfile, onSetOpenSIWE, onSetOpenSwitchNetworks, onSetSignOut, onSetClient, onSetWalletClient, onSetConnect, onAddresses, }: SiweProps): null;
17
+ //# sourceMappingURL=siwe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"siwe.d.ts","sourceRoot":"","sources":["../src/siwe.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,KAAK,mBAAmB,EAA0C,MAAM,OAAO,CAAC;AAGzF,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAChD,mBAAmB,EAAE,CAAC,cAAc,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC1D,gBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACpD,aAAa,EAAE,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;IACnE,uBAAuB,EAAE,CAAC,kBAAkB,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAClE,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC5C,WAAW,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACnD,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC5C,iBAAiB,EAAE,CAAC,YAAY,EAAE,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IACzE,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,SAAS,OAAO,EAAE,KAAK,IAAI,CAAC;CAC1F;AAED,wBAAgB,IAAI,CAAC,EACnB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,WAAW,GACZ,EAAE,SAAS,QA0BX"}
@@ -0,0 +1,7 @@
1
+ export interface KeycloakConfig {
2
+ baseUrl: string;
3
+ clientId: string;
4
+ realm: string;
5
+ scope: string | string[];
6
+ }
7
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC1B"}
@@ -0,0 +1,4 @@
1
+ import type { Address } from "viem";
2
+ export declare function getNonce(keycloakSiweUrl: string): Promise<string>;
3
+ export declare function createMessage(nonce: string, address: Address, chainId: number): Promise<string>;
4
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,wBAAsB,QAAQ,CAAC,eAAe,EAAE,MAAM,mBASrD;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAanF"}
@@ -1,57 +0,0 @@
1
- var import_vitest = require("vitest");
2
- var import_base64 = require("./base64.cjs");
3
- (0, import_vitest.describe)("encodeBase64", () => {
4
- (0, import_vitest.afterEach)(() => {
5
- import_vitest.vi.restoreAllMocks();
6
- });
7
- (0, import_vitest.it)("encodes an empty string", () => {
8
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("")).toBe("");
9
- });
10
- (0, import_vitest.it)("encodes a simple ASCII string", () => {
11
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("Hello")).toBe("SGVsbG8=");
12
- });
13
- (0, import_vitest.it)("encodes 'Hello, World!'", () => {
14
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("Hello, World!")).toBe("SGVsbG8sIFdvcmxkIQ==");
15
- });
16
- (0, import_vitest.it)("encodes a single character", () => {
17
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("A")).toBe("QQ==");
18
- });
19
- (0, import_vitest.it)("encodes two characters (padding = 1)", () => {
20
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("AB")).toBe("QUI=");
21
- });
22
- (0, import_vitest.it)("encodes three characters (no padding)", () => {
23
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("ABC")).toBe("QUJD");
24
- });
25
- (0, import_vitest.it)("encodes strings with special characters", () => {
26
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("foo:bar")).toBe("Zm9vOmJhcg==");
27
- });
28
- (0, import_vitest.it)("encodes strings with numbers", () => {
29
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("12345")).toBe("MTIzNDU=");
30
- });
31
- (0, import_vitest.it)("produces output matching btoa for ASCII input", () => {
32
- const inputs = ["test", "a", "ab", "abc", "abcd", "Hello, World!", "base64 encoding test"];
33
- for (const input of inputs) {
34
- (0, import_vitest.expect)((0, import_base64.encodeBase64)(input)).toBe(btoa(input));
35
- }
36
- });
37
- (0, import_vitest.it)("falls back to manual encoding when btoa is unavailable", () => {
38
- const originalBtoa = globalThis.btoa;
39
- import_vitest.vi.spyOn(globalThis, "btoa").mockImplementation(() => {
40
- throw new Error("btoa not available");
41
- });
42
- Object.defineProperty(globalThis, "btoa", {
43
- value: void 0,
44
- configurable: true
45
- });
46
- try {
47
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("Hello")).toBe("SGVsbG8=");
48
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("ABC")).toBe("QUJD");
49
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("")).toBe("");
50
- } finally {
51
- Object.defineProperty(globalThis, "btoa", {
52
- value: originalBtoa,
53
- configurable: true
54
- });
55
- }
56
- });
57
- });
@@ -1,79 +0,0 @@
1
- "use strict";
2
-
3
- var import_vitest = require("vitest");
4
- var import_base64 = require("./base64.native.js");
5
- (0, import_vitest.describe)("encodeBase64", function () {
6
- (0, import_vitest.afterEach)(function () {
7
- import_vitest.vi.restoreAllMocks();
8
- });
9
- (0, import_vitest.it)("encodes an empty string", function () {
10
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("")).toBe("");
11
- });
12
- (0, import_vitest.it)("encodes a simple ASCII string", function () {
13
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("Hello")).toBe("SGVsbG8=");
14
- });
15
- (0, import_vitest.it)("encodes 'Hello, World!'", function () {
16
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("Hello, World!")).toBe("SGVsbG8sIFdvcmxkIQ==");
17
- });
18
- (0, import_vitest.it)("encodes a single character", function () {
19
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("A")).toBe("QQ==");
20
- });
21
- (0, import_vitest.it)("encodes two characters (padding = 1)", function () {
22
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("AB")).toBe("QUI=");
23
- });
24
- (0, import_vitest.it)("encodes three characters (no padding)", function () {
25
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("ABC")).toBe("QUJD");
26
- });
27
- (0, import_vitest.it)("encodes strings with special characters", function () {
28
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("foo:bar")).toBe("Zm9vOmJhcg==");
29
- });
30
- (0, import_vitest.it)("encodes strings with numbers", function () {
31
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("12345")).toBe("MTIzNDU=");
32
- });
33
- (0, import_vitest.it)("produces output matching btoa for ASCII input", function () {
34
- var inputs = ["test", "a", "ab", "abc", "abcd", "Hello, World!", "base64 encoding test"];
35
- var _iteratorNormalCompletion = true,
36
- _didIteratorError = false,
37
- _iteratorError = void 0;
38
- try {
39
- for (var _iterator = inputs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
40
- var input = _step.value;
41
- (0, import_vitest.expect)((0, import_base64.encodeBase64)(input)).toBe(btoa(input));
42
- }
43
- } catch (err) {
44
- _didIteratorError = true;
45
- _iteratorError = err;
46
- } finally {
47
- try {
48
- if (!_iteratorNormalCompletion && _iterator.return != null) {
49
- _iterator.return();
50
- }
51
- } finally {
52
- if (_didIteratorError) {
53
- throw _iteratorError;
54
- }
55
- }
56
- }
57
- });
58
- (0, import_vitest.it)("falls back to manual encoding when btoa is unavailable", function () {
59
- var originalBtoa = globalThis.btoa;
60
- import_vitest.vi.spyOn(globalThis, "btoa").mockImplementation(function () {
61
- throw new Error("btoa not available");
62
- });
63
- Object.defineProperty(globalThis, "btoa", {
64
- value: void 0,
65
- configurable: true
66
- });
67
- try {
68
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("Hello")).toBe("SGVsbG8=");
69
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("ABC")).toBe("QUJD");
70
- (0, import_vitest.expect)((0, import_base64.encodeBase64)("")).toBe("");
71
- } finally {
72
- Object.defineProperty(globalThis, "btoa", {
73
- value: originalBtoa,
74
- configurable: true
75
- });
76
- }
77
- });
78
- });
79
- //# sourceMappingURL=base64.spec.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["import_vitest","require","import_base64","describe","afterEach","vi","restoreAllMocks","it","expect","encodeBase64","toBe","inputs","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","input","value","btoa","err"],"sources":["../../src/base64.spec.ts"],"sourcesContent":[null],"mappings":"AAAA;;AACA,IAAAA,aAAA,GAA6BC,OAAA;AAAA,IAE7BC,aAAA,GAAAD,OAAA,CAAS;AACP,IAAAD,aAAA,CAAAG,QAAA,gBAAgB;EACd,IAAAH,aAAA,CAAAI,SAAG,cAAgB;IACpBJ,aAAA,CAAAK,EAAA,CAAAC,eAAA;EAED;EACE,IAAAN,aAAA,CAAAO,EAAA,2BAAO,cAAa;IACrB,IAAAP,aAAA,CAAAQ,MAAA,MAAAN,aAAA,CAAAO,YAAA,OAAAC,IAAA;EAED;EACE,IAAAV,aAAA,CAAAO,EAAA,iCAAO,cAAa;IACrB,IAAAP,aAAA,CAAAQ,MAAA,MAAAN,aAAA,CAAAO,YAAA,YAAAC,IAAA;EAED;EACE,IAAAV,aAAA,CAAAO,EAAA,2BAAO,cAAa;IACrB,IAAAP,aAAA,CAAAQ,MAAA,MAAAN,aAAA,CAAAO,YAAA,oBAAAC,IAAA;EAED;EACE,IAAAV,aAAA,CAAAO,EAAA,8BAAO,cAAgB;IACxB,IAAAP,aAAA,CAAAQ,MAAA,MAAAN,aAAA,CAAAO,YAAA,QAAAC,IAAA;EAED;EACE,IAAAV,aAAA,CAAAO,EAAA,wCAAoB,cAAY;IACjC,IAAAP,aAAA,CAAAQ,MAAA,MAAAN,aAAA,CAAAO,YAAA,SAAAC,IAAA;EAED;EACE,IAAAV,aAAA,CAAAO,EAAA,yCAAoB,cAAa;IAClC,IAAAP,aAAA,CAAAQ,MAAA,MAAAN,aAAA,CAAAO,YAAA,UAAAC,IAAA;EAED;EACE,IAAAV,aAAA,CAAAO,EAAA,2CAAoB,cAAY;IACjC,IAAAP,aAAA,CAAAQ,MAAA,MAAAN,aAAA,CAAAO,YAAA,cAAAC,IAAA;EAED;EACE,IAAAV,aAAA,CAAAO,EAAA,gCAAO,cAAa;IACrB,IAAAP,aAAA,CAAAQ,MAAA,MAAAN,aAAA,CAAAO,YAAA,YAAAC,IAAA;EAED;EACE,IAAAV,aAAe,CAACO,EAAA,iDAAmD;IACnE,IAAAI,MAAA,GAAW,CACT,QACF,KACD,MAED,OACE,MAAM,EACN,eAAG,EACD,sBAAgB,CACjB;IAGD,IAAAC,yBAAsB,OAAY;MAAAC,iBAAiB,QAAW;MAAAC,cAAoB;IAElF,IAAI;MACF,SAAAC,SAAA,GAAAJ,MAAA,CAAAK,MAAO,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAA4B,GAAU,CAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;QAC7C,IAAAS,KAAA,GAAAH,KAAA,CAAAI,KAAA;QACA,IAAAtB,aAAA,CAAAQ,MAAA,IAAO,EAAAN,aAAA,CAAAO,YAAa,EAAEY,KAAG,GAAKX,IAAE,CAAAa,IAAA,CAAAF,KAAA;MAClC;IACE,SAAOG,GAAA;MACTX,iBAAA;MACDC,cAAA,GAAAU,GAAA;IACF","ignoreList":[]}
@@ -1,53 +0,0 @@
1
- var import_vitest = require("vitest");
2
- var import_util = require("./util.cjs");
3
- (0, import_vitest.describe)("getNonce", () => {
4
- (0, import_vitest.beforeEach)(() => {
5
- import_vitest.vi.stubGlobal("fetch", import_vitest.vi.fn().mockResolvedValue({
6
- ok: true,
7
- text: () => Promise.resolve("abc123nonce")
8
- }));
9
- });
10
- (0, import_vitest.afterEach)(() => {
11
- import_vitest.vi.restoreAllMocks();
12
- });
13
- (0, import_vitest.it)("fetches nonce from the keycloak SIWE URL", async () => {
14
- const nonce = await (0, import_util.getNonce)("https://auth.example.com/siwe");
15
- (0, import_vitest.expect)(fetch).toHaveBeenCalledWith("https://auth.example.com/siwe/nonce", {
16
- credentials: "include"
17
- });
18
- (0, import_vitest.expect)(nonce).toBe("abc123nonce");
19
- });
20
- (0, import_vitest.it)("throws when response is not ok", async () => {
21
- import_vitest.vi.stubGlobal("fetch", import_vitest.vi.fn().mockResolvedValue({
22
- ok: false,
23
- text: () => Promise.resolve("")
24
- }));
25
- await (0, import_vitest.expect)((0, import_util.getNonce)("https://auth.example.com/siwe")).rejects.toThrow("failed to get nonce");
26
- });
27
- (0, import_vitest.it)("throws when response body is empty", async () => {
28
- import_vitest.vi.stubGlobal("fetch", import_vitest.vi.fn().mockResolvedValue({
29
- ok: true,
30
- text: () => Promise.resolve("")
31
- }));
32
- await (0, import_vitest.expect)((0, import_util.getNonce)("https://auth.example.com/siwe")).rejects.toThrow("failed to get nonce");
33
- });
34
- });
35
- (0, import_vitest.describe)("createMessage", () => {
36
- (0, import_vitest.it)("throws when window is undefined (non-browser)", async () => {
37
- const origWindow = globalThis.window;
38
- delete globalThis.window;
39
- try {
40
- await (0, import_vitest.expect)((0, import_util.createMessage)("nonce123", "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", 1)).rejects.toThrow("createMessage requires browser context");
41
- } finally {
42
- globalThis.window = origWindow;
43
- }
44
- });
45
- (0, import_vitest.it)("creates a SIWE message using browser location", async () => {
46
- const addr = "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045";
47
- const message = await (0, import_util.createMessage)("nonce123", addr, 1);
48
- (0, import_vitest.expect)(message).toContain("Sign in With Ethereum.");
49
- (0, import_vitest.expect)(message).toContain("nonce123");
50
- (0, import_vitest.expect)(message).toContain(addr);
51
- (0, import_vitest.expect)(message).toContain("Chain ID: 1");
52
- });
53
- });
@@ -1,62 +0,0 @@
1
- "use strict";
2
-
3
- var import_vitest = require("vitest");
4
- var import_util = require("./util.native.js");
5
- (0, import_vitest.describe)("getNonce", function () {
6
- (0, import_vitest.beforeEach)(function () {
7
- import_vitest.vi.stubGlobal("fetch", import_vitest.vi.fn().mockResolvedValue({
8
- ok: true,
9
- text: function text() {
10
- return Promise.resolve("abc123nonce");
11
- }
12
- }));
13
- });
14
- (0, import_vitest.afterEach)(function () {
15
- import_vitest.vi.restoreAllMocks();
16
- });
17
- (0, import_vitest.it)("fetches nonce from the keycloak SIWE URL", async function () {
18
- var nonce = await (0, import_util.getNonce)("https://auth.example.com/siwe");
19
- (0, import_vitest.expect)(fetch).toHaveBeenCalledWith("https://auth.example.com/siwe/nonce", {
20
- credentials: "include"
21
- });
22
- (0, import_vitest.expect)(nonce).toBe("abc123nonce");
23
- });
24
- (0, import_vitest.it)("throws when response is not ok", async function () {
25
- import_vitest.vi.stubGlobal("fetch", import_vitest.vi.fn().mockResolvedValue({
26
- ok: false,
27
- text: function text() {
28
- return Promise.resolve("");
29
- }
30
- }));
31
- await (0, import_vitest.expect)((0, import_util.getNonce)("https://auth.example.com/siwe")).rejects.toThrow("failed to get nonce");
32
- });
33
- (0, import_vitest.it)("throws when response body is empty", async function () {
34
- import_vitest.vi.stubGlobal("fetch", import_vitest.vi.fn().mockResolvedValue({
35
- ok: true,
36
- text: function text() {
37
- return Promise.resolve("");
38
- }
39
- }));
40
- await (0, import_vitest.expect)((0, import_util.getNonce)("https://auth.example.com/siwe")).rejects.toThrow("failed to get nonce");
41
- });
42
- });
43
- (0, import_vitest.describe)("createMessage", function () {
44
- (0, import_vitest.it)("throws when window is undefined (non-browser)", async function () {
45
- var origWindow = globalThis.window;
46
- delete globalThis.window;
47
- try {
48
- await (0, import_vitest.expect)((0, import_util.createMessage)("nonce123", "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", 1)).rejects.toThrow("createMessage requires browser context");
49
- } finally {
50
- globalThis.window = origWindow;
51
- }
52
- });
53
- (0, import_vitest.it)("creates a SIWE message using browser location", async function () {
54
- var addr = "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045";
55
- var message = await (0, import_util.createMessage)("nonce123", addr, 1);
56
- (0, import_vitest.expect)(message).toContain("Sign in With Ethereum.");
57
- (0, import_vitest.expect)(message).toContain("nonce123");
58
- (0, import_vitest.expect)(message).toContain(addr);
59
- (0, import_vitest.expect)(message).toContain("Chain ID: 1");
60
- });
61
- });
62
- //# sourceMappingURL=util.spec.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["import_vitest","require","import_util","describe","beforeEach","vi","stubGlobal","fn","mockResolvedValue","ok","text","Promise","resolve","afterEach","restoreAllMocks","it","nonce","getNonce","expect","fetch","toHaveBeenCalledWith","credentials","toBe","rejects","toThrow","origWindow","globalThis","window","createMessage","addr","message","toContain"],"sources":["../../src/util.spec.ts"],"sourcesContent":[null],"mappings":"AAAA;;AACA,IAAAA,aAAA,GAAwCC,OAAA;AAAA,IAExCC,WAAA,GAAAD,OAAA,mBAAS;AACP,IAAAD,aAAA,CAAAG,QAAA,YAAiB;EACf,IAAAH,aAAA,CAAAI,UAAG;IAAAJ,aACD,CAAAK,EAAA,CAAAC,UAAA,UAAAN,aAAA,CAAAK,EAAA,CAAAE,EAAA,GAAAC,iBAAA;MACAC,EAAA;MAA0BC,IACxB,EAAI,SAAAA,KAAA;QACJ,OAAMC,OAAM,CAAAC,OAAQ,cAAQ;MAC9B;IACF;EACF,CAAC;EAED,IAAAZ,aAAA,CAAAa,SAAA,EAAU,YAAM;IACdb,aAAA,CAAAK,EAAA,CAAGS,eAAA,CAAgB;EACrB,CAAC;EAED,IAAAd,aAAA,CAAAe,EAAA,EAAG,4CAA4C,kBAAY;IACzD,IAAAC,KAAM,SAAQ,IAAAd,WAAM,CAAAe,QAAA,iCAAS;IAC7B,IAAAjB,aAAA,CAAAkB,MAAA,EAAOC,KAAK,EAAEC,oBAAA,CAAqB,uCAAuC;MACxEC,WAAA,EAAa;IACf,CAAC;IACD,IAAArB,aAAA,CAAAkB,MAAA,EAAOF,KAAK,EAAEM,IAAA,CAAK,aAAa;EAClC,CAAC;EAED,IAAAtB,aAAA,CAAAe,EAAA,EAAG,kCAAkC,kBAAY;IAC/Cf,aAAA,CAAAK,EAAA,CAAGC,UAAA,UAAAN,aAAA,CAAAK,EAAA,CAAAE,EAAA,GAAAC,iBAAA;MACDC,EAAA;MACAC,IAAA,WAAAA,IAAGA,CAAA,EAAK;QACN,OAAIC,OAAA,CAAAC,OAAA;MAAA;IAC0B,EAChC,CAAC;IACH,UAAAZ,aAAA,CAAAkB,MAAA,MAAAhB,WAAA,CAAAe,QAAA,oCAAAM,OAAA,CAAAC,OAAA;EACA;EACF,CAAC,GAAAxB,aAAA,CAAAe,EAAA;IAEDf,aAAA,CAAAK,EAAA,CAAAC,UAAG,UAAAN,aAAA,CAAAK,EAAA,CAAAE,EAAA,EAAsC,CAAAC,iBAAY;MACnDC,EAAA;MACEC,IAAA,WAAAA,KAAA;QACA,OAAAC,OAAA,CAAGC,OAAK;MAAkB;IACpB;IAC0B,MAC/B,IAAAZ,aAAA,CAAAkB,MAAA,MAAAhB,WAAA,CAAAe,QAAA,oCAAAM,OAAA,CAAAC,OAAA;EAAA,EACH;AACA;AAA6F,EAC/F,EAACxB,aAAA,CAAAG,QAAA;EACF,IAAAH,aAAA,CAAAe,EAAA;IAED,IAAAU,UAAA,GAAAC,UAAS,CAAAC,MAAA;IACP,OAAAD,UAAA,CAAAC,MAAG;IACD;MAEA,MAAO,IAAA3B,aAAW,CAAAkB,MAAA,MAAAhB,WAAA,CAAA0B,aAAA,gEAAAL,OAAA,CAAAC,OAAA;IAClB,UAAI;MACFE,UAAM,CAAAC,MAAA,GAAAF,UAAA;IAAA;EACqE;EACjB,EAC5D,EAAAzB,aAAE,CAAAe,EAAA;IACA,IAAAc,IAAA,+CAAoB;IACtB,IAAAC,OAAA,aAAA5B,WAAA,CAAA0B,aAAA,cAAAC,IAAA;IACD,IAAA7B,aAAA,CAAAkB,MAAA,EAAAY,OAAA,EAAAC,SAAA;IAED,IAAA/B,aAAA,CAAAkB,MAAG,EAAAY,OAAA,EAAAC,SAAA;IACD,IAAA/B,aAAa,CAAAkB,MAAA,EAAAY,OAAA,EAAAC,SAAA,CAAAF,IAAA;IACb,IAAA7B,aAAgB,CAAAkB,MAAA,EAAMY,OAAA,EAAAC,SAAA,cAAc;EACpC;AACA","ignoreList":[]}
@@ -1,58 +0,0 @@
1
- import { describe, expect, it, vi, afterEach } from "vitest";
2
- import { encodeBase64 } from "./base64.mjs";
3
- describe("encodeBase64", () => {
4
- afterEach(() => {
5
- vi.restoreAllMocks();
6
- });
7
- it("encodes an empty string", () => {
8
- expect(encodeBase64("")).toBe("");
9
- });
10
- it("encodes a simple ASCII string", () => {
11
- expect(encodeBase64("Hello")).toBe("SGVsbG8=");
12
- });
13
- it("encodes 'Hello, World!'", () => {
14
- expect(encodeBase64("Hello, World!")).toBe("SGVsbG8sIFdvcmxkIQ==");
15
- });
16
- it("encodes a single character", () => {
17
- expect(encodeBase64("A")).toBe("QQ==");
18
- });
19
- it("encodes two characters (padding = 1)", () => {
20
- expect(encodeBase64("AB")).toBe("QUI=");
21
- });
22
- it("encodes three characters (no padding)", () => {
23
- expect(encodeBase64("ABC")).toBe("QUJD");
24
- });
25
- it("encodes strings with special characters", () => {
26
- expect(encodeBase64("foo:bar")).toBe("Zm9vOmJhcg==");
27
- });
28
- it("encodes strings with numbers", () => {
29
- expect(encodeBase64("12345")).toBe("MTIzNDU=");
30
- });
31
- it("produces output matching btoa for ASCII input", () => {
32
- const inputs = ["test", "a", "ab", "abc", "abcd", "Hello, World!", "base64 encoding test"];
33
- for (const input of inputs) {
34
- expect(encodeBase64(input)).toBe(btoa(input));
35
- }
36
- });
37
- it("falls back to manual encoding when btoa is unavailable", () => {
38
- const originalBtoa = globalThis.btoa;
39
- vi.spyOn(globalThis, "btoa").mockImplementation(() => {
40
- throw new Error("btoa not available");
41
- });
42
- Object.defineProperty(globalThis, "btoa", {
43
- value: void 0,
44
- configurable: true
45
- });
46
- try {
47
- expect(encodeBase64("Hello")).toBe("SGVsbG8=");
48
- expect(encodeBase64("ABC")).toBe("QUJD");
49
- expect(encodeBase64("")).toBe("");
50
- } finally {
51
- Object.defineProperty(globalThis, "btoa", {
52
- value: originalBtoa,
53
- configurable: true
54
- });
55
- }
56
- });
57
- });
58
- //# sourceMappingURL=base64.spec.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["describe","expect","it","vi","afterEach","encodeBase64","restoreAllMocks","toBe","inputs","input","btoa","originalBtoa","globalThis","spyOn","mockImplementation","Error","Object","defineProperty","value","configurable"],"sources":["../../src/base64.spec.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,EAAIC,EAAA,EAAIC,SAAA,QAAiB;AACpD,SAASC,YAAA,QAAoB;AAE7BL,QAAA,CAAS,gBAAgB,MAAM;EAC7BI,SAAA,CAAU,MAAM;IACdD,EAAA,CAAGG,eAAA,CAAgB;EACrB,CAAC;EAEDJ,EAAA,CAAG,2BAA2B,MAAM;IAClCD,MAAA,CAAOI,YAAA,CAAa,EAAE,CAAC,EAAEE,IAAA,CAAK,EAAE;EAClC,CAAC;EAEDL,EAAA,CAAG,iCAAiC,MAAM;IACxCD,MAAA,CAAOI,YAAA,CAAa,OAAO,CAAC,EAAEE,IAAA,CAAK,UAAU;EAC/C,CAAC;EAEDL,EAAA,CAAG,2BAA2B,MAAM;IAClCD,MAAA,CAAOI,YAAA,CAAa,eAAe,CAAC,EAAEE,IAAA,CAAK,sBAAsB;EACnE,CAAC;EAEDL,EAAA,CAAG,8BAA8B,MAAM;IACrCD,MAAA,CAAOI,YAAA,CAAa,GAAG,CAAC,EAAEE,IAAA,CAAK,MAAM;EACvC,CAAC;EAEDL,EAAA,CAAG,wCAAwC,MAAM;IAC/CD,MAAA,CAAOI,YAAA,CAAa,IAAI,CAAC,EAAEE,IAAA,CAAK,MAAM;EACxC,CAAC;EAEDL,EAAA,CAAG,yCAAyC,MAAM;IAChDD,MAAA,CAAOI,YAAA,CAAa,KAAK,CAAC,EAAEE,IAAA,CAAK,MAAM;EACzC,CAAC;EAEDL,EAAA,CAAG,2CAA2C,MAAM;IAClDD,MAAA,CAAOI,YAAA,CAAa,SAAS,CAAC,EAAEE,IAAA,CAAK,cAAc;EACrD,CAAC;EAEDL,EAAA,CAAG,gCAAgC,MAAM;IACvCD,MAAA,CAAOI,YAAA,CAAa,OAAO,CAAC,EAAEE,IAAA,CAAK,UAAU;EAC/C,CAAC;EAEDL,EAAA,CAAG,iDAAiD,MAAM;IACxD,MAAMM,MAAA,GAAS,CAAC,QAAQ,KAAK,MAAM,OAAO,QAAQ,iBAAiB,sBAAsB;IACzF,WAAWC,KAAA,IAASD,MAAA,EAAQ;MAC1BP,MAAA,CAAOI,YAAA,CAAaI,KAAK,CAAC,EAAEF,IAAA,CAAKG,IAAA,CAAKD,KAAK,CAAC;IAC9C;EACF,CAAC;EAEDP,EAAA,CAAG,0DAA0D,MAAM;IACjE,MAAMS,YAAA,GAAeC,UAAA,CAAWF,IAAA;IAChCP,EAAA,CAAGU,KAAA,CAAMD,UAAA,EAAY,MAAM,EAAEE,kBAAA,CAAmB,MAAM;MACpD,MAAM,IAAIC,KAAA,CAAM,oBAAoB;IACtC,CAAC;IAGDC,MAAA,CAAOC,cAAA,CAAeL,UAAA,EAAY,QAAQ;MAAEM,KAAA,EAAO;MAAWC,YAAA,EAAc;IAAK,CAAC;IAElF,IAAI;MACFlB,MAAA,CAAOI,YAAA,CAAa,OAAO,CAAC,EAAEE,IAAA,CAAK,UAAU;MAC7CN,MAAA,CAAOI,YAAA,CAAa,KAAK,CAAC,EAAEE,IAAA,CAAK,MAAM;MACvCN,MAAA,CAAOI,YAAA,CAAa,EAAE,CAAC,EAAEE,IAAA,CAAK,EAAE;IAClC,UAAE;MACAS,MAAA,CAAOC,cAAA,CAAeL,UAAA,EAAY,QAAQ;QAAEM,KAAA,EAAOP,YAAA;QAAcQ,YAAA,EAAc;MAAK,CAAC;IACvF;EACF,CAAC;AACH,CAAC","ignoreList":[]}