@arcblock/did-connect-react 3.5.2 → 4.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ConnectContext.d.ts +13 -0
- package/dist/ConnectContext.d.ts.map +1 -0
- package/dist/ConnectContext.js +14 -0
- package/dist/ConnectContext.js.map +1 -0
- package/dist/ConnectProvider.d.ts +11 -0
- package/dist/ConnectProvider.d.ts.map +1 -0
- package/dist/ConnectProvider.js +23 -0
- package/dist/ConnectProvider.js.map +1 -0
- package/dist/compat/SessionProvider.d.ts +22 -0
- package/dist/compat/SessionProvider.d.ts.map +1 -0
- package/dist/compat/SessionProvider.js +17 -0
- package/dist/compat/SessionProvider.js.map +1 -0
- package/dist/compat/index.d.ts +4 -0
- package/dist/compat/index.d.ts.map +1 -0
- package/dist/compat/index.js +3 -0
- package/dist/compat/index.js.map +1 -0
- package/dist/compat/useSessionContext.d.ts +14 -0
- package/dist/compat/useSessionContext.d.ts.map +1 -0
- package/dist/compat/useSessionContext.js +20 -0
- package/dist/compat/useSessionContext.js.map +1 -0
- package/dist/components/LoginPage.d.ts +15 -0
- package/dist/components/LoginPage.d.ts.map +1 -0
- package/dist/components/LoginPage.js +33 -0
- package/dist/components/LoginPage.js.map +1 -0
- package/dist/components/UserAvatar.d.ts +19 -0
- package/dist/components/UserAvatar.d.ts.map +1 -0
- package/dist/components/UserAvatar.js +45 -0
- package/dist/components/UserAvatar.js.map +1 -0
- package/dist/hooks/index.d.ts +11 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +6 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useConnect.d.ts +15 -0
- package/dist/hooks/useConnect.d.ts.map +1 -0
- package/dist/hooks/useConnect.js +19 -0
- package/dist/hooks/useConnect.js.map +1 -0
- package/dist/hooks/useEmail.d.ts +11 -0
- package/dist/hooks/useEmail.d.ts.map +1 -0
- package/dist/hooks/useEmail.js +47 -0
- package/dist/hooks/useEmail.js.map +1 -0
- package/dist/hooks/useOAuth.d.ts +12 -0
- package/dist/hooks/useOAuth.d.ts.map +1 -0
- package/dist/hooks/useOAuth.js +75 -0
- package/dist/hooks/useOAuth.js.map +1 -0
- package/dist/hooks/usePasskey.d.ts +14 -0
- package/dist/hooks/usePasskey.d.ts.map +1 -0
- package/dist/hooks/usePasskey.js +35 -0
- package/dist/hooks/usePasskey.js.map +1 -0
- package/dist/hooks/useSession.d.ts +12 -0
- package/dist/hooks/useSession.d.ts.map +1 -0
- package/dist/hooks/useSession.js +30 -0
- package/dist/hooks/useSession.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/internals/blocklet-config.d.ts +22 -0
- package/dist/internals/blocklet-config.d.ts.map +1 -0
- package/dist/internals/blocklet-config.js +26 -0
- package/dist/internals/blocklet-config.js.map +1 -0
- package/dist/internals/local-storage-adapter.d.ts +12 -0
- package/dist/internals/local-storage-adapter.d.ts.map +1 -0
- package/dist/internals/local-storage-adapter.js +32 -0
- package/dist/internals/local-storage-adapter.js.map +1 -0
- package/dist/internals/use-sync-state.d.ts +18 -0
- package/dist/internals/use-sync-state.d.ts.map +1 -0
- package/dist/internals/use-sync-state.js +38 -0
- package/dist/internals/use-sync-state.js.map +1 -0
- package/package.json +33 -79
- package/LICENSE +0 -13
- package/README.md +0 -134
- package/dist/standalone/did-connect-react.css +0 -1
- package/dist/standalone/index.js +0 -136774
- package/lib/Address/index.js +0 -4
- package/lib/Avatar/index.js +0 -4
- package/lib/Button/index.js +0 -17
- package/lib/Connect/assets/locale.js +0 -147
- package/lib/Connect/assets/login-bg.png +0 -0
- package/lib/Connect/assets/login-slogan.js +0 -9
- package/lib/Connect/components/action-button.js +0 -26
- package/lib/Connect/components/app-tips.js +0 -132
- package/lib/Connect/components/auto-height.js +0 -31
- package/lib/Connect/components/back-button.js +0 -25
- package/lib/Connect/components/connect-status.js +0 -263
- package/lib/Connect/components/did-connect-title.js +0 -127
- package/lib/Connect/components/download-tips.js +0 -52
- package/lib/Connect/components/loading.js +0 -26
- package/lib/Connect/components/login-item/connect-choose-list.js +0 -257
- package/lib/Connect/components/login-item/connect-provider-list.js +0 -345
- package/lib/Connect/components/login-item/login-method-item.js +0 -147
- package/lib/Connect/components/login-item/mobile-login-item.js +0 -116
- package/lib/Connect/components/login-item/passkey-login-item.js +0 -44
- package/lib/Connect/components/login-item/wallet-login-options.js +0 -114
- package/lib/Connect/components/login-item/web-login-item.js +0 -104
- package/lib/Connect/components/mask-overlay.js +0 -34
- package/lib/Connect/components/refresh-overlay.js +0 -57
- package/lib/Connect/components/switch-app.js +0 -70
- package/lib/Connect/connect.js +0 -505
- package/lib/Connect/contexts/state.js +0 -156
- package/lib/Connect/fallback-connect.js +0 -53
- package/lib/Connect/fullpage.js +0 -5
- package/lib/Connect/hooks/auth-url.js +0 -23
- package/lib/Connect/hooks/method-list.js +0 -46
- package/lib/Connect/hooks/page-show.js +0 -17
- package/lib/Connect/hooks/provider-list.js +0 -69
- package/lib/Connect/hooks/security.js +0 -27
- package/lib/Connect/hooks/token.js +0 -296
- package/lib/Connect/hooks/use-apps.js +0 -19
- package/lib/Connect/hooks/use-quick-connect.js +0 -86
- package/lib/Connect/index.js +0 -16
- package/lib/Connect/landing-page.js +0 -5
- package/lib/Connect/plugins/email/index.js +0 -65
- package/lib/Connect/plugins/email/list-item.js +0 -31
- package/lib/Connect/plugins/email/placeholder.js +0 -284
- package/lib/Connect/plugins/index.js +0 -4
- package/lib/Connect/use-connect.js +0 -164
- package/lib/Connect/with-blocklet.js +0 -15
- package/lib/Connect/with-bridge-call.js +0 -108
- package/lib/Federated/context.js +0 -61
- package/lib/Federated/index.js +0 -7
- package/lib/Logo/index.js +0 -4
- package/lib/OAuth/bind-conflict-alert.js +0 -29
- package/lib/OAuth/context.js +0 -277
- package/lib/OAuth/guest.svg.js +0 -5
- package/lib/OAuth/index.js +0 -7
- package/lib/OAuth/passport-switcher.js +0 -5
- package/lib/Passkey/actions.js +0 -170
- package/lib/Passkey/constants.js +0 -4
- package/lib/Passkey/context.js +0 -281
- package/lib/Passkey/dialog.js +0 -280
- package/lib/Passkey/icon.js +0 -13
- package/lib/Passkey/index.js +0 -9
- package/lib/Service/index.js +0 -62
- package/lib/Session/assets/did-spaces-guide-cover.svg.js +0 -111
- package/lib/Session/assets/did-spaces-guide-icon.svg.js +0 -9
- package/lib/Session/context.js +0 -5
- package/lib/Session/did-spaces-guide.js +0 -136
- package/lib/Session/handler.js +0 -55
- package/lib/Session/hooks/use-federated.js +0 -64
- package/lib/Session/hooks/use-mobile.js +0 -8
- package/lib/Session/hooks/use-protected-routes.js +0 -11
- package/lib/Session/hooks/use-session-token.js +0 -181
- package/lib/Session/hooks/use-verify.js +0 -45
- package/lib/Session/index.js +0 -941
- package/lib/Session/libs/constants.js +0 -18
- package/lib/Session/libs/did-spaces.js +0 -10
- package/lib/Session/libs/federated.js +0 -42
- package/lib/Session/libs/index.js +0 -15
- package/lib/Session/libs/locales.js +0 -161
- package/lib/Session/libs/login-mobile.js +0 -55
- package/lib/Session/window-focus-aware.js +0 -17
- package/lib/SessionManager/index.js +0 -4
- package/lib/Storage/engine/cookie.js +0 -22
- package/lib/Storage/engine/local-storage.js +0 -37
- package/lib/Storage/index.js +0 -23
- package/lib/User/index.js +0 -6
- package/lib/User/use-did.js +0 -59
- package/lib/User/wrap-did.js +0 -13
- package/lib/WebWalletSWKeeper/index.js +0 -5
- package/lib/components/PassportSwitcher.js +0 -128
- package/lib/constant.js +0 -23
- package/lib/error.js +0 -8
- package/lib/hooks/use-locale.js +0 -7
- package/lib/index.js +0 -111
- package/lib/locales/en.js +0 -17
- package/lib/locales/index.js +0 -10
- package/lib/locales/zh.js +0 -17
- package/lib/node_modules/@blocklet/js-sdk/dist/index.js +0 -512
- package/lib/packages/did-connect/package.json.js +0 -7
- package/lib/types.d.ts +0 -355
- package/lib/utils.js +0 -225
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ConnectConfig, HttpAdapter, RealtimeAdapter, StorageAdapter } from '@arcblock/did-connect-core';
|
|
2
|
+
export interface ConnectContextValue {
|
|
3
|
+
config: ConnectConfig;
|
|
4
|
+
http: HttpAdapter;
|
|
5
|
+
storage: StorageAdapter;
|
|
6
|
+
realtime?: RealtimeAdapter;
|
|
7
|
+
}
|
|
8
|
+
export declare const ConnectContext: import("react").Context<ConnectContextValue | null>;
|
|
9
|
+
/**
|
|
10
|
+
* Access the ConnectProvider context. Throws if used outside a provider.
|
|
11
|
+
*/
|
|
12
|
+
export declare function useConnectContext(): ConnectContextValue;
|
|
13
|
+
//# sourceMappingURL=ConnectContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectContext.d.ts","sourceRoot":"","sources":["../src/ConnectContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG9G,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,eAAO,MAAM,cAAc,qDAAkD,CAAC;AAE9E;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,mBAAmB,CASvD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createContext, useContext } from 'react';
|
|
2
|
+
export const ConnectContext = createContext(null);
|
|
3
|
+
/**
|
|
4
|
+
* Access the ConnectProvider context. Throws if used outside a provider.
|
|
5
|
+
*/
|
|
6
|
+
export function useConnectContext() {
|
|
7
|
+
const ctx = useContext(ConnectContext);
|
|
8
|
+
if (!ctx) {
|
|
9
|
+
throw new Error('useConnectContext must be used within a <ConnectProvider>. ' +
|
|
10
|
+
'Wrap your app with <ConnectProvider config={...}>.');
|
|
11
|
+
}
|
|
12
|
+
return ctx;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=ConnectContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectContext.js","sourceRoot":"","sources":["../src/ConnectContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AASlD,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAA6B,IAAI,CAAC,CAAC;AAE9E;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,6DAA6D;YAC7D,oDAAoD,CACrD,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ConnectConfig, HttpAdapter, RealtimeAdapter, StorageAdapter } from '@arcblock/did-connect-core';
|
|
2
|
+
import type React from 'react';
|
|
3
|
+
export interface ConnectProviderProps {
|
|
4
|
+
config?: ConnectConfig;
|
|
5
|
+
http?: HttpAdapter;
|
|
6
|
+
storage?: StorageAdapter;
|
|
7
|
+
realtime?: RealtimeAdapter;
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export declare function ConnectProvider({ config: configProp, http, storage, realtime, children, }: ConnectProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=ConnectProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectProvider.d.ts","sourceRoot":"","sources":["../src/ConnectProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE9G,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EAAE,UAAU,EAClB,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,QAAQ,GACT,EAAE,oBAAoB,2CAuBtB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { FetchHttpAdapter } from '@arcblock/did-connect-core';
|
|
3
|
+
import { useMemo } from 'react';
|
|
4
|
+
import { ConnectContext } from './ConnectContext.js';
|
|
5
|
+
import { buildConfigFromBlocklet } from './internals/blocklet-config.js';
|
|
6
|
+
import { LocalStorageAdapter } from './internals/local-storage-adapter.js';
|
|
7
|
+
export function ConnectProvider({ config: configProp, http, storage, realtime, children, }) {
|
|
8
|
+
const value = useMemo(() => {
|
|
9
|
+
const config = configProp ?? buildConfigFromBlocklet();
|
|
10
|
+
if (!config) {
|
|
11
|
+
throw new Error('ConnectProvider: no config provided and window.blocklet not found. ' +
|
|
12
|
+
'Pass a config prop or ensure window.blocklet is set.');
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
config,
|
|
16
|
+
http: http ?? new FetchHttpAdapter(),
|
|
17
|
+
storage: storage ?? new LocalStorageAdapter(),
|
|
18
|
+
realtime,
|
|
19
|
+
};
|
|
20
|
+
}, [configProp, http, storage, realtime]);
|
|
21
|
+
return (_jsx(ConnectContext.Provider, { value: value, children: children }));
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=ConnectProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectProvider.js","sourceRoot":"","sources":["../src/ConnectProvider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAU3E,MAAM,UAAU,eAAe,CAAC,EAC9B,MAAM,EAAE,UAAU,EAClB,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,QAAQ,GACa;IACrB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,MAAM,MAAM,GAAG,UAAU,IAAI,uBAAuB,EAAE,CAAC;QACvD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,qEAAqE;gBACrE,sDAAsD,CACvD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,MAAM;YACN,IAAI,EAAE,IAAI,IAAI,IAAI,gBAAgB,EAAE;YACpC,OAAO,EAAE,OAAO,IAAI,IAAI,mBAAmB,EAAE;YAC7C,QAAQ;SACT,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE1C,OAAO,CACL,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAClC,QAAQ,GACe,CAC3B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { HttpAdapter, RealtimeAdapter, StorageAdapter } from '@arcblock/did-connect-core';
|
|
2
|
+
import type React from 'react';
|
|
3
|
+
export interface SessionProviderProps {
|
|
4
|
+
serviceHost?: string;
|
|
5
|
+
prefix?: string;
|
|
6
|
+
action?: string;
|
|
7
|
+
timeout?: number;
|
|
8
|
+
http?: HttpAdapter;
|
|
9
|
+
storage?: StorageAdapter;
|
|
10
|
+
realtime?: RealtimeAdapter;
|
|
11
|
+
children: React.ReactNode;
|
|
12
|
+
appendAuthServicePrefix?: boolean;
|
|
13
|
+
apiOptions?: any;
|
|
14
|
+
protectedRoutes?: string[];
|
|
15
|
+
lazyRefreshToken?: boolean;
|
|
16
|
+
autoDisconnect?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 3.x-compatible SessionProvider that maps legacy props to ConnectProvider.
|
|
20
|
+
*/
|
|
21
|
+
export declare function SessionProvider({ serviceHost, prefix, action, timeout, http, storage, realtime, children, }: SessionProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
//# sourceMappingURL=SessionProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionProvider.d.ts","sourceRoot":"","sources":["../../src/compat/SessionProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC9G,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,WAAW,EACX,MAAM,EACN,MAAM,EACN,OAAO,EACP,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,QAAQ,GACT,EAAE,oBAAoB,2CAetB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { ConnectProvider } from '../ConnectProvider.js';
|
|
3
|
+
/**
|
|
4
|
+
* 3.x-compatible SessionProvider that maps legacy props to ConnectProvider.
|
|
5
|
+
*/
|
|
6
|
+
export function SessionProvider({ serviceHost, prefix, action, timeout, http, storage, realtime, children, }) {
|
|
7
|
+
const config = {
|
|
8
|
+
appPid: serviceHost ?? '',
|
|
9
|
+
appName: '',
|
|
10
|
+
apiPrefix: prefix ? `${prefix}/api/did` : '/api/did',
|
|
11
|
+
servicePrefix: prefix ?? '/.well-known/service',
|
|
12
|
+
action,
|
|
13
|
+
tokenTimeout: timeout,
|
|
14
|
+
};
|
|
15
|
+
return (_jsx(ConnectProvider, { config: config, http: http, storage: storage, realtime: realtime, children: children }));
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=SessionProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionProvider.js","sourceRoot":"","sources":["../../src/compat/SessionProvider.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAmBxD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,WAAW,EACX,MAAM,EACN,MAAM,EACN,OAAO,EACP,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,QAAQ,GACa;IACrB,MAAM,MAAM,GAAkB;QAC5B,MAAM,EAAE,WAAW,IAAI,EAAE;QACzB,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,UAAU;QACpD,aAAa,EAAE,MAAM,IAAI,sBAAsB;QAC/C,MAAM;QACN,YAAY,EAAE,OAAO;KACtB,CAAC;IAEF,OAAO,CACL,KAAC,eAAe,IAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,YAC9E,QAAQ,GACO,CACnB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compat/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compat/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 3.x-compatible hook returning a structure similar to the old useSessionContext.
|
|
3
|
+
*/
|
|
4
|
+
export declare function useSessionContext(): {
|
|
5
|
+
session: import("@arcblock/did-connect-core").UserInfo | null;
|
|
6
|
+
loading: boolean;
|
|
7
|
+
initialized: boolean;
|
|
8
|
+
error: string | null;
|
|
9
|
+
connectApi: {
|
|
10
|
+
open: (params?: import("@arcblock/did-connect-core").CreateTokenParams) => Promise<import("@arcblock/did-connect-core").TokenState>;
|
|
11
|
+
};
|
|
12
|
+
logout: () => Promise<void>;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=useSessionContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSessionContext.d.ts","sourceRoot":"","sources":["../../src/compat/useSessionContext.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,iBAAiB;;;;;;;;;EAchC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useConnect } from '../hooks/useConnect.js';
|
|
2
|
+
import { useSession } from '../hooks/useSession.js';
|
|
3
|
+
/**
|
|
4
|
+
* 3.x-compatible hook returning a structure similar to the old useSessionContext.
|
|
5
|
+
*/
|
|
6
|
+
export function useSessionContext() {
|
|
7
|
+
const session = useSession();
|
|
8
|
+
const connect = useConnect();
|
|
9
|
+
return {
|
|
10
|
+
session: session.user,
|
|
11
|
+
loading: session.loading,
|
|
12
|
+
initialized: session.initialized,
|
|
13
|
+
error: session.error,
|
|
14
|
+
connectApi: {
|
|
15
|
+
open: connect.create,
|
|
16
|
+
},
|
|
17
|
+
logout: session.logout,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=useSessionContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSessionContext.js","sourceRoot":"","sources":["../../src/compat/useSessionContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,IAAI;QACrB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE;YACV,IAAI,EAAE,OAAO,CAAC,MAAM;SACrB;QACD,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { OAuthProvider } from '@arcblock/did-connect-core';
|
|
2
|
+
export interface LoginPageProps {
|
|
3
|
+
methods?: Array<'passkey' | 'did-connect' | 'oauth' | 'email'>;
|
|
4
|
+
oauthProviders?: OAuthProvider[];
|
|
5
|
+
locale?: string;
|
|
6
|
+
onSuccess?: () => void;
|
|
7
|
+
onError?: (error: Error) => void;
|
|
8
|
+
appName?: string;
|
|
9
|
+
appLogo?: string;
|
|
10
|
+
privacyUrl?: string;
|
|
11
|
+
termsUrl?: string;
|
|
12
|
+
theme?: 'light' | 'dark' | 'auto';
|
|
13
|
+
}
|
|
14
|
+
export declare function LoginPage({ methods, oauthProviders, locale, onSuccess, onError, appName, appLogo, privacyUrl, termsUrl, theme, }: LoginPageProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=LoginPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoginPage.d.ts","sourceRoot":"","sources":["../../src/components/LoginPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAIhE,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,aAAa,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;IAC/D,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CACnC;AAED,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,cAAc,EACd,MAAM,EACN,SAAS,EACT,OAAO,EACP,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,KAAK,GACN,EAAE,cAAc,2CAwChB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef } from 'react';
|
|
3
|
+
import { useConnectContext } from '../ConnectContext.js';
|
|
4
|
+
export function LoginPage({ methods, oauthProviders, locale, onSuccess, onError, appName, appLogo, privacyUrl, termsUrl, theme, }) {
|
|
5
|
+
const { config, http } = useConnectContext();
|
|
6
|
+
const containerRef = useRef(null);
|
|
7
|
+
const pageRef = useRef(null);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
let cancelled = false;
|
|
10
|
+
(async () => {
|
|
11
|
+
try {
|
|
12
|
+
const { LoginPage: CoreLoginPage } = await import('@arcblock/did-connect-core/ui');
|
|
13
|
+
if (cancelled || !containerRef.current)
|
|
14
|
+
return;
|
|
15
|
+
const page = new CoreLoginPage(containerRef.current, config, http, { methods, oauthProviders, locale, onSuccess, onError, appName, appLogo, privacyUrl, termsUrl, theme });
|
|
16
|
+
page.mount();
|
|
17
|
+
pageRef.current = page;
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
onError?.(err instanceof Error ? err : new Error(String(err)));
|
|
21
|
+
}
|
|
22
|
+
})();
|
|
23
|
+
return () => {
|
|
24
|
+
cancelled = true;
|
|
25
|
+
if (pageRef.current) {
|
|
26
|
+
pageRef.current.destroy();
|
|
27
|
+
pageRef.current = null;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}, []);
|
|
31
|
+
return _jsx("div", { ref: containerRef });
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=LoginPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoginPage.js","sourceRoot":"","sources":["../../src/components/LoginPage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAezD,MAAM,UAAU,SAAS,CAAC,EACxB,OAAO,EACP,cAAc,EACd,MAAM,EACN,SAAS,EACT,OAAO,EACP,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,KAAK,GACU;IACf,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAC7C,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,CAAM,IAAI,CAAC,CAAC;IAElC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,CAAC,KAAK,IAAI,EAAE;YACV,IAAI,CAAC;gBACH,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAC/C,+BAA+B,CAChC,CAAC;gBAEF,IAAI,SAAS,IAAI,CAAC,YAAY,CAAC,OAAO;oBAAE,OAAO;gBAE/C,MAAM,IAAI,GAAG,IAAI,aAAa,CAC5B,YAAY,CAAC,OAAO,EACpB,MAAM,EACN,IAAI,EACJ,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CACvG,CAAC;gBAEF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACzB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,EAAE,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjE,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC1B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACzB,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,cAAK,GAAG,EAAE,YAAY,GAAI,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface UserAvatarProps {
|
|
2
|
+
/** Avatar image URL. Falls back to initials if empty or on error. */
|
|
3
|
+
src?: string | null;
|
|
4
|
+
/** User's full name — used for initials fallback. */
|
|
5
|
+
name?: string | null;
|
|
6
|
+
/** User's DID — used for default avatar endpoint fallback. */
|
|
7
|
+
did?: string | null;
|
|
8
|
+
/** Size in pixels (default: 40). */
|
|
9
|
+
size?: number;
|
|
10
|
+
/** Additional className for the container. */
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* UserAvatar — displays user avatar with automatic fallback to initials.
|
|
15
|
+
*
|
|
16
|
+
* Priority: src prop → /.well-known/service/avatar/:did → initials from name → "?"
|
|
17
|
+
*/
|
|
18
|
+
export declare function UserAvatar({ src, name, did, size, className }: UserAvatarProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
//# sourceMappingURL=UserAvatar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserAvatar.d.ts","sourceRoot":"","sources":["../../src/components/UserAvatar.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAS,EAAE,SAAS,EAAE,EAAE,eAAe,2CAyCnF"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useState } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* UserAvatar — displays user avatar with automatic fallback to initials.
|
|
5
|
+
*
|
|
6
|
+
* Priority: src prop → /.well-known/service/avatar/:did → initials from name → "?"
|
|
7
|
+
*/
|
|
8
|
+
export function UserAvatar({ src, name, did, size = 40, className }) {
|
|
9
|
+
const [imgFailed, setImgFailed] = useState(false);
|
|
10
|
+
const handleError = useCallback(() => {
|
|
11
|
+
setImgFailed(true);
|
|
12
|
+
}, []);
|
|
13
|
+
const avatarUrl = src || (did ? `/.well-known/service/avatar/${did}` : null);
|
|
14
|
+
const showImg = avatarUrl && !imgFailed;
|
|
15
|
+
const initialsText = getInitials(name);
|
|
16
|
+
const containerStyle = {
|
|
17
|
+
width: size,
|
|
18
|
+
height: size,
|
|
19
|
+
borderRadius: '50%',
|
|
20
|
+
overflow: 'hidden',
|
|
21
|
+
display: 'inline-flex',
|
|
22
|
+
alignItems: 'center',
|
|
23
|
+
justifyContent: 'center',
|
|
24
|
+
flexShrink: 0,
|
|
25
|
+
fontSize: size * 0.4,
|
|
26
|
+
fontWeight: 600,
|
|
27
|
+
backgroundColor: showImg ? 'transparent' : '#3b82f6',
|
|
28
|
+
color: 'white',
|
|
29
|
+
};
|
|
30
|
+
const imgStyle = {
|
|
31
|
+
width: '100%',
|
|
32
|
+
height: '100%',
|
|
33
|
+
objectFit: 'cover',
|
|
34
|
+
};
|
|
35
|
+
return (_jsx("div", { style: containerStyle, className: className, children: showImg ? (_jsx("img", { src: avatarUrl, alt: name || 'avatar', style: imgStyle, onError: handleError })) : (_jsx("span", { children: initialsText })) }));
|
|
36
|
+
}
|
|
37
|
+
function getInitials(name) {
|
|
38
|
+
if (!name)
|
|
39
|
+
return '?';
|
|
40
|
+
const parts = name.trim().split(/\s+/);
|
|
41
|
+
if (parts.length >= 2)
|
|
42
|
+
return (parts[0][0] + parts[1][0]).toUpperCase();
|
|
43
|
+
return name.slice(0, 2).toUpperCase();
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=UserAvatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserAvatar.js","sourceRoot":"","sources":["../../src/components/UserAvatar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAe9C;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAmB;IAClF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,YAAY,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC;IACxC,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAEvC,MAAM,cAAc,GAAwB;QAC1C,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,KAAK;QACnB,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,IAAI,GAAG,GAAG;QACpB,UAAU,EAAE,GAAG;QACf,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QACpD,KAAK,EAAE,OAAO;KACf,CAAC;IAEF,MAAM,QAAQ,GAAwB;QACpC,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,OAAO;KACnB,CAAC;IAEF,OAAO,CACL,cAAK,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,YAC7C,OAAO,CAAC,CAAC,CAAC,CACT,cAAK,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,IAAI,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,GAAI,CACtF,CAAC,CAAC,CAAC,CACF,yBAAO,YAAY,GAAQ,CAC5B,GACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,IAAoB;IACvC,IAAI,CAAC,IAAI;QAAE,OAAO,GAAG,CAAC;IACtB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5E,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type { UseConnectOptions, UseConnectReturn } from './useConnect.js';
|
|
2
|
+
export { useConnect } from './useConnect.js';
|
|
3
|
+
export type { UseEmailReturn } from './useEmail.js';
|
|
4
|
+
export { useEmail } from './useEmail.js';
|
|
5
|
+
export type { UseOAuthReturn } from './useOAuth.js';
|
|
6
|
+
export { useOAuth } from './useOAuth.js';
|
|
7
|
+
export type { UsePasskeyReturn } from './usePasskey.js';
|
|
8
|
+
export { usePasskey } from './usePasskey.js';
|
|
9
|
+
export type { UseSessionReturn } from './useSession.js';
|
|
10
|
+
export { useSession } from './useSession.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CreateTokenParams, TokenState } from '@arcblock/did-connect-core';
|
|
2
|
+
export interface UseConnectOptions {
|
|
3
|
+
action?: string;
|
|
4
|
+
tokenDelivery?: 'cookie' | 'response';
|
|
5
|
+
}
|
|
6
|
+
export interface UseConnectReturn {
|
|
7
|
+
state: Readonly<TokenState>;
|
|
8
|
+
create: (params?: CreateTokenParams) => Promise<TokenState>;
|
|
9
|
+
cancel: () => Promise<void>;
|
|
10
|
+
reset: () => void;
|
|
11
|
+
startPolling: () => void;
|
|
12
|
+
stopPolling: () => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function useConnect(options?: UseConnectOptions): UseConnectReturn;
|
|
15
|
+
//# sourceMappingURL=useConnect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useConnect.d.ts","sourceRoot":"","sources":["../../src/hooks/useConnect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAMhF,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CACvC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5B,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,iBAAiB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAID,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,gBAAgB,CAuBxE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TokenSession } from '@arcblock/did-connect-core';
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
import { useConnectContext } from '../ConnectContext.js';
|
|
4
|
+
import { useSyncState } from '../internals/use-sync-state.js';
|
|
5
|
+
const TOKEN_EVENTS = ['statusChange', 'error', 'succeed', 'timeout'];
|
|
6
|
+
export function useConnect(options) {
|
|
7
|
+
const { config, http, storage, realtime } = useConnectContext();
|
|
8
|
+
const mergedConfig = options
|
|
9
|
+
? { ...config, action: options.action ?? config.action, tokenDelivery: options.tokenDelivery ?? config.tokenDelivery }
|
|
10
|
+
: config;
|
|
11
|
+
const [state, session, sync] = useSyncState(() => new TokenSession(mergedConfig, http, { realtime, storage }), TOKEN_EVENTS);
|
|
12
|
+
const create = useCallback((params) => session.create(params), [session]);
|
|
13
|
+
const cancel = useCallback(() => session.cancel(), [session]);
|
|
14
|
+
const reset = useCallback(() => { session.reset(); sync(); }, [session, sync]);
|
|
15
|
+
const startPolling = useCallback(() => session.startPolling(), [session]);
|
|
16
|
+
const stopPolling = useCallback(() => session.stopPolling(), [session]);
|
|
17
|
+
return { state, create, cancel, reset, startPolling, stopPolling };
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=useConnect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useConnect.js","sourceRoot":"","sources":["../../src/hooks/useConnect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAgB9D,MAAM,YAAY,GAAG,CAAC,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAErE,MAAM,UAAU,UAAU,CAAC,OAA2B;IACpD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAEhE,MAAM,YAAY,GAAG,OAAO;QAC1B,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,EAAE;QACtH,CAAC,CAAC,MAAM,CAAC;IAEX,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,YAAY,CACzC,GAAG,EAAE,CAAC,IAAI,YAAY,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EACjE,YAAY,CACb,CAAC;IAEF,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,MAA0B,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EACtD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/E,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAExE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AuthResult } from '@arcblock/did-connect-core';
|
|
2
|
+
export interface UseEmailReturn {
|
|
3
|
+
loading: boolean;
|
|
4
|
+
error: string | null;
|
|
5
|
+
codeSent: boolean;
|
|
6
|
+
codeId: string | null;
|
|
7
|
+
sendCode: (email: string, locale?: string) => Promise<void>;
|
|
8
|
+
login: (code: string) => Promise<AuthResult>;
|
|
9
|
+
}
|
|
10
|
+
export declare function useEmail(): UseEmailReturn;
|
|
11
|
+
//# sourceMappingURL=useEmail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEmail.d.ts","sourceRoot":"","sources":["../../src/hooks/useEmail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAK7D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CAC9C;AAED,wBAAgB,QAAQ,IAAI,cAAc,CAgDzC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { EmailFlow } from '@arcblock/did-connect-core';
|
|
2
|
+
import { useCallback, useRef, useState } from 'react';
|
|
3
|
+
import { useConnectContext } from '../ConnectContext.js';
|
|
4
|
+
export function useEmail() {
|
|
5
|
+
const { config, http } = useConnectContext();
|
|
6
|
+
const flowRef = useRef(null);
|
|
7
|
+
if (!flowRef.current) {
|
|
8
|
+
flowRef.current = new EmailFlow(config, http);
|
|
9
|
+
}
|
|
10
|
+
const flow = flowRef.current;
|
|
11
|
+
const [loading, setLoading] = useState(false);
|
|
12
|
+
const [error, setError] = useState(null);
|
|
13
|
+
const [codeSent, setCodeSent] = useState(false);
|
|
14
|
+
const [codeId, setCodeId] = useState(null);
|
|
15
|
+
const sendCode = useCallback(async (email, locale) => {
|
|
16
|
+
setLoading(true);
|
|
17
|
+
setError(null);
|
|
18
|
+
try {
|
|
19
|
+
const result = await flow.sendCode(email, locale);
|
|
20
|
+
setCodeId(result.id);
|
|
21
|
+
setCodeSent(true);
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
setError(err?.message ?? 'Failed to send code');
|
|
25
|
+
throw err;
|
|
26
|
+
}
|
|
27
|
+
finally {
|
|
28
|
+
setLoading(false);
|
|
29
|
+
}
|
|
30
|
+
}, [flow]);
|
|
31
|
+
const login = useCallback(async (code) => {
|
|
32
|
+
setLoading(true);
|
|
33
|
+
setError(null);
|
|
34
|
+
try {
|
|
35
|
+
return await flow.login({ code });
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
setError(err?.message ?? 'Login failed');
|
|
39
|
+
throw err;
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
setLoading(false);
|
|
43
|
+
}
|
|
44
|
+
}, [flow]);
|
|
45
|
+
return { loading, error, codeSent, codeId, sendCode, login };
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=useEmail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEmail.js","sourceRoot":"","sources":["../../src/hooks/useEmail.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAWzD,MAAM,UAAU,QAAQ;IACtB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAE7B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAE1D,MAAM,QAAQ,GAAG,WAAW,CAC1B,KAAK,EAAE,KAAa,EAAE,MAAe,EAAE,EAAE;QACvC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClD,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,QAAQ,CAAC,GAAG,EAAE,OAAO,IAAI,qBAAqB,CAAC,CAAC;YAChD,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,MAAM,KAAK,GAAG,WAAW,CACvB,KAAK,EAAE,IAAY,EAAE,EAAE;QACrB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,QAAQ,CAAC,GAAG,EAAE,OAAO,IAAI,cAAc,CAAC,CAAC;YACzC,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC/D,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AuthResult, OAuthProvider } from '@arcblock/did-connect-core';
|
|
2
|
+
export interface UseOAuthReturn {
|
|
3
|
+
providers: OAuthProvider[];
|
|
4
|
+
loading: boolean;
|
|
5
|
+
error: string | null;
|
|
6
|
+
login: (provider: string) => Promise<AuthResult>;
|
|
7
|
+
bind: (provider: string) => Promise<AuthResult>;
|
|
8
|
+
unbind: (provider: string, accountDid: string) => Promise<AuthResult>;
|
|
9
|
+
loadProviders: () => Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
export declare function useOAuth(): UseOAuthReturn;
|
|
12
|
+
//# sourceMappingURL=useOAuth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOAuth.d.ts","sourceRoot":"","sources":["../../src/hooks/useOAuth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAK5E,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACtE,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,wBAAgB,QAAQ,IAAI,cAAc,CA0FzC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { OAuthFlow, openPopup, waitForPopupMessage } from '@arcblock/did-connect-core';
|
|
2
|
+
import { useCallback, useRef, useState } from 'react';
|
|
3
|
+
import { useConnectContext } from '../ConnectContext.js';
|
|
4
|
+
export function useOAuth() {
|
|
5
|
+
const { config, http } = useConnectContext();
|
|
6
|
+
const flowRef = useRef(null);
|
|
7
|
+
if (!flowRef.current) {
|
|
8
|
+
flowRef.current = new OAuthFlow(config, http);
|
|
9
|
+
}
|
|
10
|
+
const flow = flowRef.current;
|
|
11
|
+
const [providers, setProviders] = useState([]);
|
|
12
|
+
const [loading, setLoading] = useState(false);
|
|
13
|
+
const [error, setError] = useState(null);
|
|
14
|
+
const loadProviders = useCallback(async () => {
|
|
15
|
+
setLoading(true);
|
|
16
|
+
setError(null);
|
|
17
|
+
try {
|
|
18
|
+
const result = await flow.getProviders();
|
|
19
|
+
setProviders(result);
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
setError(err?.message ?? 'Failed to load providers');
|
|
23
|
+
}
|
|
24
|
+
finally {
|
|
25
|
+
setLoading(false);
|
|
26
|
+
}
|
|
27
|
+
}, [flow]);
|
|
28
|
+
const doPopupFlow = useCallback(async (provider, exchange) => {
|
|
29
|
+
setLoading(true);
|
|
30
|
+
setError(null);
|
|
31
|
+
try {
|
|
32
|
+
const servicePrefix = config.servicePrefix ?? '/.well-known/service';
|
|
33
|
+
const url = `${servicePrefix}/api/oauth/${provider}/login`;
|
|
34
|
+
const popup = openPopup(url);
|
|
35
|
+
if (!popup) {
|
|
36
|
+
throw new Error('Popup blocked by browser');
|
|
37
|
+
}
|
|
38
|
+
const data = await waitForPopupMessage(popup, {
|
|
39
|
+
origin: window.location.origin,
|
|
40
|
+
});
|
|
41
|
+
const code = data?.code;
|
|
42
|
+
if (!code) {
|
|
43
|
+
throw new Error('No authorization code received from popup');
|
|
44
|
+
}
|
|
45
|
+
const result = await exchange(provider, code);
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
const msg = err?.message ?? 'OAuth flow failed';
|
|
50
|
+
setError(msg);
|
|
51
|
+
throw err;
|
|
52
|
+
}
|
|
53
|
+
finally {
|
|
54
|
+
setLoading(false);
|
|
55
|
+
}
|
|
56
|
+
}, [config.servicePrefix]);
|
|
57
|
+
const login = useCallback((provider) => doPopupFlow(provider, (p, code) => flow.exchangeCode(p, code)), [doPopupFlow, flow]);
|
|
58
|
+
const bind = useCallback((provider) => doPopupFlow(provider, (p, code) => flow.bind(p, code)), [doPopupFlow, flow]);
|
|
59
|
+
const unbind = useCallback(async (provider, accountDid) => {
|
|
60
|
+
setLoading(true);
|
|
61
|
+
setError(null);
|
|
62
|
+
try {
|
|
63
|
+
return await flow.unbind(provider, accountDid);
|
|
64
|
+
}
|
|
65
|
+
catch (err) {
|
|
66
|
+
setError(err?.message ?? 'Unbind failed');
|
|
67
|
+
throw err;
|
|
68
|
+
}
|
|
69
|
+
finally {
|
|
70
|
+
setLoading(false);
|
|
71
|
+
}
|
|
72
|
+
}, [flow]);
|
|
73
|
+
return { providers, loading, error, login, bind, unbind, loadProviders };
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=useOAuth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOAuth.js","sourceRoot":"","sources":["../../src/hooks/useOAuth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface UsePasskeyReturn {
|
|
2
|
+
loading: boolean;
|
|
3
|
+
error: string | null;
|
|
4
|
+
authenticate: () => Promise<{
|
|
5
|
+
success: boolean;
|
|
6
|
+
error?: string;
|
|
7
|
+
}>;
|
|
8
|
+
register: (name?: string) => Promise<{
|
|
9
|
+
success: boolean;
|
|
10
|
+
error?: string;
|
|
11
|
+
}>;
|
|
12
|
+
}
|
|
13
|
+
export declare function usePasskey(): UsePasskeyReturn;
|
|
14
|
+
//# sourceMappingURL=usePasskey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePasskey.d.ts","sourceRoot":"","sources":["../../src/hooks/usePasskey.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5E;AAED,wBAAgB,UAAU,IAAI,gBAAgB,CA8C7C"}
|