@awiki/dsh-plugin 0.3.7 → 0.3.11-rc.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/README.md +112 -73
- package/README.zh.md +91 -62
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/cordis.patch.yml +6 -5
- package/lib/builtin-tenants.json +22 -0
- package/lib/builtin-tenants.sha256 +1 -0
- package/lib/client.js +9281 -2379
- package/lib/client.js.map +1 -1
- package/lib/index.js +3553 -1138
- package/lib/model-proxy-contract.js +19 -11
- package/lib/provider.js +73 -17
- package/lib/{sdk-adapter--trNlr-T.mjs → sdk-adapter-CYcJH7sM.mjs} +374 -101
- package/lib/typert.host.js +1595 -168
- package/lib/typert.remote-client.d.ts +43 -7
- package/lib/typert.remote-client.d.ts.map +1 -1
- package/lib/typert.remote-client.js +1595 -168
- package/lib/types/builtin-tenant-config.d.ts +19 -0
- package/lib/types/builtin-tenant-config.d.ts.map +1 -0
- package/lib/types/builtin-tenant-config.js +57 -0
- package/lib/types/builtin-tenant-config.js.map +1 -0
- package/lib/types/client/AwikiDeviceJoinReminder.d.ts +15 -0
- package/lib/types/client/AwikiDeviceJoinReminder.d.ts.map +1 -0
- package/lib/types/client/AwikiDeviceJoinReminder.js +74 -0
- package/lib/types/client/AwikiDeviceJoinReminder.js.map +1 -0
- package/lib/types/client/AwikiDevices.d.ts +33 -0
- package/lib/types/client/AwikiDevices.d.ts.map +1 -0
- package/lib/types/client/AwikiDevices.js +141 -0
- package/lib/types/client/AwikiDevices.js.map +1 -0
- package/lib/types/client/AwikiGroupDetails.d.ts.map +1 -1
- package/lib/types/client/AwikiGroupDetails.js +16 -13
- package/lib/types/client/AwikiGroupDetails.js.map +1 -1
- package/lib/types/client/AwikiIdentityAccess.d.ts +17 -8
- package/lib/types/client/AwikiIdentityAccess.d.ts.map +1 -1
- package/lib/types/client/AwikiIdentityAccess.js +269 -37
- package/lib/types/client/AwikiIdentityAccess.js.map +1 -1
- package/lib/types/client/AwikiIntegrationSettings.d.ts +21 -0
- package/lib/types/client/AwikiIntegrationSettings.d.ts.map +1 -0
- package/lib/types/client/AwikiIntegrationSettings.js +105 -0
- package/lib/types/client/AwikiIntegrationSettings.js.map +1 -0
- package/lib/types/client/AwikiMail.d.ts +1 -1
- package/lib/types/client/AwikiMail.d.ts.map +1 -1
- package/lib/types/client/AwikiMail.js +17 -137
- package/lib/types/client/AwikiMail.js.map +1 -1
- package/lib/types/client/AwikiOverlay.d.ts +0 -1
- package/lib/types/client/AwikiOverlay.d.ts.map +1 -1
- package/lib/types/client/AwikiOverlay.js +26 -28
- package/lib/types/client/AwikiOverlay.js.map +1 -1
- package/lib/types/client/AwikiProfileCard.d.ts.map +1 -1
- package/lib/types/client/AwikiProfileCard.js +17 -18
- package/lib/types/client/AwikiProfileCard.js.map +1 -1
- package/lib/types/client/AwikiRecoveryForm.d.ts +6 -1
- package/lib/types/client/AwikiRecoveryForm.d.ts.map +1 -1
- package/lib/types/client/AwikiRecoveryForm.js +74 -30
- package/lib/types/client/AwikiRecoveryForm.js.map +1 -1
- package/lib/types/client/AwikiSettingsSection.d.ts +28 -13
- package/lib/types/client/AwikiSettingsSection.d.ts.map +1 -1
- package/lib/types/client/AwikiSettingsSection.js +93 -61
- package/lib/types/client/AwikiSettingsSection.js.map +1 -1
- package/lib/types/client/AwikiUpdates.d.ts +10 -0
- package/lib/types/client/AwikiUpdates.d.ts.map +1 -0
- package/lib/types/client/AwikiUpdates.js +57 -0
- package/lib/types/client/AwikiUpdates.js.map +1 -0
- package/lib/types/client/awiki-client-bridge.d.ts +2 -2
- package/lib/types/client/awiki-client-bridge.d.ts.map +1 -1
- package/lib/types/client/awiki-client-bridge.js +4 -1
- package/lib/types/client/awiki-client-bridge.js.map +1 -1
- package/lib/types/client/controller.d.ts +92 -44
- package/lib/types/client/controller.d.ts.map +1 -1
- package/lib/types/client/controller.js +761 -334
- package/lib/types/client/controller.js.map +1 -1
- package/lib/types/client/drafts.d.ts +31 -0
- package/lib/types/client/drafts.d.ts.map +1 -0
- package/lib/types/client/drafts.js +94 -0
- package/lib/types/client/drafts.js.map +1 -0
- package/lib/types/client/image-cache.d.ts +2 -2
- package/lib/types/client/image-cache.d.ts.map +1 -1
- package/lib/types/client/image-cache.js +15 -2
- package/lib/types/client/image-cache.js.map +1 -1
- package/lib/types/client/index.d.ts +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/index.js +64 -19
- package/lib/types/client/index.js.map +1 -1
- package/lib/types/client/integration-operation.d.ts +9 -0
- package/lib/types/client/integration-operation.d.ts.map +1 -0
- package/lib/types/client/integration-operation.js +54 -0
- package/lib/types/client/integration-operation.js.map +1 -0
- package/lib/types/client/mail-list-cache.d.ts +2 -0
- package/lib/types/client/mail-list-cache.d.ts.map +1 -1
- package/lib/types/client/mail-list-cache.js +18 -0
- package/lib/types/client/mail-list-cache.js.map +1 -1
- package/lib/types/client/otp-cooldown.d.ts +7 -0
- package/lib/types/client/otp-cooldown.d.ts.map +1 -0
- package/lib/types/client/otp-cooldown.js +29 -0
- package/lib/types/client/otp-cooldown.js.map +1 -0
- package/lib/types/client/settings-controller.d.ts +38 -2
- package/lib/types/client/settings-controller.d.ts.map +1 -1
- package/lib/types/client/settings-controller.js +206 -10
- package/lib/types/client/settings-controller.js.map +1 -1
- package/lib/types/client/settings-locales.d.ts +1 -1
- package/lib/types/client/settings-locales.d.ts.map +1 -1
- package/lib/types/client/settings-locales.js +192 -14
- package/lib/types/client/settings-locales.js.map +1 -1
- package/lib/types/client/slots.d.ts +21 -10
- package/lib/types/client/slots.d.ts.map +1 -1
- package/lib/types/client/slots.js +0 -1
- package/lib/types/client/slots.js.map +1 -1
- package/lib/types/client/store.d.ts +1 -1
- package/lib/types/client/store.d.ts.map +1 -1
- package/lib/types/client/store.js +1 -1
- package/lib/types/client/store.js.map +1 -1
- package/lib/types/conversation-preferences.d.ts.map +1 -1
- package/lib/types/conversation-preferences.js +0 -17
- package/lib/types/conversation-preferences.js.map +1 -1
- package/lib/types/desktop-distribution.d.ts +25 -0
- package/lib/types/desktop-distribution.d.ts.map +1 -0
- package/lib/types/desktop-distribution.js +57 -0
- package/lib/types/desktop-distribution.js.map +1 -0
- package/lib/types/domain.d.ts +1 -1
- package/lib/types/domain.d.ts.map +1 -1
- package/lib/types/domain.js +2 -1
- package/lib/types/domain.js.map +1 -1
- package/lib/types/index.d.ts +165 -41
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +1594 -535
- package/lib/types/index.js.map +1 -1
- package/lib/types/integration-client.d.ts +17 -0
- package/lib/types/integration-client.d.ts.map +1 -0
- package/lib/types/integration-client.js +233 -0
- package/lib/types/integration-client.js.map +1 -0
- package/lib/types/legacy-sent-mail-cache.d.ts +4 -0
- package/lib/types/legacy-sent-mail-cache.d.ts.map +1 -0
- package/lib/types/legacy-sent-mail-cache.js +29 -0
- package/lib/types/legacy-sent-mail-cache.js.map +1 -0
- package/lib/types/listener-state.d.ts +5 -3
- package/lib/types/listener-state.d.ts.map +1 -1
- package/lib/types/listener-state.js +28 -13
- package/lib/types/listener-state.js.map +1 -1
- package/lib/types/listener.d.ts +9 -32
- package/lib/types/listener.d.ts.map +1 -1
- package/lib/types/listener.js +13 -128
- package/lib/types/listener.js.map +1 -1
- package/lib/types/mail-list-client.d.ts +12 -0
- package/lib/types/mail-list-client.d.ts.map +1 -0
- package/lib/types/mail-list-client.js +254 -0
- package/lib/types/mail-list-client.js.map +1 -0
- package/lib/types/mail-recovery-observability.d.ts +8 -0
- package/lib/types/mail-recovery-observability.d.ts.map +1 -0
- package/lib/types/mail-recovery-observability.js +119 -0
- package/lib/types/mail-recovery-observability.js.map +1 -0
- package/lib/types/mail.d.ts +2 -28
- package/lib/types/mail.d.ts.map +1 -1
- package/lib/types/mail.js +2 -79
- package/lib/types/mail.js.map +1 -1
- package/lib/types/model-proxy-contract.d.ts +8 -8
- package/lib/types/model-proxy-contract.d.ts.map +1 -1
- package/lib/types/model-proxy-contract.js +15 -8
- package/lib/types/model-proxy-contract.js.map +1 -1
- package/lib/types/package-version.generated.d.ts +4 -0
- package/lib/types/package-version.generated.d.ts.map +1 -0
- package/lib/types/package-version.generated.js +4 -0
- package/lib/types/package-version.generated.js.map +1 -0
- package/lib/types/profile-state.d.ts +2 -13
- package/lib/types/profile-state.d.ts.map +1 -1
- package/lib/types/profile-state.js +3 -20
- package/lib/types/profile-state.js.map +1 -1
- package/lib/types/provider-api.d.ts +134 -43
- package/lib/types/provider-api.d.ts.map +1 -1
- package/lib/types/provider.d.ts +8 -2
- package/lib/types/provider.d.ts.map +1 -1
- package/lib/types/provider.js +76 -16
- package/lib/types/provider.js.map +1 -1
- package/lib/types/realtime-supervisor.d.ts +60 -0
- package/lib/types/realtime-supervisor.d.ts.map +1 -0
- package/lib/types/realtime-supervisor.js +255 -0
- package/lib/types/realtime-supervisor.js.map +1 -0
- package/lib/types/registration-policy.d.ts +7 -0
- package/lib/types/registration-policy.d.ts.map +1 -0
- package/lib/types/registration-policy.js +21 -0
- package/lib/types/registration-policy.js.map +1 -0
- package/lib/types/sdk-adapter.d.ts +62 -11
- package/lib/types/sdk-adapter.d.ts.map +1 -1
- package/lib/types/sdk-adapter.js +285 -123
- package/lib/types/sdk-adapter.js.map +1 -1
- package/lib/types/settings-rpc-contract.d.ts +63 -5
- package/lib/types/settings-rpc-contract.d.ts.map +1 -1
- package/lib/types/settings-rpc-contract.js +108 -5
- package/lib/types/settings-rpc-contract.js.map +1 -1
- package/lib/types/settings-rpc.d.ts +14 -1
- package/lib/types/settings-rpc.d.ts.map +1 -1
- package/lib/types/settings-rpc.js +132 -3
- package/lib/types/settings-rpc.js.map +1 -1
- package/lib/types/settings-transport.d.ts +7 -0
- package/lib/types/settings-transport.d.ts.map +1 -0
- package/lib/types/settings-transport.js +52 -0
- package/lib/types/settings-transport.js.map +1 -0
- package/lib/types/tenant-registry.d.ts +74 -0
- package/lib/types/tenant-registry.d.ts.map +1 -0
- package/lib/types/tenant-registry.js +440 -0
- package/lib/types/tenant-registry.js.map +1 -0
- package/lib/types/tools.d.ts +1 -1
- package/lib/types/tools.d.ts.map +1 -1
- package/lib/types/tools.js +4 -20
- package/lib/types/tools.js.map +1 -1
- package/lib/types/types.d.ts +249 -66
- package/lib/types/types.d.ts.map +1 -1
- package/lib/types/types.js.map +1 -1
- package/lib/types/update-policy.d.ts +51 -0
- package/lib/types/update-policy.d.ts.map +1 -0
- package/lib/types/update-policy.js +379 -0
- package/lib/types/update-policy.js.map +1 -0
- package/lib/types/version.d.ts +4 -0
- package/lib/types/version.d.ts.map +1 -0
- package/lib/types/version.js +44 -0
- package/lib/types/version.js.map +1 -0
- package/package.json +88 -61
- package/lib/types/base64.d.ts +0 -4
- package/lib/types/base64.d.ts.map +0 -1
- package/lib/types/base64.js +0 -28
- package/lib/types/base64.js.map +0 -1
- package/lib/types/client/mail-attachment.d.ts +0 -40
- package/lib/types/client/mail-attachment.d.ts.map +0 -1
- package/lib/types/client/mail-attachment.js +0 -187
- package/lib/types/client/mail-attachment.js.map +0 -1
- package/lib/types/sent-mail-store.d.ts +0 -27
- package/lib/types/sent-mail-store.d.ts.map +0 -1
- package/lib/types/sent-mail-store.js +0 -348
- package/lib/types/sent-mail-store.js.map +0 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Build-injected two-slot tenant catalog with a source-tree default for tests. */
|
|
2
|
+
export type AwikiBuiltinTenantSlot = 'primary' | 'secondary';
|
|
3
|
+
export interface AwikiBuiltinTenantDefinition {
|
|
4
|
+
readonly displayName: Readonly<{
|
|
5
|
+
'zh-CN': string;
|
|
6
|
+
en: string;
|
|
7
|
+
}>;
|
|
8
|
+
readonly backendOrigin: string;
|
|
9
|
+
readonly didHost: string;
|
|
10
|
+
}
|
|
11
|
+
export interface AwikiBuiltinTenantConfig {
|
|
12
|
+
readonly schemaVersion: 1;
|
|
13
|
+
readonly defaultSlot: AwikiBuiltinTenantSlot;
|
|
14
|
+
readonly tenants: Readonly<Record<AwikiBuiltinTenantSlot, AwikiBuiltinTenantDefinition>>;
|
|
15
|
+
}
|
|
16
|
+
export declare function decodeBuiltinTenantConfig(value: unknown): AwikiBuiltinTenantConfig;
|
|
17
|
+
export declare const AWIKI_BUILTIN_TENANT_CONFIG: AwikiBuiltinTenantConfig;
|
|
18
|
+
export declare const AWIKI_DEFAULT_BUILTIN_TENANT: AwikiBuiltinTenantDefinition;
|
|
19
|
+
//# sourceMappingURL=builtin-tenant-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builtin-tenant-config.d.ts","sourceRoot":"","sources":["../../src/builtin-tenant-config.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAInF,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,WAAW,CAAA;AAE5D,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC/D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAA;IAC5C,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,sBAAsB,EAAE,4BAA4B,CAAC,CAAC,CAAA;CACzF;AAgCD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,wBAAwB,CAiBlF;AASD,eAAO,MAAM,2BAA2B,0BAAyC,CAAA;AACjF,eAAO,MAAM,4BAA4B,8BACqC,CAAA"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/** Build-injected two-slot tenant catalog with a source-tree default for tests. */
|
|
2
|
+
function record(value) {
|
|
3
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
4
|
+
}
|
|
5
|
+
function definition(value) {
|
|
6
|
+
if (!record(value) || !record(value.display_name)
|
|
7
|
+
|| typeof value.display_name['zh-CN'] !== 'string' || value.display_name['zh-CN'].trim() === ''
|
|
8
|
+
|| typeof value.display_name.en !== 'string' || value.display_name.en.trim() === ''
|
|
9
|
+
|| typeof value.backend_origin !== 'string' || typeof value.did_host !== 'string') {
|
|
10
|
+
throw new Error('awiki: invalid built-in tenant definition');
|
|
11
|
+
}
|
|
12
|
+
const origin = new URL(value.backend_origin);
|
|
13
|
+
const loopback = origin.protocol === 'http:' && ['localhost', '127.0.0.1', '[::1]'].includes(origin.hostname);
|
|
14
|
+
if ((origin.protocol !== 'https:' && !loopback) || origin.username !== '' || origin.password !== ''
|
|
15
|
+
|| origin.pathname !== '/' || origin.search !== '' || origin.hash !== ''
|
|
16
|
+
|| (!loopback && origin.port !== '')) {
|
|
17
|
+
throw new Error('awiki: built-in tenant origin must be an HTTPS origin');
|
|
18
|
+
}
|
|
19
|
+
const didHost = value.did_host.trim().toLowerCase().replace(/\.$/u, '');
|
|
20
|
+
if (origin.hostname !== didHost)
|
|
21
|
+
throw new Error('awiki: built-in tenant DID host must match its origin');
|
|
22
|
+
return {
|
|
23
|
+
displayName: {
|
|
24
|
+
'zh-CN': value.display_name['zh-CN'].trim(),
|
|
25
|
+
en: value.display_name.en.trim(),
|
|
26
|
+
},
|
|
27
|
+
backendOrigin: origin.origin,
|
|
28
|
+
didHost,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export function decodeBuiltinTenantConfig(value) {
|
|
32
|
+
if (!record(value) || value.schema_version !== 1
|
|
33
|
+
|| (value.default_slot !== 'primary' && value.default_slot !== 'secondary')
|
|
34
|
+
|| !record(value.tenants)
|
|
35
|
+
|| Object.keys(value.tenants).sort().join(',') !== 'primary,secondary') {
|
|
36
|
+
throw new Error('awiki: invalid built-in tenant config');
|
|
37
|
+
}
|
|
38
|
+
const primary = definition(value.tenants.primary);
|
|
39
|
+
const secondary = definition(value.tenants.secondary);
|
|
40
|
+
if (primary.backendOrigin === secondary.backendOrigin || primary.didHost === secondary.didHost) {
|
|
41
|
+
throw new Error('awiki: built-in tenant slots must use distinct endpoints');
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
schemaVersion: 1,
|
|
45
|
+
defaultSlot: value.default_slot,
|
|
46
|
+
tenants: { primary, secondary },
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function rawConfig() {
|
|
50
|
+
if (typeof __DSH_AWIKI_BUILTIN_TENANTS_JSON__ === 'string') {
|
|
51
|
+
return JSON.parse(__DSH_AWIKI_BUILTIN_TENANTS_JSON__);
|
|
52
|
+
}
|
|
53
|
+
throw new Error('awiki: built-in tenant config was not injected by the build');
|
|
54
|
+
}
|
|
55
|
+
export const AWIKI_BUILTIN_TENANT_CONFIG = decodeBuiltinTenantConfig(rawConfig());
|
|
56
|
+
export const AWIKI_DEFAULT_BUILTIN_TENANT = AWIKI_BUILTIN_TENANT_CONFIG.tenants[AWIKI_BUILTIN_TENANT_CONFIG.defaultSlot];
|
|
57
|
+
//# sourceMappingURL=builtin-tenant-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builtin-tenant-config.js","sourceRoot":"","sources":["../../src/builtin-tenant-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Proactive ready-admin reminder for newly pending device join requests. */
|
|
2
|
+
import type { AwikiDevicesProps } from './AwikiDevices.tsx';
|
|
3
|
+
export interface AwikiDeviceJoinReminderProps extends Omit<AwikiDevicesProps, 'active'> {
|
|
4
|
+
readonly active: boolean;
|
|
5
|
+
readonly identityKey: string | null;
|
|
6
|
+
/** Override only for deterministic component tests. */
|
|
7
|
+
readonly pollIntervalMs?: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Poll for join requests while an admin identity is active, without exposing
|
|
11
|
+
* pending device management to member devices or repeatedly prompting for the
|
|
12
|
+
* same request during one identity session.
|
|
13
|
+
*/
|
|
14
|
+
export declare function AwikiDeviceJoinReminder(props: AwikiDeviceJoinReminderProps): import("react").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=AwikiDeviceJoinReminder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AwikiDeviceJoinReminder.d.ts","sourceRoot":"","sources":["../../../src/client/AwikiDeviceJoinReminder.tsx"],"names":[],"mappings":"AAAA,6EAA6E;AAK7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAM3D,MAAM,WAAW,4BAA6B,SAAQ,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IACrF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,uDAAuD;IACvD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CACjC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,+BAwG1E"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/** Proactive ready-admin reminder for newly pending device join requests. */
|
|
3
|
+
import { useEffect, useRef, useState } from 'react';
|
|
4
|
+
import { Button, Modal } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
5
|
+
import { AwikiDevices, TERMINAL_DEVICE_JOIN_STATES } from "./AwikiDevices.js";
|
|
6
|
+
import css from './AwikiDeviceJoinReminder.module.css';
|
|
7
|
+
/**
|
|
8
|
+
* Poll for join requests while an admin identity is active, without exposing
|
|
9
|
+
* pending device management to member devices or repeatedly prompting for the
|
|
10
|
+
* same request during one identity session.
|
|
11
|
+
*/
|
|
12
|
+
export function AwikiDeviceJoinReminder(props) {
|
|
13
|
+
const [request, setRequest] = useState(null);
|
|
14
|
+
const [managing, setManaging] = useState(false);
|
|
15
|
+
const dismissedRequestRefs = useRef(new Set());
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
dismissedRequestRefs.current.clear();
|
|
18
|
+
setRequest(null);
|
|
19
|
+
setManaging(false);
|
|
20
|
+
}, [props.identityKey]);
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (!props.active || props.identityKey === null || managing)
|
|
23
|
+
return;
|
|
24
|
+
let alive = true;
|
|
25
|
+
let inFlight = false;
|
|
26
|
+
let timer;
|
|
27
|
+
const poll = async () => {
|
|
28
|
+
if (inFlight)
|
|
29
|
+
return;
|
|
30
|
+
inFlight = true;
|
|
31
|
+
try {
|
|
32
|
+
const result = await props.refreshDeviceManagement();
|
|
33
|
+
if (!alive || !result.ok)
|
|
34
|
+
return;
|
|
35
|
+
if (!result.value.canManage) {
|
|
36
|
+
setRequest(null);
|
|
37
|
+
if (timer !== undefined)
|
|
38
|
+
clearInterval(timer);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const actionable = result.value.requests.filter(value => !TERMINAL_DEVICE_JOIN_STATES.has(value.state));
|
|
42
|
+
const liveRequestRefs = new Set(actionable.map(value => value.requestRef));
|
|
43
|
+
setRequest(current => {
|
|
44
|
+
if (current !== null && liveRequestRefs.has(current.requestRef))
|
|
45
|
+
return current;
|
|
46
|
+
return actionable.find(value => !dismissedRequestRefs.current.has(value.requestRef)) ?? null;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
finally {
|
|
50
|
+
inFlight = false;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
void poll();
|
|
54
|
+
timer = setInterval(() => { void poll(); }, props.pollIntervalMs ?? 3_000);
|
|
55
|
+
return () => {
|
|
56
|
+
alive = false;
|
|
57
|
+
if (timer !== undefined)
|
|
58
|
+
clearInterval(timer);
|
|
59
|
+
};
|
|
60
|
+
}, [managing, props.active, props.identityKey, props.pollIntervalMs, props.refreshDeviceManagement]);
|
|
61
|
+
const dismiss = () => {
|
|
62
|
+
if (request !== null)
|
|
63
|
+
dismissedRequestRefs.current.add(request.requestRef);
|
|
64
|
+
setRequest(null);
|
|
65
|
+
};
|
|
66
|
+
const manage = () => {
|
|
67
|
+
if (request !== null)
|
|
68
|
+
dismissedRequestRefs.current.add(request.requestRef);
|
|
69
|
+
setRequest(null);
|
|
70
|
+
setManaging(true);
|
|
71
|
+
};
|
|
72
|
+
return (_jsxs(_Fragment, { children: [_jsx(Modal, { open: request !== null, onClose: dismiss, title: "\u6709\u65B0\u8BBE\u5907\u8BF7\u6C42\u52A0\u5165", closeLabel: "\u7A0D\u540E\u5904\u7406", description: "\u68C0\u6D4B\u5230\u4E00\u53F0\u65B0\u8BBE\u5907\u6B63\u5728\u8BF7\u6C42\u52A0\u5165\u5F53\u524D AWiki \u8EAB\u4EFD\u3002\u6279\u51C6\u524D\u8BF7\u6838\u5BF9\u4E24\u53F0\u8BBE\u5907\u663E\u793A\u7684\u5B89\u5168\u7801\u3002", footer: (_jsxs(_Fragment, { children: [_jsx(Button, { type: "button", variant: "outline", onClick: dismiss, children: "\u7A0D\u540E\u5904\u7406" }), _jsx(Button, { type: "button", onClick: manage, children: "\u7ACB\u5373\u5904\u7406" })] })), children: request !== null && (_jsxs("div", { className: css.request, children: [_jsx("span", { children: "\u8BBE\u5907\u5BC6\u94A5\u6307\u7EB9" }), _jsx("code", { children: request.candidateKeyFingerprint }), _jsxs("small", { children: ["\u8BF7\u6C42\u6709\u6548\u671F\u81F3 ", request.expiresAt] })] })) }), _jsx(Modal, { open: managing, onClose: () => { setManaging(false); }, title: "\u8BBE\u5907\u7BA1\u7406", closeLabel: "\u5173\u95ED\u8BBE\u5907\u7BA1\u7406", className: css.managementModal ?? '', contentClassName: css.managementContent ?? '', footer: _jsx(Button, { type: "button", variant: "outline", onClick: () => { setManaging(false); }, children: "\u5B8C\u6210" }), children: _jsx(AwikiDevices, { active: managing, pending: props.pending, refreshDeviceManagement: props.refreshDeviceManagement, startDeviceJoinVerification: props.startDeviceJoinVerification, approveDeviceJoin: props.approveDeviceJoin, rejectDeviceJoin: props.rejectDeviceJoin, revokeDevice: props.revokeDevice, prepareRootTransfer: props.prepareRootTransfer, confirmRootTransfer: props.confirmRootTransfer }) })] }));
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=AwikiDeviceJoinReminder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AwikiDeviceJoinReminder.js","sourceRoot":"","sources":["../../../src/client/AwikiDeviceJoinReminder.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Foreground-only ready-admin device management. SAS remains component-local. */
|
|
2
|
+
import type { AwikiAdminJoinProgress, AwikiDeviceJoinPhase, AwikiDeviceManagementSnapshot, AwikiRootTransferPreparation, AwikiRootTransferReceipt } from '@awiki/dsh-plugin/types';
|
|
3
|
+
import type { AwikiActionResult } from './controller.ts';
|
|
4
|
+
export interface AwikiDevicesProps {
|
|
5
|
+
readonly active: boolean;
|
|
6
|
+
readonly pending: boolean;
|
|
7
|
+
refreshDeviceManagement: () => Promise<AwikiActionResult<AwikiDeviceManagementSnapshot>>;
|
|
8
|
+
startDeviceJoinVerification: (request: {
|
|
9
|
+
readonly requestRef: string;
|
|
10
|
+
}) => Promise<AwikiActionResult<AwikiAdminJoinProgress>>;
|
|
11
|
+
approveDeviceJoin: (request: {
|
|
12
|
+
readonly requestRef: string;
|
|
13
|
+
readonly enteredSas: string;
|
|
14
|
+
readonly confirmation: string;
|
|
15
|
+
}) => Promise<AwikiActionResult<AwikiAdminJoinProgress>>;
|
|
16
|
+
rejectDeviceJoin: (request: {
|
|
17
|
+
readonly requestRef: string;
|
|
18
|
+
readonly reason: 'user_rejected';
|
|
19
|
+
}) => Promise<AwikiActionResult<AwikiAdminJoinProgress>>;
|
|
20
|
+
revokeDevice: (request: {
|
|
21
|
+
readonly deviceRef: string;
|
|
22
|
+
readonly confirmation: string;
|
|
23
|
+
}) => Promise<AwikiActionResult<AwikiDeviceManagementSnapshot>>;
|
|
24
|
+
prepareRootTransfer: (request: {
|
|
25
|
+
readonly deviceRef: string;
|
|
26
|
+
}) => Promise<AwikiActionResult<AwikiRootTransferPreparation>>;
|
|
27
|
+
confirmRootTransfer: (request: {
|
|
28
|
+
readonly transferRef: string;
|
|
29
|
+
}) => Promise<AwikiActionResult<AwikiRootTransferReceipt>>;
|
|
30
|
+
}
|
|
31
|
+
export declare const TERMINAL_DEVICE_JOIN_STATES: ReadonlySet<AwikiDeviceJoinPhase>;
|
|
32
|
+
export declare function AwikiDevices(props: AwikiDevicesProps): import("react").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=AwikiDevices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AwikiDevices.d.ts","sourceRoot":"","sources":["../../../src/client/AwikiDevices.tsx"],"names":[],"mappings":"AAAA,kFAAkF;AAIlF,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,wBAAwB,EACzB,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAGxD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,uBAAuB,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,CAAC,CAAA;IACxF,2BAA2B,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC,CAAA;IAC7H,iBAAiB,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC,CAAA;IAC/K,gBAAgB,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;KAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC,CAAA;IACpJ,YAAY,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,CAAC,CAAA;IACnJ,mBAAmB,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,CAAC,CAAA;IAC1H,mBAAmB,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,CAAC,CAAA;CACzH;AAYD,eAAO,MAAM,2BAA2B,EAAE,WAAW,CAAC,oBAAoB,CAKxE,CAAA;AAaF,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,+BAoLpD"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/** Foreground-only ready-admin device management. SAS remains component-local. */
|
|
3
|
+
import { useEffect, useId, useState } from 'react';
|
|
4
|
+
import { Button, IconRefreshOutline16 } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
5
|
+
import css from './AwikiDevices.module.css';
|
|
6
|
+
const requestStateLabels = {
|
|
7
|
+
pending: '待验证',
|
|
8
|
+
verifying: '验证中',
|
|
9
|
+
'sas-ready': '待核对',
|
|
10
|
+
authorized: '已授权',
|
|
11
|
+
cancelled: '已取消',
|
|
12
|
+
rejected: '已拒绝',
|
|
13
|
+
expired: '已过期',
|
|
14
|
+
};
|
|
15
|
+
export const TERMINAL_DEVICE_JOIN_STATES = new Set([
|
|
16
|
+
'authorized',
|
|
17
|
+
'cancelled',
|
|
18
|
+
'rejected',
|
|
19
|
+
'expired',
|
|
20
|
+
]);
|
|
21
|
+
function readableDate(value) {
|
|
22
|
+
const parsed = new Date(value);
|
|
23
|
+
return Number.isNaN(parsed.getTime())
|
|
24
|
+
? value
|
|
25
|
+
: parsed.toLocaleString('zh-CN', { dateStyle: 'medium', timeStyle: 'short', hour12: false });
|
|
26
|
+
}
|
|
27
|
+
function DeviceGlyph() {
|
|
28
|
+
return _jsxs("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", children: [_jsx("rect", { x: "6", y: "3.5", width: "12", height: "17", rx: "2.5" }), _jsx("path", { d: "M10 17.5h4" })] });
|
|
29
|
+
}
|
|
30
|
+
export function AwikiDevices(props) {
|
|
31
|
+
const sasHelpId = useId();
|
|
32
|
+
const sasInputId = useId();
|
|
33
|
+
const approvalHelpId = useId();
|
|
34
|
+
const approvalInputId = useId();
|
|
35
|
+
const revokeHelpId = useId();
|
|
36
|
+
const revokeInputId = useId();
|
|
37
|
+
const [snapshot, setSnapshot] = useState(null);
|
|
38
|
+
const [progress, setProgress] = useState(null);
|
|
39
|
+
const [enteredSas, setEnteredSas] = useState('');
|
|
40
|
+
const [approval, setApproval] = useState('');
|
|
41
|
+
const [revokeRef, setRevokeRef] = useState(null);
|
|
42
|
+
const [revokeConfirmation, setRevokeConfirmation] = useState('');
|
|
43
|
+
const [rootPreparation, setRootPreparation] = useState(null);
|
|
44
|
+
const [rootReceipt, setRootReceipt] = useState(null);
|
|
45
|
+
const [error, setError] = useState(null);
|
|
46
|
+
const pendingRequests = snapshot?.requests.filter(request => !TERMINAL_DEVICE_JOIN_STATES.has(request.state)) ?? [];
|
|
47
|
+
const joinedDevices = snapshot?.devices.filter(device => device.status === 'active') ?? [];
|
|
48
|
+
const refresh = async (advanceJoin = true) => {
|
|
49
|
+
const result = await props.refreshDeviceManagement();
|
|
50
|
+
if (!result.ok)
|
|
51
|
+
return setError(result.error);
|
|
52
|
+
setSnapshot(result.value);
|
|
53
|
+
if (advanceJoin && progress !== null && !['authorized', 'cancelled', 'rejected', 'expired'].includes(progress.phase)) {
|
|
54
|
+
const advanced = await props.startDeviceJoinVerification({ requestRef: progress.requestRef });
|
|
55
|
+
if (advanced.ok)
|
|
56
|
+
setProgress(advanced.value);
|
|
57
|
+
}
|
|
58
|
+
setError(null);
|
|
59
|
+
};
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
if (!props.active)
|
|
62
|
+
return;
|
|
63
|
+
let alive = true;
|
|
64
|
+
void props.refreshDeviceManagement().then((result) => {
|
|
65
|
+
if (!alive)
|
|
66
|
+
return;
|
|
67
|
+
if (result.ok)
|
|
68
|
+
setSnapshot(result.value);
|
|
69
|
+
else
|
|
70
|
+
setError(result.error);
|
|
71
|
+
});
|
|
72
|
+
const timer = setInterval(() => { if (alive)
|
|
73
|
+
void refresh(); }, 3_000);
|
|
74
|
+
return () => { alive = false; clearInterval(timer); };
|
|
75
|
+
}, [props.active, progress?.phase, progress?.requestRef]);
|
|
76
|
+
const start = async (requestRef) => {
|
|
77
|
+
const result = await props.startDeviceJoinVerification({ requestRef });
|
|
78
|
+
if (!result.ok)
|
|
79
|
+
return setError(result.error);
|
|
80
|
+
setProgress(result.value);
|
|
81
|
+
setError(null);
|
|
82
|
+
};
|
|
83
|
+
const approve = async () => {
|
|
84
|
+
if (progress === null)
|
|
85
|
+
return;
|
|
86
|
+
const result = await props.approveDeviceJoin({
|
|
87
|
+
requestRef: progress.requestRef,
|
|
88
|
+
enteredSas,
|
|
89
|
+
confirmation: approval,
|
|
90
|
+
});
|
|
91
|
+
if (!result.ok)
|
|
92
|
+
return setError(result.error);
|
|
93
|
+
setProgress(null);
|
|
94
|
+
setEnteredSas('');
|
|
95
|
+
setApproval('');
|
|
96
|
+
await refresh(false);
|
|
97
|
+
};
|
|
98
|
+
const reject = async (requestRef) => {
|
|
99
|
+
const result = await props.rejectDeviceJoin({ requestRef, reason: 'user_rejected' });
|
|
100
|
+
if (!result.ok)
|
|
101
|
+
return setError(result.error);
|
|
102
|
+
setProgress(null);
|
|
103
|
+
await refresh(false);
|
|
104
|
+
};
|
|
105
|
+
const revoke = async () => {
|
|
106
|
+
if (revokeRef === null)
|
|
107
|
+
return;
|
|
108
|
+
const result = await props.revokeDevice({ deviceRef: revokeRef, confirmation: revokeConfirmation });
|
|
109
|
+
if (!result.ok)
|
|
110
|
+
return setError(result.error);
|
|
111
|
+
setSnapshot(result.value);
|
|
112
|
+
setRevokeRef(null);
|
|
113
|
+
setRevokeConfirmation('');
|
|
114
|
+
setError(null);
|
|
115
|
+
};
|
|
116
|
+
const prepareRootTransfer = async (deviceRef) => {
|
|
117
|
+
const result = await props.prepareRootTransfer({ deviceRef });
|
|
118
|
+
if (!result.ok)
|
|
119
|
+
return setError(result.error);
|
|
120
|
+
setRootPreparation(result.value);
|
|
121
|
+
setRootReceipt(null);
|
|
122
|
+
setError(null);
|
|
123
|
+
};
|
|
124
|
+
const confirmRootTransfer = async () => {
|
|
125
|
+
if (rootPreparation === null)
|
|
126
|
+
return;
|
|
127
|
+
const result = await props.confirmRootTransfer({ transferRef: rootPreparation.transferRef });
|
|
128
|
+
if (!result.ok) {
|
|
129
|
+
setRootPreparation(null);
|
|
130
|
+
return setError(result.error);
|
|
131
|
+
}
|
|
132
|
+
setRootPreparation(null);
|
|
133
|
+
setRootReceipt(result.value);
|
|
134
|
+
setError(null);
|
|
135
|
+
await refresh();
|
|
136
|
+
};
|
|
137
|
+
return (_jsxs("section", { className: css.page, "aria-label": "AWiki \u8BBE\u5907\u7BA1\u7406", children: [_jsxs("header", { className: css.heading, children: [_jsxs("div", { children: [_jsx("h3", { children: "\u8BBE\u5907" }), _jsx("p", { children: "\u53EA\u6709\u5F53\u524D\u7BA1\u7406\u8BBE\u5907\u53EF\u4EE5\u6279\u51C6\u52A0\u5165\u6216\u7BA1\u7406\u5176\u4ED6\u8BBE\u5907\u3002" })] }), _jsx(Button, { className: css.button, type: "button", variant: "outline", icon: _jsx(IconRefreshOutline16, {}), disabled: props.pending, onClick: () => { void refresh(); }, children: "\u5237\u65B0" })] }), snapshot === null && _jsxs("div", { className: css.loading, role: "status", children: [_jsx("span", { "aria-hidden": "true" }), "\u6B63\u5728\u8BFB\u53D6\u8BBE\u5907\u72B6\u6001\u2026"] }), snapshot !== null && !snapshot.canManage && _jsx("div", { className: css.notice, children: "\u5F53\u524D\u8BBE\u5907\u4E0D\u662F\u53EF\u7528\u7684\u7BA1\u7406\u8BBE\u5907\uFF0C\u4E0D\u80FD\u6279\u51C6\u6216\u64A4\u9500\u5176\u4ED6\u8BBE\u5907\u3002" }), snapshot?.canManage && (_jsxs(_Fragment, { children: [_jsxs("section", { className: css.section, "aria-labelledby": "awiki-pending-devices", children: [_jsxs("div", { className: css.sectionHeading, children: [_jsx("h4", { id: "awiki-pending-devices", children: "\u5F85\u52A0\u5165" }), _jsx("span", { className: css.count, children: pendingRequests.length })] }), pendingRequests.length === 0 && _jsx("div", { className: css.empty, children: "\u6682\u65F6\u6CA1\u6709\u5F85\u5904\u7406\u7684\u8BBE\u5907\u8BF7\u6C42\u3002" }), pendingRequests.map(request => _jsxs("article", { className: css.card, children: [_jsxs("div", { className: css.cardHeader, children: [_jsxs("div", { className: css.cardIdentity, children: [_jsx("span", { className: css.deviceIcon, children: _jsx(DeviceGlyph, {}) }), _jsxs("div", { children: [_jsx("strong", { children: "\u65B0\u8BBE\u5907\u8BF7\u6C42" }), _jsx("code", { title: request.candidateKeyFingerprint, children: request.candidateKeyFingerprint })] })] }), _jsx("span", { className: css.badge, "data-tone": request.state, children: requestStateLabels[request.state] ?? request.state })] }), _jsxs("p", { className: css.metadata, children: ["\u6709\u6548\u671F\u81F3 ", readableDate(request.expiresAt)] }), _jsxs("div", { className: css.actions, children: [_jsx(Button, { className: css.button, type: "button", variant: "primary", disabled: props.pending || (!request.canStartVerification && !request.claimedByCurrentDevice), onClick: () => { void start(request.requestRef); }, children: request.claimedByCurrentDevice ? '继续验证' : '开始验证' }), _jsx(Button, { className: `${css.button} ${css.dangerButton}`, type: "button", variant: "outline", disabled: props.pending, onClick: () => { void reject(request.requestRef); }, children: "\u62D2\u7EDD" })] })] }, request.requestRef))] }), progress?.phase === 'sas-ready' && _jsxs("section", { className: `${css.card} ${css.verificationCard}`, "aria-labelledby": "awiki-device-sas-title", children: [_jsxs("div", { className: css.verificationHeading, children: [_jsx("span", { children: "\u7B2C 2 \u6B65" }), _jsx("h4", { id: "awiki-device-sas-title", children: "\u6838\u5BF9\u5B89\u5168\u7801" })] }), _jsx("strong", { className: css.sas, "aria-label": `安全码 ${progress.sas ?? ''}`, children: progress.sas }), _jsx("p", { className: css.verificationIntro, children: "\u786E\u8BA4\u624B\u673A\u663E\u793A\u76F8\u540C\u53F7\u7801\u540E\uFF0C\u518D\u5B8C\u6210\u4E0B\u9762\u4E24\u9879\u786E\u8BA4\u3002" }), _jsxs("div", { className: css.fields, children: [_jsxs("div", { className: css.field, children: [_jsx("label", { htmlFor: sasInputId, children: "\u624B\u673A\u5B89\u5168\u7801" }), _jsx("input", { id: sasInputId, className: `${css.input} ${css.numericInput}`, "aria-describedby": sasHelpId, value: enteredSas, inputMode: "numeric", autoComplete: "one-time-code", maxLength: 6, placeholder: "\u8BF7\u8F93\u5165 6 \u4F4D\u6570\u5B57", onChange: event => { setEnteredSas(event.target.value.replace(/\D/gu, '').slice(0, 6)); } }), _jsx("small", { id: sasHelpId, children: "\u586B\u5199\u624B\u673A\u4E0A\u663E\u793A\u7684 6 \u4F4D\u6570\u5B57\u3002" })] }), _jsxs("div", { className: css.field, children: [_jsx("label", { htmlFor: approvalInputId, children: "\u6279\u51C6\u786E\u8BA4\u8BCD" }), _jsx("input", { id: approvalInputId, className: css.input, "aria-describedby": approvalHelpId, value: approval, autoComplete: "off", spellCheck: false, onChange: event => { setApproval(event.target.value); }, placeholder: "\u8F93\u5165 APPROVE" }), _jsx("small", { id: approvalHelpId, children: "\u8F93\u5165 APPROVE\uFF0C\u786E\u8BA4\u4F60\u540C\u610F\u52A0\u5165\u6B64\u8BBE\u5907\u3002" })] })] }), _jsx(Button, { className: `${css.button} ${css.fullButton}`, type: "button", variant: "primary", disabled: props.pending || enteredSas.length !== 6 || approval !== 'APPROVE', onClick: () => { void approve(); }, children: "\u6279\u51C6\u4E3A member" })] }), rootPreparation !== null && _jsxs("section", { className: `${css.card} ${css.verificationCard}`, children: [_jsx("h4", { children: "\u6388\u4E88\u8BBE\u5907\u7BA1\u7406\u6743" }), _jsxs("p", { className: css.metadata, children: ["\u7CFB\u7EDF\u5C06\u9A8C\u8BC1\u672C\u673A\u7528\u6237\u8EAB\u4EFD\uFF0C\u518D\u5411\u76EE\u6807 member \u53D1\u9001\u7BA1\u7406\u80FD\u529B\u3002\u6709\u6548\u671F\u81F3 ", readableDate(rootPreparation.expiresAt), "\u3002"] }), _jsx(Button, { className: css.button, type: "button", variant: "primary", disabled: props.pending, onClick: () => { void confirmRootTransfer(); }, children: "\u4F7F\u7528\u7CFB\u7EDF\u8BA4\u8BC1\u5E76\u53D1\u9001" })] }), rootReceipt !== null && _jsxs("div", { className: css.successNotice, role: "status", children: ["\u7BA1\u7406\u80FD\u529B\u5DF2\u53D1\u9001\uFF1B\u76EE\u6807\u8BBE\u5907\u5B8C\u6210\u63A5\u6536\u540E\u4F1A\u663E\u793A\u4E3A admin\u3002\u63A5\u53D7\u65F6\u95F4\uFF1A", readableDate(rootReceipt.acceptedAt)] }), !snapshot.rootTransferSupported && _jsxs("div", { className: css.notice, children: [_jsx("strong", { children: "\u7BA1\u7406\u6743\u8F6C\u79FB\u6682\u4E0D\u53EF\u7528" }), _jsx("span", { children: "\u8BE5\u529F\u80FD\u76EE\u524D\u53EA\u80FD\u5728\u914D\u5907 Intel \u82AF\u7247\u7684 Mac \u4E0A\u901A\u8FC7\u7CFB\u7EDF\u8EAB\u4EFD\u9A8C\u8BC1\u4F7F\u7528\u3002" })] }), _jsxs("section", { className: css.section, "aria-labelledby": "awiki-joined-devices", children: [_jsxs("div", { className: css.sectionHeading, children: [_jsx("h4", { id: "awiki-joined-devices", children: "\u5DF2\u52A0\u5165\u8BBE\u5907" }), _jsx("span", { className: css.count, children: joinedDevices.length })] }), joinedDevices.length === 0 && _jsx("div", { className: css.empty, children: "\u6682\u65E0\u5DF2\u52A0\u5165\u8BBE\u5907\u3002" }), _jsx("div", { className: css.deviceList, children: joinedDevices.map(device => _jsxs("article", { className: css.deviceCard, children: [_jsxs("div", { className: css.deviceSummary, children: [_jsx("span", { className: css.deviceIcon, children: _jsx(DeviceGlyph, {}) }), _jsxs("div", { children: [_jsx("strong", { children: device.isCurrent ? '当前设备' : '其他设备' }), _jsx("span", { children: device.role === 'admin' ? '管理设备' : '成员设备' }), _jsxs("code", { className: css.deviceIdentifier, title: "\u7528\u4E8E\u533A\u5206\u8BBE\u5907\uFF0C\u4E0D\u5305\u542B\u5B8C\u6574\u8BBE\u5907 ID", children: ["\u6807\u8BC6 ", device.displayId] }), _jsxs("span", { className: css.deviceJoinedAt, children: ["\u52A0\u5165\u65F6\u95F4\uFF1A", device.joinedAt === undefined ? '暂无记录' : readableDate(device.joinedAt)] })] }), _jsxs("div", { className: css.deviceActions, children: [device.managementReady && _jsx("span", { className: css.badge, "data-tone": "admin", children: "\u7BA1\u7406\u5C31\u7EEA" }), !device.isCurrent && revokeRef !== device.deviceRef && _jsx(Button, { className: `${css.button} ${css.dangerButton} ${css.compactDangerButton}`, type: "button", variant: "ghost", disabled: props.pending, onClick: () => { setRevokeRef(device.deviceRef); setRevokeConfirmation(''); }, children: "\u64A4\u9500" })] })] }), snapshot.rootTransferSupported && !device.isCurrent && device.status === 'active' && device.role === 'member' && !device.managementReady
|
|
138
|
+
&& _jsx(Button, { className: css.button, type: "button", variant: "outline", disabled: props.pending, onClick: () => { void prepareRootTransfer(device.deviceRef); }, children: "\u6388\u4E88\u7BA1\u7406\u6743" }), !device.isCurrent && revokeRef === device.deviceRef
|
|
139
|
+
&& _jsxs("div", { className: css.revokePanel, children: [_jsxs("div", { className: css.field, children: [_jsx("label", { htmlFor: revokeInputId, children: "\u64A4\u9500\u786E\u8BA4\u8BCD" }), _jsx("input", { id: revokeInputId, className: css.input, "aria-describedby": revokeHelpId, value: revokeConfirmation, autoComplete: "off", spellCheck: false, onChange: event => { setRevokeConfirmation(event.target.value); }, placeholder: "\u8F93\u5165 REVOKE" }), _jsx("small", { id: revokeHelpId, children: "\u64A4\u9500\u540E\uFF0C\u8FD9\u53F0\u8BBE\u5907\u5C06\u65E0\u6CD5\u7EE7\u7EED\u8BBF\u95EE\u5F53\u524D\u8EAB\u4EFD\u3002" })] }), _jsxs("div", { className: css.actions, children: [_jsx(Button, { className: `${css.button} ${css.dangerButton}`, type: "button", variant: "outline", disabled: props.pending || revokeConfirmation !== 'REVOKE', onClick: () => { void revoke(); }, children: "\u786E\u8BA4\u64A4\u9500" }), _jsx(Button, { className: css.button, type: "button", variant: "ghost", disabled: props.pending, onClick: () => { setRevokeRef(null); setRevokeConfirmation(''); }, children: "\u53D6\u6D88" })] })] })] }, device.deviceRef)) })] })] })), error !== null && _jsxs("div", { className: css.error, role: "alert", children: [_jsx("strong", { children: "\u64CD\u4F5C\u672A\u5B8C\u6210" }), _jsx("span", { children: error })] })] }));
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=AwikiDevices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AwikiDevices.js","sourceRoot":"","sources":["../../../src/client/AwikiDevices.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AwikiGroupDetails.d.ts","sourceRoot":"","sources":["../../../src/client/AwikiGroupDetails.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACxG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAE3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AA4BnD,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,sBAAsB,EAC9B,QAAQ,EAAE,aAAa,GACtB,OAAO,CAMT;
|
|
1
|
+
{"version":3,"file":"AwikiGroupDetails.d.ts","sourceRoot":"","sources":["../../../src/client/AwikiGroupDetails.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACxG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAE3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AA4BnD,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,sBAAsB,EAC9B,QAAQ,EAAE,aAAa,GACtB,OAAO,CAMT;AAqBD,KAAK,YAAY,GAAG,IAAI,CAAC,iBAAiB,EACtC,sBAAsB,GACtB,sBAAsB,GACtB,wBAAwB,GACxB,2BAA2B,GAC3B,oBAAoB,GACpB,WAAW,CACd,CAAA;AAcD,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG;IACtD,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAA;IACzC,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAChG,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAA;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAA;IACnD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CAC/B,+BAqOA"}
|
|
@@ -33,16 +33,19 @@ export function canRemoveGroupMember(actorRole, member, identity) {
|
|
|
33
33
|
&& actorRank > roleRank(member.role)
|
|
34
34
|
&& (member.did !== undefined || member.handle !== undefined);
|
|
35
35
|
}
|
|
36
|
-
function
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return
|
|
36
|
+
function nonEmpty(value) {
|
|
37
|
+
const normalized = value?.trim();
|
|
38
|
+
return normalized === undefined || normalized === '' ? undefined : normalized;
|
|
39
|
+
}
|
|
40
|
+
function memberPresentation(member, identity) {
|
|
41
|
+
const self = memberIsSelf(member, identity);
|
|
42
|
+
const displayName = nonEmpty(member.displayName) ?? (self ? nonEmpty(identity.displayName) : undefined);
|
|
43
|
+
const handle = nonEmpty(member.handle) ?? (self ? nonEmpty(identity.handle) : undefined);
|
|
44
|
+
const did = member.did ?? (self ? identity.did : undefined);
|
|
45
|
+
return {
|
|
46
|
+
label: displayName ?? handle ?? (did === undefined ? member.peerPersonaId ?? member.membershipId ?? '未知成员' : shortenedDid(did)),
|
|
47
|
+
detail: handle ?? did ?? '缺少稳定 DID',
|
|
48
|
+
};
|
|
46
49
|
}
|
|
47
50
|
/** Authoritative group snapshot and role-aware member management panel. */
|
|
48
51
|
export function AwikiGroupDetails(props) {
|
|
@@ -133,12 +136,12 @@ export function AwikiGroupDetails(props) {
|
|
|
133
136
|
return (_jsxs("aside", { className: css.groupDetails, "aria-label": "\u7FA4\u804A\u8BE6\u60C5", children: [_jsxs("header", { className: css.groupDetailsHeader, children: [_jsxs("div", { children: [_jsx("strong", { children: "\u7FA4\u804A\u8BE6\u60C5" }), _jsx("small", { children: "\u6210\u5458\u4E0E\u6743\u9650\u4EE5\u670D\u52A1\u5668\u6700\u65B0\u72B6\u6001\u4E3A\u51C6" })] }), _jsx(Tooltip, { label: "\u5173\u95ED\u7FA4\u804A\u8BE6\u60C5", side: "right", children: _jsx("button", { type: "button", "aria-label": "\u5173\u95ED\u7FA4\u804A\u8BE6\u60C5", onClick: props.onClose, children: _jsx(IconCloseOutline16, { size: 14 }) }) })] }), _jsxs("section", { className: css.groupSummary, children: [_jsx("strong", { children: group?.title ?? props.fallback.title }), _jsx("code", { title: props.fallback.groupDid, children: props.fallback.groupDid }), group?.description !== undefined && group.description !== '' && _jsx("p", { children: group.description }), available && (_jsxs("dl", { children: [_jsxs("div", { children: [_jsx("dt", { children: "\u6211\u7684\u89D2\u8272" }), _jsx("dd", { children: roleLabel(group.myRole) })] }), _jsxs("div", { children: [_jsx("dt", { children: "\u6210\u5458" }), _jsx("dd", { children: group.memberCount ?? props.members.length })] })] }))] }), !available && (_jsx(AwikiGroupAccessNotice, { access: props.access, pending: props.pending, compact: true, onRetry: () => { void refreshAccess(); }, onRejoin: () => { void rejoin(); }, ...props.onRemove === undefined ? {} : { onRemove: props.onRemove } })), available && (_jsxs(_Fragment, { children: [roleRank(group.myRole) >= 2 && (_jsxs("form", { className: css.groupInvite, onSubmit: (event) => { event.preventDefault(); void add(); }, children: [_jsx("label", { htmlFor: "awiki-group-invite", children: "\u9080\u8BF7\u6210\u5458" }), _jsxs("div", { children: [_jsx("input", { id: "awiki-group-invite", value: invite, disabled: props.pending || inviteStatus.state === 'pending', placeholder: "Handle \u6216 DID", onChange: (event) => { setInvite(event.target.value); setInviteStatus({ state: 'idle' }); } }), _jsx("button", { type: "submit", "aria-label": "\u9080\u8BF7\u7FA4\u6210\u5458", "data-busy": inviteStatus.state === 'pending' ? '' : undefined, disabled: props.pending || inviteStatus.state === 'pending' || invite.trim() === '', children: inviteStatus.state === 'pending' ? _jsx(IconLoadingOutline16, { size: 14 }) : _jsx(IconPlusOutline16, { size: 14 }) })] }), inviteStatus.state !== 'idle' && (_jsxs("p", { className: css.groupInviteStatus, "data-state": inviteStatus.state, role: inviteStatus.state === 'error' ? 'alert' : 'status', "aria-live": "polite", children: [inviteStatus.state === 'pending' && `正在邀请 ${inviteStatus.member}…`, inviteStatus.state === 'success' && `已邀请 ${inviteStatus.member}`, inviteStatus.state === 'error' && inviteStatus.message] }))] })), _jsxs("section", { className: css.groupMemberSection, children: [_jsxs("div", { className: css.groupMemberHeading, children: [_jsx("strong", { children: "\u7FA4\u6210\u5458" }), _jsx(Tooltip, { label: memberRefreshStatus.state === 'pending' ? '正在刷新群成员' : '刷新群成员', side: "right", children: _jsx("button", { type: "button", "aria-label": memberRefreshStatus.state === 'pending' ? '正在刷新群成员' : '刷新群成员', "data-busy": memberRefreshStatus.state === 'pending' ? '' : undefined, disabled: props.pending || memberRefreshStatus.state === 'pending', onClick: () => { void refreshMembers(); }, children: memberRefreshStatus.state === 'pending'
|
|
134
137
|
? _jsx(IconLoadingOutline16, { size: 14 })
|
|
135
138
|
: _jsx(IconRefreshOutline16, { size: 14 }) }) })] }), memberRefreshStatus.state !== 'idle' && (_jsxs("p", { className: css.groupMemberRefreshStatus, "data-state": memberRefreshStatus.state, role: memberRefreshStatus.state === 'error' ? 'alert' : 'status', "aria-live": "polite", children: [memberRefreshStatus.state === 'pending' && '正在刷新群成员…', memberRefreshStatus.state === 'success' && '群成员已更新', memberRefreshStatus.state === 'error' && `刷新失败:${memberRefreshStatus.message}`] })), _jsxs("div", { className: css.groupMemberList, children: [props.members.map((member, index) => {
|
|
136
|
-
const label =
|
|
139
|
+
const { label, detail } = memberPresentation(member, props.identity);
|
|
137
140
|
const key = member.membershipId ?? member.did ?? member.handle ?? `${label}-${index}`;
|
|
138
141
|
const removable = canRemoveGroupMember(group.myRole, member, props.identity);
|
|
139
|
-
return (_jsxs("div", { className: css.groupMemberRow, children: [_jsx("span", { className: css.groupMemberAvatar, children: label.slice(0, 1).toLocaleUpperCase() }), _jsxs("span", { className: css.groupMemberIdentity, children: [_jsxs("strong", { children: [label, memberIsSelf(member, props.identity) && _jsx("small", { children: "\u6211" })] }), _jsx("small", { children:
|
|
142
|
+
return (_jsxs("div", { className: css.groupMemberRow, children: [_jsx("span", { className: css.groupMemberAvatar, children: label.slice(0, 1).toLocaleUpperCase() }), _jsxs("span", { className: css.groupMemberIdentity, children: [_jsxs("strong", { children: [label, memberIsSelf(member, props.identity) && _jsx("small", { children: "\u6211" })] }), _jsx("small", { children: detail })] }), _jsx("span", { className: css.groupMemberRole, children: roleLabel(member.role) }), removable && (_jsx(Tooltip, { label: `移除 ${label}`, side: "right", children: _jsx("button", { type: "button", className: css.groupMemberRemove, "aria-label": `移除群成员 ${label}`, disabled: props.pending, onClick: () => { setRemoveCandidate(member); }, children: _jsx(IconTrashOutline16, { size: 14 }) }) }))] }, key));
|
|
140
143
|
}), props.members.length === 0 && _jsx("p", { className: css.empty, children: "\u6682\u65E0\u53EF\u663E\u793A\u7684\u6210\u5458\u3002" })] }), props.hasMore && _jsx("button", { type: "button", className: css.more, disabled: props.pending, onClick: () => { void props.loadMoreGroupMembers(); }, children: "\u52A0\u8F7D\u66F4\u591A\u6210\u5458" })] }), _jsxs("footer", { className: css.groupDetailsFooter, children: [_jsx("button", { type: "button", className: css.dangerText, disabled: props.pending || roleRank(group.myRole) === 3, onClick: () => { setLeaveOpen(true); }, children: "\u9000\u51FA\u7FA4\u804A" }), roleRank(group.myRole) === 3 && _jsx("small", { children: "\u7FA4\u4E3B\u4E0D\u80FD\u76F4\u63A5\u9000\u51FA\u7FA4\u804A" })] })] })), error !== null && _jsx("div", { className: css.groupDetailsError, role: "alert", children: error }), _jsx(Modal, { open: removeCandidate !== null, onClose: () => { if (!props.pending)
|
|
141
|
-
setRemoveCandidate(null); }, title: "\u79FB\u9664\u7FA4\u6210\u5458", closeLabel: "\u53D6\u6D88", className: css.compactModal ?? '', contentClassName: css.compactModalContent ?? '', description: removeCandidate === null ? '' : `确认将 ${
|
|
144
|
+
setRemoveCandidate(null); }, title: "\u79FB\u9664\u7FA4\u6210\u5458", closeLabel: "\u53D6\u6D88", className: css.compactModal ?? '', contentClassName: css.compactModalContent ?? '', description: removeCandidate === null ? '' : `确认将 ${memberPresentation(removeCandidate, props.identity).label} 移出当前群聊?`, footer: _jsxs(_Fragment, { children: [_jsx(Button, { type: "button", variant: "outline", disabled: props.pending, onClick: () => { setRemoveCandidate(null); }, children: "\u53D6\u6D88" }), _jsx(Button, { type: "button", variant: "outline", className: css.logoutConfirm, disabled: props.pending, onClick: () => { void remove(); }, children: "\u786E\u8BA4\u79FB\u9664" })] }) }), _jsx(Modal, { open: leaveOpen, onClose: () => { if (!props.pending)
|
|
142
145
|
setLeaveOpen(false); }, title: "\u9000\u51FA\u7FA4\u804A", closeLabel: "\u53D6\u6D88", className: css.compactModal ?? '', contentClassName: css.compactModalContent ?? '', description: "\u9000\u51FA\u540E\uFF0C\u8BE5\u7FA4\u804A\u4F1A\u4ECE\u5F53\u524D\u4F1A\u8BDD\u5217\u8868\u4E2D\u79FB\u9664\u3002\u91CD\u65B0\u52A0\u5165\u9700\u8981\u518D\u6B21\u83B7\u5F97\u7FA4\u804A\u5165\u53E3\u3002", footer: _jsxs(_Fragment, { children: [_jsx(Button, { type: "button", variant: "outline", disabled: props.pending, onClick: () => { setLeaveOpen(false); }, children: "\u53D6\u6D88" }), _jsx(Button, { type: "button", variant: "outline", className: css.logoutConfirm, disabled: props.pending, onClick: () => { void leave(); }, children: "\u786E\u8BA4\u9000\u51FA" })] }) })] }));
|
|
143
146
|
}
|
|
144
147
|
//# sourceMappingURL=AwikiGroupDetails.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AwikiGroupDetails.js","sourceRoot":"","sources":["../../../src/client/AwikiGroupDetails.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AwikiGroupDetails.js","sourceRoot":"","sources":["../../../src/client/AwikiGroupDetails.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
import type {
|
|
3
|
-
import type { AwikiActionResult } from './controller.ts';
|
|
1
|
+
import type { AwikiDeviceJoinProgress, AwikiIdentity, AwikiIdentityAccessInspection, AwikiIdentityAccessInspectionRequest, AwikiIdentityAccessResult, AwikiIdentityAccessState, AwikiRecoveryOtpRequest, AwikiRecoveryOtpResult, AwikiRecoveryProgress, AwikiRegistrationOtpRequest, AwikiRegistrationOtpResult, AwikiRegistrationRequest, AwikiSession } from '@awiki/dsh-plugin/types';
|
|
2
|
+
import type { AwikiActionResult, AwikiViewSessionStatus } from './controller.ts';
|
|
4
3
|
import { type AwikiRecoveryActions } from './AwikiRecoveryForm.tsx';
|
|
5
4
|
export interface AwikiIdentityAccessActions extends AwikiRecoveryActions {
|
|
6
5
|
inspectIdentityAccess: (request: AwikiIdentityAccessInspectionRequest) => Promise<AwikiActionResult<AwikiIdentityAccessInspection>>;
|
|
7
6
|
sendRegistrationOtp: (request: AwikiRegistrationOtpRequest) => Promise<AwikiActionResult<AwikiRegistrationOtpResult>>;
|
|
8
|
-
registerIdentity: (request: AwikiRegistrationRequest) => Promise<AwikiActionResult<
|
|
7
|
+
registerIdentity: (request: AwikiRegistrationRequest) => Promise<AwikiActionResult<AwikiIdentityAccessResult>>;
|
|
8
|
+
beginDeviceJoin: () => Promise<AwikiActionResult<AwikiDeviceJoinProgress>>;
|
|
9
|
+
getDeviceJoinStatus: () => Promise<AwikiActionResult<AwikiDeviceJoinProgress | null>>;
|
|
10
|
+
cancelDeviceJoin: () => Promise<AwikiActionResult>;
|
|
11
|
+
beginRecoveryFromDeviceJoin: (request: AwikiRecoveryOtpRequest) => Promise<AwikiActionResult<AwikiRecoveryOtpResult | null>>;
|
|
12
|
+
retireDeviceIdentityForRejoin: () => Promise<AwikiActionResult>;
|
|
9
13
|
login: () => Promise<AwikiActionResult<AwikiSession>>;
|
|
10
14
|
clearLocalIdentity: () => Promise<AwikiActionResult>;
|
|
11
15
|
}
|
|
12
16
|
export interface AwikiIdentityAccessProps extends AwikiIdentityAccessActions {
|
|
13
|
-
readonly
|
|
17
|
+
readonly access?: AwikiIdentityAccessState | null;
|
|
18
|
+
readonly accessLoading?: boolean;
|
|
19
|
+
readonly accessError?: string | null;
|
|
20
|
+
refreshIdentityAccess?: () => Promise<AwikiActionResult>;
|
|
21
|
+
selectRecovery?: (operationId: string) => Promise<AwikiActionResult>;
|
|
22
|
+
leaveRecovery?: () => void;
|
|
23
|
+
readonly sessionStatus: AwikiViewSessionStatus;
|
|
14
24
|
readonly identity?: AwikiIdentity | null;
|
|
15
25
|
readonly recoveryOperationId: string | null;
|
|
16
26
|
readonly recoveryProgress: AwikiRecoveryProgress | null;
|
|
27
|
+
readonly recoveryOtpRetryAt?: string | null | undefined;
|
|
17
28
|
readonly pending: boolean;
|
|
18
|
-
readonly profileName?: string | null;
|
|
19
|
-
readonly legacySharedStateDetected?: boolean;
|
|
20
29
|
readonly autoFocusHandle?: boolean;
|
|
21
30
|
}
|
|
22
|
-
/** Keep phone and OTP values
|
|
31
|
+
/** Keep phone and OTP values in private browser memory for the duration of this explicit user flow. */
|
|
23
32
|
export declare function AwikiIdentityAccess(props: AwikiIdentityAccessProps): import("react").JSX.Element;
|
|
24
33
|
//# sourceMappingURL=AwikiIdentityAccess.d.ts.map
|