@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.
- package/dist/cjs/SiweKeycloakProvider.native.js.map +1 -1
- package/dist/cjs/base64.native.js.map +1 -1
- package/dist/cjs/context.native.js.map +1 -1
- package/dist/cjs/hooks/context.native.js.map +1 -1
- package/dist/cjs/hooks/index.native.js.map +1 -1
- package/dist/cjs/hooks/useSiweKeycloak.native.js.map +1 -1
- package/dist/cjs/index.native.js +1 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/render.native.js +1 -1
- package/dist/cjs/render.native.js.map +1 -1
- package/dist/cjs/siwe.native.js.map +1 -1
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/util.native.js.map +1 -1
- package/dist/esm/SiweKeycloakProvider.native.js.map +1 -1
- package/dist/esm/base64.native.js.map +1 -1
- package/dist/esm/context.native.js.map +1 -1
- package/dist/esm/hooks/context.native.js.map +1 -1
- package/dist/esm/hooks/index.native.js.map +1 -1
- package/dist/esm/hooks/useSiweKeycloak.native.js.map +1 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/render.native.js.map +1 -1
- package/dist/esm/siwe.native.js.map +1 -1
- package/dist/esm/types.native.js.map +1 -1
- package/dist/esm/util.native.js.map +1 -1
- package/package.json +7 -6
- package/types/SiweKeycloakProvider.d.ts +28 -0
- package/types/SiweKeycloakProvider.d.ts.map +1 -0
- package/types/base64.d.ts +2 -0
- package/types/base64.d.ts.map +1 -0
- package/types/context.d.ts +7 -0
- package/types/context.d.ts.map +1 -0
- package/types/hooks/context.d.ts +7 -0
- package/types/hooks/context.d.ts.map +1 -0
- package/types/hooks/index.d.ts +2 -0
- package/types/hooks/index.d.ts.map +1 -0
- package/types/hooks/useSiweKeycloak.d.ts +11 -0
- package/types/hooks/useSiweKeycloak.d.ts.map +1 -0
- package/types/index.d.ts +30 -0
- package/types/index.d.ts.map +1 -0
- package/types/render.d.ts +7 -0
- package/types/render.d.ts.map +1 -0
- package/types/siwe.d.ts +17 -0
- package/types/siwe.d.ts.map +1 -0
- package/types/types.d.ts +7 -0
- package/types/types.d.ts.map +1 -0
- package/types/util.d.ts +4 -0
- package/types/util.d.ts.map +1 -0
- package/dist/cjs/base64.spec.cjs +0 -57
- package/dist/cjs/base64.spec.native.js +0 -79
- package/dist/cjs/base64.spec.native.js.map +0 -1
- package/dist/cjs/util.spec.cjs +0 -53
- package/dist/cjs/util.spec.native.js +0 -62
- package/dist/cjs/util.spec.native.js.map +0 -1
- package/dist/esm/base64.spec.mjs +0 -58
- package/dist/esm/base64.spec.mjs.map +0 -1
- package/dist/esm/base64.spec.native.js +0 -77
- package/dist/esm/base64.spec.native.js.map +0 -1
- package/dist/esm/util.spec.mjs +0 -54
- package/dist/esm/util.spec.mjs.map +0 -1
- package/dist/esm/util.spec.native.js +0 -60
- 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":["
|
|
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":["
|
|
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":["
|
|
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
|
+
"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.
|
|
47
|
-
"@multiplatform.one/store": "7.7.
|
|
48
|
-
"@multiplatform.one/web3": "7.7.
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|
package/types/index.d.ts
ADDED
|
@@ -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"}
|
package/types/siwe.d.ts
ADDED
|
@@ -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"}
|
package/types/types.d.ts
ADDED
|
@@ -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"}
|
package/types/util.d.ts
ADDED
|
@@ -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"}
|
package/dist/cjs/base64.spec.cjs
DELETED
|
@@ -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":[]}
|
package/dist/cjs/util.spec.cjs
DELETED
|
@@ -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":[]}
|
package/dist/esm/base64.spec.mjs
DELETED
|
@@ -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":[]}
|