@awiki/dsh-plugin 0.3.6 → 0.3.7-dsh-test.20260831.2
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 +58 -60
- package/README.zh.md +45 -51
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/cordis.patch.yml +7 -8
- package/lib/client.js +1389 -1152
- package/lib/client.js.map +1 -1
- package/lib/index.js +1084 -792
- package/lib/provider.js +70 -17
- package/lib/{sdk-adapter--trNlr-T.mjs → sdk-adapter-FGaOi8It.mjs} +168 -84
- package/lib/typert.host.js +406 -178
- package/lib/typert.remote-client.d.ts +19 -7
- package/lib/typert.remote-client.d.ts.map +1 -1
- package/lib/typert.remote-client.js +406 -178
- package/lib/types/client/AwikiDevices.d.ts +28 -0
- package/lib/types/client/AwikiDevices.d.ts.map +1 -0
- package/lib/types/client/AwikiDevices.js +85 -0
- package/lib/types/client/AwikiDevices.js.map +1 -0
- package/lib/types/client/AwikiIdentityAccess.d.ts +6 -5
- package/lib/types/client/AwikiIdentityAccess.d.ts.map +1 -1
- package/lib/types/client/AwikiIdentityAccess.js +88 -27
- package/lib/types/client/AwikiIdentityAccess.js.map +1 -1
- 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 +6 -130
- package/lib/types/client/AwikiMail.js.map +1 -1
- package/lib/types/client/AwikiOverlay.d.ts.map +1 -1
- package/lib/types/client/AwikiOverlay.js +5 -12
- package/lib/types/client/AwikiOverlay.js.map +1 -1
- package/lib/types/client/AwikiRecoveryForm.d.ts.map +1 -1
- package/lib/types/client/AwikiRecoveryForm.js +1 -1
- package/lib/types/client/AwikiRecoveryForm.js.map +1 -1
- package/lib/types/client/controller.d.ts +20 -34
- package/lib/types/client/controller.d.ts.map +1 -1
- package/lib/types/client/controller.js +56 -203
- package/lib/types/client/controller.js.map +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/index.js +8 -4
- package/lib/types/client/index.js.map +1 -1
- package/lib/types/client/settings-locales.js +8 -8
- package/lib/types/client/settings-locales.js.map +1 -1
- package/lib/types/client/slots.d.ts +10 -10
- package/lib/types/client/slots.d.ts.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/index.d.ts +59 -30
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +804 -462
- package/lib/types/index.js.map +1 -1
- 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 +11 -127
- package/lib/types/listener.js.map +1 -1
- package/lib/types/mail.d.ts +2 -28
- package/lib/types/mail.d.ts.map +1 -1
- package/lib/types/mail.js +2 -78
- package/lib/types/mail.js.map +1 -1
- package/lib/types/provider-api.d.ts +102 -38
- 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 +73 -16
- package/lib/types/provider.js.map +1 -1
- package/lib/types/realtime-supervisor.d.ts +54 -0
- package/lib/types/realtime-supervisor.d.ts.map +1 -0
- package/lib/types/realtime-supervisor.js +242 -0
- package/lib/types/realtime-supervisor.js.map +1 -0
- package/lib/types/sdk-adapter.d.ts +32 -7
- package/lib/types/sdk-adapter.d.ts.map +1 -1
- package/lib/types/sdk-adapter.js +163 -104
- package/lib/types/sdk-adapter.js.map +1 -1
- package/lib/types/sent-mail-store.d.ts +2 -7
- package/lib/types/sent-mail-store.d.ts.map +1 -1
- package/lib/types/sent-mail-store.js +23 -125
- package/lib/types/sent-mail-store.js.map +1 -1
- 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 +77 -66
- package/lib/types/types.d.ts.map +1 -1
- package/lib/types/types.js.map +1 -1
- package/package.json +20 -15
- 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 -186
- package/lib/types/client/mail-attachment.js.map +0 -1
- package/lib/types/profile-state.d.ts +0 -17
- package/lib/types/profile-state.d.ts.map +0 -1
- package/lib/types/profile-state.js +0 -58
- package/lib/types/profile-state.js.map +0 -1
package/lib/client.js
CHANGED
|
@@ -589,7 +589,7 @@ window.__ModuleLoader__.load({
|
|
|
589
589
|
const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;
|
|
590
590
|
const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/;
|
|
591
591
|
const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;
|
|
592
|
-
const base64
|
|
592
|
+
const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;
|
|
593
593
|
const base64url = /^[A-Za-z0-9_-]*$/;
|
|
594
594
|
const httpProtocol = /^https?$/;
|
|
595
595
|
const e164 = /^\+[1-9]\d{6,14}$/;
|
|
@@ -1326,7 +1326,7 @@ window.__ModuleLoader__.load({
|
|
|
1326
1326
|
}
|
|
1327
1327
|
}
|
|
1328
1328
|
const $ZodBase64 = /*@__PURE__*/ $constructor("$ZodBase64", (inst, def) => {
|
|
1329
|
-
def.pattern ?? (def.pattern = base64
|
|
1329
|
+
def.pattern ?? (def.pattern = base64);
|
|
1330
1330
|
$ZodStringFormat.init(inst, def);
|
|
1331
1331
|
inst._zod.bag.contentEncoding = "base64";
|
|
1332
1332
|
inst._zod.check = (payload) => {
|
|
@@ -4112,7 +4112,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4112
4112
|
literal("forbidden"),
|
|
4113
4113
|
literal("identity-recovery-required"),
|
|
4114
4114
|
literal("conflict"),
|
|
4115
|
-
literal("state-in-use"),
|
|
4116
4115
|
literal("rate-limited"),
|
|
4117
4116
|
literal("group-membership-required"),
|
|
4118
4117
|
literal("group-identity-stale"),
|
|
@@ -4147,14 +4146,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4147
4146
|
"failureCode": string().readonly().optional(),
|
|
4148
4147
|
"retryable": boolean().readonly(),
|
|
4149
4148
|
"localOrdinaryDataWillMigrate": boolean().readonly(),
|
|
4150
|
-
"otherDevicesMustRejoin": boolean().readonly()
|
|
4151
|
-
"unsupportedE2eeGroupCount": number().readonly(),
|
|
4152
|
-
"unsupportedDidOnlyGroupCount": number().readonly()
|
|
4149
|
+
"otherDevicesMustRejoin": boolean().readonly()
|
|
4153
4150
|
}).readonly()
|
|
4154
4151
|
})]);
|
|
4155
4152
|
const _awiki_dsh_plugin_awiki_addGroupMember_parameter_0$schema = object({
|
|
4156
4153
|
"member": string().readonly(),
|
|
4157
|
-
"role": union([literal("
|
|
4154
|
+
"role": union([literal("member"), literal("admin")]).readonly().optional(),
|
|
4158
4155
|
"groupDid": intersection(string(), unknown()).readonly()
|
|
4159
4156
|
});
|
|
4160
4157
|
const _awiki_dsh_plugin_awiki_addGroupMember_result$schema = union([object({
|
|
@@ -4172,7 +4169,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4172
4169
|
literal("forbidden"),
|
|
4173
4170
|
literal("identity-recovery-required"),
|
|
4174
4171
|
literal("conflict"),
|
|
4175
|
-
literal("state-in-use"),
|
|
4176
4172
|
literal("rate-limited"),
|
|
4177
4173
|
literal("group-membership-required"),
|
|
4178
4174
|
literal("group-identity-stale"),
|
|
@@ -4195,6 +4191,139 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4195
4191
|
"handle": intersection(string(), unknown()).readonly().optional()
|
|
4196
4192
|
}).readonly()
|
|
4197
4193
|
})]);
|
|
4194
|
+
const _awiki_dsh_plugin_awiki_approveDeviceJoin_parameter_0$schema = object({
|
|
4195
|
+
"enteredSas": string().readonly(),
|
|
4196
|
+
"confirmation": string().readonly(),
|
|
4197
|
+
"requestRef": string().readonly()
|
|
4198
|
+
});
|
|
4199
|
+
const _awiki_dsh_plugin_awiki_approveDeviceJoin_result$schema = union([object({
|
|
4200
|
+
"ok": literal(false).readonly(),
|
|
4201
|
+
"error": object({
|
|
4202
|
+
"code": union([
|
|
4203
|
+
literal("not-registered"),
|
|
4204
|
+
literal("signed-out"),
|
|
4205
|
+
literal("already-registered"),
|
|
4206
|
+
literal("invalid-request"),
|
|
4207
|
+
literal("invalid-otp"),
|
|
4208
|
+
literal("challenge-expired"),
|
|
4209
|
+
literal("handle-unavailable"),
|
|
4210
|
+
literal("not-found"),
|
|
4211
|
+
literal("forbidden"),
|
|
4212
|
+
literal("identity-recovery-required"),
|
|
4213
|
+
literal("conflict"),
|
|
4214
|
+
literal("rate-limited"),
|
|
4215
|
+
literal("group-membership-required"),
|
|
4216
|
+
literal("group-identity-stale"),
|
|
4217
|
+
literal("attachment-too-large"),
|
|
4218
|
+
literal("summary-unavailable"),
|
|
4219
|
+
literal("summary-timeout"),
|
|
4220
|
+
literal("summary-cancelled"),
|
|
4221
|
+
literal("summary-invalid-output"),
|
|
4222
|
+
literal("summary-failed"),
|
|
4223
|
+
literal("delivery-unknown"),
|
|
4224
|
+
literal("network"),
|
|
4225
|
+
literal("remote")
|
|
4226
|
+
]).readonly(),
|
|
4227
|
+
"message": string().readonly()
|
|
4228
|
+
}).readonly()
|
|
4229
|
+
}), object({
|
|
4230
|
+
"ok": literal(true).readonly(),
|
|
4231
|
+
"value": object({
|
|
4232
|
+
"requestRef": string().readonly(),
|
|
4233
|
+
"phase": union([
|
|
4234
|
+
literal("pending"),
|
|
4235
|
+
literal("verifying"),
|
|
4236
|
+
literal("sas-ready"),
|
|
4237
|
+
literal("authorized"),
|
|
4238
|
+
literal("cancelled"),
|
|
4239
|
+
literal("rejected"),
|
|
4240
|
+
literal("expired")
|
|
4241
|
+
]).readonly(),
|
|
4242
|
+
"expiresAt": string().readonly(),
|
|
4243
|
+
"sas": string().readonly().optional()
|
|
4244
|
+
}).readonly()
|
|
4245
|
+
})]);
|
|
4246
|
+
const _awiki_dsh_plugin_awiki_beginDeviceJoin_result$schema = union([object({
|
|
4247
|
+
"ok": literal(false).readonly(),
|
|
4248
|
+
"error": object({
|
|
4249
|
+
"code": union([
|
|
4250
|
+
literal("not-registered"),
|
|
4251
|
+
literal("signed-out"),
|
|
4252
|
+
literal("already-registered"),
|
|
4253
|
+
literal("invalid-request"),
|
|
4254
|
+
literal("invalid-otp"),
|
|
4255
|
+
literal("challenge-expired"),
|
|
4256
|
+
literal("handle-unavailable"),
|
|
4257
|
+
literal("not-found"),
|
|
4258
|
+
literal("forbidden"),
|
|
4259
|
+
literal("identity-recovery-required"),
|
|
4260
|
+
literal("conflict"),
|
|
4261
|
+
literal("rate-limited"),
|
|
4262
|
+
literal("group-membership-required"),
|
|
4263
|
+
literal("group-identity-stale"),
|
|
4264
|
+
literal("attachment-too-large"),
|
|
4265
|
+
literal("summary-unavailable"),
|
|
4266
|
+
literal("summary-timeout"),
|
|
4267
|
+
literal("summary-cancelled"),
|
|
4268
|
+
literal("summary-invalid-output"),
|
|
4269
|
+
literal("summary-failed"),
|
|
4270
|
+
literal("delivery-unknown"),
|
|
4271
|
+
literal("network"),
|
|
4272
|
+
literal("remote")
|
|
4273
|
+
]).readonly(),
|
|
4274
|
+
"message": string().readonly()
|
|
4275
|
+
}).readonly()
|
|
4276
|
+
}), object({
|
|
4277
|
+
"ok": literal(true).readonly(),
|
|
4278
|
+
"value": object({
|
|
4279
|
+
"phase": union([
|
|
4280
|
+
literal("pending"),
|
|
4281
|
+
literal("verifying"),
|
|
4282
|
+
literal("sas-ready"),
|
|
4283
|
+
literal("authorized"),
|
|
4284
|
+
literal("cancelled"),
|
|
4285
|
+
literal("rejected"),
|
|
4286
|
+
literal("expired")
|
|
4287
|
+
]).readonly(),
|
|
4288
|
+
"expiresAt": string().readonly(),
|
|
4289
|
+
"sas": string().readonly().optional(),
|
|
4290
|
+
"completed": boolean().readonly()
|
|
4291
|
+
}).readonly()
|
|
4292
|
+
})]);
|
|
4293
|
+
const _awiki_dsh_plugin_awiki_cancelDeviceJoin_result$schema = union([object({
|
|
4294
|
+
"ok": literal(false).readonly(),
|
|
4295
|
+
"error": object({
|
|
4296
|
+
"code": union([
|
|
4297
|
+
literal("not-registered"),
|
|
4298
|
+
literal("signed-out"),
|
|
4299
|
+
literal("already-registered"),
|
|
4300
|
+
literal("invalid-request"),
|
|
4301
|
+
literal("invalid-otp"),
|
|
4302
|
+
literal("challenge-expired"),
|
|
4303
|
+
literal("handle-unavailable"),
|
|
4304
|
+
literal("not-found"),
|
|
4305
|
+
literal("forbidden"),
|
|
4306
|
+
literal("identity-recovery-required"),
|
|
4307
|
+
literal("conflict"),
|
|
4308
|
+
literal("rate-limited"),
|
|
4309
|
+
literal("group-membership-required"),
|
|
4310
|
+
literal("group-identity-stale"),
|
|
4311
|
+
literal("attachment-too-large"),
|
|
4312
|
+
literal("summary-unavailable"),
|
|
4313
|
+
literal("summary-timeout"),
|
|
4314
|
+
literal("summary-cancelled"),
|
|
4315
|
+
literal("summary-invalid-output"),
|
|
4316
|
+
literal("summary-failed"),
|
|
4317
|
+
literal("delivery-unknown"),
|
|
4318
|
+
literal("network"),
|
|
4319
|
+
literal("remote")
|
|
4320
|
+
]).readonly(),
|
|
4321
|
+
"message": string().readonly()
|
|
4322
|
+
}).readonly()
|
|
4323
|
+
}), object({
|
|
4324
|
+
"ok": literal(true).readonly(),
|
|
4325
|
+
"value": object({ "completed": literal(true).readonly() }).readonly()
|
|
4326
|
+
})]);
|
|
4198
4327
|
const _awiki_dsh_plugin_awiki_clearLocalData_parameter_0$schema = object({ "confirmation": string().readonly() });
|
|
4199
4328
|
const _awiki_dsh_plugin_awiki_clearLocalData_result$schema = union([object({
|
|
4200
4329
|
"ok": literal(false).readonly(),
|
|
@@ -4211,7 +4340,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4211
4340
|
literal("forbidden"),
|
|
4212
4341
|
literal("identity-recovery-required"),
|
|
4213
4342
|
literal("conflict"),
|
|
4214
|
-
literal("state-in-use"),
|
|
4215
4343
|
literal("rate-limited"),
|
|
4216
4344
|
literal("group-membership-required"),
|
|
4217
4345
|
literal("group-identity-stale"),
|
|
@@ -4250,7 +4378,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4250
4378
|
literal("forbidden"),
|
|
4251
4379
|
literal("identity-recovery-required"),
|
|
4252
4380
|
literal("conflict"),
|
|
4253
|
-
literal("state-in-use"),
|
|
4254
4381
|
literal("rate-limited"),
|
|
4255
4382
|
literal("group-membership-required"),
|
|
4256
4383
|
literal("group-identity-stale"),
|
|
@@ -4297,7 +4424,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4297
4424
|
literal("forbidden"),
|
|
4298
4425
|
literal("identity-recovery-required"),
|
|
4299
4426
|
literal("conflict"),
|
|
4300
|
-
literal("state-in-use"),
|
|
4301
4427
|
literal("rate-limited"),
|
|
4302
4428
|
literal("group-membership-required"),
|
|
4303
4429
|
literal("group-identity-stale"),
|
|
@@ -4332,7 +4458,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4332
4458
|
literal("forbidden"),
|
|
4333
4459
|
literal("identity-recovery-required"),
|
|
4334
4460
|
literal("conflict"),
|
|
4335
|
-
literal("state-in-use"),
|
|
4336
4461
|
literal("rate-limited"),
|
|
4337
4462
|
literal("group-membership-required"),
|
|
4338
4463
|
literal("group-identity-stale"),
|
|
@@ -4371,7 +4496,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4371
4496
|
literal("forbidden"),
|
|
4372
4497
|
literal("identity-recovery-required"),
|
|
4373
4498
|
literal("conflict"),
|
|
4374
|
-
literal("state-in-use"),
|
|
4375
4499
|
literal("rate-limited"),
|
|
4376
4500
|
literal("group-membership-required"),
|
|
4377
4501
|
literal("group-identity-stale"),
|
|
@@ -4400,11 +4524,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4400
4524
|
"bytesBase64": string().readonly()
|
|
4401
4525
|
}).readonly()
|
|
4402
4526
|
})]);
|
|
4403
|
-
const
|
|
4404
|
-
"localMessageId": intersection(string(), unknown()).readonly(),
|
|
4405
|
-
"attachmentIndex": number().readonly()
|
|
4406
|
-
});
|
|
4407
|
-
const _awiki_dsh_plugin_awiki_downloadMailAttachment_result$schema = union([object({
|
|
4527
|
+
const _awiki_dsh_plugin_awiki_getConfig_result$schema = union([object({
|
|
4408
4528
|
"ok": literal(false).readonly(),
|
|
4409
4529
|
"error": object({
|
|
4410
4530
|
"code": union([
|
|
@@ -4419,7 +4539,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4419
4539
|
literal("forbidden"),
|
|
4420
4540
|
literal("identity-recovery-required"),
|
|
4421
4541
|
literal("conflict"),
|
|
4422
|
-
literal("state-in-use"),
|
|
4423
4542
|
literal("rate-limited"),
|
|
4424
4543
|
literal("group-membership-required"),
|
|
4425
4544
|
literal("group-identity-stale"),
|
|
@@ -4438,14 +4557,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4438
4557
|
}), object({
|
|
4439
4558
|
"ok": literal(true).readonly(),
|
|
4440
4559
|
"value": object({
|
|
4441
|
-
"
|
|
4442
|
-
"
|
|
4443
|
-
"
|
|
4444
|
-
"sha256": string().readonly(),
|
|
4445
|
-
"bytesBase64": string().readonly()
|
|
4560
|
+
"pollIntervalMs": number().readonly(),
|
|
4561
|
+
"attachmentMaxBytes": number().readonly(),
|
|
4562
|
+
"handleRecoveryPhoneEnabled": boolean().readonly()
|
|
4446
4563
|
}).readonly()
|
|
4447
4564
|
})]);
|
|
4448
|
-
const
|
|
4565
|
+
const _awiki_dsh_plugin_awiki_getConversationPreferences_result$schema = union([object({
|
|
4449
4566
|
"ok": literal(false).readonly(),
|
|
4450
4567
|
"error": object({
|
|
4451
4568
|
"code": union([
|
|
@@ -4460,7 +4577,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4460
4577
|
literal("forbidden"),
|
|
4461
4578
|
literal("identity-recovery-required"),
|
|
4462
4579
|
literal("conflict"),
|
|
4463
|
-
literal("state-in-use"),
|
|
4464
4580
|
literal("rate-limited"),
|
|
4465
4581
|
literal("group-membership-required"),
|
|
4466
4582
|
literal("group-identity-stale"),
|
|
@@ -4478,18 +4594,30 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4478
4594
|
}).readonly()
|
|
4479
4595
|
}), object({
|
|
4480
4596
|
"ok": literal(true).readonly(),
|
|
4481
|
-
"value": object({
|
|
4482
|
-
"
|
|
4483
|
-
|
|
4484
|
-
|
|
4485
|
-
|
|
4486
|
-
|
|
4487
|
-
|
|
4488
|
-
|
|
4489
|
-
|
|
4490
|
-
|
|
4597
|
+
"value": object({ "hiddenConversations": array(object({
|
|
4598
|
+
"conversation": union([object({
|
|
4599
|
+
"kind": literal("group").readonly(),
|
|
4600
|
+
"id": intersection(string(), unknown()).readonly(),
|
|
4601
|
+
"groupDid": intersection(string(), unknown()).readonly(),
|
|
4602
|
+
"title": string().readonly(),
|
|
4603
|
+
"unreadCount": number().readonly().optional(),
|
|
4604
|
+
"lastMessageAt": number().readonly().optional(),
|
|
4605
|
+
"lastMessagePreview": string().readonly().optional()
|
|
4606
|
+
}), object({
|
|
4607
|
+
"kind": literal("direct").readonly(),
|
|
4608
|
+
"id": intersection(string(), unknown()).readonly(),
|
|
4609
|
+
"peerDid": intersection(string(), unknown()).readonly(),
|
|
4610
|
+
"peerHandle": intersection(string(), unknown()).readonly().optional(),
|
|
4611
|
+
"displayName": string().readonly().optional(),
|
|
4612
|
+
"title": string().readonly(),
|
|
4613
|
+
"unreadCount": number().readonly().optional(),
|
|
4614
|
+
"lastMessageAt": number().readonly().optional(),
|
|
4615
|
+
"lastMessagePreview": string().readonly().optional()
|
|
4616
|
+
})]).readonly(),
|
|
4617
|
+
"hiddenAt": number().readonly()
|
|
4618
|
+
})).readonly() }).readonly()
|
|
4491
4619
|
})]);
|
|
4492
|
-
const
|
|
4620
|
+
const _awiki_dsh_plugin_awiki_getDeviceJoinStatus_result$schema = union([object({
|
|
4493
4621
|
"ok": literal(false).readonly(),
|
|
4494
4622
|
"error": object({
|
|
4495
4623
|
"code": union([
|
|
@@ -4504,7 +4632,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4504
4632
|
literal("forbidden"),
|
|
4505
4633
|
literal("identity-recovery-required"),
|
|
4506
4634
|
literal("conflict"),
|
|
4507
|
-
literal("state-in-use"),
|
|
4508
4635
|
literal("rate-limited"),
|
|
4509
4636
|
literal("group-membership-required"),
|
|
4510
4637
|
literal("group-identity-stale"),
|
|
@@ -4522,31 +4649,20 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4522
4649
|
}).readonly()
|
|
4523
4650
|
}), object({
|
|
4524
4651
|
"ok": literal(true).readonly(),
|
|
4525
|
-
"value": object({
|
|
4526
|
-
"
|
|
4527
|
-
"
|
|
4528
|
-
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
|
|
4532
|
-
|
|
4533
|
-
|
|
4534
|
-
|
|
4535
|
-
|
|
4536
|
-
|
|
4537
|
-
|
|
4538
|
-
|
|
4539
|
-
"peerHandle": intersection(string(), unknown()).readonly().optional(),
|
|
4540
|
-
"displayName": string().readonly().optional(),
|
|
4541
|
-
"title": string().readonly(),
|
|
4542
|
-
"unreadCount": number().readonly().optional(),
|
|
4543
|
-
"lastMessageAt": number().readonly().optional(),
|
|
4544
|
-
"lastMessagePreview": string().readonly().optional()
|
|
4545
|
-
})]).readonly(),
|
|
4546
|
-
"hiddenAt": number().readonly()
|
|
4547
|
-
})).readonly(),
|
|
4548
|
-
"dismissedGroupRecoverySignature": string().readonly().optional()
|
|
4549
|
-
}).readonly()
|
|
4652
|
+
"value": union([literal(null), object({
|
|
4653
|
+
"phase": union([
|
|
4654
|
+
literal("pending"),
|
|
4655
|
+
literal("verifying"),
|
|
4656
|
+
literal("sas-ready"),
|
|
4657
|
+
literal("authorized"),
|
|
4658
|
+
literal("cancelled"),
|
|
4659
|
+
literal("rejected"),
|
|
4660
|
+
literal("expired")
|
|
4661
|
+
]).readonly(),
|
|
4662
|
+
"expiresAt": string().readonly(),
|
|
4663
|
+
"sas": string().readonly().optional(),
|
|
4664
|
+
"completed": boolean().readonly()
|
|
4665
|
+
})]).readonly()
|
|
4550
4666
|
})]);
|
|
4551
4667
|
const _awiki_dsh_plugin_awiki_getGroup_parameter_0$schema = object({ "groupDid": intersection(string(), unknown()).readonly() });
|
|
4552
4668
|
const _awiki_dsh_plugin_awiki_getGroup_result$schema = union([object({
|
|
@@ -4564,7 +4680,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4564
4680
|
literal("forbidden"),
|
|
4565
4681
|
literal("identity-recovery-required"),
|
|
4566
4682
|
literal("conflict"),
|
|
4567
|
-
literal("state-in-use"),
|
|
4568
4683
|
literal("rate-limited"),
|
|
4569
4684
|
literal("group-membership-required"),
|
|
4570
4685
|
literal("group-identity-stale"),
|
|
@@ -4612,7 +4727,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4612
4727
|
literal("forbidden"),
|
|
4613
4728
|
literal("identity-recovery-required"),
|
|
4614
4729
|
literal("conflict"),
|
|
4615
|
-
literal("state-in-use"),
|
|
4616
4730
|
literal("rate-limited"),
|
|
4617
4731
|
literal("group-membership-required"),
|
|
4618
4732
|
literal("group-identity-stale"),
|
|
@@ -4681,7 +4795,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4681
4795
|
literal("forbidden"),
|
|
4682
4796
|
literal("identity-recovery-required"),
|
|
4683
4797
|
literal("conflict"),
|
|
4684
|
-
literal("state-in-use"),
|
|
4685
4798
|
literal("rate-limited"),
|
|
4686
4799
|
literal("group-membership-required"),
|
|
4687
4800
|
literal("group-identity-stale"),
|
|
@@ -4726,7 +4839,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4726
4839
|
literal("forbidden"),
|
|
4727
4840
|
literal("identity-recovery-required"),
|
|
4728
4841
|
literal("conflict"),
|
|
4729
|
-
literal("state-in-use"),
|
|
4730
4842
|
literal("rate-limited"),
|
|
4731
4843
|
literal("group-membership-required"),
|
|
4732
4844
|
literal("group-identity-stale"),
|
|
@@ -4795,7 +4907,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4795
4907
|
literal("forbidden"),
|
|
4796
4908
|
literal("identity-recovery-required"),
|
|
4797
4909
|
literal("conflict"),
|
|
4798
|
-
literal("state-in-use"),
|
|
4799
4910
|
literal("rate-limited"),
|
|
4800
4911
|
literal("group-membership-required"),
|
|
4801
4912
|
literal("group-identity-stale"),
|
|
@@ -4834,7 +4945,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4834
4945
|
literal("forbidden"),
|
|
4835
4946
|
literal("identity-recovery-required"),
|
|
4836
4947
|
literal("conflict"),
|
|
4837
|
-
literal("state-in-use"),
|
|
4838
4948
|
literal("rate-limited"),
|
|
4839
4949
|
literal("group-membership-required"),
|
|
4840
4950
|
literal("group-identity-stale"),
|
|
@@ -4877,7 +4987,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4877
4987
|
literal("forbidden"),
|
|
4878
4988
|
literal("identity-recovery-required"),
|
|
4879
4989
|
literal("conflict"),
|
|
4880
|
-
literal("state-in-use"),
|
|
4881
4990
|
literal("rate-limited"),
|
|
4882
4991
|
literal("group-membership-required"),
|
|
4883
4992
|
literal("group-identity-stale"),
|
|
@@ -4912,9 +5021,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4912
5021
|
"failureCode": string().readonly().optional(),
|
|
4913
5022
|
"retryable": boolean().readonly(),
|
|
4914
5023
|
"localOrdinaryDataWillMigrate": boolean().readonly(),
|
|
4915
|
-
"otherDevicesMustRejoin": boolean().readonly()
|
|
4916
|
-
"unsupportedE2eeGroupCount": number().readonly(),
|
|
4917
|
-
"unsupportedDidOnlyGroupCount": number().readonly()
|
|
5024
|
+
"otherDevicesMustRejoin": boolean().readonly()
|
|
4918
5025
|
}).readonly()
|
|
4919
5026
|
})]);
|
|
4920
5027
|
const _awiki_dsh_plugin_awiki_getSession_result$schema = union([object({
|
|
@@ -4932,7 +5039,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4932
5039
|
literal("forbidden"),
|
|
4933
5040
|
literal("identity-recovery-required"),
|
|
4934
5041
|
literal("conflict"),
|
|
4935
|
-
literal("state-in-use"),
|
|
4936
5042
|
literal("rate-limited"),
|
|
4937
5043
|
literal("group-membership-required"),
|
|
4938
5044
|
literal("group-identity-stale"),
|
|
@@ -4980,7 +5086,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4980
5086
|
literal("forbidden"),
|
|
4981
5087
|
literal("identity-recovery-required"),
|
|
4982
5088
|
literal("conflict"),
|
|
4983
|
-
literal("state-in-use"),
|
|
4984
5089
|
literal("rate-limited"),
|
|
4985
5090
|
literal("group-membership-required"),
|
|
4986
5091
|
literal("group-identity-stale"),
|
|
@@ -5019,7 +5124,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5019
5124
|
literal("forbidden"),
|
|
5020
5125
|
literal("identity-recovery-required"),
|
|
5021
5126
|
literal("conflict"),
|
|
5022
|
-
literal("state-in-use"),
|
|
5023
5127
|
literal("rate-limited"),
|
|
5024
5128
|
literal("group-membership-required"),
|
|
5025
5129
|
literal("group-identity-stale"),
|
|
@@ -5063,7 +5167,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5063
5167
|
literal("forbidden"),
|
|
5064
5168
|
literal("identity-recovery-required"),
|
|
5065
5169
|
literal("conflict"),
|
|
5066
|
-
literal("state-in-use"),
|
|
5067
5170
|
literal("rate-limited"),
|
|
5068
5171
|
literal("group-membership-required"),
|
|
5069
5172
|
literal("group-identity-stale"),
|
|
@@ -5102,7 +5205,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5102
5205
|
literal("forbidden"),
|
|
5103
5206
|
literal("identity-recovery-required"),
|
|
5104
5207
|
literal("conflict"),
|
|
5105
|
-
literal("state-in-use"),
|
|
5106
5208
|
literal("rate-limited"),
|
|
5107
5209
|
literal("group-membership-required"),
|
|
5108
5210
|
literal("group-identity-stale"),
|
|
@@ -5164,7 +5266,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5164
5266
|
literal("forbidden"),
|
|
5165
5267
|
literal("identity-recovery-required"),
|
|
5166
5268
|
literal("conflict"),
|
|
5167
|
-
literal("state-in-use"),
|
|
5168
5269
|
literal("rate-limited"),
|
|
5169
5270
|
literal("group-membership-required"),
|
|
5170
5271
|
literal("group-identity-stale"),
|
|
@@ -5224,7 +5325,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5224
5325
|
literal("forbidden"),
|
|
5225
5326
|
literal("identity-recovery-required"),
|
|
5226
5327
|
literal("conflict"),
|
|
5227
|
-
literal("state-in-use"),
|
|
5228
5328
|
literal("rate-limited"),
|
|
5229
5329
|
literal("group-membership-required"),
|
|
5230
5330
|
literal("group-identity-stale"),
|
|
@@ -5278,7 +5378,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5278
5378
|
literal("forbidden"),
|
|
5279
5379
|
literal("identity-recovery-required"),
|
|
5280
5380
|
literal("conflict"),
|
|
5281
|
-
literal("state-in-use"),
|
|
5282
5381
|
literal("rate-limited"),
|
|
5283
5382
|
literal("group-membership-required"),
|
|
5284
5383
|
literal("group-identity-stale"),
|
|
@@ -5326,7 +5425,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5326
5425
|
literal("forbidden"),
|
|
5327
5426
|
literal("identity-recovery-required"),
|
|
5328
5427
|
literal("conflict"),
|
|
5329
|
-
literal("state-in-use"),
|
|
5330
5428
|
literal("rate-limited"),
|
|
5331
5429
|
literal("group-membership-required"),
|
|
5332
5430
|
literal("group-identity-stale"),
|
|
@@ -5374,7 +5472,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5374
5472
|
literal("forbidden"),
|
|
5375
5473
|
literal("identity-recovery-required"),
|
|
5376
5474
|
literal("conflict"),
|
|
5377
|
-
literal("state-in-use"),
|
|
5378
5475
|
literal("rate-limited"),
|
|
5379
5476
|
literal("group-membership-required"),
|
|
5380
5477
|
literal("group-identity-stale"),
|
|
@@ -5410,7 +5507,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5410
5507
|
literal("forbidden"),
|
|
5411
5508
|
literal("identity-recovery-required"),
|
|
5412
5509
|
literal("conflict"),
|
|
5413
|
-
literal("state-in-use"),
|
|
5414
5510
|
literal("rate-limited"),
|
|
5415
5511
|
literal("group-membership-required"),
|
|
5416
5512
|
literal("group-identity-stale"),
|
|
@@ -5450,7 +5546,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5450
5546
|
literal("forbidden"),
|
|
5451
5547
|
literal("identity-recovery-required"),
|
|
5452
5548
|
literal("conflict"),
|
|
5453
|
-
literal("state-in-use"),
|
|
5454
5549
|
literal("rate-limited"),
|
|
5455
5550
|
literal("group-membership-required"),
|
|
5456
5551
|
literal("group-identity-stale"),
|
|
@@ -5485,9 +5580,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5485
5580
|
"failureCode": string().readonly().optional(),
|
|
5486
5581
|
"retryable": boolean().readonly(),
|
|
5487
5582
|
"localOrdinaryDataWillMigrate": boolean().readonly(),
|
|
5488
|
-
"otherDevicesMustRejoin": boolean().readonly()
|
|
5489
|
-
"unsupportedE2eeGroupCount": number().readonly(),
|
|
5490
|
-
"unsupportedDidOnlyGroupCount": number().readonly()
|
|
5583
|
+
"otherDevicesMustRejoin": boolean().readonly()
|
|
5491
5584
|
}).readonly()
|
|
5492
5585
|
})]);
|
|
5493
5586
|
const _awiki_dsh_plugin_awiki_readMail_parameter_0$schema = object({ "messageId": intersection(string(), unknown()).readonly() });
|
|
@@ -5506,7 +5599,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5506
5599
|
literal("forbidden"),
|
|
5507
5600
|
literal("identity-recovery-required"),
|
|
5508
5601
|
literal("conflict"),
|
|
5509
|
-
literal("state-in-use"),
|
|
5510
5602
|
literal("rate-limited"),
|
|
5511
5603
|
literal("group-membership-required"),
|
|
5512
5604
|
literal("group-identity-stale"),
|
|
@@ -5552,6 +5644,74 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5552
5644
|
})).readonly()
|
|
5553
5645
|
}).readonly()
|
|
5554
5646
|
})]);
|
|
5647
|
+
const _awiki_dsh_plugin_awiki_refreshDeviceManagement_result$schema = union([object({
|
|
5648
|
+
"ok": literal(false).readonly(),
|
|
5649
|
+
"error": object({
|
|
5650
|
+
"code": union([
|
|
5651
|
+
literal("not-registered"),
|
|
5652
|
+
literal("signed-out"),
|
|
5653
|
+
literal("already-registered"),
|
|
5654
|
+
literal("invalid-request"),
|
|
5655
|
+
literal("invalid-otp"),
|
|
5656
|
+
literal("challenge-expired"),
|
|
5657
|
+
literal("handle-unavailable"),
|
|
5658
|
+
literal("not-found"),
|
|
5659
|
+
literal("forbidden"),
|
|
5660
|
+
literal("identity-recovery-required"),
|
|
5661
|
+
literal("conflict"),
|
|
5662
|
+
literal("rate-limited"),
|
|
5663
|
+
literal("group-membership-required"),
|
|
5664
|
+
literal("group-identity-stale"),
|
|
5665
|
+
literal("attachment-too-large"),
|
|
5666
|
+
literal("summary-unavailable"),
|
|
5667
|
+
literal("summary-timeout"),
|
|
5668
|
+
literal("summary-cancelled"),
|
|
5669
|
+
literal("summary-invalid-output"),
|
|
5670
|
+
literal("summary-failed"),
|
|
5671
|
+
literal("delivery-unknown"),
|
|
5672
|
+
literal("network"),
|
|
5673
|
+
literal("remote")
|
|
5674
|
+
]).readonly(),
|
|
5675
|
+
"message": string().readonly()
|
|
5676
|
+
}).readonly()
|
|
5677
|
+
}), object({
|
|
5678
|
+
"ok": literal(true).readonly(),
|
|
5679
|
+
"value": object({
|
|
5680
|
+
"canManage": boolean().readonly(),
|
|
5681
|
+
"role": union([literal("member"), literal("admin")]).readonly().optional(),
|
|
5682
|
+
"readiness": union([
|
|
5683
|
+
literal("legacy"),
|
|
5684
|
+
literal("member_ready"),
|
|
5685
|
+
literal("admin_awaiting_root"),
|
|
5686
|
+
literal("admin_ready"),
|
|
5687
|
+
literal("blocked")
|
|
5688
|
+
]).readonly(),
|
|
5689
|
+
"devices": array(object({
|
|
5690
|
+
"deviceRef": string().readonly(),
|
|
5691
|
+
"status": union([literal("active"), literal("revoked")]).readonly(),
|
|
5692
|
+
"role": union([literal("member"), literal("admin")]).readonly(),
|
|
5693
|
+
"managementReady": boolean().readonly(),
|
|
5694
|
+
"isCurrent": boolean().readonly()
|
|
5695
|
+
})).readonly(),
|
|
5696
|
+
"requests": array(object({
|
|
5697
|
+
"requestRef": string().readonly(),
|
|
5698
|
+
"candidateKeyFingerprint": string().readonly(),
|
|
5699
|
+
"issuedAt": string().readonly(),
|
|
5700
|
+
"expiresAt": string().readonly(),
|
|
5701
|
+
"state": union([
|
|
5702
|
+
literal("pending"),
|
|
5703
|
+
literal("verifying"),
|
|
5704
|
+
literal("sas-ready"),
|
|
5705
|
+
literal("authorized"),
|
|
5706
|
+
literal("cancelled"),
|
|
5707
|
+
literal("rejected"),
|
|
5708
|
+
literal("expired")
|
|
5709
|
+
]).readonly(),
|
|
5710
|
+
"claimedByCurrentDevice": boolean().readonly(),
|
|
5711
|
+
"canStartVerification": boolean().readonly()
|
|
5712
|
+
})).readonly()
|
|
5713
|
+
}).readonly()
|
|
5714
|
+
})]);
|
|
5555
5715
|
const _awiki_dsh_plugin_awiki_registerIdentity_parameter_0$schema = object({
|
|
5556
5716
|
"handle": string().readonly(),
|
|
5557
5717
|
"phone": string().readonly(),
|
|
@@ -5572,7 +5732,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5572
5732
|
literal("forbidden"),
|
|
5573
5733
|
literal("identity-recovery-required"),
|
|
5574
5734
|
literal("conflict"),
|
|
5575
|
-
literal("state-in-use"),
|
|
5576
5735
|
literal("rate-limited"),
|
|
5577
5736
|
literal("group-membership-required"),
|
|
5578
5737
|
literal("group-identity-stale"),
|
|
@@ -5590,18 +5749,26 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5590
5749
|
}).readonly()
|
|
5591
5750
|
}), object({
|
|
5592
5751
|
"ok": literal(true).readonly(),
|
|
5593
|
-
"value": object({
|
|
5594
|
-
"
|
|
5595
|
-
"
|
|
5596
|
-
|
|
5597
|
-
|
|
5598
|
-
|
|
5752
|
+
"value": union([object({
|
|
5753
|
+
"status": literal("registered").readonly(),
|
|
5754
|
+
"identity": object({
|
|
5755
|
+
"handle": intersection(string(), unknown()).readonly(),
|
|
5756
|
+
"did": intersection(string(), unknown()).readonly(),
|
|
5757
|
+
"displayName": string().readonly().optional(),
|
|
5758
|
+
"registeredAt": number().readonly()
|
|
5759
|
+
}).readonly()
|
|
5760
|
+
}), object({
|
|
5761
|
+
"status": literal("join-required").readonly(),
|
|
5762
|
+
"fullHandle": intersection(string(), unknown()).readonly(),
|
|
5763
|
+
"mode": union([literal("ordinary"), literal("handle-recovery-rebind")]).readonly(),
|
|
5764
|
+
"requiresUserPresence": boolean().readonly()
|
|
5765
|
+
})]).readonly()
|
|
5599
5766
|
})]);
|
|
5600
|
-
const
|
|
5601
|
-
"
|
|
5602
|
-
"
|
|
5767
|
+
const _awiki_dsh_plugin_awiki_rejectDeviceJoin_parameter_0$schema = object({
|
|
5768
|
+
"reason": union([literal("user_rejected"), literal("sas_mismatch")]).readonly(),
|
|
5769
|
+
"requestRef": string().readonly()
|
|
5603
5770
|
});
|
|
5604
|
-
const
|
|
5771
|
+
const _awiki_dsh_plugin_awiki_rejectDeviceJoin_result$schema = union([object({
|
|
5605
5772
|
"ok": literal(false).readonly(),
|
|
5606
5773
|
"error": object({
|
|
5607
5774
|
"code": union([
|
|
@@ -5616,7 +5783,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5616
5783
|
literal("forbidden"),
|
|
5617
5784
|
literal("identity-recovery-required"),
|
|
5618
5785
|
literal("conflict"),
|
|
5619
|
-
literal("state-in-use"),
|
|
5620
5786
|
literal("rate-limited"),
|
|
5621
5787
|
literal("group-membership-required"),
|
|
5622
5788
|
literal("group-identity-stale"),
|
|
@@ -5635,12 +5801,25 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5635
5801
|
}), object({
|
|
5636
5802
|
"ok": literal(true).readonly(),
|
|
5637
5803
|
"value": object({
|
|
5638
|
-
"
|
|
5639
|
-
"
|
|
5804
|
+
"requestRef": string().readonly(),
|
|
5805
|
+
"phase": union([
|
|
5806
|
+
literal("pending"),
|
|
5807
|
+
literal("verifying"),
|
|
5808
|
+
literal("sas-ready"),
|
|
5809
|
+
literal("authorized"),
|
|
5810
|
+
literal("cancelled"),
|
|
5811
|
+
literal("rejected"),
|
|
5812
|
+
literal("expired")
|
|
5813
|
+
]).readonly(),
|
|
5814
|
+
"expiresAt": string().readonly(),
|
|
5815
|
+
"sas": string().readonly().optional()
|
|
5640
5816
|
}).readonly()
|
|
5641
5817
|
})]);
|
|
5642
|
-
const
|
|
5643
|
-
|
|
5818
|
+
const _awiki_dsh_plugin_awiki_removeGroupMember_parameter_0$schema = object({
|
|
5819
|
+
"member": string().readonly(),
|
|
5820
|
+
"groupDid": intersection(string(), unknown()).readonly()
|
|
5821
|
+
});
|
|
5822
|
+
const _awiki_dsh_plugin_awiki_removeGroupMember_result$schema = union([object({
|
|
5644
5823
|
"ok": literal(false).readonly(),
|
|
5645
5824
|
"error": object({
|
|
5646
5825
|
"code": union([
|
|
@@ -5655,7 +5834,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5655
5834
|
literal("forbidden"),
|
|
5656
5835
|
literal("identity-recovery-required"),
|
|
5657
5836
|
literal("conflict"),
|
|
5658
|
-
literal("state-in-use"),
|
|
5659
5837
|
literal("rate-limited"),
|
|
5660
5838
|
literal("group-membership-required"),
|
|
5661
5839
|
literal("group-identity-stale"),
|
|
@@ -5675,12 +5853,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5675
5853
|
"ok": literal(true).readonly(),
|
|
5676
5854
|
"value": object({
|
|
5677
5855
|
"did": intersection(string(), unknown()).readonly(),
|
|
5678
|
-
"handle": intersection(string(), unknown()).readonly().optional()
|
|
5679
|
-
"displayName": string().readonly().optional(),
|
|
5680
|
-
"conversationId": intersection(string(), unknown()).readonly()
|
|
5856
|
+
"handle": intersection(string(), unknown()).readonly().optional()
|
|
5681
5857
|
}).readonly()
|
|
5682
5858
|
})]);
|
|
5683
|
-
const
|
|
5859
|
+
const _awiki_dsh_plugin_awiki_resolvePeer_parameter_0$schema = object({ "peer": string().readonly() });
|
|
5860
|
+
const _awiki_dsh_plugin_awiki_resolvePeer_result$schema = union([object({
|
|
5684
5861
|
"ok": literal(false).readonly(),
|
|
5685
5862
|
"error": object({
|
|
5686
5863
|
"code": union([
|
|
@@ -5695,7 +5872,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5695
5872
|
literal("forbidden"),
|
|
5696
5873
|
literal("identity-recovery-required"),
|
|
5697
5874
|
literal("conflict"),
|
|
5698
|
-
literal("state-in-use"),
|
|
5699
5875
|
literal("rate-limited"),
|
|
5700
5876
|
literal("group-membership-required"),
|
|
5701
5877
|
literal("group-identity-stale"),
|
|
@@ -5714,14 +5890,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5714
5890
|
}), object({
|
|
5715
5891
|
"ok": literal(true).readonly(),
|
|
5716
5892
|
"value": object({
|
|
5717
|
-
"
|
|
5718
|
-
"
|
|
5719
|
-
"
|
|
5720
|
-
"
|
|
5721
|
-
"items": array(object({
|
|
5722
|
-
"groupDid": intersection(string(), unknown()).readonly(),
|
|
5723
|
-
"status": union([literal("pending"), literal("blocked")]).readonly()
|
|
5724
|
-
})).readonly()
|
|
5893
|
+
"did": intersection(string(), unknown()).readonly(),
|
|
5894
|
+
"handle": intersection(string(), unknown()).readonly().optional(),
|
|
5895
|
+
"displayName": string().readonly().optional(),
|
|
5896
|
+
"conversationId": intersection(string(), unknown()).readonly()
|
|
5725
5897
|
}).readonly()
|
|
5726
5898
|
})]);
|
|
5727
5899
|
const _awiki_dsh_plugin_awiki_resumeRecovery_parameter_0$schema = object({ "operationId": string().readonly() });
|
|
@@ -5740,7 +5912,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5740
5912
|
literal("forbidden"),
|
|
5741
5913
|
literal("identity-recovery-required"),
|
|
5742
5914
|
literal("conflict"),
|
|
5743
|
-
literal("state-in-use"),
|
|
5744
5915
|
literal("rate-limited"),
|
|
5745
5916
|
literal("group-membership-required"),
|
|
5746
5917
|
literal("group-identity-stale"),
|
|
@@ -5775,26 +5946,14 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5775
5946
|
"failureCode": string().readonly().optional(),
|
|
5776
5947
|
"retryable": boolean().readonly(),
|
|
5777
5948
|
"localOrdinaryDataWillMigrate": boolean().readonly(),
|
|
5778
|
-
"otherDevicesMustRejoin": boolean().readonly()
|
|
5779
|
-
"unsupportedE2eeGroupCount": number().readonly(),
|
|
5780
|
-
"unsupportedDidOnlyGroupCount": number().readonly()
|
|
5949
|
+
"otherDevicesMustRejoin": boolean().readonly()
|
|
5781
5950
|
}).readonly()
|
|
5782
5951
|
})]);
|
|
5783
|
-
const
|
|
5784
|
-
"
|
|
5785
|
-
|
|
5786
|
-
"peer": string().readonly()
|
|
5787
|
-
}), object({
|
|
5788
|
-
"kind": literal("group").readonly(),
|
|
5789
|
-
"group": string().readonly()
|
|
5790
|
-
})]).readonly(),
|
|
5791
|
-
"fileName": string().readonly(),
|
|
5792
|
-
"mimeType": string().readonly(),
|
|
5793
|
-
"bytesBase64": string().readonly(),
|
|
5794
|
-
"caption": string().readonly().optional(),
|
|
5795
|
-
"idempotencyKey": string().readonly()
|
|
5952
|
+
const _awiki_dsh_plugin_awiki_revokeDevice_parameter_0$schema = object({
|
|
5953
|
+
"deviceRef": string().readonly(),
|
|
5954
|
+
"confirmation": string().readonly()
|
|
5796
5955
|
});
|
|
5797
|
-
const
|
|
5956
|
+
const _awiki_dsh_plugin_awiki_revokeDevice_result$schema = union([object({
|
|
5798
5957
|
"ok": literal(false).readonly(),
|
|
5799
5958
|
"error": object({
|
|
5800
5959
|
"code": union([
|
|
@@ -5809,7 +5968,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5809
5968
|
literal("forbidden"),
|
|
5810
5969
|
literal("identity-recovery-required"),
|
|
5811
5970
|
literal("conflict"),
|
|
5812
|
-
literal("state-in-use"),
|
|
5813
5971
|
literal("rate-limited"),
|
|
5814
5972
|
literal("group-membership-required"),
|
|
5815
5973
|
literal("group-identity-stale"),
|
|
@@ -5828,26 +5986,108 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5828
5986
|
}), object({
|
|
5829
5987
|
"ok": literal(true).readonly(),
|
|
5830
5988
|
"value": object({
|
|
5831
|
-
"
|
|
5832
|
-
"
|
|
5833
|
-
"
|
|
5834
|
-
|
|
5835
|
-
|
|
5836
|
-
|
|
5837
|
-
|
|
5838
|
-
|
|
5839
|
-
|
|
5840
|
-
|
|
5841
|
-
"
|
|
5842
|
-
"
|
|
5843
|
-
|
|
5844
|
-
|
|
5845
|
-
|
|
5846
|
-
|
|
5847
|
-
|
|
5848
|
-
|
|
5849
|
-
|
|
5850
|
-
"
|
|
5989
|
+
"canManage": boolean().readonly(),
|
|
5990
|
+
"role": union([literal("member"), literal("admin")]).readonly().optional(),
|
|
5991
|
+
"readiness": union([
|
|
5992
|
+
literal("legacy"),
|
|
5993
|
+
literal("member_ready"),
|
|
5994
|
+
literal("admin_awaiting_root"),
|
|
5995
|
+
literal("admin_ready"),
|
|
5996
|
+
literal("blocked")
|
|
5997
|
+
]).readonly(),
|
|
5998
|
+
"devices": array(object({
|
|
5999
|
+
"deviceRef": string().readonly(),
|
|
6000
|
+
"status": union([literal("active"), literal("revoked")]).readonly(),
|
|
6001
|
+
"role": union([literal("member"), literal("admin")]).readonly(),
|
|
6002
|
+
"managementReady": boolean().readonly(),
|
|
6003
|
+
"isCurrent": boolean().readonly()
|
|
6004
|
+
})).readonly(),
|
|
6005
|
+
"requests": array(object({
|
|
6006
|
+
"requestRef": string().readonly(),
|
|
6007
|
+
"candidateKeyFingerprint": string().readonly(),
|
|
6008
|
+
"issuedAt": string().readonly(),
|
|
6009
|
+
"expiresAt": string().readonly(),
|
|
6010
|
+
"state": union([
|
|
6011
|
+
literal("pending"),
|
|
6012
|
+
literal("verifying"),
|
|
6013
|
+
literal("sas-ready"),
|
|
6014
|
+
literal("authorized"),
|
|
6015
|
+
literal("cancelled"),
|
|
6016
|
+
literal("rejected"),
|
|
6017
|
+
literal("expired")
|
|
6018
|
+
]).readonly(),
|
|
6019
|
+
"claimedByCurrentDevice": boolean().readonly(),
|
|
6020
|
+
"canStartVerification": boolean().readonly()
|
|
6021
|
+
})).readonly()
|
|
6022
|
+
}).readonly()
|
|
6023
|
+
})]);
|
|
6024
|
+
const _awiki_dsh_plugin_awiki_sendAttachment_parameter_0$schema = object({
|
|
6025
|
+
"target": union([object({
|
|
6026
|
+
"kind": literal("direct").readonly(),
|
|
6027
|
+
"peer": string().readonly()
|
|
6028
|
+
}), object({
|
|
6029
|
+
"kind": literal("group").readonly(),
|
|
6030
|
+
"group": string().readonly()
|
|
6031
|
+
})]).readonly(),
|
|
6032
|
+
"fileName": string().readonly(),
|
|
6033
|
+
"mimeType": string().readonly(),
|
|
6034
|
+
"bytesBase64": string().readonly(),
|
|
6035
|
+
"caption": string().readonly().optional(),
|
|
6036
|
+
"idempotencyKey": string().readonly()
|
|
6037
|
+
});
|
|
6038
|
+
const _awiki_dsh_plugin_awiki_sendAttachment_result$schema = union([object({
|
|
6039
|
+
"ok": literal(false).readonly(),
|
|
6040
|
+
"error": object({
|
|
6041
|
+
"code": union([
|
|
6042
|
+
literal("not-registered"),
|
|
6043
|
+
literal("signed-out"),
|
|
6044
|
+
literal("already-registered"),
|
|
6045
|
+
literal("invalid-request"),
|
|
6046
|
+
literal("invalid-otp"),
|
|
6047
|
+
literal("challenge-expired"),
|
|
6048
|
+
literal("handle-unavailable"),
|
|
6049
|
+
literal("not-found"),
|
|
6050
|
+
literal("forbidden"),
|
|
6051
|
+
literal("identity-recovery-required"),
|
|
6052
|
+
literal("conflict"),
|
|
6053
|
+
literal("rate-limited"),
|
|
6054
|
+
literal("group-membership-required"),
|
|
6055
|
+
literal("group-identity-stale"),
|
|
6056
|
+
literal("attachment-too-large"),
|
|
6057
|
+
literal("summary-unavailable"),
|
|
6058
|
+
literal("summary-timeout"),
|
|
6059
|
+
literal("summary-cancelled"),
|
|
6060
|
+
literal("summary-invalid-output"),
|
|
6061
|
+
literal("summary-failed"),
|
|
6062
|
+
literal("delivery-unknown"),
|
|
6063
|
+
literal("network"),
|
|
6064
|
+
literal("remote")
|
|
6065
|
+
]).readonly(),
|
|
6066
|
+
"message": string().readonly()
|
|
6067
|
+
}).readonly()
|
|
6068
|
+
}), object({
|
|
6069
|
+
"ok": literal(true).readonly(),
|
|
6070
|
+
"value": object({
|
|
6071
|
+
"id": intersection(string(), unknown()).readonly(),
|
|
6072
|
+
"conversationId": intersection(string(), unknown()).readonly(),
|
|
6073
|
+
"conversationKind": union([literal("group"), literal("direct")]).readonly(),
|
|
6074
|
+
"senderDid": intersection(string(), unknown()).readonly(),
|
|
6075
|
+
"senderHandle": intersection(string(), unknown()).readonly().optional(),
|
|
6076
|
+
"senderDisplayName": string().readonly().optional(),
|
|
6077
|
+
"sentAt": number().readonly(),
|
|
6078
|
+
"outgoing": boolean().readonly(),
|
|
6079
|
+
"content": union([object({
|
|
6080
|
+
"kind": literal("text").readonly(),
|
|
6081
|
+
"text": string().readonly(),
|
|
6082
|
+
"mentions": array(object({
|
|
6083
|
+
"id": string().readonly(),
|
|
6084
|
+
"start": number().readonly(),
|
|
6085
|
+
"end": number().readonly(),
|
|
6086
|
+
"did": intersection(string(), unknown()).readonly(),
|
|
6087
|
+
"displayName": string().readonly().optional()
|
|
6088
|
+
})).readonly().optional()
|
|
6089
|
+
}), object({
|
|
6090
|
+
"kind": literal("attachment").readonly(),
|
|
5851
6091
|
"attachment": object({
|
|
5852
6092
|
"id": intersection(string(), unknown()).readonly(),
|
|
5853
6093
|
"fileName": string().readonly(),
|
|
@@ -5863,13 +6103,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5863
6103
|
"to": array(string()).readonly(),
|
|
5864
6104
|
"cc": array(string()).readonly().optional(),
|
|
5865
6105
|
"subject": string().readonly(),
|
|
5866
|
-
"bodyText": string().readonly()
|
|
5867
|
-
"attachments": array(object({
|
|
5868
|
-
"fileName": string().readonly(),
|
|
5869
|
-
"contentType": string().readonly(),
|
|
5870
|
-
"sizeBytes": number().readonly(),
|
|
5871
|
-
"bytesBase64": string().readonly()
|
|
5872
|
-
})).readonly().optional()
|
|
6106
|
+
"bodyText": string().readonly()
|
|
5873
6107
|
});
|
|
5874
6108
|
const _awiki_dsh_plugin_awiki_sendMail_result$schema = union([object({
|
|
5875
6109
|
"ok": literal(false).readonly(),
|
|
@@ -5886,7 +6120,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5886
6120
|
literal("forbidden"),
|
|
5887
6121
|
literal("identity-recovery-required"),
|
|
5888
6122
|
literal("conflict"),
|
|
5889
|
-
literal("state-in-use"),
|
|
5890
6123
|
literal("rate-limited"),
|
|
5891
6124
|
literal("group-membership-required"),
|
|
5892
6125
|
literal("group-identity-stale"),
|
|
@@ -5929,7 +6162,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5929
6162
|
literal("forbidden"),
|
|
5930
6163
|
literal("identity-recovery-required"),
|
|
5931
6164
|
literal("conflict"),
|
|
5932
|
-
literal("state-in-use"),
|
|
5933
6165
|
literal("rate-limited"),
|
|
5934
6166
|
literal("group-membership-required"),
|
|
5935
6167
|
literal("group-identity-stale"),
|
|
@@ -5973,7 +6205,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5973
6205
|
literal("forbidden"),
|
|
5974
6206
|
literal("identity-recovery-required"),
|
|
5975
6207
|
literal("conflict"),
|
|
5976
|
-
literal("state-in-use"),
|
|
5977
6208
|
literal("rate-limited"),
|
|
5978
6209
|
literal("group-membership-required"),
|
|
5979
6210
|
literal("group-identity-stale"),
|
|
@@ -6029,7 +6260,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6029
6260
|
literal("forbidden"),
|
|
6030
6261
|
literal("identity-recovery-required"),
|
|
6031
6262
|
literal("conflict"),
|
|
6032
|
-
literal("state-in-use"),
|
|
6033
6263
|
literal("rate-limited"),
|
|
6034
6264
|
literal("group-membership-required"),
|
|
6035
6265
|
literal("group-identity-stale"),
|
|
@@ -6079,6 +6309,54 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6079
6309
|
})]).readonly()
|
|
6080
6310
|
}).readonly()
|
|
6081
6311
|
})]);
|
|
6312
|
+
const _awiki_dsh_plugin_awiki_startDeviceJoinVerification_parameter_0$schema = object({ "requestRef": string().readonly() });
|
|
6313
|
+
const _awiki_dsh_plugin_awiki_startDeviceJoinVerification_result$schema = union([object({
|
|
6314
|
+
"ok": literal(false).readonly(),
|
|
6315
|
+
"error": object({
|
|
6316
|
+
"code": union([
|
|
6317
|
+
literal("not-registered"),
|
|
6318
|
+
literal("signed-out"),
|
|
6319
|
+
literal("already-registered"),
|
|
6320
|
+
literal("invalid-request"),
|
|
6321
|
+
literal("invalid-otp"),
|
|
6322
|
+
literal("challenge-expired"),
|
|
6323
|
+
literal("handle-unavailable"),
|
|
6324
|
+
literal("not-found"),
|
|
6325
|
+
literal("forbidden"),
|
|
6326
|
+
literal("identity-recovery-required"),
|
|
6327
|
+
literal("conflict"),
|
|
6328
|
+
literal("rate-limited"),
|
|
6329
|
+
literal("group-membership-required"),
|
|
6330
|
+
literal("group-identity-stale"),
|
|
6331
|
+
literal("attachment-too-large"),
|
|
6332
|
+
literal("summary-unavailable"),
|
|
6333
|
+
literal("summary-timeout"),
|
|
6334
|
+
literal("summary-cancelled"),
|
|
6335
|
+
literal("summary-invalid-output"),
|
|
6336
|
+
literal("summary-failed"),
|
|
6337
|
+
literal("delivery-unknown"),
|
|
6338
|
+
literal("network"),
|
|
6339
|
+
literal("remote")
|
|
6340
|
+
]).readonly(),
|
|
6341
|
+
"message": string().readonly()
|
|
6342
|
+
}).readonly()
|
|
6343
|
+
}), object({
|
|
6344
|
+
"ok": literal(true).readonly(),
|
|
6345
|
+
"value": object({
|
|
6346
|
+
"requestRef": string().readonly(),
|
|
6347
|
+
"phase": union([
|
|
6348
|
+
literal("pending"),
|
|
6349
|
+
literal("verifying"),
|
|
6350
|
+
literal("sas-ready"),
|
|
6351
|
+
literal("authorized"),
|
|
6352
|
+
literal("cancelled"),
|
|
6353
|
+
literal("rejected"),
|
|
6354
|
+
literal("expired")
|
|
6355
|
+
]).readonly(),
|
|
6356
|
+
"expiresAt": string().readonly(),
|
|
6357
|
+
"sas": string().readonly().optional()
|
|
6358
|
+
}).readonly()
|
|
6359
|
+
})]);
|
|
6082
6360
|
const _awiki_dsh_plugin_awiki_summarizeConversation_parameter_0$schema = object({
|
|
6083
6361
|
"conversationId": intersection(string(), unknown()).readonly(),
|
|
6084
6362
|
"unreadCountAtOpen": number().readonly().optional()
|
|
@@ -6098,7 +6376,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6098
6376
|
literal("forbidden"),
|
|
6099
6377
|
literal("identity-recovery-required"),
|
|
6100
6378
|
literal("conflict"),
|
|
6101
|
-
literal("state-in-use"),
|
|
6102
6379
|
literal("rate-limited"),
|
|
6103
6380
|
literal("group-membership-required"),
|
|
6104
6381
|
literal("group-identity-stale"),
|
|
@@ -6134,38 +6411,31 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6134
6411
|
})).readonly()
|
|
6135
6412
|
}).readonly()
|
|
6136
6413
|
})]);
|
|
6137
|
-
const _awiki_dsh_plugin_awiki_updateConversationPreference_parameter_0$schema = union([
|
|
6138
|
-
|
|
6139
|
-
|
|
6140
|
-
"
|
|
6141
|
-
|
|
6142
|
-
|
|
6143
|
-
|
|
6144
|
-
|
|
6145
|
-
|
|
6146
|
-
|
|
6147
|
-
|
|
6148
|
-
|
|
6149
|
-
|
|
6150
|
-
|
|
6151
|
-
|
|
6152
|
-
|
|
6153
|
-
|
|
6154
|
-
|
|
6155
|
-
|
|
6156
|
-
|
|
6157
|
-
|
|
6158
|
-
|
|
6159
|
-
|
|
6160
|
-
|
|
6161
|
-
|
|
6162
|
-
"conversationId": intersection(string(), unknown()).readonly()
|
|
6163
|
-
}),
|
|
6164
|
-
object({
|
|
6165
|
-
"action": literal("dismiss-group-recovery").readonly(),
|
|
6166
|
-
"signature": string().readonly()
|
|
6167
|
-
})
|
|
6168
|
-
]);
|
|
6414
|
+
const _awiki_dsh_plugin_awiki_updateConversationPreference_parameter_0$schema = union([object({
|
|
6415
|
+
"action": literal("hide").readonly(),
|
|
6416
|
+
"conversation": union([object({
|
|
6417
|
+
"kind": literal("group").readonly(),
|
|
6418
|
+
"id": intersection(string(), unknown()).readonly(),
|
|
6419
|
+
"groupDid": intersection(string(), unknown()).readonly(),
|
|
6420
|
+
"title": string().readonly(),
|
|
6421
|
+
"unreadCount": number().readonly().optional(),
|
|
6422
|
+
"lastMessageAt": number().readonly().optional(),
|
|
6423
|
+
"lastMessagePreview": string().readonly().optional()
|
|
6424
|
+
}), object({
|
|
6425
|
+
"kind": literal("direct").readonly(),
|
|
6426
|
+
"id": intersection(string(), unknown()).readonly(),
|
|
6427
|
+
"peerDid": intersection(string(), unknown()).readonly(),
|
|
6428
|
+
"peerHandle": intersection(string(), unknown()).readonly().optional(),
|
|
6429
|
+
"displayName": string().readonly().optional(),
|
|
6430
|
+
"title": string().readonly(),
|
|
6431
|
+
"unreadCount": number().readonly().optional(),
|
|
6432
|
+
"lastMessageAt": number().readonly().optional(),
|
|
6433
|
+
"lastMessagePreview": string().readonly().optional()
|
|
6434
|
+
})]).readonly()
|
|
6435
|
+
}), object({
|
|
6436
|
+
"action": literal("restore").readonly(),
|
|
6437
|
+
"conversationId": intersection(string(), unknown()).readonly()
|
|
6438
|
+
})]);
|
|
6169
6439
|
const _awiki_dsh_plugin_awiki_updateConversationPreference_result$schema = union([object({
|
|
6170
6440
|
"ok": literal(false).readonly(),
|
|
6171
6441
|
"error": object({
|
|
@@ -6181,7 +6451,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6181
6451
|
literal("forbidden"),
|
|
6182
6452
|
literal("identity-recovery-required"),
|
|
6183
6453
|
literal("conflict"),
|
|
6184
|
-
literal("state-in-use"),
|
|
6185
6454
|
literal("rate-limited"),
|
|
6186
6455
|
literal("group-membership-required"),
|
|
6187
6456
|
literal("group-identity-stale"),
|
|
@@ -6199,31 +6468,28 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6199
6468
|
}).readonly()
|
|
6200
6469
|
}), object({
|
|
6201
6470
|
"ok": literal(true).readonly(),
|
|
6202
|
-
"value": object({
|
|
6203
|
-
"
|
|
6204
|
-
"
|
|
6205
|
-
|
|
6206
|
-
|
|
6207
|
-
|
|
6208
|
-
|
|
6209
|
-
|
|
6210
|
-
|
|
6211
|
-
|
|
6212
|
-
|
|
6213
|
-
|
|
6214
|
-
|
|
6215
|
-
|
|
6216
|
-
|
|
6217
|
-
|
|
6218
|
-
|
|
6219
|
-
|
|
6220
|
-
|
|
6221
|
-
|
|
6222
|
-
|
|
6223
|
-
|
|
6224
|
-
})).readonly(),
|
|
6225
|
-
"dismissedGroupRecoverySignature": string().readonly().optional()
|
|
6226
|
-
}).readonly()
|
|
6471
|
+
"value": object({ "hiddenConversations": array(object({
|
|
6472
|
+
"conversation": union([object({
|
|
6473
|
+
"kind": literal("group").readonly(),
|
|
6474
|
+
"id": intersection(string(), unknown()).readonly(),
|
|
6475
|
+
"groupDid": intersection(string(), unknown()).readonly(),
|
|
6476
|
+
"title": string().readonly(),
|
|
6477
|
+
"unreadCount": number().readonly().optional(),
|
|
6478
|
+
"lastMessageAt": number().readonly().optional(),
|
|
6479
|
+
"lastMessagePreview": string().readonly().optional()
|
|
6480
|
+
}), object({
|
|
6481
|
+
"kind": literal("direct").readonly(),
|
|
6482
|
+
"id": intersection(string(), unknown()).readonly(),
|
|
6483
|
+
"peerDid": intersection(string(), unknown()).readonly(),
|
|
6484
|
+
"peerHandle": intersection(string(), unknown()).readonly().optional(),
|
|
6485
|
+
"displayName": string().readonly().optional(),
|
|
6486
|
+
"title": string().readonly(),
|
|
6487
|
+
"unreadCount": number().readonly().optional(),
|
|
6488
|
+
"lastMessageAt": number().readonly().optional(),
|
|
6489
|
+
"lastMessagePreview": string().readonly().optional()
|
|
6490
|
+
})]).readonly(),
|
|
6491
|
+
"hiddenAt": number().readonly()
|
|
6492
|
+
})).readonly() }).readonly()
|
|
6227
6493
|
})]);
|
|
6228
6494
|
const _awiki_dsh_plugin_awiki_updateDisplayName_parameter_0$schema = object({ "displayName": string().readonly() });
|
|
6229
6495
|
const _awiki_dsh_plugin_awiki_updateDisplayName_result$schema = union([object({
|
|
@@ -6241,7 +6507,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6241
6507
|
literal("forbidden"),
|
|
6242
6508
|
literal("identity-recovery-required"),
|
|
6243
6509
|
literal("conflict"),
|
|
6244
|
-
literal("state-in-use"),
|
|
6245
6510
|
literal("rate-limited"),
|
|
6246
6511
|
literal("group-membership-required"),
|
|
6247
6512
|
literal("group-identity-stale"),
|
|
@@ -6286,7 +6551,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6286
6551
|
literal("forbidden"),
|
|
6287
6552
|
literal("identity-recovery-required"),
|
|
6288
6553
|
literal("conflict"),
|
|
6289
|
-
literal("state-in-use"),
|
|
6290
6554
|
literal("rate-limited"),
|
|
6291
6555
|
literal("group-membership-required"),
|
|
6292
6556
|
literal("group-identity-stale"),
|
|
@@ -6339,7 +6603,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6339
6603
|
},
|
|
6340
6604
|
sourceLocation: {
|
|
6341
6605
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6342
|
-
"line":
|
|
6606
|
+
"line": 158,
|
|
6343
6607
|
"column": 9
|
|
6344
6608
|
}
|
|
6345
6609
|
},
|
|
@@ -6366,10 +6630,73 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6366
6630
|
},
|
|
6367
6631
|
sourceLocation: {
|
|
6368
6632
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6369
|
-
"line":
|
|
6633
|
+
"line": 188,
|
|
6370
6634
|
"column": 3
|
|
6371
6635
|
}
|
|
6372
6636
|
},
|
|
6637
|
+
{
|
|
6638
|
+
id: "@awiki/dsh-plugin#awiki/approveDeviceJoin",
|
|
6639
|
+
service: "awiki",
|
|
6640
|
+
namespace: "awiki",
|
|
6641
|
+
method: "approveDeviceJoin",
|
|
6642
|
+
invocation: { kind: "direct" },
|
|
6643
|
+
parameters: [{
|
|
6644
|
+
name: "request",
|
|
6645
|
+
wire: "request",
|
|
6646
|
+
source: "json",
|
|
6647
|
+
codec: {
|
|
6648
|
+
mode: "strict",
|
|
6649
|
+
typeSymbol: "@awiki/dsh-plugin/types#AwikiApproveDeviceJoinRequest",
|
|
6650
|
+
schema: _awiki_dsh_plugin_awiki_approveDeviceJoin_parameter_0$schema
|
|
6651
|
+
}
|
|
6652
|
+
}],
|
|
6653
|
+
result: {
|
|
6654
|
+
mode: "strict",
|
|
6655
|
+
typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
|
|
6656
|
+
schema: _awiki_dsh_plugin_awiki_approveDeviceJoin_result$schema
|
|
6657
|
+
},
|
|
6658
|
+
sourceLocation: {
|
|
6659
|
+
"file": "packages/dsh-awiki/src/index.ts",
|
|
6660
|
+
"line": 128,
|
|
6661
|
+
"column": 9
|
|
6662
|
+
}
|
|
6663
|
+
},
|
|
6664
|
+
{
|
|
6665
|
+
id: "@awiki/dsh-plugin#awiki/beginDeviceJoin",
|
|
6666
|
+
service: "awiki",
|
|
6667
|
+
namespace: "awiki",
|
|
6668
|
+
method: "beginDeviceJoin",
|
|
6669
|
+
invocation: { kind: "direct" },
|
|
6670
|
+
parameters: [],
|
|
6671
|
+
result: {
|
|
6672
|
+
mode: "strict",
|
|
6673
|
+
typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
|
|
6674
|
+
schema: _awiki_dsh_plugin_awiki_beginDeviceJoin_result$schema
|
|
6675
|
+
},
|
|
6676
|
+
sourceLocation: {
|
|
6677
|
+
"file": "packages/dsh-awiki/src/index.ts",
|
|
6678
|
+
"line": 111,
|
|
6679
|
+
"column": 9
|
|
6680
|
+
}
|
|
6681
|
+
},
|
|
6682
|
+
{
|
|
6683
|
+
id: "@awiki/dsh-plugin#awiki/cancelDeviceJoin",
|
|
6684
|
+
service: "awiki",
|
|
6685
|
+
namespace: "awiki",
|
|
6686
|
+
method: "cancelDeviceJoin",
|
|
6687
|
+
invocation: { kind: "direct" },
|
|
6688
|
+
parameters: [],
|
|
6689
|
+
result: {
|
|
6690
|
+
mode: "strict",
|
|
6691
|
+
typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
|
|
6692
|
+
schema: _awiki_dsh_plugin_awiki_cancelDeviceJoin_result$schema
|
|
6693
|
+
},
|
|
6694
|
+
sourceLocation: {
|
|
6695
|
+
"file": "packages/dsh-awiki/src/index.ts",
|
|
6696
|
+
"line": 117,
|
|
6697
|
+
"column": 9
|
|
6698
|
+
}
|
|
6699
|
+
},
|
|
6373
6700
|
{
|
|
6374
6701
|
id: "@awiki/dsh-plugin#awiki/clearLocalData",
|
|
6375
6702
|
service: "awiki",
|
|
@@ -6393,7 +6720,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6393
6720
|
},
|
|
6394
6721
|
sourceLocation: {
|
|
6395
6722
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6396
|
-
"line":
|
|
6723
|
+
"line": 243,
|
|
6397
6724
|
"column": 3
|
|
6398
6725
|
}
|
|
6399
6726
|
},
|
|
@@ -6420,7 +6747,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6420
6747
|
},
|
|
6421
6748
|
sourceLocation: {
|
|
6422
6749
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6423
|
-
"line":
|
|
6750
|
+
"line": 173,
|
|
6424
6751
|
"column": 9
|
|
6425
6752
|
}
|
|
6426
6753
|
},
|
|
@@ -6447,7 +6774,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6447
6774
|
},
|
|
6448
6775
|
sourceLocation: {
|
|
6449
6776
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6450
|
-
"line":
|
|
6777
|
+
"line": 167,
|
|
6451
6778
|
"column": 9
|
|
6452
6779
|
}
|
|
6453
6780
|
},
|
|
@@ -6474,71 +6801,62 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6474
6801
|
},
|
|
6475
6802
|
sourceLocation: {
|
|
6476
6803
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6477
|
-
"line":
|
|
6804
|
+
"line": 225,
|
|
6478
6805
|
"column": 9
|
|
6479
6806
|
}
|
|
6480
6807
|
},
|
|
6481
6808
|
{
|
|
6482
|
-
id: "@awiki/dsh-plugin#awiki/
|
|
6809
|
+
id: "@awiki/dsh-plugin#awiki/getConfig",
|
|
6483
6810
|
service: "awiki",
|
|
6484
6811
|
namespace: "awiki",
|
|
6485
|
-
method: "
|
|
6812
|
+
method: "getConfig",
|
|
6486
6813
|
invocation: { kind: "direct" },
|
|
6487
|
-
parameters: [
|
|
6488
|
-
name: "request",
|
|
6489
|
-
wire: "request",
|
|
6490
|
-
source: "json",
|
|
6491
|
-
codec: {
|
|
6492
|
-
mode: "strict",
|
|
6493
|
-
typeSymbol: "@awiki/dsh-plugin/types#AwikiMailAttachmentDownloadRequest",
|
|
6494
|
-
schema: _awiki_dsh_plugin_awiki_downloadMailAttachment_parameter_0$schema
|
|
6495
|
-
}
|
|
6496
|
-
}],
|
|
6814
|
+
parameters: [],
|
|
6497
6815
|
result: {
|
|
6498
6816
|
mode: "strict",
|
|
6499
6817
|
typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
|
|
6500
|
-
schema:
|
|
6818
|
+
schema: _awiki_dsh_plugin_awiki_getConfig_result$schema
|
|
6501
6819
|
},
|
|
6502
6820
|
sourceLocation: {
|
|
6503
6821
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6504
|
-
"line":
|
|
6822
|
+
"line": 85,
|
|
6505
6823
|
"column": 9
|
|
6506
6824
|
}
|
|
6507
6825
|
},
|
|
6508
6826
|
{
|
|
6509
|
-
id: "@awiki/dsh-plugin#awiki/
|
|
6827
|
+
id: "@awiki/dsh-plugin#awiki/getConversationPreferences",
|
|
6510
6828
|
service: "awiki",
|
|
6511
6829
|
namespace: "awiki",
|
|
6512
|
-
method: "
|
|
6830
|
+
method: "getConversationPreferences",
|
|
6513
6831
|
invocation: { kind: "direct" },
|
|
6514
6832
|
parameters: [],
|
|
6515
6833
|
result: {
|
|
6516
6834
|
mode: "strict",
|
|
6517
6835
|
typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
|
|
6518
|
-
schema:
|
|
6836
|
+
schema: _awiki_dsh_plugin_awiki_getConversationPreferences_result$schema
|
|
6519
6837
|
},
|
|
6520
6838
|
sourceLocation: {
|
|
6521
6839
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6522
|
-
"line":
|
|
6840
|
+
"line": 194,
|
|
6523
6841
|
"column": 3
|
|
6524
6842
|
}
|
|
6525
6843
|
},
|
|
6526
6844
|
{
|
|
6527
|
-
id: "@awiki/dsh-plugin#awiki/
|
|
6845
|
+
id: "@awiki/dsh-plugin#awiki/getDeviceJoinStatus",
|
|
6528
6846
|
service: "awiki",
|
|
6529
6847
|
namespace: "awiki",
|
|
6530
|
-
method: "
|
|
6848
|
+
method: "getDeviceJoinStatus",
|
|
6531
6849
|
invocation: { kind: "direct" },
|
|
6532
6850
|
parameters: [],
|
|
6533
6851
|
result: {
|
|
6534
6852
|
mode: "strict",
|
|
6535
6853
|
typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
|
|
6536
|
-
schema:
|
|
6854
|
+
schema: _awiki_dsh_plugin_awiki_getDeviceJoinStatus_result$schema
|
|
6537
6855
|
},
|
|
6538
6856
|
sourceLocation: {
|
|
6539
6857
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6540
|
-
"line":
|
|
6541
|
-
"column":
|
|
6858
|
+
"line": 114,
|
|
6859
|
+
"column": 9
|
|
6542
6860
|
}
|
|
6543
6861
|
},
|
|
6544
6862
|
{
|
|
@@ -6564,7 +6882,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6564
6882
|
},
|
|
6565
6883
|
sourceLocation: {
|
|
6566
6884
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6567
|
-
"line":
|
|
6885
|
+
"line": 176,
|
|
6568
6886
|
"column": 3
|
|
6569
6887
|
}
|
|
6570
6888
|
},
|
|
@@ -6591,7 +6909,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6591
6909
|
},
|
|
6592
6910
|
sourceLocation: {
|
|
6593
6911
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6594
|
-
"line":
|
|
6912
|
+
"line": 205,
|
|
6595
6913
|
"column": 3
|
|
6596
6914
|
}
|
|
6597
6915
|
},
|
|
@@ -6609,7 +6927,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6609
6927
|
},
|
|
6610
6928
|
sourceLocation: {
|
|
6611
6929
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6612
|
-
"line":
|
|
6930
|
+
"line": 88,
|
|
6613
6931
|
"column": 9
|
|
6614
6932
|
}
|
|
6615
6933
|
},
|
|
@@ -6636,7 +6954,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6636
6954
|
},
|
|
6637
6955
|
sourceLocation: {
|
|
6638
6956
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6639
|
-
"line":
|
|
6957
|
+
"line": 208,
|
|
6640
6958
|
"column": 3
|
|
6641
6959
|
}
|
|
6642
6960
|
},
|
|
@@ -6654,7 +6972,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6654
6972
|
},
|
|
6655
6973
|
sourceLocation: {
|
|
6656
6974
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6657
|
-
"line":
|
|
6975
|
+
"line": 228,
|
|
6658
6976
|
"column": 3
|
|
6659
6977
|
}
|
|
6660
6978
|
},
|
|
@@ -6672,7 +6990,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6672
6990
|
},
|
|
6673
6991
|
sourceLocation: {
|
|
6674
6992
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6675
|
-
"line":
|
|
6993
|
+
"line": 146,
|
|
6676
6994
|
"column": 3
|
|
6677
6995
|
}
|
|
6678
6996
|
},
|
|
@@ -6699,7 +7017,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6699
7017
|
},
|
|
6700
7018
|
sourceLocation: {
|
|
6701
7019
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6702
|
-
"line":
|
|
7020
|
+
"line": 161,
|
|
6703
7021
|
"column": 9
|
|
6704
7022
|
}
|
|
6705
7023
|
},
|
|
@@ -6717,7 +7035,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6717
7035
|
},
|
|
6718
7036
|
sourceLocation: {
|
|
6719
7037
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6720
|
-
"line":
|
|
7038
|
+
"line": 91,
|
|
6721
7039
|
"column": 9
|
|
6722
7040
|
}
|
|
6723
7041
|
},
|
|
@@ -6744,7 +7062,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6744
7062
|
},
|
|
6745
7063
|
sourceLocation: {
|
|
6746
7064
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6747
|
-
"line":
|
|
7065
|
+
"line": 100,
|
|
6748
7066
|
"column": 9
|
|
6749
7067
|
}
|
|
6750
7068
|
},
|
|
@@ -6771,7 +7089,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6771
7089
|
},
|
|
6772
7090
|
sourceLocation: {
|
|
6773
7091
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6774
|
-
"line":
|
|
7092
|
+
"line": 179,
|
|
6775
7093
|
"column": 3
|
|
6776
7094
|
}
|
|
6777
7095
|
},
|
|
@@ -6798,7 +7116,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6798
7116
|
},
|
|
6799
7117
|
sourceLocation: {
|
|
6800
7118
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6801
|
-
"line":
|
|
7119
|
+
"line": 182,
|
|
6802
7120
|
"column": 9
|
|
6803
7121
|
}
|
|
6804
7122
|
},
|
|
@@ -6826,7 +7144,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6826
7144
|
},
|
|
6827
7145
|
sourceLocation: {
|
|
6828
7146
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6829
|
-
"line":
|
|
7147
|
+
"line": 202,
|
|
6830
7148
|
"column": 3
|
|
6831
7149
|
}
|
|
6832
7150
|
},
|
|
@@ -6853,7 +7171,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6853
7171
|
},
|
|
6854
7172
|
sourceLocation: {
|
|
6855
7173
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6856
|
-
"line":
|
|
7174
|
+
"line": 185,
|
|
6857
7175
|
"column": 3
|
|
6858
7176
|
}
|
|
6859
7177
|
},
|
|
@@ -6881,7 +7199,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6881
7199
|
},
|
|
6882
7200
|
sourceLocation: {
|
|
6883
7201
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6884
|
-
"line":
|
|
7202
|
+
"line": 231,
|
|
6885
7203
|
"column": 9
|
|
6886
7204
|
}
|
|
6887
7205
|
},
|
|
@@ -6899,7 +7217,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6899
7217
|
},
|
|
6900
7218
|
sourceLocation: {
|
|
6901
7219
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6902
|
-
"line":
|
|
7220
|
+
"line": 97,
|
|
6903
7221
|
"column": 3
|
|
6904
7222
|
}
|
|
6905
7223
|
},
|
|
@@ -6926,7 +7244,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6926
7244
|
},
|
|
6927
7245
|
sourceLocation: {
|
|
6928
7246
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6929
|
-
"line":
|
|
7247
|
+
"line": 94,
|
|
6930
7248
|
"column": 3
|
|
6931
7249
|
}
|
|
6932
7250
|
},
|
|
@@ -6953,7 +7271,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6953
7271
|
},
|
|
6954
7272
|
sourceLocation: {
|
|
6955
7273
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6956
|
-
"line":
|
|
7274
|
+
"line": 216,
|
|
6957
7275
|
"column": 3
|
|
6958
7276
|
}
|
|
6959
7277
|
},
|
|
@@ -6980,7 +7298,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6980
7298
|
},
|
|
6981
7299
|
sourceLocation: {
|
|
6982
7300
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
6983
|
-
"line":
|
|
7301
|
+
"line": 237,
|
|
6984
7302
|
"column": 3
|
|
6985
7303
|
}
|
|
6986
7304
|
},
|
|
@@ -7007,7 +7325,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7007
7325
|
},
|
|
7008
7326
|
sourceLocation: {
|
|
7009
7327
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
7010
|
-
"line":
|
|
7328
|
+
"line": 155,
|
|
7011
7329
|
"column": 3
|
|
7012
7330
|
}
|
|
7013
7331
|
},
|
|
@@ -7034,10 +7352,28 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7034
7352
|
},
|
|
7035
7353
|
sourceLocation: {
|
|
7036
7354
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
7037
|
-
"line":
|
|
7355
|
+
"line": 234,
|
|
7038
7356
|
"column": 9
|
|
7039
7357
|
}
|
|
7040
7358
|
},
|
|
7359
|
+
{
|
|
7360
|
+
id: "@awiki/dsh-plugin#awiki/refreshDeviceManagement",
|
|
7361
|
+
service: "awiki",
|
|
7362
|
+
namespace: "awiki",
|
|
7363
|
+
method: "refreshDeviceManagement",
|
|
7364
|
+
invocation: { kind: "direct" },
|
|
7365
|
+
parameters: [],
|
|
7366
|
+
result: {
|
|
7367
|
+
mode: "strict",
|
|
7368
|
+
typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
|
|
7369
|
+
schema: _awiki_dsh_plugin_awiki_refreshDeviceManagement_result$schema
|
|
7370
|
+
},
|
|
7371
|
+
sourceLocation: {
|
|
7372
|
+
"file": "packages/dsh-awiki/src/index.ts",
|
|
7373
|
+
"line": 120,
|
|
7374
|
+
"column": 3
|
|
7375
|
+
}
|
|
7376
|
+
},
|
|
7041
7377
|
{
|
|
7042
7378
|
id: "@awiki/dsh-plugin#awiki/registerIdentity",
|
|
7043
7379
|
service: "awiki",
|
|
@@ -7061,7 +7397,34 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7061
7397
|
},
|
|
7062
7398
|
sourceLocation: {
|
|
7063
7399
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
7064
|
-
"line":
|
|
7400
|
+
"line": 108,
|
|
7401
|
+
"column": 9
|
|
7402
|
+
}
|
|
7403
|
+
},
|
|
7404
|
+
{
|
|
7405
|
+
id: "@awiki/dsh-plugin#awiki/rejectDeviceJoin",
|
|
7406
|
+
service: "awiki",
|
|
7407
|
+
namespace: "awiki",
|
|
7408
|
+
method: "rejectDeviceJoin",
|
|
7409
|
+
invocation: { kind: "direct" },
|
|
7410
|
+
parameters: [{
|
|
7411
|
+
name: "request",
|
|
7412
|
+
wire: "request",
|
|
7413
|
+
source: "json",
|
|
7414
|
+
codec: {
|
|
7415
|
+
mode: "strict",
|
|
7416
|
+
typeSymbol: "@awiki/dsh-plugin/types#AwikiRejectDeviceJoinRequest",
|
|
7417
|
+
schema: _awiki_dsh_plugin_awiki_rejectDeviceJoin_parameter_0$schema
|
|
7418
|
+
}
|
|
7419
|
+
}],
|
|
7420
|
+
result: {
|
|
7421
|
+
mode: "strict",
|
|
7422
|
+
typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
|
|
7423
|
+
schema: _awiki_dsh_plugin_awiki_rejectDeviceJoin_result$schema
|
|
7424
|
+
},
|
|
7425
|
+
sourceLocation: {
|
|
7426
|
+
"file": "packages/dsh-awiki/src/index.ts",
|
|
7427
|
+
"line": 133,
|
|
7065
7428
|
"column": 9
|
|
7066
7429
|
}
|
|
7067
7430
|
},
|
|
@@ -7088,7 +7451,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7088
7451
|
},
|
|
7089
7452
|
sourceLocation: {
|
|
7090
7453
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
7091
|
-
"line":
|
|
7454
|
+
"line": 191,
|
|
7092
7455
|
"column": 3
|
|
7093
7456
|
}
|
|
7094
7457
|
},
|
|
@@ -7115,33 +7478,42 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7115
7478
|
},
|
|
7116
7479
|
sourceLocation: {
|
|
7117
7480
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
7118
|
-
"line":
|
|
7481
|
+
"line": 170,
|
|
7119
7482
|
"column": 3
|
|
7120
7483
|
}
|
|
7121
7484
|
},
|
|
7122
7485
|
{
|
|
7123
|
-
id: "@awiki/dsh-plugin#awiki/
|
|
7486
|
+
id: "@awiki/dsh-plugin#awiki/resumeRecovery",
|
|
7124
7487
|
service: "awiki",
|
|
7125
7488
|
namespace: "awiki",
|
|
7126
|
-
method: "
|
|
7489
|
+
method: "resumeRecovery",
|
|
7127
7490
|
invocation: { kind: "direct" },
|
|
7128
|
-
parameters: [
|
|
7491
|
+
parameters: [{
|
|
7492
|
+
name: "request",
|
|
7493
|
+
wire: "request",
|
|
7494
|
+
source: "json",
|
|
7495
|
+
codec: {
|
|
7496
|
+
mode: "strict",
|
|
7497
|
+
typeSymbol: "@awiki/dsh-plugin/types#AwikiRecoveryOperationRequest",
|
|
7498
|
+
schema: _awiki_dsh_plugin_awiki_resumeRecovery_parameter_0$schema
|
|
7499
|
+
}
|
|
7500
|
+
}],
|
|
7129
7501
|
result: {
|
|
7130
7502
|
mode: "strict",
|
|
7131
7503
|
typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
|
|
7132
|
-
schema:
|
|
7504
|
+
schema: _awiki_dsh_plugin_awiki_resumeRecovery_result$schema
|
|
7133
7505
|
},
|
|
7134
7506
|
sourceLocation: {
|
|
7135
7507
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
7136
|
-
"line":
|
|
7508
|
+
"line": 164,
|
|
7137
7509
|
"column": 9
|
|
7138
7510
|
}
|
|
7139
7511
|
},
|
|
7140
7512
|
{
|
|
7141
|
-
id: "@awiki/dsh-plugin#awiki/
|
|
7513
|
+
id: "@awiki/dsh-plugin#awiki/revokeDevice",
|
|
7142
7514
|
service: "awiki",
|
|
7143
7515
|
namespace: "awiki",
|
|
7144
|
-
method: "
|
|
7516
|
+
method: "revokeDevice",
|
|
7145
7517
|
invocation: { kind: "direct" },
|
|
7146
7518
|
parameters: [{
|
|
7147
7519
|
name: "request",
|
|
@@ -7149,18 +7521,18 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7149
7521
|
source: "json",
|
|
7150
7522
|
codec: {
|
|
7151
7523
|
mode: "strict",
|
|
7152
|
-
typeSymbol: "@awiki/dsh-plugin/types#
|
|
7153
|
-
schema:
|
|
7524
|
+
typeSymbol: "@awiki/dsh-plugin/types#AwikiRevokeDeviceRequest",
|
|
7525
|
+
schema: _awiki_dsh_plugin_awiki_revokeDevice_parameter_0$schema
|
|
7154
7526
|
}
|
|
7155
7527
|
}],
|
|
7156
7528
|
result: {
|
|
7157
7529
|
mode: "strict",
|
|
7158
7530
|
typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
|
|
7159
|
-
schema:
|
|
7531
|
+
schema: _awiki_dsh_plugin_awiki_revokeDevice_result$schema
|
|
7160
7532
|
},
|
|
7161
7533
|
sourceLocation: {
|
|
7162
7534
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
7163
|
-
"line":
|
|
7535
|
+
"line": 138,
|
|
7164
7536
|
"column": 9
|
|
7165
7537
|
}
|
|
7166
7538
|
},
|
|
@@ -7187,7 +7559,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7187
7559
|
},
|
|
7188
7560
|
sourceLocation: {
|
|
7189
7561
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
7190
|
-
"line":
|
|
7562
|
+
"line": 222,
|
|
7191
7563
|
"column": 9
|
|
7192
7564
|
}
|
|
7193
7565
|
},
|
|
@@ -7214,7 +7586,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7214
7586
|
},
|
|
7215
7587
|
sourceLocation: {
|
|
7216
7588
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
7217
|
-
"line":
|
|
7589
|
+
"line": 240,
|
|
7218
7590
|
"column": 9
|
|
7219
7591
|
}
|
|
7220
7592
|
},
|
|
@@ -7237,19 +7609,46 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7237
7609
|
result: {
|
|
7238
7610
|
mode: "strict",
|
|
7239
7611
|
typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
|
|
7240
|
-
schema: _awiki_dsh_plugin_awiki_sendRecoveryOtp_result$schema
|
|
7612
|
+
schema: _awiki_dsh_plugin_awiki_sendRecoveryOtp_result$schema
|
|
7613
|
+
},
|
|
7614
|
+
sourceLocation: {
|
|
7615
|
+
"file": "packages/dsh-awiki/src/index.ts",
|
|
7616
|
+
"line": 152,
|
|
7617
|
+
"column": 3
|
|
7618
|
+
}
|
|
7619
|
+
},
|
|
7620
|
+
{
|
|
7621
|
+
id: "@awiki/dsh-plugin#awiki/sendRegistrationOtp",
|
|
7622
|
+
service: "awiki",
|
|
7623
|
+
namespace: "awiki",
|
|
7624
|
+
method: "sendRegistrationOtp",
|
|
7625
|
+
invocation: { kind: "direct" },
|
|
7626
|
+
parameters: [{
|
|
7627
|
+
name: "request",
|
|
7628
|
+
wire: "request",
|
|
7629
|
+
source: "json",
|
|
7630
|
+
codec: {
|
|
7631
|
+
mode: "strict",
|
|
7632
|
+
typeSymbol: "@awiki/dsh-plugin/types#AwikiRegistrationOtpRequest",
|
|
7633
|
+
schema: _awiki_dsh_plugin_awiki_sendRegistrationOtp_parameter_0$schema
|
|
7634
|
+
}
|
|
7635
|
+
}],
|
|
7636
|
+
result: {
|
|
7637
|
+
mode: "strict",
|
|
7638
|
+
typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
|
|
7639
|
+
schema: _awiki_dsh_plugin_awiki_sendRegistrationOtp_result$schema
|
|
7241
7640
|
},
|
|
7242
7641
|
sourceLocation: {
|
|
7243
7642
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
7244
|
-
"line":
|
|
7245
|
-
"column":
|
|
7643
|
+
"line": 105,
|
|
7644
|
+
"column": 9
|
|
7246
7645
|
}
|
|
7247
7646
|
},
|
|
7248
7647
|
{
|
|
7249
|
-
id: "@awiki/dsh-plugin#awiki/
|
|
7648
|
+
id: "@awiki/dsh-plugin#awiki/sendText",
|
|
7250
7649
|
service: "awiki",
|
|
7251
7650
|
namespace: "awiki",
|
|
7252
|
-
method: "
|
|
7651
|
+
method: "sendText",
|
|
7253
7652
|
invocation: { kind: "direct" },
|
|
7254
7653
|
parameters: [{
|
|
7255
7654
|
name: "request",
|
|
@@ -7257,26 +7656,26 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7257
7656
|
source: "json",
|
|
7258
7657
|
codec: {
|
|
7259
7658
|
mode: "strict",
|
|
7260
|
-
typeSymbol: "@awiki/dsh-plugin/types#
|
|
7261
|
-
schema:
|
|
7659
|
+
typeSymbol: "@awiki/dsh-plugin/types#AwikiSendTextRequest",
|
|
7660
|
+
schema: _awiki_dsh_plugin_awiki_sendText_parameter_0$schema
|
|
7262
7661
|
}
|
|
7263
7662
|
}],
|
|
7264
7663
|
result: {
|
|
7265
7664
|
mode: "strict",
|
|
7266
7665
|
typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
|
|
7267
|
-
schema:
|
|
7666
|
+
schema: _awiki_dsh_plugin_awiki_sendText_result$schema
|
|
7268
7667
|
},
|
|
7269
7668
|
sourceLocation: {
|
|
7270
7669
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
7271
|
-
"line":
|
|
7670
|
+
"line": 219,
|
|
7272
7671
|
"column": 3
|
|
7273
7672
|
}
|
|
7274
7673
|
},
|
|
7275
7674
|
{
|
|
7276
|
-
id: "@awiki/dsh-plugin#awiki/
|
|
7675
|
+
id: "@awiki/dsh-plugin#awiki/startDeviceJoinVerification",
|
|
7277
7676
|
service: "awiki",
|
|
7278
7677
|
namespace: "awiki",
|
|
7279
|
-
method: "
|
|
7678
|
+
method: "startDeviceJoinVerification",
|
|
7280
7679
|
invocation: { kind: "direct" },
|
|
7281
7680
|
parameters: [{
|
|
7282
7681
|
name: "request",
|
|
@@ -7284,19 +7683,19 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7284
7683
|
source: "json",
|
|
7285
7684
|
codec: {
|
|
7286
7685
|
mode: "strict",
|
|
7287
|
-
typeSymbol: "@awiki/dsh-plugin/types#
|
|
7288
|
-
schema:
|
|
7686
|
+
typeSymbol: "@awiki/dsh-plugin/types#AwikiRequestRefInput",
|
|
7687
|
+
schema: _awiki_dsh_plugin_awiki_startDeviceJoinVerification_parameter_0$schema
|
|
7289
7688
|
}
|
|
7290
7689
|
}],
|
|
7291
7690
|
result: {
|
|
7292
7691
|
mode: "strict",
|
|
7293
7692
|
typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
|
|
7294
|
-
schema:
|
|
7693
|
+
schema: _awiki_dsh_plugin_awiki_startDeviceJoinVerification_result$schema
|
|
7295
7694
|
},
|
|
7296
7695
|
sourceLocation: {
|
|
7297
7696
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
7298
|
-
"line":
|
|
7299
|
-
"column":
|
|
7697
|
+
"line": 123,
|
|
7698
|
+
"column": 9
|
|
7300
7699
|
}
|
|
7301
7700
|
},
|
|
7302
7701
|
{
|
|
@@ -7322,7 +7721,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7322
7721
|
},
|
|
7323
7722
|
sourceLocation: {
|
|
7324
7723
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
7325
|
-
"line":
|
|
7724
|
+
"line": 211,
|
|
7326
7725
|
"column": 9
|
|
7327
7726
|
}
|
|
7328
7727
|
},
|
|
@@ -7349,7 +7748,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7349
7748
|
},
|
|
7350
7749
|
sourceLocation: {
|
|
7351
7750
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
7352
|
-
"line":
|
|
7751
|
+
"line": 197,
|
|
7353
7752
|
"column": 3
|
|
7354
7753
|
}
|
|
7355
7754
|
},
|
|
@@ -7376,7 +7775,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7376
7775
|
},
|
|
7377
7776
|
sourceLocation: {
|
|
7378
7777
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
7379
|
-
"line":
|
|
7778
|
+
"line": 143,
|
|
7380
7779
|
"column": 9
|
|
7381
7780
|
}
|
|
7382
7781
|
},
|
|
@@ -7403,7 +7802,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7403
7802
|
},
|
|
7404
7803
|
sourceLocation: {
|
|
7405
7804
|
"file": "packages/dsh-awiki/src/index.ts",
|
|
7406
|
-
"line":
|
|
7805
|
+
"line": 149,
|
|
7407
7806
|
"column": 3
|
|
7408
7807
|
}
|
|
7409
7808
|
}
|
|
@@ -7432,13 +7831,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7432
7831
|
const AWIKI_CLEAR_LOCAL_DATA_CONFIRMATION = "clear-awiki-local-data";
|
|
7433
7832
|
//#endregion
|
|
7434
7833
|
//#region \0dsh-awiki-css:AwikiIdentityPage.module.css.mjs
|
|
7435
|
-
const css$
|
|
7436
|
-
const tagId$
|
|
7437
|
-
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$
|
|
7834
|
+
const css$5 = "._0dbJua_page{width:100%;height:100%;min-height:0;color:var(--dsw-alias-label-secondary);grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden}._0dbJua_navigation{box-sizing:border-box;align-items:center;min-height:44px;padding:8px 16px 0;display:flex}._0dbJua_backButton{min-height:36px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 8px;font-size:12px;line-height:18px;display:inline-flex}._0dbJua_backButton:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._0dbJua_backButton:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}._0dbJua_backButton:disabled{cursor:default;opacity:.5}._0dbJua_viewport{min-height:0;overflow:auto}._0dbJua_content{box-sizing:border-box;align-content:center;width:min(400px,100%);min-height:100%;margin:0 auto;padding:28px 32px;display:grid}@media (height<=560px){._0dbJua_navigation{min-height:36px;padding:4px 8px 0}._0dbJua_backButton{min-height:32px}._0dbJua_content{align-content:start;padding:12px 16px}}@media (prefers-reduced-motion:reduce){._0dbJua_backButton{transition-duration:.001ms!important}}";
|
|
7835
|
+
const tagId$5 = "@awiki/dsh-plugin/AwikiIdentityPage.module.css";
|
|
7836
|
+
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
|
|
7438
7837
|
const tag = document.createElement("style");
|
|
7439
7838
|
tag.dataset.plugin = "@awiki/dsh-plugin";
|
|
7440
|
-
tag.dataset.pluginCss = tagId$
|
|
7441
|
-
tag.textContent = css$
|
|
7839
|
+
tag.dataset.pluginCss = tagId$5;
|
|
7840
|
+
tag.textContent = css$5;
|
|
7442
7841
|
document.head.appendChild(tag);
|
|
7443
7842
|
}
|
|
7444
7843
|
var _dsh_awiki_css_AwikiIdentityPage_module_css_default = {
|
|
@@ -7476,13 +7875,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7476
7875
|
}
|
|
7477
7876
|
//#endregion
|
|
7478
7877
|
//#region \0dsh-awiki-css:AwikiOverlay.module.css.mjs
|
|
7479
|
-
const css$3 = ".EtEeYG_trigger{z-index:2;border:1px solid var(--dsw-alias-border-l2);width:48px;height:48px;color:var(--dsw-alias-brand-primary);box-shadow:var(--dsw-shadow-lv2);cursor:grab;font:inherit;touch-action:none;user-select:none;background:#fff;border-radius:50%;place-items:center;padding:0;display:grid;position:fixed;overflow:visible}.EtEeYG_trigger:hover{box-shadow:var(--dsw-shadow-lv3);background:#fff}.EtEeYG_trigger:active,.EtEeYG_trigger[data-dragging]{cursor:grabbing}.EtEeYG_launcherIcon{object-fit:cover;pointer-events:none;border-radius:50%;width:100%;height:100%;display:block}.EtEeYG_unreadBadge{border:2px solid var(--dsw-alias-bg-base);background:var(--dsw-alias-state-error-primary);color:#fff;box-sizing:border-box;pointer-events:none;border-radius:10px;place-items:center;min-width:20px;height:20px;padding:0 5px;font-size:11px;font-weight:600;line-height:16px;display:grid;position:absolute;top:-5px;right:-5px}.EtEeYG_trigger:focus-visible,.EtEeYG_drawer button:focus-visible,.EtEeYG_drawer input:focus-visible,.EtEeYG_drawer textarea:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}.EtEeYG_drawer{--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);z-index:1;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:min(720px,100vw - 80px);min-width:min(360px,100vw - 80px);height:min(720px,100vh - 16px);color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv3);border-radius:16px;flex-direction:column;transition:width .16s;display:flex;position:fixed;overflow:hidden}.EtEeYG_drawer[data-mode=mail]{width:min(1040px,100vw - 80px)}.EtEeYG_drawer[data-resizing]{user-select:none;transition:none}.EtEeYG_resizeHandle{z-index:5;touch-action:none;user-select:none;position:absolute}.EtEeYG_resizeHandle[data-resize-handle=n],.EtEeYG_resizeHandle[data-resize-handle=s]{cursor:ns-resize;height:8px;left:14px;right:14px}.EtEeYG_resizeHandle[data-resize-handle=n]{top:0}.EtEeYG_resizeHandle[data-resize-handle=s]{bottom:0}.EtEeYG_resizeHandle[data-resize-handle=e],.EtEeYG_resizeHandle[data-resize-handle=w]{cursor:ew-resize;width:8px;top:14px;bottom:14px}.EtEeYG_resizeHandle[data-resize-handle=e]{right:0}.EtEeYG_resizeHandle[data-resize-handle=w]{left:0}.EtEeYG_resizeHandle[data-resize-handle=ne],.EtEeYG_resizeHandle[data-resize-handle=se],.EtEeYG_resizeHandle[data-resize-handle=sw],.EtEeYG_resizeHandle[data-resize-handle=nw]{width:14px;height:14px}.EtEeYG_resizeHandle[data-resize-handle=ne]{cursor:nesw-resize;top:0;right:0}.EtEeYG_resizeHandle[data-resize-handle=se]{cursor:nwse-resize;bottom:0;right:0}.EtEeYG_resizeHandle[data-resize-handle=sw]{cursor:nesw-resize;bottom:0;left:0}.EtEeYG_resizeHandle[data-resize-handle=nw]{cursor:nwse-resize;top:0;left:0}.EtEeYG_drawerHeader{border-bottom:1px solid var(--dsw-alias-border-l1);cursor:grab;touch-action:none;user-select:none;flex:none;align-items:center;gap:8px;height:58px;padding:0 14px 0 18px;display:flex}.EtEeYG_drawerHeader[data-dragging]{cursor:grabbing}.EtEeYG_drawerHeader>div{flex:1;align-items:center;gap:8px;display:flex}.EtEeYG_drawerHeader h2{margin:0;font-size:16px;line-height:24px}.EtEeYG_drawerHeader button,.EtEeYG_back{cursor:pointer;width:32px;height:32px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;padding:0;display:grid}.EtEeYG_drawerHeader button:hover,.EtEeYG_back:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_centerState,.EtEeYG_threadEmpty{text-align:center;color:var(--dsw-alias-label-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;padding:32px;display:flex}.EtEeYG_centerState p{overflow-wrap:anywhere;max-width:420px;margin:0}.EtEeYG_registrationIcon{background:var(--dsw-alias-interactive-bg-active);width:48px;height:48px;color:var(--dsw-alias-brand-primary);border-radius:50%;justify-self:center;place-items:center;display:grid}.EtEeYG_fileDraft input,.EtEeYG_composeRow textarea{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);width:100%;color:var(--dsw-alias-label-primary);font:inherit;border-radius:10px}.EtEeYG_primary,.EtEeYG_more,.EtEeYG_fileDraft button{background:var(--dsw-alias-button-primary-fill);min-height:36px;color:var(--dsw-alias-label-primary-inverted);cursor:pointer;font:inherit;border:0;border-radius:10px;padding:0 14px}.EtEeYG_primary:hover,.EtEeYG_fileDraft button:hover{background:var(--dsw-alias-button-primary-hover)}.EtEeYG_primary:disabled,.EtEeYG_fileDraft button:disabled{opacity:.5;cursor:default}.EtEeYG_secondary{border:1px solid var(--dsw-alias-border-l2);min-height:36px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;background:0 0;border-radius:10px;padding:0 14px}.EtEeYG_secondary:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_composeBackdrop{background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 72%, transparent);place-items:center;padding:24px;display:grid;position:absolute;inset:58px 0 0;overflow:auto}.EtEeYG_composeCard{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);width:min(360px,100%);box-shadow:var(--dsw-shadow-lv3);border-radius:14px;gap:12px;padding:20px;display:grid}.EtEeYG_composeCard h3{margin:0;font-size:16px;line-height:24px}.EtEeYG_composeCard p{color:var(--dsw-alias-label-secondary);margin:0;font-size:13px;line-height:20px}.EtEeYG_composeCard label{color:var(--dsw-alias-label-secondary);gap:6px;font-size:13px;line-height:20px;display:grid}.EtEeYG_composeCard input,.EtEeYG_composeCard textarea{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:100%;color:var(--dsw-alias-label-primary);font:inherit;border-radius:10px;padding:9px 12px}.EtEeYG_composeCard input{height:40px;padding-block:0}.EtEeYG_composeCard textarea{resize:vertical;min-height:92px}.EtEeYG_composeActions{justify-content:flex-end;gap:8px;display:flex}.EtEeYG_logoutWarning{color:var(--dsw-alias-label-secondary);gap:8px;font-size:13px;line-height:20px;display:grid}.EtEeYG_logoutWarning p{margin:0}.EtEeYG_logoutConfirm{border-color:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-state-error-primary)}.EtEeYG_compactModal.EtEeYG_compactModal{max-height:calc(100vh - 48px)}.EtEeYG_compactModalContent{min-height:0;overflow-y:auto}.EtEeYG_linkButton{color:var(--dsw-alias-brand-primary);cursor:pointer;background:0 0;border:0}.EtEeYG_notice{color:var(--dsw-alias-state-success-primary);text-align:center}.EtEeYG_identityAccess{flex:1;min-height:0;overflow:hidden}.EtEeYG_recoveryForm{width:100%;min-width:0;color:var(--dsw-alias-label-secondary);gap:14px;display:grid}.EtEeYG_recoveryForm h3{color:var(--dsw-alias-label-primary);text-align:center;margin:0}.EtEeYG_recoveryForm>p{text-align:center;margin:0;font-size:13px;line-height:20px}.EtEeYG_recoveryForm>label:not(.EtEeYG_recoveryConfirmation){gap:6px;font-size:13px;line-height:20px;display:grid}.EtEeYG_recoveryForm>label>input:not([type=checkbox]){box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);width:100%;height:40px;color:var(--dsw-alias-label-primary);font:inherit;border-radius:8px;padding:0 12px}.EtEeYG_recoveryForm input:focus-visible,.EtEeYG_recoveryForm button:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}.EtEeYG_recoveryStatusLine{border-bottom:1px solid var(--dsw-alias-border-l1);gap:3px;min-width:0;padding-bottom:10px;display:grid}.EtEeYG_recoveryStatusLine span{color:var(--dsw-alias-brand-primary);font-size:12px;font-weight:600}.EtEeYG_recoveryIdentitySummary{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);border-radius:8px;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;min-width:0;padding:12px;font-size:12px;line-height:18px;display:grid}.EtEeYG_recoveryIdentitySummary span{color:var(--dsw-alias-label-tertiary)}.EtEeYG_recoveryIdentitySummary strong{overflow-wrap:anywhere;min-width:0;color:var(--dsw-alias-label-primary)}.EtEeYG_recoveryDiagnostics{border-top:1px solid var(--dsw-alias-border-l1);min-width:0;color:var(--dsw-alias-label-tertiary);padding-top:2px;font-size:11px;line-height:17px}.EtEeYG_recoveryDiagnostics summary{cursor:pointer;width:max-content;color:var(--dsw-alias-label-secondary);user-select:none}.EtEeYG_recoveryDiagnostics summary:hover{color:var(--dsw-alias-label-primary)}.EtEeYG_recoveryDiagnostics summary:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px;border-radius:4px}.EtEeYG_recoveryDiagnostics dl{gap:6px;margin:8px 0 0;display:grid}.EtEeYG_recoveryDiagnostics dl>div{gap:2px;min-width:0;display:grid}.EtEeYG_recoveryDiagnostics dt{color:var(--dsw-alias-label-tertiary)}.EtEeYG_recoveryDiagnostics dd{min-width:0;margin:0}.EtEeYG_recoveryDiagnostics code{overflow-wrap:anywhere;color:var(--dsw-alias-label-secondary);font-size:10px;line-height:16px;display:block}.EtEeYG_recoveryImpact{border-left:3px solid var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-2);gap:6px;padding:12px;display:grid}.EtEeYG_recoveryImpact p{align-items:flex-start;gap:7px;margin:0;font-size:12px;line-height:18px;display:flex}.EtEeYG_recoveryImpact svg{flex:none;margin-top:2px}.EtEeYG_recoveryImpact p[data-tone=success] svg{color:var(--dsw-alias-state-success-primary)}.EtEeYG_recoveryImpact p[data-tone=neutral] svg{color:var(--dsw-alias-label-tertiary)}.EtEeYG_recoveryHandle{overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);text-align:center;margin:-8px 0 0;font-size:13px;line-height:20px}.EtEeYG_recoveryConfirmationCopy{color:var(--dsw-alias-label-secondary);text-align:left;margin:0;font-size:12px;line-height:18px}.EtEeYG_recoveryProgressPanel{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);text-align:center;border-radius:8px;justify-items:center;gap:10px;min-width:0;padding:16px;display:grid}.EtEeYG_recoveryProgressPanel>svg{color:var(--dsw-alias-brand-primary);animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_recoveryProgressPanel p{margin:0;font-size:12px;line-height:18px}.EtEeYG_recoveryProgressPanel button{justify-content:center;align-items:center;gap:6px;width:100%;display:flex}.EtEeYG_chat{flex:1;grid-template-columns:240px minmax(0,1fr);min-height:0;display:grid}.EtEeYG_roster{border-right:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);flex-direction:column;min-width:0;display:flex}.EtEeYG_identityCard{background:var(--dsw-alias-bg-layer-3);border-radius:12px;flex-direction:column;gap:2px;margin:14px;padding:12px;display:flex}.EtEeYG_identityNameRow{align-items:center;min-width:0;min-height:24px;display:flex}.EtEeYG_profileAvatar{background:var(--dsw-alias-interactive-bg-active);width:24px;height:24px;color:var(--dsw-alias-brand-primary);border-radius:50%;flex:none;place-items:center;margin-right:7px;display:grid}.EtEeYG_identityNameText{min-width:0;color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;line-height:22px;overflow:hidden}.EtEeYG_identityName{min-width:0;color:var(--dsw-alias-label-primary);font:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;background:0 0;border:0;flex:1;padding:0;font-size:16px;font-weight:600;line-height:24px;overflow:hidden}.EtEeYG_identityName:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px;border-radius:4px}.EtEeYG_identityEdit{width:24px;height:24px;color:var(--dsw-alias-label-secondary);cursor:pointer;opacity:.72;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;margin-left:4px;padding:0;transition:opacity .12s;display:grid}.EtEeYG_identityNameRow:hover .EtEeYG_identityEdit,.EtEeYG_identityNameRow:focus-within .EtEeYG_identityEdit{opacity:1}.EtEeYG_identityEdit:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_identityEditor{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.EtEeYG_identityEditor input{border:1px solid var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-1);min-width:0;height:28px;color:var(--dsw-alias-label-primary);font:inherit;border-radius:7px;outline:none;flex:1;padding:0 8px;font-size:13px}.EtEeYG_identityEditor button{width:26px;height:26px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_identityEditor button:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_identityEditor button:disabled,.EtEeYG_identityName:disabled{cursor:default;opacity:.5}.EtEeYG_identityEdit:disabled{cursor:default}.EtEeYG_identityHandle{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.EtEeYG_identityStatus{color:var(--dsw-alias-state-success-primary);margin-top:4px;font-size:12px;line-height:18px}.EtEeYG_identityError{color:var(--dsw-alias-state-error-primary);margin-top:4px;font-size:11px;line-height:16px}.EtEeYG_identityCard i{background:var(--dsw-alias-state-success-primary);border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.EtEeYG_profileBio{color:var(--dsw-alias-label-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:6px 0 2px;font-size:11px;line-height:17px;display:-webkit-box;overflow:hidden}.EtEeYG_profileTags{flex-wrap:wrap;gap:4px;margin-top:5px;display:flex}.EtEeYG_profileTags>span{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);min-width:0;max-width:100%;min-height:20px;color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;border-radius:7px;align-items:center;gap:3px;padding:0 6px;font-size:10px;line-height:16px;display:inline-flex}.EtEeYG_profileTags>span>button{width:16px;height:16px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:0;display:grid}.EtEeYG_profileTags>span>button:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_profileEditor{gap:10px;display:grid}.EtEeYG_profileEditor label{color:var(--dsw-alias-label-secondary);gap:4px;font-size:11px;line-height:16px;display:grid;position:relative}.EtEeYG_profileEditor label>small{color:var(--dsw-alias-label-tertiary);font-size:10px;position:absolute;top:0;right:1px}.EtEeYG_profileEditor input,.EtEeYG_profileEditor textarea{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:100%;color:var(--dsw-alias-label-primary);font:inherit;border-radius:7px;padding:7px 8px;font-size:12px}.EtEeYG_profileEditor input{height:32px;padding-block:0}.EtEeYG_profileEditor textarea{resize:vertical}.EtEeYG_profileTagEditor{gap:4px;display:grid}.EtEeYG_profileTagEditor>div:first-of-type{grid-template-columns:minmax(0,1fr) 30px;gap:5px;display:grid}.EtEeYG_profileTagEditor>div:first-of-type button{border:1px solid var(--dsw-alias-border-l2);width:30px;height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border-radius:7px;place-items:center;padding:0;display:grid}.EtEeYG_profileEditorActions{grid-template-columns:1fr 1fr;gap:6px;margin-top:2px;display:grid}.EtEeYG_profileEditorActions button{min-width:0;padding-inline:6px;font-size:12px}.EtEeYG_modePanel{flex:1;min-height:0;display:none}.EtEeYG_modePanel[data-active]{display:flex}.EtEeYG_modeTabs{background:var(--dsw-alias-bg-layer-3);border-radius:9px;grid-template-columns:1fr 1fr;gap:4px;margin:0 14px 12px;padding:3px;display:grid}.EtEeYG_modeTabs button{min-height:30px;color:var(--dsw-alias-label-tertiary);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;gap:5px;padding:0 8px;font-size:12px;line-height:18px;display:flex}.EtEeYG_modeTabs button:hover{color:var(--dsw-alias-label-primary)}.EtEeYG_modeTabs button[aria-selected=true]{background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv1)}.EtEeYG_modeTabs small{min-width:18px;color:var(--dsw-alias-brand-primary);font-size:10px;line-height:14px}.EtEeYG_rosterHeader{justify-content:space-between;align-items:center;min-height:32px;padding:0 8px 8px 16px;display:flex}.EtEeYG_rosterTitle{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}.EtEeYG_rosterActions{align-items:center;gap:2px;display:flex}.EtEeYG_rosterAction{width:32px;height:32px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;padding:0;display:grid}.EtEeYG_rosterAction:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_rosterActions .EtEeYG_rosterAction{position:relative}.EtEeYG_rosterActions .EtEeYG_rosterAction small{background:var(--dsw-alias-bg-layer-3);min-width:14px;height:14px;color:var(--dsw-alias-label-secondary);box-sizing:border-box;border-radius:7px;place-items:center;padding:0 3px;font-size:9px;line-height:12px;display:grid;position:absolute;top:1px;right:0}.EtEeYG_groupRecoveryNotice{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:8px;align-items:flex-start;gap:8px;margin:0 8px 8px;padding:9px 10px;display:flex}.EtEeYG_groupRecoveryNotice[data-status=blocked]{border-color:var(--dsw-alias-state-error-primary)}.EtEeYG_groupRecoveryNotice>span{flex:1;gap:2px;min-width:0;display:grid}.EtEeYG_groupRecoveryNotice strong{font-size:12px;line-height:18px}.EtEeYG_groupRecoveryNotice small{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.EtEeYG_groupRecoveryNotice button{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_groupRecoveryNotice button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_groupRecoveryNotice button:disabled{cursor:default;opacity:.5}.EtEeYG_conversationList{flex:1;min-height:0;padding:0 8px;overflow:auto}.EtEeYG_conversationRow{width:100%;color:inherit;background:0 0;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.EtEeYG_conversationRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_conversationRow[data-active]{background:var(--dsw-alias-interactive-bg-active)}.EtEeYG_conversationSelect{width:100%;min-width:0;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:9px;display:flex}.EtEeYG_conversationMenu{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:7px;place-items:center;margin-right:5px;padding:0;display:grid}.EtEeYG_conversationRow:hover .EtEeYG_conversationMenu,.EtEeYG_conversationRow:focus-within .EtEeYG_conversationMenu,.EtEeYG_conversationMenu[aria-expanded=true]{opacity:1}.EtEeYG_conversationMenu:hover{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-primary)}.EtEeYG_conversationMenu:disabled{cursor:default;opacity:.45}.EtEeYG_avatar{background:var(--dsw-alias-interactive-bg-active);width:34px;height:34px;color:var(--dsw-alias-brand-primary);border-radius:50%;flex:none;place-items:center;font-size:12px;line-height:18px;display:grid;position:relative;overflow:visible}.EtEeYG_conversationUnreadBadge{border:2px solid var(--dsw-alias-bg-layer-2);background:var(--dsw-alias-state-error-primary);min-width:18px;height:18px;color:var(--dsw-alias-label-primary-inverted);box-sizing:border-box;pointer-events:none;border-radius:9px;place-items:center;padding:0 4px;font-size:10px;font-weight:600;line-height:14px;display:grid;position:absolute;top:-6px;right:-7px}.EtEeYG_conversationText{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.EtEeYG_conversationHeader{align-items:center;gap:8px;min-width:0;display:flex}.EtEeYG_conversationHeader strong{flex:1;min-width:0}.EtEeYG_conversationTime{color:var(--dsw-alias-label-tertiary);flex:none;font-size:11px;font-weight:400;line-height:16px}.EtEeYG_conversationText strong,.EtEeYG_conversationText small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_conversationText strong{font-size:13px;line-height:20px}.EtEeYG_conversationText small{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.EtEeYG_more{background:var(--dsw-alias-button-elevated-fill);color:var(--dsw-alias-label-secondary);margin:8px}.EtEeYG_more:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_hiddenConversationList{max-height:min(320px,48vh);display:grid;overflow:auto}.EtEeYG_hiddenConversationRow{border-bottom:1px solid var(--dsw-alias-border-l1);grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:50px;padding:6px 2px;display:grid}.EtEeYG_hiddenConversationRow:last-child{border-bottom:0}.EtEeYG_hiddenConversationRow .EtEeYG_avatar{width:30px;height:30px}.EtEeYG_hiddenConversationRow>span:nth-child(2){min-width:0;display:grid}.EtEeYG_hiddenConversationRow strong,.EtEeYG_hiddenConversationRow small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_hiddenConversationRow strong{font-size:12px;line-height:18px}.EtEeYG_hiddenConversationRow small{color:var(--dsw-alias-label-tertiary);font-size:10px;line-height:15px}.EtEeYG_hiddenConversationRow>button{border:1px solid var(--dsw-alias-border-l2);min-height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;background:0 0;border-radius:7px;padding:0 9px;font-size:11px}.EtEeYG_hiddenConversationRow>button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_hiddenConversationRow>button:disabled{cursor:default;opacity:.55}.EtEeYG_conversationPreferenceError{color:var(--dsw-alias-state-error-primary);font-size:11px;line-height:17px}.EtEeYG_thread{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.EtEeYG_threadHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:8px;height:56px;padding:0 14px;display:flex}.EtEeYG_threadTitle{flex-direction:column;flex:1;min-width:0;display:flex}.EtEeYG_threadTitle strong,.EtEeYG_threadTitle small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_threadHeader small{color:var(--dsw-alias-label-tertiary)}.EtEeYG_threadAction{width:30px;height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_threadAction:hover,.EtEeYG_threadAction[aria-expanded=true]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_groupAccessNotice{border-bottom:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);flex:none;grid-template-columns:20px minmax(0,1fr) auto;align-items:start;gap:8px 10px;padding:11px 14px;display:grid}.EtEeYG_groupAccessNotice[data-status=blocked],.EtEeYG_groupAccessNotice[data-status=not-member]{background:var(--dsw-alias-interactive-bg-hover-danger)}.EtEeYG_groupAccessNotice[data-compact]{grid-template-columns:20px minmax(0,1fr);padding:12px 16px}.EtEeYG_groupAccessIcon{min-height:20px;color:var(--dsw-alias-label-secondary);place-items:center;display:grid}.EtEeYG_groupAccessNotice[data-status=loading] .EtEeYG_groupAccessIcon svg,.EtEeYG_groupAccessNotice[data-status=recovering] .EtEeYG_groupAccessIcon svg{animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_groupAccessCopy{gap:2px;min-width:0;display:grid}.EtEeYG_groupAccessCopy strong{font-size:12px;line-height:18px}.EtEeYG_groupAccessCopy small{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;font-size:11px;line-height:17px}.EtEeYG_groupAccessActions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.EtEeYG_groupAccessNotice[data-compact] .EtEeYG_groupAccessActions{grid-column:2;justify-content:flex-start}.EtEeYG_groupAccessActions button{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);min-height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;border-radius:7px;justify-content:center;align-items:center;gap:5px;padding:0 8px;font-size:11px;line-height:16px;display:flex}.EtEeYG_groupAccessActions button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_groupAccessActions button:disabled{cursor:default;opacity:.55}.EtEeYG_groupDetails{z-index:4;border-left:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:min(360px,100%);min-width:0;box-shadow:var(--dsw-shadow-lv2);flex-direction:column;display:flex;position:absolute;top:56px;bottom:0;right:0;overflow:hidden}.EtEeYG_groupDetailsHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:12px;min-height:54px;padding:0 12px 0 16px;display:flex}.EtEeYG_groupDetailsHeader>div{flex-direction:column;flex:1;min-width:0;display:flex}.EtEeYG_groupDetailsHeader strong{font-size:14px;line-height:21px}.EtEeYG_groupDetailsHeader small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:15px;overflow:hidden}.EtEeYG_groupDetailsHeader button,.EtEeYG_groupMemberHeading button,.EtEeYG_groupMemberRemove{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_groupDetailsHeader button:hover,.EtEeYG_groupMemberHeading button:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_groupDetailsLoading{color:var(--dsw-alias-label-tertiary);margin:auto;font-size:12px}.EtEeYG_groupSummary{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;gap:5px;padding:16px;display:grid}.EtEeYG_groupSummary>strong{font-size:15px;line-height:22px}.EtEeYG_groupSummary>code{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.EtEeYG_groupSummary>p{color:var(--dsw-alias-label-secondary);margin:3px 0 0;font-size:12px;line-height:18px}.EtEeYG_groupSummary dl{grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 0;display:grid}.EtEeYG_groupSummary dl>div{gap:1px;display:grid}.EtEeYG_groupSummary dt{color:var(--dsw-alias-label-tertiary);font-size:10px}.EtEeYG_groupSummary dd{color:var(--dsw-alias-label-primary);margin:0;font-size:12px}.EtEeYG_groupInvite{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;gap:5px;padding:12px 16px;display:grid}.EtEeYG_groupInvite label{color:var(--dsw-alias-label-secondary);font-size:11px}.EtEeYG_groupInvite>div{grid-template-columns:minmax(0,1fr) 32px;gap:6px;display:grid}.EtEeYG_groupInvite input{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);min-width:0;height:32px;color:var(--dsw-alias-label-primary);font:inherit;border-radius:7px;padding:0 9px;font-size:12px}.EtEeYG_groupInvite button{background:var(--dsw-alias-button-primary-fill);width:32px;height:32px;color:var(--dsw-alias-label-primary-inverted);cursor:pointer;border:0;border-radius:7px;place-items:center;padding:0;display:grid}.EtEeYG_groupInvite button:disabled{cursor:default;opacity:.7}.EtEeYG_groupInvite button[data-busy] svg{animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_groupInviteStatus{overflow-wrap:anywhere;min-width:0;color:var(--dsw-alias-label-tertiary);margin:0;font-size:10px;line-height:16px}.EtEeYG_groupInviteStatus[data-state=success]{color:var(--dsw-alias-state-success-primary)}.EtEeYG_groupInviteStatus[data-state=error]{color:var(--dsw-alias-state-error-primary)}.EtEeYG_groupMemberSection{flex-direction:column;flex:1;min-height:0;display:flex}.EtEeYG_groupMemberHeading{flex:none;justify-content:space-between;align-items:center;min-height:40px;padding:0 12px 0 16px;display:flex}.EtEeYG_groupMemberHeading strong{font-size:12px;line-height:18px}.EtEeYG_groupMemberHeading button[data-busy] svg{animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_groupMemberRefreshStatus{overflow-wrap:anywhere;min-height:22px;color:var(--dsw-alias-label-tertiary);flex:none;margin:0;padding:2px 16px 4px;font-size:10px;line-height:16px}.EtEeYG_groupMemberRefreshStatus[data-state=success]{color:var(--dsw-alias-state-success-primary)}.EtEeYG_groupMemberRefreshStatus[data-state=error]{color:var(--dsw-alias-state-error-primary)}.EtEeYG_groupMemberList{min-height:0;padding:0 8px;overflow:auto}.EtEeYG_groupMemberRow{border-bottom:1px solid var(--dsw-alias-border-l1);grid-template-columns:30px minmax(0,1fr) auto 28px;align-items:center;gap:8px;min-height:48px;padding:4px 6px;display:grid}.EtEeYG_groupMemberAvatar{background:var(--dsw-alias-interactive-bg-active);width:30px;height:30px;color:var(--dsw-alias-brand-primary);border-radius:50%;place-items:center;font-size:11px;display:grid}.EtEeYG_groupMemberIdentity{flex-direction:column;min-width:0;display:flex}.EtEeYG_groupMemberIdentity strong{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;font-size:12px;line-height:18px;display:flex;overflow:hidden}.EtEeYG_groupMemberIdentity strong small{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-brand-primary);border-radius:4px;padding:0 4px;font-size:9px}.EtEeYG_groupMemberIdentity>small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:15px;overflow:hidden}.EtEeYG_groupMemberRole{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:10px}.EtEeYG_groupMemberRemove:hover{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary)}.EtEeYG_groupDetailsFooter{border-top:1px solid var(--dsw-alias-border-l1);flex:none;justify-content:space-between;align-items:center;gap:8px;min-height:46px;padding:0 16px;display:flex}.EtEeYG_groupDetailsFooter small{color:var(--dsw-alias-label-tertiary);font-size:10px}.EtEeYG_dangerText{color:var(--dsw-alias-state-error-primary);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;font-size:12px}.EtEeYG_dangerText:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}.EtEeYG_groupDetailsError{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary);flex:none;padding:8px 12px;font-size:11px;line-height:17px}.EtEeYG_summaryTrigger{min-height:30px;color:var(--dsw-alias-brand-primary);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:8px;flex:none;align-items:center;gap:5px;padding:0 8px;font-size:12px;line-height:18px;display:flex}.EtEeYG_summaryTrigger:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryTrigger:disabled{cursor:default;opacity:.7}.EtEeYG_summaryTrigger[aria-expanded=true]>svg:last-child{transform:rotate(180deg)}.EtEeYG_summaryTrigger>svg:first-child{flex:none}.EtEeYG_summaryPanel{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);min-height:0;max-height:min(220px,33%);color:var(--dsw-alias-label-primary);border-radius:10px;flex:0 33%;margin:8px 10px 0;overflow:hidden}.EtEeYG_summaryPanel[data-collapsed]{flex-basis:auto;max-height:42px}.EtEeYG_summaryHeader{border-bottom:1px solid var(--dsw-alias-border-l1);align-items:center;gap:9px;min-height:38px;padding:0 8px 0 12px;display:flex}.EtEeYG_summaryHeader>span{color:var(--dsw-alias-brand-primary);align-items:center;gap:6px;display:flex}.EtEeYG_summaryHeader>span strong{color:var(--dsw-alias-label-primary);font-size:13px;line-height:20px}.EtEeYG_summaryHeader>small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;line-height:16px;overflow:hidden}.EtEeYG_summaryHeader>button{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_summaryHeader>button:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryCollapsed{width:100%;min-height:40px;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:0 10px 0 12px;display:grid}.EtEeYG_summaryCollapsed:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryCollapsed>span{color:var(--dsw-alias-brand-primary);align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.EtEeYG_summaryCollapsed>small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_summaryCollapsed>em{color:var(--dsw-alias-state-warn-label);white-space:nowrap;font-size:11px;font-style:normal}.EtEeYG_summaryLoading{min-height:88px;color:var(--dsw-alias-brand-primary);justify-content:center;align-items:center;gap:10px;padding:16px;display:flex}.EtEeYG_summaryLoading>svg,.EtEeYG_summaryTrigger:disabled>svg:first-child{animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_summaryLoading>span{flex-direction:column;gap:2px;display:flex}.EtEeYG_summaryLoading strong{color:var(--dsw-alias-label-primary);font-size:13px;line-height:20px}.EtEeYG_summaryLoading small{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.EtEeYG_summaryError{min-height:58px;color:var(--dsw-alias-state-error-primary);justify-content:space-between;align-items:center;gap:12px;padding:12px;font-size:12px;line-height:18px;display:flex}.EtEeYG_summaryError>span{overflow-wrap:anywhere;min-width:0}.EtEeYG_summaryError button,.EtEeYG_summaryStale button{border:1px solid var(--dsw-alias-border-l2);min-height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;background:0 0;border-radius:7px;flex:none;align-items:center;gap:5px;padding:0 8px;font-size:11px;display:flex}.EtEeYG_summaryError button:hover,.EtEeYG_summaryStale button:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryStale{background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-state-warn-label);justify-content:space-between;align-items:center;gap:10px;padding:6px 10px;font-size:11px;line-height:16px;display:flex}.EtEeYG_summaryBody{gap:10px;max-height:118px;padding:10px 12px;display:grid;overflow:auto}.EtEeYG_summarySection h4{color:var(--dsw-alias-label-primary);align-items:center;gap:6px;margin:0 0 4px;font-size:12px;line-height:18px;display:flex}.EtEeYG_summarySection h4>svg{color:var(--dsw-alias-label-secondary);flex:none}.EtEeYG_summarySection ul{color:var(--dsw-alias-label-secondary);gap:2px;margin:0;padding-left:18px;font-size:11px;line-height:17px;display:grid}.EtEeYG_summarySection li{overflow-wrap:anywhere;padding-left:1px}.EtEeYG_summarySection p{color:var(--dsw-alias-label-tertiary);margin:0;font-size:11px;line-height:17px}.EtEeYG_summarySection b{color:var(--dsw-alias-label-primary);font-weight:500}.EtEeYG_summaryActions{border-top:1px solid var(--dsw-alias-border-l1);grid-template-columns:auto 1fr auto auto;align-items:center;gap:4px;min-height:34px;padding:0 8px;display:grid}.EtEeYG_summaryActions button{min-height:26px;color:var(--dsw-alias-brand-primary);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:6px;align-items:center;gap:5px;padding:0 6px;font-size:11px;line-height:16px;display:flex}.EtEeYG_summaryActions button:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryPrivacy{border-top:1px solid var(--dsw-alias-border-l1);min-height:28px;color:var(--dsw-alias-label-tertiary);align-items:center;gap:6px;padding:0 10px;font-size:10px;line-height:15px;display:flex}.EtEeYG_summaryPrivacy svg{flex:none}.EtEeYG_summaryCopyError{color:var(--dsw-alias-state-error-primary);padding:4px 10px;font-size:10px;line-height:15px}@keyframes EtEeYG_summary-spin{to{transform:rotate(360deg)}}.EtEeYG_back{display:none}.EtEeYG_historyShell{flex:1;min-height:0;position:relative}.EtEeYG_history{box-sizing:border-box;flex-direction:column;gap:12px;height:100%;min-height:0;padding:16px;display:flex;overflow:auto}.EtEeYG_historyLoading{color:var(--dsw-alias-label-tertiary);align-items:center;gap:8px;margin:auto;font-size:12px;line-height:18px;display:flex}.EtEeYG_historyLoading>svg{color:var(--dsw-alias-brand-primary);animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_latestMessages{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-button-floating-fill);min-width:30px;min-height:30px;color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv2);cursor:pointer;font:inherit;border-radius:16px;justify-content:center;align-items:center;gap:5px;padding:0 9px;font-size:11px;line-height:16px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.EtEeYG_latestMessages:hover{background:var(--dsw-alias-button-floating-hover)}.EtEeYG_message{align-self:flex-start;max-width:min(78%,420px)}.EtEeYG_message[data-outgoing]{align-self:flex-end}.EtEeYG_messageMeta{color:var(--dsw-alias-label-tertiary);justify-content:space-between;gap:10px;margin-bottom:3px;font-size:11px;line-height:16px;display:flex}.EtEeYG_message p,.EtEeYG_attachment{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;border-radius:12px;margin:0;padding:9px 11px;line-height:20px}.EtEeYG_message[data-outgoing] p,.EtEeYG_message[data-outgoing] .EtEeYG_attachment{background:var(--dsw-alias-interactive-bg-active)}.EtEeYG_mention{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-brand-primary);border-radius:3px;padding:0 2px;font-weight:600}.EtEeYG_pendingMessage{grid-template-columns:auto minmax(0,1fr);align-self:flex-end;align-items:end;gap:7px;max-width:min(78%,420px);display:grid}.EtEeYG_pendingMessageSpinner{color:var(--dsw-alias-label-tertiary);margin-bottom:12px;animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_pendingMessageContent{opacity:.82;min-width:0}.EtEeYG_pendingMessageContent>p,.EtEeYG_pendingAttachment{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;border-radius:12px;margin:0;padding:9px 11px;line-height:20px}.EtEeYG_pendingAttachment{align-items:center;gap:9px;display:flex}.EtEeYG_pendingAttachment>svg{color:var(--dsw-alias-label-secondary);flex:none}.EtEeYG_pendingAttachment span{flex-direction:column;min-width:0;display:flex}.EtEeYG_pendingAttachment strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_pendingAttachment small{color:var(--dsw-alias-label-tertiary)}.EtEeYG_pendingMessageContent>.EtEeYG_pendingCaption{color:var(--dsw-alias-label-secondary);background:0 0;border:0;margin-top:4px;padding:4px 8px;font-size:12px}.EtEeYG_attachment{cursor:pointer;font:inherit;text-align:left;align-items:center;gap:12px;display:flex}.EtEeYG_attachment span{flex-direction:column;min-width:0;display:flex}.EtEeYG_attachment strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_attachment small{color:var(--dsw-alias-label-tertiary)}.EtEeYG_attachment:disabled{cursor:default}.EtEeYG_imageAttachment{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);width:280px;max-width:100%;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;text-align:left;border-radius:12px;margin:0;padding:0;display:block;overflow:hidden}.EtEeYG_imageAttachment img{background:var(--dsw-alias-bg-layer-1);object-fit:contain;width:100%;max-height:280px;display:block}.EtEeYG_imageAttachment span{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 10px;padding:7px 9px;display:grid}.EtEeYG_imageAttachment strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_imageAttachment small{color:var(--dsw-alias-label-tertiary);grid-column:1}.EtEeYG_imageAttachment svg{grid-area:1/2/span 2}.EtEeYG_message .EtEeYG_caption{color:var(--dsw-alias-label-secondary);background:0 0;margin-top:4px;padding:4px 8px;font-size:12px}.EtEeYG_inlineError{color:var(--dsw-alias-state-error-primary);margin-top:4px;display:block}.EtEeYG_empty{color:var(--dsw-alias-label-tertiary);text-align:center;margin:auto;padding:20px}.EtEeYG_composer{border-top:1px solid var(--dsw-alias-border-l1);flex:none;gap:8px;padding:10px 14px 14px;display:grid}.EtEeYG_filePicker{border:1px solid var(--dsw-alias-border-l2);width:32px;height:32px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_filePicker:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_filePicker:disabled{opacity:.45;cursor:default}.EtEeYG_fileInput{display:none}.EtEeYG_composeInput{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);border-radius:10px;gap:6px;min-width:0;padding:9px 10px 8px;display:grid;position:relative}.EtEeYG_mentionCandidates{z-index:3;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);max-height:180px;box-shadow:var(--dsw-shadow-lv2);border-radius:8px;padding:5px;position:absolute;bottom:calc(100% + 7px);left:0;right:0;overflow:auto}.EtEeYG_mentionCandidates button{width:100%;min-height:42px;color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;grid-template-rows:auto auto;grid-template-columns:28px minmax(0,1fr);align-items:center;column-gap:8px;padding:4px 7px;display:grid}.EtEeYG_mentionCandidates button:hover,.EtEeYG_mentionCandidates button[aria-selected=true]{background:var(--dsw-alias-interactive-bg-active)}.EtEeYG_mentionCandidates button>span{background:var(--dsw-alias-bg-layer-3);width:28px;height:28px;color:var(--dsw-alias-brand-primary);border-radius:50%;grid-row:1/span 2;place-items:center;font-size:10px;display:grid}.EtEeYG_mentionCandidates strong,.EtEeYG_mentionCandidates small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.EtEeYG_mentionCandidates strong{align-self:end;font-size:12px;line-height:16px}.EtEeYG_mentionCandidates small{color:var(--dsw-alias-label-tertiary);align-self:start;font-size:10px;line-height:14px}.EtEeYG_composeInput:focus-within{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}.EtEeYG_composeInput textarea{resize:none;background:0 0;border:0;border-radius:0;outline:0;min-width:0;min-height:42px;padding:0}.EtEeYG_composeInput textarea:focus-visible{outline:0}.EtEeYG_composeActions{justify-content:space-between;align-items:center;min-height:32px;display:flex}.EtEeYG_filePreview{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:10px;align-items:center;gap:8px;width:min(240px,100% - 8px);min-height:36px;padding:5px 28px 5px 8px;display:flex;position:relative}.EtEeYG_filePreview[data-image]{width:72px;height:72px;min-height:0;padding:0}.EtEeYG_filePreview img{object-fit:cover;border-radius:9px;width:72px;height:72px;display:block}.EtEeYG_filePreviewIcon{color:var(--dsw-alias-label-secondary);flex:none;place-items:center;display:grid}.EtEeYG_filePreviewName{min-width:0;color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.EtEeYG_removeFile{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-button-floating-fill);width:22px;height:22px;color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv1);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:-7px;right:-7px}.EtEeYG_removeFile:hover{background:var(--dsw-alias-button-floating-hover)}.EtEeYG_send{background:var(--dsw-alias-button-primary-fill);width:32px;height:32px;color:var(--dsw-alias-label-primary-inverted);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_send:disabled{opacity:.45;cursor:default}.EtEeYG_error{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere;flex:none;padding:8px 14px;font-size:12px;line-height:18px}.EtEeYG_pending{background:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-inverted);box-shadow:var(--dsw-shadow-lv2);border-radius:9px;padding:7px 10px;font-size:12px;line-height:18px;position:absolute;bottom:14px;right:14px}@media (width<=620px){.EtEeYG_trigger span{display:none}.EtEeYG_trigger{justify-content:center;width:36px;padding:0}.EtEeYG_drawer{width:calc(100vw - 56px);min-width:0}.EtEeYG_chat{grid-template-columns:1fr}.EtEeYG_thread{display:none}.EtEeYG_thread[data-visible]{display:flex}.EtEeYG_roster[data-hidden]{display:none}.EtEeYG_back{display:grid}.EtEeYG_summaryPanel{max-height:min(190px,33%);margin-left:8px;margin-right:8px}.EtEeYG_summaryTrigger>span{display:none}.EtEeYG_summaryTrigger{justify-content:center;width:30px;padding:0}.EtEeYG_summaryTrigger>svg:last-child{display:none}}@media (height<=420px){.EtEeYG_drawer{border-radius:10px}.EtEeYG_drawerHeader{height:44px;padding:0 8px 0 12px}.EtEeYG_drawerHeader h2{font-size:14px;line-height:20px}.EtEeYG_drawerHeader button,.EtEeYG_back{width:28px;height:28px}.EtEeYG_centerState,.EtEeYG_threadEmpty{justify-content:flex-start;gap:8px;min-height:0;padding:12px;overflow:auto}.EtEeYG_registrationIcon{width:32px;height:32px}.EtEeYG_composeBackdrop{place-items:start center;padding:8px;inset:44px 0 0}.EtEeYG_composeCard{border-radius:10px;gap:8px;padding:12px}.EtEeYG_recoveryForm{gap:8px}.EtEeYG_identityCard{border-radius:8px;margin:6px 8px;padding:7px 9px}.EtEeYG_profileBio,.EtEeYG_profileTags,.EtEeYG_identityStatus{display:none}.EtEeYG_modeTabs{margin:0 8px 4px}.EtEeYG_modeTabs button{min-height:26px}.EtEeYG_rosterHeader{min-height:28px;padding:0 4px 2px 12px}.EtEeYG_conversationSelect{gap:7px;padding:5px 7px}.EtEeYG_avatar{width:28px;height:28px}.EtEeYG_threadHeader{gap:5px;height:44px;padding:0 8px}.EtEeYG_groupAccessNotice{grid-template-columns:18px minmax(0,1fr);gap:6px 8px;padding:8px}.EtEeYG_groupAccessActions{grid-column:2;justify-content:flex-start}.EtEeYG_groupDetails{top:44px;overflow-y:auto}.EtEeYG_groupDetailsHeader{z-index:2;background:var(--dsw-alias-bg-layer-1);min-height:44px;padding-left:12px;position:sticky;top:0}.EtEeYG_groupSummary{gap:2px;padding:8px 12px}.EtEeYG_groupSummary dl{gap:6px;margin-top:3px}.EtEeYG_groupInvite{gap:3px;padding:7px 12px}.EtEeYG_groupMemberSection{flex:none}.EtEeYG_groupMemberHeading{min-height:32px;padding-left:12px}.EtEeYG_groupMemberList{overflow:visible}.EtEeYG_groupMemberRow{min-height:40px}.EtEeYG_groupDetailsFooter{background:var(--dsw-alias-bg-layer-1);min-height:40px;padding:0 12px;position:sticky;bottom:0}.EtEeYG_history{gap:6px;padding:8px}.EtEeYG_composer{gap:4px;padding:5px 8px 7px}.EtEeYG_composeInput{gap:3px;padding:5px 7px 4px}.EtEeYG_composeInput textarea{height:28px;min-height:28px}.EtEeYG_composeActions{min-height:28px}.EtEeYG_filePicker,.EtEeYG_send{width:28px;height:28px}.EtEeYG_mentionCandidates{max-height:72px}.EtEeYG_compactModal.EtEeYG_compactModal{border-radius:12px;gap:10px;max-height:calc(100vh - 48px);padding-bottom:12px}}@media (hover:none){.EtEeYG_conversationMenu{opacity:1}}@media (prefers-reduced-motion:reduce){.EtEeYG_drawer{scroll-behavior:auto;transition:none}.EtEeYG_summaryLoading>svg,.EtEeYG_summaryTrigger:disabled>svg:first-child,.EtEeYG_historyLoading>svg,.EtEeYG_recoveryProgressPanel>svg,.EtEeYG_groupMemberHeading button[data-busy] svg,.EtEeYG_pendingMessageSpinner{animation:none}}";
|
|
7480
|
-
const tagId$
|
|
7481
|
-
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$
|
|
7878
|
+
const css$4 = ".EtEeYG_trigger{z-index:2;border:1px solid var(--dsw-alias-border-l2);width:48px;height:48px;color:var(--dsw-alias-brand-primary);box-shadow:var(--dsw-shadow-lv2);cursor:grab;font:inherit;touch-action:none;user-select:none;background:#fff;border-radius:50%;place-items:center;padding:0;display:grid;position:fixed;overflow:visible}.EtEeYG_trigger:hover{box-shadow:var(--dsw-shadow-lv3);background:#fff}.EtEeYG_trigger:active,.EtEeYG_trigger[data-dragging]{cursor:grabbing}.EtEeYG_launcherIcon{object-fit:cover;pointer-events:none;border-radius:50%;width:100%;height:100%;display:block}.EtEeYG_unreadBadge{border:2px solid var(--dsw-alias-bg-base);background:var(--dsw-alias-state-error-primary);color:#fff;box-sizing:border-box;pointer-events:none;border-radius:10px;place-items:center;min-width:20px;height:20px;padding:0 5px;font-size:11px;font-weight:600;line-height:16px;display:grid;position:absolute;top:-5px;right:-5px}.EtEeYG_trigger:focus-visible,.EtEeYG_drawer button:focus-visible,.EtEeYG_drawer input:focus-visible,.EtEeYG_drawer textarea:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}.EtEeYG_drawer{--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);z-index:1;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:min(720px,100vw - 80px);min-width:min(360px,100vw - 80px);height:min(720px,100vh - 16px);color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv3);border-radius:16px;flex-direction:column;transition:width .16s;display:flex;position:fixed;overflow:hidden}.EtEeYG_drawer[data-mode=mail]{width:min(1040px,100vw - 80px)}.EtEeYG_drawer[data-resizing]{user-select:none;transition:none}.EtEeYG_resizeHandle{z-index:5;touch-action:none;user-select:none;position:absolute}.EtEeYG_resizeHandle[data-resize-handle=n],.EtEeYG_resizeHandle[data-resize-handle=s]{cursor:ns-resize;height:8px;left:14px;right:14px}.EtEeYG_resizeHandle[data-resize-handle=n]{top:0}.EtEeYG_resizeHandle[data-resize-handle=s]{bottom:0}.EtEeYG_resizeHandle[data-resize-handle=e],.EtEeYG_resizeHandle[data-resize-handle=w]{cursor:ew-resize;width:8px;top:14px;bottom:14px}.EtEeYG_resizeHandle[data-resize-handle=e]{right:0}.EtEeYG_resizeHandle[data-resize-handle=w]{left:0}.EtEeYG_resizeHandle[data-resize-handle=ne],.EtEeYG_resizeHandle[data-resize-handle=se],.EtEeYG_resizeHandle[data-resize-handle=sw],.EtEeYG_resizeHandle[data-resize-handle=nw]{width:14px;height:14px}.EtEeYG_resizeHandle[data-resize-handle=ne]{cursor:nesw-resize;top:0;right:0}.EtEeYG_resizeHandle[data-resize-handle=se]{cursor:nwse-resize;bottom:0;right:0}.EtEeYG_resizeHandle[data-resize-handle=sw]{cursor:nesw-resize;bottom:0;left:0}.EtEeYG_resizeHandle[data-resize-handle=nw]{cursor:nwse-resize;top:0;left:0}.EtEeYG_drawerHeader{border-bottom:1px solid var(--dsw-alias-border-l1);cursor:grab;touch-action:none;user-select:none;flex:none;align-items:center;gap:8px;height:58px;padding:0 14px 0 18px;display:flex}.EtEeYG_drawerHeader[data-dragging]{cursor:grabbing}.EtEeYG_drawerHeader>div{flex:1;align-items:center;gap:8px;display:flex}.EtEeYG_drawerHeader h2{margin:0;font-size:16px;line-height:24px}.EtEeYG_drawerHeader button,.EtEeYG_back{cursor:pointer;width:32px;height:32px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;padding:0;display:grid}.EtEeYG_drawerHeader button:hover,.EtEeYG_back:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_centerState,.EtEeYG_threadEmpty{text-align:center;color:var(--dsw-alias-label-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;padding:32px;display:flex}.EtEeYG_centerState p{overflow-wrap:anywhere;max-width:420px;margin:0}.EtEeYG_registrationIcon{background:var(--dsw-alias-interactive-bg-active);width:48px;height:48px;color:var(--dsw-alias-brand-primary);border-radius:50%;justify-self:center;place-items:center;display:grid}.EtEeYG_fileDraft input,.EtEeYG_composeRow textarea{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);width:100%;color:var(--dsw-alias-label-primary);font:inherit;border-radius:10px}.EtEeYG_primary,.EtEeYG_more,.EtEeYG_fileDraft button{background:var(--dsw-alias-button-primary-fill);min-height:36px;color:var(--dsw-alias-label-primary-inverted);cursor:pointer;font:inherit;border:0;border-radius:10px;padding:0 14px}.EtEeYG_primary:hover,.EtEeYG_fileDraft button:hover{background:var(--dsw-alias-button-primary-hover)}.EtEeYG_primary:disabled,.EtEeYG_fileDraft button:disabled{opacity:.5;cursor:default}.EtEeYG_secondary{border:1px solid var(--dsw-alias-border-l2);min-height:36px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;background:0 0;border-radius:10px;padding:0 14px}.EtEeYG_secondary:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_composeBackdrop{background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 72%, transparent);place-items:center;padding:24px;display:grid;position:absolute;inset:58px 0 0;overflow:auto}.EtEeYG_composeCard{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);width:min(360px,100%);box-shadow:var(--dsw-shadow-lv3);border-radius:14px;gap:12px;padding:20px;display:grid}.EtEeYG_composeCard h3{margin:0;font-size:16px;line-height:24px}.EtEeYG_composeCard p{color:var(--dsw-alias-label-secondary);margin:0;font-size:13px;line-height:20px}.EtEeYG_composeCard label{color:var(--dsw-alias-label-secondary);gap:6px;font-size:13px;line-height:20px;display:grid}.EtEeYG_composeCard input,.EtEeYG_composeCard textarea{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:100%;color:var(--dsw-alias-label-primary);font:inherit;border-radius:10px;padding:9px 12px}.EtEeYG_composeCard input{height:40px;padding-block:0}.EtEeYG_composeCard textarea{resize:vertical;min-height:92px}.EtEeYG_composeActions{justify-content:flex-end;gap:8px;display:flex}.EtEeYG_logoutWarning{color:var(--dsw-alias-label-secondary);gap:8px;font-size:13px;line-height:20px;display:grid}.EtEeYG_logoutWarning p{margin:0}.EtEeYG_logoutConfirm{border-color:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-state-error-primary)}.EtEeYG_compactModal.EtEeYG_compactModal{max-height:calc(100vh - 48px)}.EtEeYG_compactModalContent{min-height:0;overflow-y:auto}.EtEeYG_linkButton{color:var(--dsw-alias-brand-primary);cursor:pointer;background:0 0;border:0}.EtEeYG_notice{color:var(--dsw-alias-state-success-primary);text-align:center}.EtEeYG_identityAccess{flex:1;min-height:0;overflow:hidden}.EtEeYG_recoveryForm{width:100%;min-width:0;color:var(--dsw-alias-label-secondary);gap:14px;display:grid}.EtEeYG_recoveryForm h3{color:var(--dsw-alias-label-primary);text-align:center;margin:0}.EtEeYG_recoveryForm>p{text-align:center;margin:0;font-size:13px;line-height:20px}.EtEeYG_recoveryForm>label:not(.EtEeYG_recoveryConfirmation){gap:6px;font-size:13px;line-height:20px;display:grid}.EtEeYG_recoveryForm>label>input:not([type=checkbox]){box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);width:100%;height:40px;color:var(--dsw-alias-label-primary);font:inherit;border-radius:8px;padding:0 12px}.EtEeYG_recoveryForm input:focus-visible,.EtEeYG_recoveryForm button:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}.EtEeYG_recoveryStatusLine{border-bottom:1px solid var(--dsw-alias-border-l1);gap:3px;min-width:0;padding-bottom:10px;display:grid}.EtEeYG_recoveryStatusLine span{color:var(--dsw-alias-brand-primary);font-size:12px;font-weight:600}.EtEeYG_recoveryIdentitySummary{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);border-radius:8px;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;min-width:0;padding:12px;font-size:12px;line-height:18px;display:grid}.EtEeYG_recoveryIdentitySummary span{color:var(--dsw-alias-label-tertiary)}.EtEeYG_recoveryIdentitySummary strong{overflow-wrap:anywhere;min-width:0;color:var(--dsw-alias-label-primary)}.EtEeYG_recoveryDiagnostics{border-top:1px solid var(--dsw-alias-border-l1);min-width:0;color:var(--dsw-alias-label-tertiary);padding-top:2px;font-size:11px;line-height:17px}.EtEeYG_recoveryDiagnostics summary{cursor:pointer;width:max-content;color:var(--dsw-alias-label-secondary);user-select:none}.EtEeYG_recoveryDiagnostics summary:hover{color:var(--dsw-alias-label-primary)}.EtEeYG_recoveryDiagnostics summary:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px;border-radius:4px}.EtEeYG_recoveryDiagnostics dl{gap:6px;margin:8px 0 0;display:grid}.EtEeYG_recoveryDiagnostics dl>div{gap:2px;min-width:0;display:grid}.EtEeYG_recoveryDiagnostics dt{color:var(--dsw-alias-label-tertiary)}.EtEeYG_recoveryDiagnostics dd{min-width:0;margin:0}.EtEeYG_recoveryDiagnostics code{overflow-wrap:anywhere;color:var(--dsw-alias-label-secondary);font-size:10px;line-height:16px;display:block}.EtEeYG_recoveryImpact{border-left:3px solid var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-2);gap:6px;padding:12px;display:grid}.EtEeYG_recoveryImpact p{align-items:flex-start;gap:7px;margin:0;font-size:12px;line-height:18px;display:flex}.EtEeYG_recoveryImpact svg{flex:none;margin-top:2px}.EtEeYG_recoveryImpact p[data-tone=success] svg{color:var(--dsw-alias-state-success-primary)}.EtEeYG_recoveryImpact p[data-tone=neutral] svg{color:var(--dsw-alias-label-tertiary)}.EtEeYG_recoveryHandle{overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);text-align:center;margin:-8px 0 0;font-size:13px;line-height:20px}.EtEeYG_recoveryConfirmationCopy{color:var(--dsw-alias-label-secondary);text-align:left;margin:0;font-size:12px;line-height:18px}.EtEeYG_recoveryProgressPanel{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);text-align:center;border-radius:8px;justify-items:center;gap:10px;min-width:0;padding:16px;display:grid}.EtEeYG_recoveryProgressPanel>svg{color:var(--dsw-alias-brand-primary);animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_recoveryProgressPanel p{margin:0;font-size:12px;line-height:18px}.EtEeYG_recoveryProgressPanel button{justify-content:center;align-items:center;gap:6px;width:100%;display:flex}.EtEeYG_chat{flex:1;grid-template-columns:240px minmax(0,1fr);min-height:0;display:grid}.EtEeYG_roster{border-right:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);flex-direction:column;min-width:0;display:flex}.EtEeYG_identityCard{background:var(--dsw-alias-bg-layer-3);border-radius:12px;flex-direction:column;gap:2px;margin:14px;padding:12px;display:flex}.EtEeYG_identityNameRow{align-items:center;min-width:0;min-height:24px;display:flex}.EtEeYG_profileAvatar{background:var(--dsw-alias-interactive-bg-active);width:24px;height:24px;color:var(--dsw-alias-brand-primary);border-radius:50%;flex:none;place-items:center;margin-right:7px;display:grid}.EtEeYG_identityNameText{min-width:0;color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;line-height:22px;overflow:hidden}.EtEeYG_identityName{min-width:0;color:var(--dsw-alias-label-primary);font:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;background:0 0;border:0;flex:1;padding:0;font-size:16px;font-weight:600;line-height:24px;overflow:hidden}.EtEeYG_identityName:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px;border-radius:4px}.EtEeYG_identityEdit{width:24px;height:24px;color:var(--dsw-alias-label-secondary);cursor:pointer;opacity:.72;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;margin-left:4px;padding:0;transition:opacity .12s;display:grid}.EtEeYG_identityNameRow:hover .EtEeYG_identityEdit,.EtEeYG_identityNameRow:focus-within .EtEeYG_identityEdit{opacity:1}.EtEeYG_identityEdit:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_identityEditor{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.EtEeYG_identityEditor input{border:1px solid var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-1);min-width:0;height:28px;color:var(--dsw-alias-label-primary);font:inherit;border-radius:7px;outline:none;flex:1;padding:0 8px;font-size:13px}.EtEeYG_identityEditor button{width:26px;height:26px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_identityEditor button:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_identityEditor button:disabled,.EtEeYG_identityName:disabled{cursor:default;opacity:.5}.EtEeYG_identityEdit:disabled{cursor:default}.EtEeYG_identityHandle{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.EtEeYG_identityStatus{color:var(--dsw-alias-state-success-primary);margin-top:4px;font-size:12px;line-height:18px}.EtEeYG_identityError{color:var(--dsw-alias-state-error-primary);margin-top:4px;font-size:11px;line-height:16px}.EtEeYG_identityCard i{background:var(--dsw-alias-state-success-primary);border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.EtEeYG_profileBio{color:var(--dsw-alias-label-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:6px 0 2px;font-size:11px;line-height:17px;display:-webkit-box;overflow:hidden}.EtEeYG_profileTags{flex-wrap:wrap;gap:4px;margin-top:5px;display:flex}.EtEeYG_profileTags>span{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);min-width:0;max-width:100%;min-height:20px;color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;border-radius:7px;align-items:center;gap:3px;padding:0 6px;font-size:10px;line-height:16px;display:inline-flex}.EtEeYG_profileTags>span>button{width:16px;height:16px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:0;display:grid}.EtEeYG_profileTags>span>button:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_profileEditor{gap:10px;display:grid}.EtEeYG_profileEditor label{color:var(--dsw-alias-label-secondary);gap:4px;font-size:11px;line-height:16px;display:grid;position:relative}.EtEeYG_profileEditor label>small{color:var(--dsw-alias-label-tertiary);font-size:10px;position:absolute;top:0;right:1px}.EtEeYG_profileEditor input,.EtEeYG_profileEditor textarea{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:100%;color:var(--dsw-alias-label-primary);font:inherit;border-radius:7px;padding:7px 8px;font-size:12px}.EtEeYG_profileEditor input{height:32px;padding-block:0}.EtEeYG_profileEditor textarea{resize:vertical}.EtEeYG_profileTagEditor{gap:4px;display:grid}.EtEeYG_profileTagEditor>div:first-of-type{grid-template-columns:minmax(0,1fr) 30px;gap:5px;display:grid}.EtEeYG_profileTagEditor>div:first-of-type button{border:1px solid var(--dsw-alias-border-l2);width:30px;height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border-radius:7px;place-items:center;padding:0;display:grid}.EtEeYG_profileEditorActions{grid-template-columns:1fr 1fr;gap:6px;margin-top:2px;display:grid}.EtEeYG_profileEditorActions button{min-width:0;padding-inline:6px;font-size:12px}.EtEeYG_modePanel{flex:1;min-height:0;display:none}.EtEeYG_modePanel[data-active]{display:flex}.EtEeYG_modeTabs{background:var(--dsw-alias-bg-layer-3);border-radius:9px;grid-template-columns:1fr 1fr;gap:4px;margin:0 14px 12px;padding:3px;display:grid}.EtEeYG_modeTabs button{min-height:30px;color:var(--dsw-alias-label-tertiary);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;gap:5px;padding:0 8px;font-size:12px;line-height:18px;display:flex}.EtEeYG_modeTabs button:hover{color:var(--dsw-alias-label-primary)}.EtEeYG_modeTabs button[aria-selected=true]{background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv1)}.EtEeYG_modeTabs small{min-width:18px;color:var(--dsw-alias-brand-primary);font-size:10px;line-height:14px}.EtEeYG_rosterHeader{justify-content:space-between;align-items:center;min-height:32px;padding:0 8px 8px 16px;display:flex}.EtEeYG_rosterTitle{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}.EtEeYG_rosterActions{align-items:center;gap:2px;display:flex}.EtEeYG_rosterAction{width:32px;height:32px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;padding:0;display:grid}.EtEeYG_rosterAction:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_rosterActions .EtEeYG_rosterAction{position:relative}.EtEeYG_rosterActions .EtEeYG_rosterAction small{background:var(--dsw-alias-bg-layer-3);min-width:14px;height:14px;color:var(--dsw-alias-label-secondary);box-sizing:border-box;border-radius:7px;place-items:center;padding:0 3px;font-size:9px;line-height:12px;display:grid;position:absolute;top:1px;right:0}.EtEeYG_conversationList{flex:1;min-height:0;padding:0 8px;overflow:auto}.EtEeYG_conversationRow{width:100%;color:inherit;background:0 0;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.EtEeYG_conversationRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_conversationRow[data-active]{background:var(--dsw-alias-interactive-bg-active)}.EtEeYG_conversationSelect{width:100%;min-width:0;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:9px;display:flex}.EtEeYG_conversationMenu{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:7px;place-items:center;margin-right:5px;padding:0;display:grid}.EtEeYG_conversationRow:hover .EtEeYG_conversationMenu,.EtEeYG_conversationRow:focus-within .EtEeYG_conversationMenu,.EtEeYG_conversationMenu[aria-expanded=true]{opacity:1}.EtEeYG_conversationMenu:hover{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-primary)}.EtEeYG_conversationMenu:disabled{cursor:default;opacity:.45}.EtEeYG_avatar{background:var(--dsw-alias-interactive-bg-active);width:34px;height:34px;color:var(--dsw-alias-brand-primary);border-radius:50%;flex:none;place-items:center;font-size:12px;line-height:18px;display:grid;position:relative;overflow:visible}.EtEeYG_conversationUnreadBadge{border:2px solid var(--dsw-alias-bg-layer-2);background:var(--dsw-alias-state-error-primary);min-width:18px;height:18px;color:var(--dsw-alias-label-primary-inverted);box-sizing:border-box;pointer-events:none;border-radius:9px;place-items:center;padding:0 4px;font-size:10px;font-weight:600;line-height:14px;display:grid;position:absolute;top:-6px;right:-7px}.EtEeYG_conversationText{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.EtEeYG_conversationHeader{align-items:center;gap:8px;min-width:0;display:flex}.EtEeYG_conversationHeader strong{flex:1;min-width:0}.EtEeYG_conversationTime{color:var(--dsw-alias-label-tertiary);flex:none;font-size:11px;font-weight:400;line-height:16px}.EtEeYG_conversationText strong,.EtEeYG_conversationText small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_conversationText strong{font-size:13px;line-height:20px}.EtEeYG_conversationText small{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.EtEeYG_more{background:var(--dsw-alias-button-elevated-fill);color:var(--dsw-alias-label-secondary);margin:8px}.EtEeYG_more:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_hiddenConversationList{max-height:min(320px,48vh);display:grid;overflow:auto}.EtEeYG_hiddenConversationRow{border-bottom:1px solid var(--dsw-alias-border-l1);grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:50px;padding:6px 2px;display:grid}.EtEeYG_hiddenConversationRow:last-child{border-bottom:0}.EtEeYG_hiddenConversationRow .EtEeYG_avatar{width:30px;height:30px}.EtEeYG_hiddenConversationRow>span:nth-child(2){min-width:0;display:grid}.EtEeYG_hiddenConversationRow strong,.EtEeYG_hiddenConversationRow small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_hiddenConversationRow strong{font-size:12px;line-height:18px}.EtEeYG_hiddenConversationRow small{color:var(--dsw-alias-label-tertiary);font-size:10px;line-height:15px}.EtEeYG_hiddenConversationRow>button{border:1px solid var(--dsw-alias-border-l2);min-height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;background:0 0;border-radius:7px;padding:0 9px;font-size:11px}.EtEeYG_hiddenConversationRow>button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_hiddenConversationRow>button:disabled{cursor:default;opacity:.55}.EtEeYG_conversationPreferenceError{color:var(--dsw-alias-state-error-primary);font-size:11px;line-height:17px}.EtEeYG_thread{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.EtEeYG_threadHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:8px;height:56px;padding:0 14px;display:flex}.EtEeYG_threadTitle{flex-direction:column;flex:1;min-width:0;display:flex}.EtEeYG_threadTitle strong,.EtEeYG_threadTitle small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_threadHeader small{color:var(--dsw-alias-label-tertiary)}.EtEeYG_threadAction{width:30px;height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_threadAction:hover,.EtEeYG_threadAction[aria-expanded=true]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_groupAccessNotice{border-bottom:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);flex:none;grid-template-columns:20px minmax(0,1fr) auto;align-items:start;gap:8px 10px;padding:11px 14px;display:grid}.EtEeYG_groupAccessNotice[data-status=blocked],.EtEeYG_groupAccessNotice[data-status=not-member]{background:var(--dsw-alias-interactive-bg-hover-danger)}.EtEeYG_groupAccessNotice[data-compact]{grid-template-columns:20px minmax(0,1fr);padding:12px 16px}.EtEeYG_groupAccessIcon{min-height:20px;color:var(--dsw-alias-label-secondary);place-items:center;display:grid}.EtEeYG_groupAccessNotice[data-status=loading] .EtEeYG_groupAccessIcon svg,.EtEeYG_groupAccessNotice[data-status=recovering] .EtEeYG_groupAccessIcon svg{animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_groupAccessCopy{gap:2px;min-width:0;display:grid}.EtEeYG_groupAccessCopy strong{font-size:12px;line-height:18px}.EtEeYG_groupAccessCopy small{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;font-size:11px;line-height:17px}.EtEeYG_groupAccessActions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.EtEeYG_groupAccessNotice[data-compact] .EtEeYG_groupAccessActions{grid-column:2;justify-content:flex-start}.EtEeYG_groupAccessActions button{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);min-height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;border-radius:7px;justify-content:center;align-items:center;gap:5px;padding:0 8px;font-size:11px;line-height:16px;display:flex}.EtEeYG_groupAccessActions button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_groupAccessActions button:disabled{cursor:default;opacity:.55}.EtEeYG_groupDetails{z-index:4;border-left:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:min(360px,100%);min-width:0;box-shadow:var(--dsw-shadow-lv2);flex-direction:column;display:flex;position:absolute;top:56px;bottom:0;right:0;overflow:hidden}.EtEeYG_groupDetailsHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:12px;min-height:54px;padding:0 12px 0 16px;display:flex}.EtEeYG_groupDetailsHeader>div{flex-direction:column;flex:1;min-width:0;display:flex}.EtEeYG_groupDetailsHeader strong{font-size:14px;line-height:21px}.EtEeYG_groupDetailsHeader small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:15px;overflow:hidden}.EtEeYG_groupDetailsHeader button,.EtEeYG_groupMemberHeading button,.EtEeYG_groupMemberRemove{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_groupDetailsHeader button:hover,.EtEeYG_groupMemberHeading button:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_groupDetailsLoading{color:var(--dsw-alias-label-tertiary);margin:auto;font-size:12px}.EtEeYG_groupSummary{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;gap:5px;padding:16px;display:grid}.EtEeYG_groupSummary>strong{font-size:15px;line-height:22px}.EtEeYG_groupSummary>code{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.EtEeYG_groupSummary>p{color:var(--dsw-alias-label-secondary);margin:3px 0 0;font-size:12px;line-height:18px}.EtEeYG_groupSummary dl{grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 0;display:grid}.EtEeYG_groupSummary dl>div{gap:1px;display:grid}.EtEeYG_groupSummary dt{color:var(--dsw-alias-label-tertiary);font-size:10px}.EtEeYG_groupSummary dd{color:var(--dsw-alias-label-primary);margin:0;font-size:12px}.EtEeYG_groupInvite{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;gap:5px;padding:12px 16px;display:grid}.EtEeYG_groupInvite label{color:var(--dsw-alias-label-secondary);font-size:11px}.EtEeYG_groupInvite>div{grid-template-columns:minmax(0,1fr) 32px;gap:6px;display:grid}.EtEeYG_groupInvite input{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);min-width:0;height:32px;color:var(--dsw-alias-label-primary);font:inherit;border-radius:7px;padding:0 9px;font-size:12px}.EtEeYG_groupInvite button{background:var(--dsw-alias-button-primary-fill);width:32px;height:32px;color:var(--dsw-alias-label-primary-inverted);cursor:pointer;border:0;border-radius:7px;place-items:center;padding:0;display:grid}.EtEeYG_groupInvite button:disabled{cursor:default;opacity:.7}.EtEeYG_groupInvite button[data-busy] svg{animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_groupInviteStatus{overflow-wrap:anywhere;min-width:0;color:var(--dsw-alias-label-tertiary);margin:0;font-size:10px;line-height:16px}.EtEeYG_groupInviteStatus[data-state=success]{color:var(--dsw-alias-state-success-primary)}.EtEeYG_groupInviteStatus[data-state=error]{color:var(--dsw-alias-state-error-primary)}.EtEeYG_groupMemberSection{flex-direction:column;flex:1;min-height:0;display:flex}.EtEeYG_groupMemberHeading{flex:none;justify-content:space-between;align-items:center;min-height:40px;padding:0 12px 0 16px;display:flex}.EtEeYG_groupMemberHeading strong{font-size:12px;line-height:18px}.EtEeYG_groupMemberHeading button[data-busy] svg{animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_groupMemberRefreshStatus{overflow-wrap:anywhere;min-height:22px;color:var(--dsw-alias-label-tertiary);flex:none;margin:0;padding:2px 16px 4px;font-size:10px;line-height:16px}.EtEeYG_groupMemberRefreshStatus[data-state=success]{color:var(--dsw-alias-state-success-primary)}.EtEeYG_groupMemberRefreshStatus[data-state=error]{color:var(--dsw-alias-state-error-primary)}.EtEeYG_groupMemberList{min-height:0;padding:0 8px;overflow:auto}.EtEeYG_groupMemberRow{border-bottom:1px solid var(--dsw-alias-border-l1);grid-template-columns:30px minmax(0,1fr) auto 28px;align-items:center;gap:8px;min-height:48px;padding:4px 6px;display:grid}.EtEeYG_groupMemberAvatar{background:var(--dsw-alias-interactive-bg-active);width:30px;height:30px;color:var(--dsw-alias-brand-primary);border-radius:50%;place-items:center;font-size:11px;display:grid}.EtEeYG_groupMemberIdentity{flex-direction:column;min-width:0;display:flex}.EtEeYG_groupMemberIdentity strong{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;font-size:12px;line-height:18px;display:flex;overflow:hidden}.EtEeYG_groupMemberIdentity strong small{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-brand-primary);border-radius:4px;padding:0 4px;font-size:9px}.EtEeYG_groupMemberIdentity>small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:15px;overflow:hidden}.EtEeYG_groupMemberRole{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:10px}.EtEeYG_groupMemberRemove:hover{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary)}.EtEeYG_groupDetailsFooter{border-top:1px solid var(--dsw-alias-border-l1);flex:none;justify-content:space-between;align-items:center;gap:8px;min-height:46px;padding:0 16px;display:flex}.EtEeYG_groupDetailsFooter small{color:var(--dsw-alias-label-tertiary);font-size:10px}.EtEeYG_dangerText{color:var(--dsw-alias-state-error-primary);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;font-size:12px}.EtEeYG_dangerText:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}.EtEeYG_groupDetailsError{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary);flex:none;padding:8px 12px;font-size:11px;line-height:17px}.EtEeYG_summaryTrigger{min-height:30px;color:var(--dsw-alias-brand-primary);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:8px;flex:none;align-items:center;gap:5px;padding:0 8px;font-size:12px;line-height:18px;display:flex}.EtEeYG_summaryTrigger:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryTrigger:disabled{cursor:default;opacity:.7}.EtEeYG_summaryTrigger[aria-expanded=true]>svg:last-child{transform:rotate(180deg)}.EtEeYG_summaryTrigger>svg:first-child{flex:none}.EtEeYG_summaryPanel{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);min-height:0;max-height:min(220px,33%);color:var(--dsw-alias-label-primary);border-radius:10px;flex:0 33%;margin:8px 10px 0;overflow:hidden}.EtEeYG_summaryPanel[data-collapsed]{flex-basis:auto;max-height:42px}.EtEeYG_summaryHeader{border-bottom:1px solid var(--dsw-alias-border-l1);align-items:center;gap:9px;min-height:38px;padding:0 8px 0 12px;display:flex}.EtEeYG_summaryHeader>span{color:var(--dsw-alias-brand-primary);align-items:center;gap:6px;display:flex}.EtEeYG_summaryHeader>span strong{color:var(--dsw-alias-label-primary);font-size:13px;line-height:20px}.EtEeYG_summaryHeader>small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;line-height:16px;overflow:hidden}.EtEeYG_summaryHeader>button{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_summaryHeader>button:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryCollapsed{width:100%;min-height:40px;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:0 10px 0 12px;display:grid}.EtEeYG_summaryCollapsed:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryCollapsed>span{color:var(--dsw-alias-brand-primary);align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.EtEeYG_summaryCollapsed>small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_summaryCollapsed>em{color:var(--dsw-alias-state-warn-label);white-space:nowrap;font-size:11px;font-style:normal}.EtEeYG_summaryLoading{min-height:88px;color:var(--dsw-alias-brand-primary);justify-content:center;align-items:center;gap:10px;padding:16px;display:flex}.EtEeYG_summaryLoading>svg,.EtEeYG_summaryTrigger:disabled>svg:first-child{animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_summaryLoading>span{flex-direction:column;gap:2px;display:flex}.EtEeYG_summaryLoading strong{color:var(--dsw-alias-label-primary);font-size:13px;line-height:20px}.EtEeYG_summaryLoading small{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.EtEeYG_summaryError{min-height:58px;color:var(--dsw-alias-state-error-primary);justify-content:space-between;align-items:center;gap:12px;padding:12px;font-size:12px;line-height:18px;display:flex}.EtEeYG_summaryError>span{overflow-wrap:anywhere;min-width:0}.EtEeYG_summaryError button,.EtEeYG_summaryStale button{border:1px solid var(--dsw-alias-border-l2);min-height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;background:0 0;border-radius:7px;flex:none;align-items:center;gap:5px;padding:0 8px;font-size:11px;display:flex}.EtEeYG_summaryError button:hover,.EtEeYG_summaryStale button:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryStale{background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-state-warn-label);justify-content:space-between;align-items:center;gap:10px;padding:6px 10px;font-size:11px;line-height:16px;display:flex}.EtEeYG_summaryBody{gap:10px;max-height:118px;padding:10px 12px;display:grid;overflow:auto}.EtEeYG_summarySection h4{color:var(--dsw-alias-label-primary);align-items:center;gap:6px;margin:0 0 4px;font-size:12px;line-height:18px;display:flex}.EtEeYG_summarySection h4>svg{color:var(--dsw-alias-label-secondary);flex:none}.EtEeYG_summarySection ul{color:var(--dsw-alias-label-secondary);gap:2px;margin:0;padding-left:18px;font-size:11px;line-height:17px;display:grid}.EtEeYG_summarySection li{overflow-wrap:anywhere;padding-left:1px}.EtEeYG_summarySection p{color:var(--dsw-alias-label-tertiary);margin:0;font-size:11px;line-height:17px}.EtEeYG_summarySection b{color:var(--dsw-alias-label-primary);font-weight:500}.EtEeYG_summaryActions{border-top:1px solid var(--dsw-alias-border-l1);grid-template-columns:auto 1fr auto auto;align-items:center;gap:4px;min-height:34px;padding:0 8px;display:grid}.EtEeYG_summaryActions button{min-height:26px;color:var(--dsw-alias-brand-primary);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:6px;align-items:center;gap:5px;padding:0 6px;font-size:11px;line-height:16px;display:flex}.EtEeYG_summaryActions button:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryPrivacy{border-top:1px solid var(--dsw-alias-border-l1);min-height:28px;color:var(--dsw-alias-label-tertiary);align-items:center;gap:6px;padding:0 10px;font-size:10px;line-height:15px;display:flex}.EtEeYG_summaryPrivacy svg{flex:none}.EtEeYG_summaryCopyError{color:var(--dsw-alias-state-error-primary);padding:4px 10px;font-size:10px;line-height:15px}@keyframes EtEeYG_summary-spin{to{transform:rotate(360deg)}}.EtEeYG_back{display:none}.EtEeYG_historyShell{flex:1;min-height:0;position:relative}.EtEeYG_history{box-sizing:border-box;flex-direction:column;gap:12px;height:100%;min-height:0;padding:16px;display:flex;overflow:auto}.EtEeYG_historyLoading{color:var(--dsw-alias-label-tertiary);align-items:center;gap:8px;margin:auto;font-size:12px;line-height:18px;display:flex}.EtEeYG_historyLoading>svg{color:var(--dsw-alias-brand-primary);animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_latestMessages{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-button-floating-fill);min-width:30px;min-height:30px;color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv2);cursor:pointer;font:inherit;border-radius:16px;justify-content:center;align-items:center;gap:5px;padding:0 9px;font-size:11px;line-height:16px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.EtEeYG_latestMessages:hover{background:var(--dsw-alias-button-floating-hover)}.EtEeYG_message{align-self:flex-start;max-width:min(78%,420px)}.EtEeYG_message[data-outgoing]{align-self:flex-end}.EtEeYG_messageMeta{color:var(--dsw-alias-label-tertiary);justify-content:space-between;gap:10px;margin-bottom:3px;font-size:11px;line-height:16px;display:flex}.EtEeYG_message p,.EtEeYG_attachment{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;border-radius:12px;margin:0;padding:9px 11px;line-height:20px}.EtEeYG_message[data-outgoing] p,.EtEeYG_message[data-outgoing] .EtEeYG_attachment{background:var(--dsw-alias-interactive-bg-active)}.EtEeYG_mention{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-brand-primary);border-radius:3px;padding:0 2px;font-weight:600}.EtEeYG_pendingMessage{grid-template-columns:auto minmax(0,1fr);align-self:flex-end;align-items:end;gap:7px;max-width:min(78%,420px);display:grid}.EtEeYG_pendingMessageSpinner{color:var(--dsw-alias-label-tertiary);margin-bottom:12px;animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_pendingMessageContent{opacity:.82;min-width:0}.EtEeYG_pendingMessageContent>p,.EtEeYG_pendingAttachment{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;border-radius:12px;margin:0;padding:9px 11px;line-height:20px}.EtEeYG_pendingAttachment{align-items:center;gap:9px;display:flex}.EtEeYG_pendingAttachment>svg{color:var(--dsw-alias-label-secondary);flex:none}.EtEeYG_pendingAttachment span{flex-direction:column;min-width:0;display:flex}.EtEeYG_pendingAttachment strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_pendingAttachment small{color:var(--dsw-alias-label-tertiary)}.EtEeYG_pendingMessageContent>.EtEeYG_pendingCaption{color:var(--dsw-alias-label-secondary);background:0 0;border:0;margin-top:4px;padding:4px 8px;font-size:12px}.EtEeYG_attachment{cursor:pointer;font:inherit;text-align:left;align-items:center;gap:12px;display:flex}.EtEeYG_attachment span{flex-direction:column;min-width:0;display:flex}.EtEeYG_attachment strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_attachment small{color:var(--dsw-alias-label-tertiary)}.EtEeYG_attachment:disabled{cursor:default}.EtEeYG_imageAttachment{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);width:280px;max-width:100%;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;text-align:left;border-radius:12px;margin:0;padding:0;display:block;overflow:hidden}.EtEeYG_imageAttachment img{background:var(--dsw-alias-bg-layer-1);object-fit:contain;width:100%;max-height:280px;display:block}.EtEeYG_imageAttachment span{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 10px;padding:7px 9px;display:grid}.EtEeYG_imageAttachment strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_imageAttachment small{color:var(--dsw-alias-label-tertiary);grid-column:1}.EtEeYG_imageAttachment svg{grid-area:1/2/span 2}.EtEeYG_message .EtEeYG_caption{color:var(--dsw-alias-label-secondary);background:0 0;margin-top:4px;padding:4px 8px;font-size:12px}.EtEeYG_inlineError{color:var(--dsw-alias-state-error-primary);margin-top:4px;display:block}.EtEeYG_empty{color:var(--dsw-alias-label-tertiary);text-align:center;margin:auto;padding:20px}.EtEeYG_composer{border-top:1px solid var(--dsw-alias-border-l1);flex:none;gap:8px;padding:10px 14px 14px;display:grid}.EtEeYG_filePicker{border:1px solid var(--dsw-alias-border-l2);width:32px;height:32px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_filePicker:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_filePicker:disabled{opacity:.45;cursor:default}.EtEeYG_fileInput{display:none}.EtEeYG_composeInput{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);border-radius:10px;gap:6px;min-width:0;padding:9px 10px 8px;display:grid;position:relative}.EtEeYG_mentionCandidates{z-index:3;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);max-height:180px;box-shadow:var(--dsw-shadow-lv2);border-radius:8px;padding:5px;position:absolute;bottom:calc(100% + 7px);left:0;right:0;overflow:auto}.EtEeYG_mentionCandidates button{width:100%;min-height:42px;color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;grid-template-rows:auto auto;grid-template-columns:28px minmax(0,1fr);align-items:center;column-gap:8px;padding:4px 7px;display:grid}.EtEeYG_mentionCandidates button:hover,.EtEeYG_mentionCandidates button[aria-selected=true]{background:var(--dsw-alias-interactive-bg-active)}.EtEeYG_mentionCandidates button>span{background:var(--dsw-alias-bg-layer-3);width:28px;height:28px;color:var(--dsw-alias-brand-primary);border-radius:50%;grid-row:1/span 2;place-items:center;font-size:10px;display:grid}.EtEeYG_mentionCandidates strong,.EtEeYG_mentionCandidates small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.EtEeYG_mentionCandidates strong{align-self:end;font-size:12px;line-height:16px}.EtEeYG_mentionCandidates small{color:var(--dsw-alias-label-tertiary);align-self:start;font-size:10px;line-height:14px}.EtEeYG_composeInput:focus-within{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}.EtEeYG_composeInput textarea{resize:none;background:0 0;border:0;border-radius:0;outline:0;min-width:0;min-height:42px;padding:0}.EtEeYG_composeInput textarea:focus-visible{outline:0}.EtEeYG_composeActions{justify-content:space-between;align-items:center;min-height:32px;display:flex}.EtEeYG_filePreview{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:10px;align-items:center;gap:8px;width:min(240px,100% - 8px);min-height:36px;padding:5px 28px 5px 8px;display:flex;position:relative}.EtEeYG_filePreview[data-image]{width:72px;height:72px;min-height:0;padding:0}.EtEeYG_filePreview img{object-fit:cover;border-radius:9px;width:72px;height:72px;display:block}.EtEeYG_filePreviewIcon{color:var(--dsw-alias-label-secondary);flex:none;place-items:center;display:grid}.EtEeYG_filePreviewName{min-width:0;color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.EtEeYG_removeFile{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-button-floating-fill);width:22px;height:22px;color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv1);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:-7px;right:-7px}.EtEeYG_removeFile:hover{background:var(--dsw-alias-button-floating-hover)}.EtEeYG_send{background:var(--dsw-alias-button-primary-fill);width:32px;height:32px;color:var(--dsw-alias-label-primary-inverted);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_send:disabled{opacity:.45;cursor:default}.EtEeYG_error{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere;flex:none;padding:8px 14px;font-size:12px;line-height:18px}.EtEeYG_pending{background:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-inverted);box-shadow:var(--dsw-shadow-lv2);border-radius:9px;padding:7px 10px;font-size:12px;line-height:18px;position:absolute;bottom:14px;right:14px}@media (width<=620px){.EtEeYG_trigger span{display:none}.EtEeYG_trigger{justify-content:center;width:36px;padding:0}.EtEeYG_drawer{width:calc(100vw - 56px);min-width:0}.EtEeYG_chat{grid-template-columns:1fr}.EtEeYG_thread{display:none}.EtEeYG_thread[data-visible]{display:flex}.EtEeYG_roster[data-hidden]{display:none}.EtEeYG_back{display:grid}.EtEeYG_summaryPanel{max-height:min(190px,33%);margin-left:8px;margin-right:8px}.EtEeYG_summaryTrigger>span{display:none}.EtEeYG_summaryTrigger{justify-content:center;width:30px;padding:0}.EtEeYG_summaryTrigger>svg:last-child{display:none}}@media (height<=420px){.EtEeYG_drawer{border-radius:10px}.EtEeYG_drawerHeader{height:44px;padding:0 8px 0 12px}.EtEeYG_drawerHeader h2{font-size:14px;line-height:20px}.EtEeYG_drawerHeader button,.EtEeYG_back{width:28px;height:28px}.EtEeYG_centerState,.EtEeYG_threadEmpty{justify-content:flex-start;gap:8px;min-height:0;padding:12px;overflow:auto}.EtEeYG_registrationIcon{width:32px;height:32px}.EtEeYG_composeBackdrop{place-items:start center;padding:8px;inset:44px 0 0}.EtEeYG_composeCard{border-radius:10px;gap:8px;padding:12px}.EtEeYG_recoveryForm{gap:8px}.EtEeYG_identityCard{border-radius:8px;margin:6px 8px;padding:7px 9px}.EtEeYG_profileBio,.EtEeYG_profileTags,.EtEeYG_identityStatus{display:none}.EtEeYG_modeTabs{margin:0 8px 4px}.EtEeYG_modeTabs button{min-height:26px}.EtEeYG_rosterHeader{min-height:28px;padding:0 4px 2px 12px}.EtEeYG_conversationSelect{gap:7px;padding:5px 7px}.EtEeYG_avatar{width:28px;height:28px}.EtEeYG_threadHeader{gap:5px;height:44px;padding:0 8px}.EtEeYG_groupAccessNotice{grid-template-columns:18px minmax(0,1fr);gap:6px 8px;padding:8px}.EtEeYG_groupAccessActions{grid-column:2;justify-content:flex-start}.EtEeYG_groupDetails{top:44px;overflow-y:auto}.EtEeYG_groupDetailsHeader{z-index:2;background:var(--dsw-alias-bg-layer-1);min-height:44px;padding-left:12px;position:sticky;top:0}.EtEeYG_groupSummary{gap:2px;padding:8px 12px}.EtEeYG_groupSummary dl{gap:6px;margin-top:3px}.EtEeYG_groupInvite{gap:3px;padding:7px 12px}.EtEeYG_groupMemberSection{flex:none}.EtEeYG_groupMemberHeading{min-height:32px;padding-left:12px}.EtEeYG_groupMemberList{overflow:visible}.EtEeYG_groupMemberRow{min-height:40px}.EtEeYG_groupDetailsFooter{background:var(--dsw-alias-bg-layer-1);min-height:40px;padding:0 12px;position:sticky;bottom:0}.EtEeYG_history{gap:6px;padding:8px}.EtEeYG_composer{gap:4px;padding:5px 8px 7px}.EtEeYG_composeInput{gap:3px;padding:5px 7px 4px}.EtEeYG_composeInput textarea{height:28px;min-height:28px}.EtEeYG_composeActions{min-height:28px}.EtEeYG_filePicker,.EtEeYG_send{width:28px;height:28px}.EtEeYG_mentionCandidates{max-height:72px}.EtEeYG_compactModal.EtEeYG_compactModal{border-radius:12px;gap:10px;max-height:calc(100vh - 48px);padding-bottom:12px}}@media (hover:none){.EtEeYG_conversationMenu{opacity:1}}@media (prefers-reduced-motion:reduce){.EtEeYG_drawer{scroll-behavior:auto;transition:none}.EtEeYG_summaryLoading>svg,.EtEeYG_summaryTrigger:disabled>svg:first-child,.EtEeYG_historyLoading>svg,.EtEeYG_recoveryProgressPanel>svg,.EtEeYG_groupMemberHeading button[data-busy] svg,.EtEeYG_pendingMessageSpinner{animation:none}}";
|
|
7879
|
+
const tagId$4 = "@awiki/dsh-plugin/AwikiOverlay.module.css";
|
|
7880
|
+
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
|
|
7482
7881
|
const tag = document.createElement("style");
|
|
7483
7882
|
tag.dataset.plugin = "@awiki/dsh-plugin";
|
|
7484
|
-
tag.dataset.pluginCss = tagId$
|
|
7485
|
-
tag.textContent = css$
|
|
7883
|
+
tag.dataset.pluginCss = tagId$4;
|
|
7884
|
+
tag.textContent = css$4;
|
|
7486
7885
|
document.head.appendChild(tag);
|
|
7487
7886
|
}
|
|
7488
7887
|
var _dsh_awiki_css_AwikiOverlay_module_css_default = {
|
|
@@ -7540,7 +7939,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7540
7939
|
"groupMemberRole": "EtEeYG_groupMemberRole",
|
|
7541
7940
|
"groupMemberRow": "EtEeYG_groupMemberRow",
|
|
7542
7941
|
"groupMemberSection": "EtEeYG_groupMemberSection",
|
|
7543
|
-
"groupRecoveryNotice": "EtEeYG_groupRecoveryNotice",
|
|
7544
7942
|
"groupSummary": "EtEeYG_groupSummary",
|
|
7545
7943
|
"hiddenConversationList": "EtEeYG_hiddenConversationList",
|
|
7546
7944
|
"hiddenConversationRow": "EtEeYG_hiddenConversationRow",
|
|
@@ -7889,36 +8287,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7889
8287
|
className: _dsh_awiki_css_AwikiOverlay_module_css_default.recoveryHandle,
|
|
7890
8288
|
children: progress.fullHandle
|
|
7891
8289
|
}),
|
|
7892
|
-
(0, react_jsx_runtime.
|
|
8290
|
+
(0, react_jsx_runtime.jsx)("div", {
|
|
7893
8291
|
className: _dsh_awiki_css_AwikiOverlay_module_css_default.recoveryImpact,
|
|
7894
|
-
children:
|
|
7895
|
-
|
|
7896
|
-
|
|
7897
|
-
|
|
7898
|
-
|
|
7899
|
-
|
|
7900
|
-
|
|
7901
|
-
|
|
7902
|
-
}),
|
|
7903
|
-
progress.unsupportedE2eeGroupCount > 0 && (0, react_jsx_runtime.jsxs)("p", {
|
|
7904
|
-
"data-tone": "neutral",
|
|
7905
|
-
children: [
|
|
7906
|
-
(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutline16, { size: 14 }),
|
|
7907
|
-
"有 ",
|
|
7908
|
-
progress.unsupportedE2eeGroupCount,
|
|
7909
|
-
" 个加密群聊无法自动迁移。"
|
|
7910
|
-
]
|
|
7911
|
-
}),
|
|
7912
|
-
progress.unsupportedDidOnlyGroupCount > 0 && (0, react_jsx_runtime.jsxs)("p", {
|
|
7913
|
-
"data-tone": "neutral",
|
|
7914
|
-
children: [
|
|
7915
|
-
(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutline16, { size: 14 }),
|
|
7916
|
-
"有 ",
|
|
7917
|
-
progress.unsupportedDidOnlyGroupCount,
|
|
7918
|
-
" 个仅 DID 群聊需要手动处理。"
|
|
7919
|
-
]
|
|
7920
|
-
})
|
|
7921
|
-
]
|
|
8292
|
+
children: (0, react_jsx_runtime.jsxs)("p", {
|
|
8293
|
+
"data-tone": progress.localOrdinaryDataWillMigrate ? "success" : "neutral",
|
|
8294
|
+
children: [
|
|
8295
|
+
progress.localOrdinaryDataWillMigrate ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutline16, { size: 14 }) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutline16, { size: 14 }),
|
|
8296
|
+
"普通本地会话数据",
|
|
8297
|
+
progress.localOrdinaryDataWillMigrate ? "将迁移到恢复后的身份" : "不会迁移"
|
|
8298
|
+
]
|
|
8299
|
+
})
|
|
7922
8300
|
}),
|
|
7923
8301
|
preCommit ? (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("p", {
|
|
7924
8302
|
className: _dsh_awiki_css_AwikiOverlay_module_css_default.recoveryConfirmationCopy,
|
|
@@ -7963,13 +8341,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7963
8341
|
}
|
|
7964
8342
|
//#endregion
|
|
7965
8343
|
//#region \0dsh-awiki-css:AwikiIdentityAccess.module.css.mjs
|
|
7966
|
-
const css$
|
|
7967
|
-
const tagId$
|
|
7968
|
-
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$
|
|
8344
|
+
const css$3 = ".r_slHG_accessFlow{width:100%;min-width:0;color:var(--dsw-alias-label-secondary);gap:14px;display:grid}.r_slHG_identityIcon,.r_slHG_progressIcon{width:48px;height:48px;color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-interactive-bg-active);border-radius:50%;place-items:center;margin:0 auto;display:grid}.r_slHG_progressIcon svg{animation:1s linear infinite r_slHG_identity-spin}@keyframes r_slHG_identity-spin{to{transform:rotate(360deg)}}.r_slHG_headingGroup{text-align:center;gap:6px;display:grid}.r_slHG_headingGroup h3,.r_slHG_headingGroup p,.r_slHG_existingNotice p,.r_slHG_dangerPanel p{margin:0}.r_slHG_headingGroup h3{color:var(--dsw-alias-label-primary);font-size:18px;line-height:26px}.r_slHG_headingGroup p,.r_slHG_existingNotice p,.r_slHG_dangerPanel p{font-size:13px;line-height:20px}.r_slHG_headingGroup strong{color:var(--dsw-alias-label-primary);overflow-wrap:anywhere}.r_slHG_identitySummary{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);border-radius:8px;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;padding:12px 14px;font-size:12px;line-height:18px;display:grid}.r_slHG_identitySummary span{color:var(--dsw-alias-label-tertiary)}.r_slHG_identitySummary strong{overflow-wrap:anywhere;min-width:0;color:var(--dsw-alias-label-primary)}.r_slHG_field{color:var(--dsw-alias-label-secondary);text-align:left;gap:6px;font-size:13px;line-height:20px;display:grid}.r_slHG_field input{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);width:100%;height:40px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);font:inherit;border-radius:8px;padding:0 12px}.r_slHG_field input:focus-visible,.r_slHG_primary:focus-visible,.r_slHG_secondary:focus-visible,.r_slHG_linkButton:focus-visible,.r_slHG_dangerLink:focus-visible,.r_slHG_dangerButton:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}.r_slHG_primary,.r_slHG_secondary,.r_slHG_dangerButton{cursor:pointer;min-height:40px;font:inherit;border-radius:8px;padding:0 14px}.r_slHG_primary{color:var(--dsw-alias-label-primary-inverted);background:var(--dsw-alias-button-primary-fill);border:0}.r_slHG_primary:hover{background:var(--dsw-alias-button-primary-hover)}.r_slHG_secondary{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary);background:0 0}.r_slHG_secondary:hover{background:var(--dsw-alias-interactive-bg-hover)}.r_slHG_primary:disabled,.r_slHG_secondary:disabled,.r_slHG_linkButton:disabled,.r_slHG_dangerLink:disabled,.r_slHG_dangerButton:disabled{cursor:default;opacity:.5}.r_slHG_linkButton,.r_slHG_dangerLink{cursor:pointer;min-height:32px;font:inherit;background:0 0;border:0;padding:0;font-size:12px}.r_slHG_linkButton{color:var(--dsw-alias-brand-primary)}.r_slHG_dangerLink{color:var(--dsw-alias-state-error-primary)}.r_slHG_actionStack{gap:8px;display:grid}.r_slHG_existingNotice,.r_slHG_dangerPanel{border-left:3px solid var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-2);gap:10px;padding:12px 14px;display:grid}.r_slHG_existingNotice strong{color:var(--dsw-alias-label-primary)}.r_slHG_dangerPanel{border-left-color:var(--dsw-alias-state-error-primary)}.r_slHG_dangerPanel strong{color:var(--dsw-alias-label-primary);font-size:13px;line-height:20px}.r_slHG_confirmation{color:var(--dsw-alias-label-secondary);align-items:flex-start;gap:8px;font-size:12px;line-height:18px;display:flex}.r_slHG_confirmation input{width:16px;height:16px;accent-color:var(--dsw-alias-state-error-primary);flex:none;margin:1px 0 0}.r_slHG_dangerButton{border:1px solid var(--dsw-alias-state-error-primary);color:var(--dsw-alias-state-error-primary);background:0 0}.r_slHG_dangerButton:hover{background:var(--dsw-alias-interactive-bg-hover-danger)}.r_slHG_recoveryHelp{border-top:1px solid var(--dsw-alias-border-l1);gap:10px;padding-top:14px;display:grid}.r_slHG_recoveryHelp p{color:var(--dsw-alias-label-secondary);margin:0;font-size:12px;line-height:18px}.r_slHG_notice,.r_slHG_error{overflow-wrap:anywhere;font-size:12px;line-height:18px}.r_slHG_notice{color:var(--dsw-alias-label-secondary)}.r_slHG_error{color:var(--dsw-alias-state-error-primary)}.r_slHG_sas{letter-spacing:.2em;text-align:center;font-variant-numeric:tabular-nums;font-size:32px}@media (height<=560px){.r_slHG_accessFlow{gap:8px}.r_slHG_identityIcon,.r_slHG_progressIcon{width:32px;height:32px}}@media (prefers-reduced-motion:reduce){.r_slHG_primary,.r_slHG_secondary,.r_slHG_linkButton,.r_slHG_dangerLink,.r_slHG_dangerButton{transition-duration:.001ms!important}.r_slHG_progressIcon svg{animation-duration:.001ms!important}}";
|
|
8345
|
+
const tagId$3 = "@awiki/dsh-plugin/AwikiIdentityAccess.module.css";
|
|
8346
|
+
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
|
|
7969
8347
|
const tag = document.createElement("style");
|
|
7970
8348
|
tag.dataset.plugin = "@awiki/dsh-plugin";
|
|
7971
|
-
tag.dataset.pluginCss = tagId$
|
|
7972
|
-
tag.textContent = css$
|
|
8349
|
+
tag.dataset.pluginCss = tagId$3;
|
|
8350
|
+
tag.textContent = css$3;
|
|
7973
8351
|
document.head.appendChild(tag);
|
|
7974
8352
|
}
|
|
7975
8353
|
var _dsh_awiki_css_AwikiIdentityAccess_module_css_default = {
|
|
@@ -7991,6 +8369,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7991
8369
|
"primary": "r_slHG_primary",
|
|
7992
8370
|
"progressIcon": "r_slHG_progressIcon",
|
|
7993
8371
|
"recoveryHelp": "r_slHG_recoveryHelp",
|
|
8372
|
+
"sas": "r_slHG_sas",
|
|
7994
8373
|
"secondary": "r_slHG_secondary"
|
|
7995
8374
|
};
|
|
7996
8375
|
//#endregion
|
|
@@ -8029,6 +8408,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8029
8408
|
const [signedOutAlternative, setSignedOutAlternative] = (0, react.useState)("none");
|
|
8030
8409
|
const [replaceConfirmed, setReplaceConfirmed] = (0, react.useState)(false);
|
|
8031
8410
|
const [loginFailed, setLoginFailed] = (0, react.useState)(false);
|
|
8411
|
+
const [joinContext, setJoinContext] = (0, react.useState)(null);
|
|
8412
|
+
const [joinProgress, setJoinProgress] = (0, react.useState)(null);
|
|
8032
8413
|
(0, react.useEffect)(() => {
|
|
8033
8414
|
if (retryDeadline === null) return;
|
|
8034
8415
|
const update = () => {
|
|
@@ -8073,36 +8454,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8073
8454
|
setRetrySeconds(cooldownSeconds);
|
|
8074
8455
|
setNotice(`注册验证码已发送;${cooldownSeconds} 秒后可重新获取。`);
|
|
8075
8456
|
};
|
|
8076
|
-
const requestIdentityOtp =
|
|
8077
|
-
setError(null);
|
|
8078
|
-
setNotice(null);
|
|
8079
|
-
const requestedHandle = handle.trim();
|
|
8080
|
-
const requestedPhone = phone.trim();
|
|
8081
|
-
const inspection = await props.inspectIdentityAccess({ handle: requestedHandle });
|
|
8082
|
-
if (!inspection.ok) {
|
|
8083
|
-
setError(inspection.error);
|
|
8084
|
-
return;
|
|
8085
|
-
}
|
|
8086
|
-
if (inspection.value.status === "existing") {
|
|
8087
|
-
const factorContext = {
|
|
8088
|
-
fullHandle: inspection.value.fullHandle,
|
|
8089
|
-
phone: requestedPhone
|
|
8090
|
-
};
|
|
8091
|
-
setRecoveryFactorContext(factorContext);
|
|
8092
|
-
const recovery = await props.sendRecoveryOtp(factorContext);
|
|
8093
|
-
if (!recovery.ok) {
|
|
8094
|
-
setRecoveryFactorContext(null);
|
|
8095
|
-
setError(recovery.error);
|
|
8096
|
-
return;
|
|
8097
|
-
}
|
|
8098
|
-
setRecoveryFactorContext({
|
|
8099
|
-
fullHandle: recovery.value.fullHandle,
|
|
8100
|
-
phone: requestedPhone
|
|
8101
|
-
});
|
|
8102
|
-
return;
|
|
8103
|
-
}
|
|
8104
|
-
await requestRegistrationOtp();
|
|
8105
|
-
};
|
|
8457
|
+
const requestIdentityOtp = requestRegistrationOtp;
|
|
8106
8458
|
const completeRegistration = async () => {
|
|
8107
8459
|
if (!registrationOtpSent) return;
|
|
8108
8460
|
setError(null);
|
|
@@ -8115,10 +8467,77 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8115
8467
|
setError(result.error);
|
|
8116
8468
|
return;
|
|
8117
8469
|
}
|
|
8470
|
+
if (result.value.status === "join-required") {
|
|
8471
|
+
setOtp("");
|
|
8472
|
+
setJoinContext({
|
|
8473
|
+
fullHandle: result.value.fullHandle,
|
|
8474
|
+
phone: phone.trim()
|
|
8475
|
+
});
|
|
8476
|
+
return;
|
|
8477
|
+
}
|
|
8118
8478
|
setPhone("");
|
|
8119
8479
|
setHandle("");
|
|
8120
8480
|
resetIdentityEntry();
|
|
8121
8481
|
};
|
|
8482
|
+
const beginJoin = async () => {
|
|
8483
|
+
setError(null);
|
|
8484
|
+
const result = await props.beginDeviceJoin();
|
|
8485
|
+
if (!result.ok) return setError(result.error);
|
|
8486
|
+
setJoinProgress(result.value);
|
|
8487
|
+
};
|
|
8488
|
+
const cancelJoin = async () => {
|
|
8489
|
+
setError(null);
|
|
8490
|
+
const result = await props.cancelDeviceJoin();
|
|
8491
|
+
if (!result.ok) return setError(result.error);
|
|
8492
|
+
setJoinContext(null);
|
|
8493
|
+
setJoinProgress(null);
|
|
8494
|
+
resetIdentityEntry();
|
|
8495
|
+
};
|
|
8496
|
+
const chooseRecovery = async () => {
|
|
8497
|
+
if (joinContext === null || !props.handleRecoveryPhoneEnabled) return;
|
|
8498
|
+
setError(null);
|
|
8499
|
+
const discarded = await props.cancelDeviceJoin();
|
|
8500
|
+
if (!discarded.ok) return setError(discarded.error);
|
|
8501
|
+
const recovery = await props.sendRecoveryOtp({
|
|
8502
|
+
fullHandle: joinContext.fullHandle,
|
|
8503
|
+
phone: joinContext.phone
|
|
8504
|
+
});
|
|
8505
|
+
if (!recovery.ok) return setError(recovery.error);
|
|
8506
|
+
setRecoveryFactorContext({
|
|
8507
|
+
fullHandle: recovery.value.fullHandle,
|
|
8508
|
+
phone: joinContext.phone
|
|
8509
|
+
});
|
|
8510
|
+
setJoinContext(null);
|
|
8511
|
+
};
|
|
8512
|
+
(0, react.useEffect)(() => {
|
|
8513
|
+
if (props.sessionStatus !== "unregistered" || joinContext !== null || joinProgress !== null || typeof props.getDeviceJoinStatus !== "function") return;
|
|
8514
|
+
let active = true;
|
|
8515
|
+
props.getDeviceJoinStatus().then((result) => {
|
|
8516
|
+
if (!active) return;
|
|
8517
|
+
if (!result.ok) setError(result.error);
|
|
8518
|
+
else if (result.value !== null) setJoinProgress(result.value);
|
|
8519
|
+
});
|
|
8520
|
+
return () => {
|
|
8521
|
+
active = false;
|
|
8522
|
+
};
|
|
8523
|
+
}, [props.sessionStatus]);
|
|
8524
|
+
(0, react.useEffect)(() => {
|
|
8525
|
+
if (joinProgress === null || [
|
|
8526
|
+
"authorized",
|
|
8527
|
+
"cancelled",
|
|
8528
|
+
"rejected",
|
|
8529
|
+
"expired"
|
|
8530
|
+
].includes(joinProgress.phase)) return;
|
|
8531
|
+
const timer = setInterval(() => {
|
|
8532
|
+
props.getDeviceJoinStatus().then((result) => {
|
|
8533
|
+
if (!result.ok) setError(result.error);
|
|
8534
|
+
else if (result.value !== null) setJoinProgress(result.value);
|
|
8535
|
+
});
|
|
8536
|
+
}, 2e3);
|
|
8537
|
+
return () => {
|
|
8538
|
+
clearInterval(timer);
|
|
8539
|
+
};
|
|
8540
|
+
}, [joinProgress?.phase]);
|
|
8122
8541
|
const login = async () => {
|
|
8123
8542
|
setError(null);
|
|
8124
8543
|
setLoginFailed(false);
|
|
@@ -8164,6 +8583,94 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8164
8583
|
requestTitle: "需要重新恢复身份",
|
|
8165
8584
|
requestDescription: "这个 Handle 已在另一台设备完成了更新恢复,当前设备的旧凭证因此失效。验证绑定手机号后即可继续使用本机数据。"
|
|
8166
8585
|
});
|
|
8586
|
+
if (props.sessionStatus === "unregistered" && joinProgress !== null) {
|
|
8587
|
+
const terminal = [
|
|
8588
|
+
"cancelled",
|
|
8589
|
+
"rejected",
|
|
8590
|
+
"expired"
|
|
8591
|
+
].includes(joinProgress.phase);
|
|
8592
|
+
return (0, react_jsx_runtime.jsx)(AwikiIdentityPage, { children: (0, react_jsx_runtime.jsxs)("div", {
|
|
8593
|
+
className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.accessFlow,
|
|
8594
|
+
children: [
|
|
8595
|
+
(0, react_jsx_runtime.jsx)("div", {
|
|
8596
|
+
className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.identityIcon,
|
|
8597
|
+
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconUserOutline16, { size: 24 })
|
|
8598
|
+
}),
|
|
8599
|
+
(0, react_jsx_runtime.jsxs)("div", {
|
|
8600
|
+
className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.headingGroup,
|
|
8601
|
+
children: [(0, react_jsx_runtime.jsx)("h3", { children: joinProgress.phase === "sas-ready" ? "核对安全码" : terminal ? "设备加入已结束" : "正在加入设备" }), (0, react_jsx_runtime.jsx)("p", { children: joinProgress.phase === "sas-ready" ? "请在已有管理设备上核对下面的 6 位安全码;只有两端一致时才批准。" : joinProgress.phase === "rejected" ? "管理设备拒绝了这次加入。" : joinProgress.phase === "expired" ? "这次设备加入已过期,请重新验证手机号。" : joinProgress.phase === "cancelled" ? "这次设备加入已取消。" : "请在已有 AWiki Me 或 CLI 管理设备上处理加入请求。" })]
|
|
8602
|
+
}),
|
|
8603
|
+
joinProgress.phase === "sas-ready" && (0, react_jsx_runtime.jsx)("strong", {
|
|
8604
|
+
className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.sas,
|
|
8605
|
+
children: joinProgress.sas
|
|
8606
|
+
}),
|
|
8607
|
+
!terminal && (0, react_jsx_runtime.jsxs)("small", {
|
|
8608
|
+
className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.notice,
|
|
8609
|
+
role: "status",
|
|
8610
|
+
children: ["有效期至 ", joinProgress.expiresAt]
|
|
8611
|
+
}),
|
|
8612
|
+
(0, react_jsx_runtime.jsx)("button", {
|
|
8613
|
+
type: "button",
|
|
8614
|
+
className: terminal ? _dsh_awiki_css_AwikiIdentityAccess_module_css_default.primary : _dsh_awiki_css_AwikiIdentityAccess_module_css_default.secondary,
|
|
8615
|
+
disabled: props.pending,
|
|
8616
|
+
onClick: () => {
|
|
8617
|
+
cancelJoin();
|
|
8618
|
+
},
|
|
8619
|
+
children: terminal ? "返回身份入口" : "取消加入"
|
|
8620
|
+
}),
|
|
8621
|
+
error !== null && (0, react_jsx_runtime.jsx)("small", {
|
|
8622
|
+
className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.error,
|
|
8623
|
+
role: "alert",
|
|
8624
|
+
children: error
|
|
8625
|
+
})
|
|
8626
|
+
]
|
|
8627
|
+
}) });
|
|
8628
|
+
}
|
|
8629
|
+
if (props.sessionStatus === "unregistered" && joinContext !== null) return (0, react_jsx_runtime.jsx)(AwikiIdentityPage, { children: (0, react_jsx_runtime.jsxs)("div", {
|
|
8630
|
+
className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.accessFlow,
|
|
8631
|
+
children: [
|
|
8632
|
+
(0, react_jsx_runtime.jsx)("div", {
|
|
8633
|
+
className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.identityIcon,
|
|
8634
|
+
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconUserOutline16, { size: 24 })
|
|
8635
|
+
}),
|
|
8636
|
+
(0, react_jsx_runtime.jsxs)("div", {
|
|
8637
|
+
className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.headingGroup,
|
|
8638
|
+
children: [(0, react_jsx_runtime.jsx)("h3", { children: "这个 Handle 已存在" }), (0, react_jsx_runtime.jsx)("p", { children: "推荐把当前 DSH 作为新设备加入,原身份和其他设备会继续有效。" })]
|
|
8639
|
+
}),
|
|
8640
|
+
(0, react_jsx_runtime.jsx)("button", {
|
|
8641
|
+
type: "button",
|
|
8642
|
+
className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.primary,
|
|
8643
|
+
disabled: props.pending,
|
|
8644
|
+
onClick: () => {
|
|
8645
|
+
beginJoin();
|
|
8646
|
+
},
|
|
8647
|
+
children: "加入新设备(推荐)"
|
|
8648
|
+
}),
|
|
8649
|
+
props.handleRecoveryPhoneEnabled && (0, react_jsx_runtime.jsx)("button", {
|
|
8650
|
+
type: "button",
|
|
8651
|
+
className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.dangerLink,
|
|
8652
|
+
disabled: props.pending,
|
|
8653
|
+
onClick: () => {
|
|
8654
|
+
chooseRecovery();
|
|
8655
|
+
},
|
|
8656
|
+
children: "恢复 Handle(会替换 DID)"
|
|
8657
|
+
}),
|
|
8658
|
+
(0, react_jsx_runtime.jsx)("button", {
|
|
8659
|
+
type: "button",
|
|
8660
|
+
className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.secondary,
|
|
8661
|
+
disabled: props.pending,
|
|
8662
|
+
onClick: () => {
|
|
8663
|
+
cancelJoin();
|
|
8664
|
+
},
|
|
8665
|
+
children: "取消"
|
|
8666
|
+
}),
|
|
8667
|
+
error !== null && (0, react_jsx_runtime.jsx)("small", {
|
|
8668
|
+
className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.error,
|
|
8669
|
+
role: "alert",
|
|
8670
|
+
children: error
|
|
8671
|
+
})
|
|
8672
|
+
]
|
|
8673
|
+
}) });
|
|
8167
8674
|
if (props.sessionStatus === "signed-out") {
|
|
8168
8675
|
if (signedOutAlternative === "recover") return (0, react_jsx_runtime.jsx)(Recovery, {
|
|
8169
8676
|
...props,
|
|
@@ -8292,16 +8799,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8292
8799
|
}),
|
|
8293
8800
|
(0, react_jsx_runtime.jsxs)("div", {
|
|
8294
8801
|
className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.headingGroup,
|
|
8295
|
-
children: [(0, react_jsx_runtime.jsx)("h3", { children: registrationOtpSent ? "
|
|
8296
|
-
}),
|
|
8297
|
-
props.legacySharedStateDetected === true && props.profileName != null && (0, react_jsx_runtime.jsxs)("div", {
|
|
8298
|
-
className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.existingNotice,
|
|
8299
|
-
role: "status",
|
|
8300
|
-
children: [(0, react_jsx_runtime.jsx)("strong", { children: "已为当前 Profile 隔离 AWiki 数据" }), (0, react_jsx_runtime.jsxs)("p", { children: [
|
|
8301
|
-
"检测到旧版共享数据。为避免多个 DSH Profile 同时占用数据库,当前 Profile「",
|
|
8302
|
-
props.profileName,
|
|
8303
|
-
"」使用独立数据目录;旧数据未删除或复制。请用原 Handle 和手机号恢复到此设备。"
|
|
8304
|
-
] })]
|
|
8802
|
+
children: [(0, react_jsx_runtime.jsx)("h3", { children: registrationOtpSent ? "验证身份" : "进入 AWiki" }), (0, react_jsx_runtime.jsx)("p", { children: registrationOtpSent ? "输入注册验证码。新 Handle 会创建身份,已有 Handle 会进入设备加入选择。" : "输入 Handle 和手机号,统一获取注册验证码。" })]
|
|
8305
8803
|
}),
|
|
8306
8804
|
(0, react_jsx_runtime.jsxs)("label", {
|
|
8307
8805
|
className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.field,
|
|
@@ -8344,7 +8842,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8344
8842
|
type: "submit",
|
|
8345
8843
|
className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.primary,
|
|
8346
8844
|
disabled: props.pending || handle.trim() === "" || phone.trim() === "" || registrationOtpSent && otp.trim() === "",
|
|
8347
|
-
children: registrationOtpSent ? "
|
|
8845
|
+
children: registrationOtpSent ? "继续" : "获取验证码"
|
|
8348
8846
|
}),
|
|
8349
8847
|
registrationOtpSent && (0, react_jsx_runtime.jsx)("button", {
|
|
8350
8848
|
type: "button",
|
|
@@ -8620,7 +9118,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8620
9118
|
groupAccess: null,
|
|
8621
9119
|
groupMembers: Object.freeze([]),
|
|
8622
9120
|
groupMembersHasMore: false,
|
|
8623
|
-
groupRecovery: null,
|
|
8624
9121
|
messages: Object.freeze([]),
|
|
8625
9122
|
historyHasMore: false,
|
|
8626
9123
|
localPending: false,
|
|
@@ -8628,8 +9125,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8628
9125
|
pending: null,
|
|
8629
9126
|
error: null,
|
|
8630
9127
|
attachmentMaxBytes: 0,
|
|
8631
|
-
|
|
8632
|
-
legacySharedStateDetected: false,
|
|
9128
|
+
handleRecoveryPhoneEnabled: false,
|
|
8633
9129
|
summaries: Object.freeze({}),
|
|
8634
9130
|
recoveryOperationId: null,
|
|
8635
9131
|
recoveryProgress: null
|
|
@@ -8685,48 +9181,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8685
9181
|
default: return `${failure.code}:${failure.message}`;
|
|
8686
9182
|
}
|
|
8687
9183
|
}
|
|
8688
|
-
function groupRecoveryFailureMessage(failure) {
|
|
8689
|
-
return failure.code === "network" ? "无法连接 AWiki 服务,暂时不能恢复旧群聊身份。" : "暂时不能检查旧群聊身份,请稍后重试。";
|
|
8690
|
-
}
|
|
8691
9184
|
function conversationPreferenceFailureMessage(_failure) {
|
|
8692
9185
|
return "无法保存本机会话设置,请稍后重试。";
|
|
8693
9186
|
}
|
|
8694
|
-
function recoveryFingerprint(parts) {
|
|
8695
|
-
let hash = 2166136261;
|
|
8696
|
-
for (const part of parts) {
|
|
8697
|
-
for (let index = 0; index < part.length; index += 1) {
|
|
8698
|
-
hash ^= part.charCodeAt(index);
|
|
8699
|
-
hash = Math.imul(hash, 16777619);
|
|
8700
|
-
}
|
|
8701
|
-
hash ^= 0;
|
|
8702
|
-
hash = Math.imul(hash, 16777619);
|
|
8703
|
-
}
|
|
8704
|
-
return (hash >>> 0).toString(16).padStart(8, "0");
|
|
8705
|
-
}
|
|
8706
|
-
function groupRecoveryProjection(summary, hiddenGroupDids) {
|
|
8707
|
-
const hiddenItems = summary.items.filter((item) => hiddenGroupDids.has(item.groupDid));
|
|
8708
|
-
const hiddenPending = hiddenItems.filter((item) => item.status === "pending").length;
|
|
8709
|
-
const hiddenBlocked = hiddenItems.filter((item) => item.status === "blocked").length;
|
|
8710
|
-
const pending = Math.max(0, summary.pending - hiddenPending);
|
|
8711
|
-
const blocked = Math.max(0, summary.blocked - hiddenBlocked);
|
|
8712
|
-
const signature = `v1:${pending}:${blocked}:${recoveryFingerprint(summary.items.filter((item) => !hiddenGroupDids.has(item.groupDid)).map((item) => `${item.status}:${item.groupDid}`).sort())}`;
|
|
8713
|
-
if (blocked > 0) return {
|
|
8714
|
-
view: {
|
|
8715
|
-
status: "blocked",
|
|
8716
|
-
pending,
|
|
8717
|
-
blocked
|
|
8718
|
-
},
|
|
8719
|
-
signature
|
|
8720
|
-
};
|
|
8721
|
-
return {
|
|
8722
|
-
view: pending > 0 ? {
|
|
8723
|
-
status: "pending",
|
|
8724
|
-
pending,
|
|
8725
|
-
blocked: 0
|
|
8726
|
-
} : null,
|
|
8727
|
-
signature
|
|
8728
|
-
};
|
|
8729
|
-
}
|
|
8730
9187
|
function groupReadFailureReason(failure) {
|
|
8731
9188
|
switch (failure.code) {
|
|
8732
9189
|
case "group-identity-stale": return "recovering";
|
|
@@ -8904,23 +9361,18 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8904
9361
|
];
|
|
8905
9362
|
/** Runtime-only decoded-byte budget that prevents repeat Host calls while browsing. */
|
|
8906
9363
|
const BROWSER_IMAGE_ATTACHMENT_CACHE_MAX_BYTES = 33554432;
|
|
8907
|
-
const
|
|
8908
|
-
function
|
|
8909
|
-
return `${RECOVERY_OPERATION_STORAGE_PREFIX}${encodeURIComponent(tenantDomain)}`;
|
|
8910
|
-
}
|
|
8911
|
-
function storedRecoveryOperation(tenantDomain) {
|
|
9364
|
+
const RECOVERY_OPERATION_STORAGE_KEY = "awiki.handle-recovery.operation.v1";
|
|
9365
|
+
function storedRecoveryOperation() {
|
|
8912
9366
|
try {
|
|
8913
|
-
return globalThis.localStorage?.getItem(
|
|
9367
|
+
return globalThis.localStorage?.getItem(RECOVERY_OPERATION_STORAGE_KEY) ?? null;
|
|
8914
9368
|
} catch {
|
|
8915
9369
|
return null;
|
|
8916
9370
|
}
|
|
8917
9371
|
}
|
|
8918
|
-
function storeRecoveryOperation(
|
|
8919
|
-
if (tenantDomain === void 0) return;
|
|
9372
|
+
function storeRecoveryOperation(operationId) {
|
|
8920
9373
|
try {
|
|
8921
|
-
|
|
8922
|
-
|
|
8923
|
-
else globalThis.localStorage?.setItem(key, operationId);
|
|
9374
|
+
if (operationId === null) globalThis.localStorage?.removeItem(RECOVERY_OPERATION_STORAGE_KEY);
|
|
9375
|
+
else globalThis.localStorage?.setItem(RECOVERY_OPERATION_STORAGE_KEY, operationId);
|
|
8924
9376
|
} catch {}
|
|
8925
9377
|
}
|
|
8926
9378
|
/** Wait between group-history readiness probes without retaining controller state. */
|
|
@@ -8990,18 +9442,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8990
9442
|
directProfiles = /* @__PURE__ */ new Map();
|
|
8991
9443
|
/** Last trustworthy group title for the active identity, keyed by canonical Group DID. */
|
|
8992
9444
|
groupTitles = /* @__PURE__ */ new Map();
|
|
8993
|
-
/** Current secret-free Core journal state, keyed by canonical Group DID. */
|
|
8994
|
-
groupRecoveryItems = /* @__PURE__ */ new Map();
|
|
8995
9445
|
/** Identity-scoped product overlays. Core conversations and history remain untouched. */
|
|
8996
9446
|
hiddenConversationPreferences = /* @__PURE__ */ new Map();
|
|
8997
|
-
dismissedGroupRecoverySignature;
|
|
8998
|
-
lastGroupRecoverySignature;
|
|
8999
|
-
lastGroupRecoverySummary;
|
|
9000
9447
|
/** Verified image payloads retained outside observable state for instant remounts. */
|
|
9001
9448
|
imageAttachments = /* @__PURE__ */ new Map();
|
|
9002
9449
|
imageAttachmentCacheBytes = 0;
|
|
9003
9450
|
presentationCacheOwnerDid = null;
|
|
9004
|
-
groupRecoveryOperation;
|
|
9005
9451
|
/**
|
|
9006
9452
|
* @param remote - generated Host Remote namespace.
|
|
9007
9453
|
* @param persistentImageCache - browser-origin verified preview cache.
|
|
@@ -9054,11 +9500,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9054
9500
|
identity: session.value.status === "active" ? session.value.identity : null,
|
|
9055
9501
|
error: null,
|
|
9056
9502
|
attachmentMaxBytes: config.value.attachmentMaxBytes,
|
|
9057
|
-
|
|
9058
|
-
|
|
9059
|
-
recoveryOperationId: storedRecoveryOperation(config.value.tenantDomain)
|
|
9503
|
+
handleRecoveryPhoneEnabled: config.value.handleRecoveryPhoneEnabled,
|
|
9504
|
+
recoveryOperationId: storedRecoveryOperation()
|
|
9060
9505
|
});
|
|
9061
|
-
const operationId = storedRecoveryOperation(
|
|
9506
|
+
const operationId = storedRecoveryOperation();
|
|
9062
9507
|
if (operationId !== null) {
|
|
9063
9508
|
const recovery = await call(() => this.remote.getRecoveryStatus({ operationId }));
|
|
9064
9509
|
if (this.current(generation) && recovery.ok) {
|
|
@@ -9068,7 +9513,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9068
9513
|
recoveryProgress: recovery.value
|
|
9069
9514
|
});
|
|
9070
9515
|
if (recovery.value.phase === "applied") {
|
|
9071
|
-
storeRecoveryOperation(
|
|
9516
|
+
storeRecoveryOperation(null);
|
|
9072
9517
|
this.publish({
|
|
9073
9518
|
...this.view,
|
|
9074
9519
|
recoveryOperationId: null,
|
|
@@ -9100,7 +9545,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9100
9545
|
if (!loaded.ok) return loaded;
|
|
9101
9546
|
const generation = this.generation;
|
|
9102
9547
|
if (this.view.identity !== null) {
|
|
9103
|
-
const listed = await this.
|
|
9548
|
+
const listed = await this.refreshConversations(generation);
|
|
9104
9549
|
if (!listed.ok) return listed;
|
|
9105
9550
|
}
|
|
9106
9551
|
if (this.current(generation)) this.timer = setInterval(() => {
|
|
@@ -9128,7 +9573,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9128
9573
|
...INITIAL_VIEW,
|
|
9129
9574
|
status: "ready",
|
|
9130
9575
|
sessionStatus: "signed-out",
|
|
9131
|
-
attachmentMaxBytes: this.config?.attachmentMaxBytes ?? 0
|
|
9576
|
+
attachmentMaxBytes: this.config?.attachmentMaxBytes ?? 0,
|
|
9577
|
+
handleRecoveryPhoneEnabled: this.config?.handleRecoveryPhoneEnabled ?? false
|
|
9132
9578
|
});
|
|
9133
9579
|
return result;
|
|
9134
9580
|
}
|
|
@@ -9182,16 +9628,50 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9182
9628
|
const result = await this.withPending("注册身份", () => call(() => this.remote.registerIdentity(request), registrationFailureMessage));
|
|
9183
9629
|
if (!result.ok) return result;
|
|
9184
9630
|
if (!this.current(generation)) return result;
|
|
9185
|
-
|
|
9186
|
-
|
|
9187
|
-
|
|
9188
|
-
|
|
9189
|
-
|
|
9190
|
-
|
|
9191
|
-
|
|
9192
|
-
|
|
9631
|
+
if (result.value.status === "registered") {
|
|
9632
|
+
this.activatePresentationCache(result.value.identity);
|
|
9633
|
+
this.publish({
|
|
9634
|
+
...this.view,
|
|
9635
|
+
sessionStatus: "active",
|
|
9636
|
+
identity: result.value.identity,
|
|
9637
|
+
error: null
|
|
9638
|
+
});
|
|
9639
|
+
await this.refreshConversations(generation);
|
|
9640
|
+
}
|
|
9641
|
+
return result;
|
|
9642
|
+
}
|
|
9643
|
+
beginDeviceJoin() {
|
|
9644
|
+
return this.withPending("开始加入设备", () => call(() => this.remote.beginDeviceJoin()));
|
|
9645
|
+
}
|
|
9646
|
+
async getDeviceJoinStatus() {
|
|
9647
|
+
const result = await call(() => this.remote.getDeviceJoinStatus());
|
|
9648
|
+
if (result.ok && result.value?.completed) await this.loadSession();
|
|
9193
9649
|
return result;
|
|
9194
9650
|
}
|
|
9651
|
+
cancelDeviceJoin() {
|
|
9652
|
+
return this.withPending("取消加入设备", async () => {
|
|
9653
|
+
const result = await call(() => this.remote.cancelDeviceJoin());
|
|
9654
|
+
return result.ok ? {
|
|
9655
|
+
ok: true,
|
|
9656
|
+
value: void 0
|
|
9657
|
+
} : result;
|
|
9658
|
+
});
|
|
9659
|
+
}
|
|
9660
|
+
refreshDeviceManagement() {
|
|
9661
|
+
return call(() => this.remote.refreshDeviceManagement());
|
|
9662
|
+
}
|
|
9663
|
+
startDeviceJoinVerification(request) {
|
|
9664
|
+
return this.withPending("开始设备验证", () => call(() => this.remote.startDeviceJoinVerification(request)));
|
|
9665
|
+
}
|
|
9666
|
+
approveDeviceJoin(request) {
|
|
9667
|
+
return this.withPending("批准设备", () => call(() => this.remote.approveDeviceJoin(request)));
|
|
9668
|
+
}
|
|
9669
|
+
rejectDeviceJoin(request) {
|
|
9670
|
+
return this.withPending("拒绝设备", () => call(() => this.remote.rejectDeviceJoin(request)));
|
|
9671
|
+
}
|
|
9672
|
+
revokeDevice(request) {
|
|
9673
|
+
return this.withPending("撤销设备", () => call(() => this.remote.revokeDevice(request)));
|
|
9674
|
+
}
|
|
9195
9675
|
/**
|
|
9196
9676
|
* Update the deployment identity's public display name.
|
|
9197
9677
|
* @param displayName - replacement display name selected by the user.
|
|
@@ -9243,7 +9723,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9243
9723
|
async sendRecoveryOtp(request) {
|
|
9244
9724
|
const result = await this.withPending("发送恢复验证码", () => call(() => this.remote.sendRecoveryOtp(request), registrationOtpFailureMessage), { publishFailure: false });
|
|
9245
9725
|
if (!result.ok) return result;
|
|
9246
|
-
storeRecoveryOperation(
|
|
9726
|
+
storeRecoveryOperation(result.value.operationId);
|
|
9247
9727
|
this.publish({
|
|
9248
9728
|
...this.view,
|
|
9249
9729
|
recoveryOperationId: result.value.operationId,
|
|
@@ -9278,7 +9758,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9278
9758
|
recoveryProgress: result.value
|
|
9279
9759
|
});
|
|
9280
9760
|
if (result.value.phase === "applied") {
|
|
9281
|
-
storeRecoveryOperation(
|
|
9761
|
+
storeRecoveryOperation(null);
|
|
9282
9762
|
this.publish({
|
|
9283
9763
|
...this.view,
|
|
9284
9764
|
recoveryOperationId: null,
|
|
@@ -9299,7 +9779,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9299
9779
|
recoveryProgress: result.value
|
|
9300
9780
|
});
|
|
9301
9781
|
if (result.value.phase === "applied") {
|
|
9302
|
-
storeRecoveryOperation(
|
|
9782
|
+
storeRecoveryOperation(null);
|
|
9303
9783
|
this.publish({
|
|
9304
9784
|
...this.view,
|
|
9305
9785
|
recoveryOperationId: null,
|
|
@@ -9326,7 +9806,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9326
9806
|
recoveryProgress: result.value
|
|
9327
9807
|
});
|
|
9328
9808
|
if (result.value.phase === "applied") {
|
|
9329
|
-
storeRecoveryOperation(
|
|
9809
|
+
storeRecoveryOperation(null);
|
|
9330
9810
|
this.publish({
|
|
9331
9811
|
...this.view,
|
|
9332
9812
|
recoveryOperationId: null,
|
|
@@ -9347,7 +9827,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9347
9827
|
if (phase !== void 0 && phase !== "awaiting_factor" && phase !== "ready_to_commit") return this.fail("当前恢复状态不能取消");
|
|
9348
9828
|
const result = await this.withPending("取消身份恢复", () => call(() => this.remote.discardRecovery({ operationId })), { publishFailure: false });
|
|
9349
9829
|
if (!result.ok) return result;
|
|
9350
|
-
storeRecoveryOperation(
|
|
9830
|
+
storeRecoveryOperation(null);
|
|
9351
9831
|
this.publish({
|
|
9352
9832
|
...this.view,
|
|
9353
9833
|
recoveryOperationId: null,
|
|
@@ -9358,16 +9838,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9358
9838
|
value: void 0
|
|
9359
9839
|
};
|
|
9360
9840
|
}
|
|
9361
|
-
/** Return cached browser-safe runtime policy, or load it once on demand. */
|
|
9362
|
-
async getConfig() {
|
|
9363
|
-
if (this.config !== null) return {
|
|
9364
|
-
ok: true,
|
|
9365
|
-
value: this.config
|
|
9366
|
-
};
|
|
9367
|
-
const result = await call(() => this.remote.getConfig(), mailFailureMessage);
|
|
9368
|
-
if (result.ok) this.config = result.value;
|
|
9369
|
-
return result;
|
|
9370
|
-
}
|
|
9371
9841
|
/** Read the active deployment identity's public mailbox state. */
|
|
9372
9842
|
getMailAccount() {
|
|
9373
9843
|
return call(() => this.remote.getMailAccount(), mailFailureMessage);
|
|
@@ -9388,20 +9858,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9388
9858
|
sendMail(request) {
|
|
9389
9859
|
return call(() => this.remote.sendMail(request), mailFailureMessage);
|
|
9390
9860
|
}
|
|
9391
|
-
/** Download one explicitly selected mail attachment without retaining its bytes. */
|
|
9392
|
-
async downloadMailAttachment(request) {
|
|
9393
|
-
if (this.disposed) return {
|
|
9394
|
-
ok: false,
|
|
9395
|
-
error: "AWiki 插件已卸载"
|
|
9396
|
-
};
|
|
9397
|
-
const generation = this.generation;
|
|
9398
|
-
const result = await call(() => this.remote.downloadMailAttachment(request), mailFailureMessage);
|
|
9399
|
-
if (!this.current(generation)) return {
|
|
9400
|
-
ok: false,
|
|
9401
|
-
error: "AWiki 已关闭"
|
|
9402
|
-
};
|
|
9403
|
-
return result;
|
|
9404
|
-
}
|
|
9405
9861
|
/**
|
|
9406
9862
|
* Load another page of the conversation roster.
|
|
9407
9863
|
* @returns successful pagination or one display-safe failure.
|
|
@@ -9424,7 +9880,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9424
9880
|
...this.view,
|
|
9425
9881
|
conversations: appendUnique(this.view.conversations, conversations.visible, (value) => value.id),
|
|
9426
9882
|
hiddenConversations: conversations.hidden,
|
|
9427
|
-
groupRecovery: this.currentGroupRecoveryView(),
|
|
9428
9883
|
conversationsHasMore: result.value.hasMore && result.value.nextCursor !== void 0
|
|
9429
9884
|
});
|
|
9430
9885
|
return {
|
|
@@ -9432,41 +9887,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9432
9887
|
value: void 0
|
|
9433
9888
|
};
|
|
9434
9889
|
}
|
|
9435
|
-
/** Synchronize account projections, then retry Core's durable group-rebind journal. */
|
|
9436
|
-
async retryGroupRebindRecovery() {
|
|
9437
|
-
const generation = this.generation;
|
|
9438
|
-
return this.withPending("恢复群聊身份", async () => {
|
|
9439
|
-
const listed = await this.refreshConversations(generation, true);
|
|
9440
|
-
if (!listed.ok) return {
|
|
9441
|
-
ok: false,
|
|
9442
|
-
error: listed.error
|
|
9443
|
-
};
|
|
9444
|
-
return this.resumeGroupRebindRecovery(generation);
|
|
9445
|
-
});
|
|
9446
|
-
}
|
|
9447
|
-
/** Dismiss only the current recovery-summary revision; Core recovery remains untouched. */
|
|
9448
|
-
async dismissGroupRecoveryNotice() {
|
|
9449
|
-
const signature = this.lastGroupRecoverySignature;
|
|
9450
|
-
if (signature === void 0 || this.view.groupRecovery === null) return {
|
|
9451
|
-
ok: true,
|
|
9452
|
-
value: void 0
|
|
9453
|
-
};
|
|
9454
|
-
const result = await call(() => this.remote.updateConversationPreference({
|
|
9455
|
-
action: "dismiss-group-recovery",
|
|
9456
|
-
signature
|
|
9457
|
-
}), conversationPreferenceFailureMessage);
|
|
9458
|
-
if (!result.ok) return this.fail(result.error);
|
|
9459
|
-
this.applyConversationPreferences(result.value);
|
|
9460
|
-
this.publish({
|
|
9461
|
-
...this.view,
|
|
9462
|
-
groupRecovery: null,
|
|
9463
|
-
error: null
|
|
9464
|
-
});
|
|
9465
|
-
return {
|
|
9466
|
-
ok: true,
|
|
9467
|
-
value: void 0
|
|
9468
|
-
};
|
|
9469
|
-
}
|
|
9470
9890
|
/** Hide one recent row locally without leaving a group or deleting history. */
|
|
9471
9891
|
async hideConversation(conversationId) {
|
|
9472
9892
|
const conversation = this.view.conversations.find((item) => item.id === conversationId);
|
|
@@ -9503,7 +9923,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9503
9923
|
localPending: false,
|
|
9504
9924
|
refreshing: false
|
|
9505
9925
|
} : {},
|
|
9506
|
-
groupRecovery: this.currentGroupRecoveryView(),
|
|
9507
9926
|
error: null
|
|
9508
9927
|
});
|
|
9509
9928
|
return {
|
|
@@ -9534,7 +9953,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9534
9953
|
...this.view,
|
|
9535
9954
|
conversations: appendUnique([conversation], this.view.conversations, (item) => item.id),
|
|
9536
9955
|
hiddenConversations: this.hiddenConversationsView(),
|
|
9537
|
-
groupRecovery: this.currentGroupRecoveryView(),
|
|
9538
9956
|
error: null
|
|
9539
9957
|
});
|
|
9540
9958
|
return {
|
|
@@ -9682,7 +10100,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9682
10100
|
error: null
|
|
9683
10101
|
});
|
|
9684
10102
|
const result = await (async () => {
|
|
9685
|
-
if (this.view.groupAccess?.status !== "available" && this.view.groupAccess?.status !== "loading") await this.resumeGroupRebindRecovery(this.generation);
|
|
9686
10103
|
const refreshed = await this.loadGroupState(conversation, true, true);
|
|
9687
10104
|
return refreshed.ok ? {
|
|
9688
10105
|
ok: true,
|
|
@@ -10237,14 +10654,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10237
10654
|
if (!result.ok) return result;
|
|
10238
10655
|
await this.persistentImageCache.clear().catch(() => void 0);
|
|
10239
10656
|
this.close();
|
|
10240
|
-
const tenantDomain = this.config?.tenantDomain;
|
|
10241
10657
|
this.config = null;
|
|
10242
10658
|
this.conversationsCursor = void 0;
|
|
10243
10659
|
this.historyCursor = void 0;
|
|
10244
10660
|
this.unreadAtOpen.clear();
|
|
10245
10661
|
this.summaryBaselines.clear();
|
|
10246
10662
|
this.clearPresentationCache();
|
|
10247
|
-
storeRecoveryOperation(
|
|
10663
|
+
storeRecoveryOperation(null);
|
|
10248
10664
|
this.publish({
|
|
10249
10665
|
...INITIAL_VIEW,
|
|
10250
10666
|
status: "ready"
|
|
@@ -10272,18 +10688,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10272
10688
|
conversation: { ...hidden.conversation },
|
|
10273
10689
|
hiddenAt: hidden.hiddenAt
|
|
10274
10690
|
});
|
|
10275
|
-
this.dismissedGroupRecoverySignature = preferences.dismissedGroupRecoverySignature;
|
|
10276
10691
|
}
|
|
10277
10692
|
hiddenConversationsView() {
|
|
10278
10693
|
return [...this.hiddenConversationPreferences.values()].sort((left, right) => right.hiddenAt - left.hiddenAt).map((item) => item.conversation);
|
|
10279
10694
|
}
|
|
10280
|
-
currentGroupRecoveryView() {
|
|
10281
|
-
const summary = this.lastGroupRecoverySummary;
|
|
10282
|
-
if (summary === void 0) return this.view.groupRecovery;
|
|
10283
|
-
const projection = groupRecoveryProjection(summary, new Set([...this.hiddenConversationPreferences.values()].map((item) => item.conversation).filter((conversation) => conversation.kind === "group").map((conversation) => conversation.groupDid)));
|
|
10284
|
-
this.lastGroupRecoverySignature = projection.signature;
|
|
10285
|
-
return projection.signature === this.dismissedGroupRecoverySignature ? null : projection.view;
|
|
10286
|
-
}
|
|
10287
10695
|
async reconcileConversationPage(incoming, generation) {
|
|
10288
10696
|
const current = [...this.view.conversations, ...this.view.hiddenConversations];
|
|
10289
10697
|
const conversations = incoming.map((item) => this.cacheConversation(item, current.find((candidate) => candidate.id === item.id)));
|
|
@@ -10334,7 +10742,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10334
10742
|
...this.view,
|
|
10335
10743
|
conversations: firstPage ? refreshed.visible : appendUnique(refreshed.visible, this.view.conversations, (value) => value.id),
|
|
10336
10744
|
hiddenConversations: refreshed.hidden,
|
|
10337
|
-
groupRecovery: this.currentGroupRecoveryView(),
|
|
10338
10745
|
conversationsHasMore: firstPage ? result.value.hasMore && result.value.nextCursor !== void 0 : this.view.conversationsHasMore,
|
|
10339
10746
|
error: background ? this.view.error : null
|
|
10340
10747
|
});
|
|
@@ -10367,9 +10774,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10367
10774
|
this.groupMembersCursor = void 0;
|
|
10368
10775
|
this.unreadAtOpen.clear();
|
|
10369
10776
|
this.summaryBaselines.clear();
|
|
10370
|
-
this.groupRecoveryItems.clear();
|
|
10371
|
-
this.lastGroupRecoverySignature = void 0;
|
|
10372
|
-
this.lastGroupRecoverySummary = void 0;
|
|
10373
10777
|
this.clearImageAttachments();
|
|
10374
10778
|
this.publish({
|
|
10375
10779
|
...this.view,
|
|
@@ -10383,7 +10787,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10383
10787
|
groupAccess: null,
|
|
10384
10788
|
groupMembers: Object.freeze([]),
|
|
10385
10789
|
groupMembersHasMore: false,
|
|
10386
|
-
groupRecovery: null,
|
|
10387
10790
|
messages: Object.freeze([]),
|
|
10388
10791
|
historyHasMore: false,
|
|
10389
10792
|
localPending: false,
|
|
@@ -10393,45 +10796,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10393
10796
|
summaries: Object.freeze({})
|
|
10394
10797
|
});
|
|
10395
10798
|
}
|
|
10396
|
-
/** Hydrate account-projected groups before asking Core to resume their durable rebind jobs. */
|
|
10397
|
-
async refreshConversationsAndRecoverGroups(generation, background = false) {
|
|
10398
|
-
const listed = await this.refreshConversations(generation, background);
|
|
10399
|
-
if (!listed.ok || !this.current(generation)) return listed;
|
|
10400
|
-
await this.resumeGroupRebindRecovery(generation);
|
|
10401
|
-
return listed;
|
|
10402
|
-
}
|
|
10403
|
-
resumeGroupRebindRecovery(generation) {
|
|
10404
|
-
const active = this.groupRecoveryOperation;
|
|
10405
|
-
if (active !== void 0 && active.generation === generation) return active.operation;
|
|
10406
|
-
let operation;
|
|
10407
|
-
operation = call(() => this.remote.resumeGroupRebindRecovery(), groupRecoveryFailureMessage).then((result) => {
|
|
10408
|
-
if (!this.current(generation)) return result;
|
|
10409
|
-
if (result.ok) {
|
|
10410
|
-
this.lastGroupRecoverySummary = result.value;
|
|
10411
|
-
this.groupRecoveryItems.clear();
|
|
10412
|
-
for (const item of result.value.items) this.groupRecoveryItems.set(item.groupDid, item.status);
|
|
10413
|
-
} else {
|
|
10414
|
-
this.lastGroupRecoverySummary = void 0;
|
|
10415
|
-
this.lastGroupRecoverySignature = "unavailable";
|
|
10416
|
-
}
|
|
10417
|
-
this.publish({
|
|
10418
|
-
...this.view,
|
|
10419
|
-
groupRecovery: result.ok ? this.currentGroupRecoveryView() : this.dismissedGroupRecoverySignature === "unavailable" ? null : {
|
|
10420
|
-
status: "unavailable",
|
|
10421
|
-
pending: 0,
|
|
10422
|
-
blocked: 0
|
|
10423
|
-
}
|
|
10424
|
-
});
|
|
10425
|
-
return result;
|
|
10426
|
-
}).finally(() => {
|
|
10427
|
-
if (this.groupRecoveryOperation?.operation === operation) this.groupRecoveryOperation = void 0;
|
|
10428
|
-
});
|
|
10429
|
-
this.groupRecoveryOperation = {
|
|
10430
|
-
generation,
|
|
10431
|
-
operation
|
|
10432
|
-
};
|
|
10433
|
-
return operation;
|
|
10434
|
-
}
|
|
10435
10799
|
async loadHistory(older) {
|
|
10436
10800
|
const conversationId = this.view.selectedConversationId;
|
|
10437
10801
|
if (conversationId === null) return this.fail("请先选择会话");
|
|
@@ -10473,8 +10837,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10473
10837
|
if (this.polling || !this.current(generation) || this.view.identity === null) return;
|
|
10474
10838
|
this.polling = true;
|
|
10475
10839
|
try {
|
|
10476
|
-
|
|
10477
|
-
if ((await this.refreshConversations(generation, true)).ok && this.view.conversations.some((conversation) => conversation.kind === "group" && !knownGroups.has(conversation.groupDid))) await this.resumeGroupRebindRecovery(generation);
|
|
10840
|
+
await this.refreshConversations(generation, true);
|
|
10478
10841
|
const selected = this.view.selectedConversationId;
|
|
10479
10842
|
if (selected === null || !this.current(generation)) return;
|
|
10480
10843
|
if (this.selectedConversation()?.kind === "group" && this.view.groupAccess?.status !== "available") return;
|
|
@@ -10568,8 +10931,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10568
10931
|
return selected === null ? void 0 : this.view.conversations.find((value) => value.id === selected);
|
|
10569
10932
|
}
|
|
10570
10933
|
publishGroupAccessFailure(conversation, reason) {
|
|
10571
|
-
const
|
|
10572
|
-
const status = reason === "not-member" ? journal === "blocked" ? "blocked" : journal === "pending" ? "recovering" : "not-member" : reason;
|
|
10934
|
+
const status = reason;
|
|
10573
10935
|
this.publish({
|
|
10574
10936
|
...this.view,
|
|
10575
10937
|
groupAccess: {
|
|
@@ -10585,11 +10947,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10585
10947
|
if (ownerDid === this.presentationCacheOwnerDid) return;
|
|
10586
10948
|
this.directProfiles.clear();
|
|
10587
10949
|
this.groupTitles.clear();
|
|
10588
|
-
this.groupRecoveryItems.clear();
|
|
10589
10950
|
this.hiddenConversationPreferences.clear();
|
|
10590
|
-
this.dismissedGroupRecoverySignature = void 0;
|
|
10591
|
-
this.lastGroupRecoverySignature = void 0;
|
|
10592
|
-
this.lastGroupRecoverySummary = void 0;
|
|
10593
10951
|
this.clearImageAttachments();
|
|
10594
10952
|
this.presentationCacheOwnerDid = ownerDid;
|
|
10595
10953
|
}
|
|
@@ -10597,11 +10955,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10597
10955
|
clearPresentationCache() {
|
|
10598
10956
|
this.directProfiles.clear();
|
|
10599
10957
|
this.groupTitles.clear();
|
|
10600
|
-
this.groupRecoveryItems.clear();
|
|
10601
10958
|
this.hiddenConversationPreferences.clear();
|
|
10602
|
-
this.dismissedGroupRecoverySignature = void 0;
|
|
10603
|
-
this.lastGroupRecoverySignature = void 0;
|
|
10604
|
-
this.lastGroupRecoverySummary = void 0;
|
|
10605
10959
|
this.clearImageAttachments();
|
|
10606
10960
|
this.presentationCacheOwnerDid = null;
|
|
10607
10961
|
}
|
|
@@ -10956,178 +11310,40 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10956
11310
|
} catch {}
|
|
10957
11311
|
}
|
|
10958
11312
|
/** Restore the last folder selected for one AWiki identity. */
|
|
10959
|
-
function readMailFolderCache(storage, ownerDid) {
|
|
10960
|
-
const owner = mailListCacheOwner(ownerDid);
|
|
10961
|
-
if (owner === void 0) return "inbox";
|
|
10962
|
-
try {
|
|
10963
|
-
return storage.getItem(`${FOLDER_PREFIX}${encodeURIComponent(owner)}`) === "sent" ? "sent" : "inbox";
|
|
10964
|
-
} catch {
|
|
10965
|
-
return "inbox";
|
|
10966
|
-
}
|
|
10967
|
-
}
|
|
10968
|
-
/** Remember the current folder without storing any message content. */
|
|
10969
|
-
function writeMailFolderCache(storage, ownerDid, folder) {
|
|
10970
|
-
const owner = mailListCacheOwner(ownerDid);
|
|
10971
|
-
if (owner === void 0) return;
|
|
10972
|
-
try {
|
|
10973
|
-
storage.setItem(`${FOLDER_PREFIX}${encodeURIComponent(owner)}`, folder);
|
|
10974
|
-
} catch {}
|
|
10975
|
-
}
|
|
10976
|
-
//#endregion
|
|
10977
|
-
//#region lib/types/client/mail-attachment.js
|
|
10978
|
-
/** Browser-only mail attachment selection, encoding, integrity, and download helpers. */
|
|
10979
|
-
function invalid(message) {
|
|
10980
|
-
throw new TypeError(message);
|
|
10981
|
-
}
|
|
10982
|
-
function fileName(value) {
|
|
10983
|
-
if (value.length === 0 || value.trim() !== value || value.replace(/[. ]+$/u, "") !== value || value === "." || value === ".." || new TextEncoder().encode(value).byteLength > 255 || /[\\/\p{C}]/u.test(value)) invalid("附件文件名无效。");
|
|
10984
|
-
return value;
|
|
10985
|
-
}
|
|
10986
|
-
function contentType(value) {
|
|
10987
|
-
if (value === "") return "application/octet-stream";
|
|
10988
|
-
if (!/^[A-Za-z0-9!#$&^_.+-]+\/[A-Za-z0-9!#$&^_.+-]+$/u.test(value)) invalid("附件 MIME 类型无效。");
|
|
10989
|
-
return value;
|
|
10990
|
-
}
|
|
10991
|
-
function assertLimits(limits) {
|
|
10992
|
-
if (!Number.isSafeInteger(limits.maxCount) || limits.maxCount < 0 || !Number.isSafeInteger(limits.maxBytes) || limits.maxBytes < 1 || !Number.isSafeInteger(limits.totalMaxBytes) || limits.totalMaxBytes < limits.maxBytes) invalid("邮件附件限制暂不可用。");
|
|
10993
|
-
}
|
|
10994
|
-
function base64(bytes) {
|
|
10995
|
-
let binary = "";
|
|
10996
|
-
const chunkSize = 32768;
|
|
10997
|
-
for (let offset = 0; offset < bytes.length; offset += chunkSize) binary += String.fromCharCode(...bytes.subarray(offset, offset + chunkSize));
|
|
10998
|
-
return btoa(binary);
|
|
10999
|
-
}
|
|
11000
|
-
/** Append browser File references after enforcing the exact Host-owned limits. */
|
|
11001
|
-
function selectMailAttachments(current, selected, limits, createId) {
|
|
11002
|
-
assertLimits(limits);
|
|
11003
|
-
const additions = Array.from(selected, (file) => ({
|
|
11004
|
-
id: createId(),
|
|
11005
|
-
file,
|
|
11006
|
-
fileName: fileName(file.name),
|
|
11007
|
-
contentType: contentType(file.type),
|
|
11008
|
-
sizeBytes: file.size,
|
|
11009
|
-
lastModified: file.lastModified
|
|
11010
|
-
}));
|
|
11011
|
-
const combined = [...current, ...additions];
|
|
11012
|
-
if (combined.length > limits.maxCount) invalid(`邮件最多选择 ${limits.maxCount} 个附件。`);
|
|
11013
|
-
for (const attachment of combined) {
|
|
11014
|
-
if (!Number.isSafeInteger(attachment.sizeBytes) || attachment.sizeBytes < 0) invalid("附件大小无效。");
|
|
11015
|
-
if (attachment.sizeBytes > limits.maxBytes) invalid(`单个附件不能超过 ${limits.maxBytes} bytes。`);
|
|
11016
|
-
}
|
|
11017
|
-
const total = combined.reduce((sum, attachment) => sum + attachment.sizeBytes, 0);
|
|
11018
|
-
if (!Number.isSafeInteger(total) || total > limits.totalMaxBytes) invalid(`附件总大小不能超过 ${limits.totalMaxBytes} bytes。`);
|
|
11019
|
-
return combined;
|
|
11020
|
-
}
|
|
11021
|
-
/** Re-read the same approved File objects and return JSON-safe Remote attachments. */
|
|
11022
|
-
async function encodeMailAttachments(attachments, limits) {
|
|
11023
|
-
selectMailAttachments([], attachments.map((value) => value.file), limits, () => "validation-only");
|
|
11024
|
-
const encoded = [];
|
|
11025
|
-
for (const attachment of attachments) {
|
|
11026
|
-
if (attachment.file.name !== attachment.fileName || contentType(attachment.file.type) !== attachment.contentType || attachment.file.size !== attachment.sizeBytes || attachment.file.lastModified !== attachment.lastModified) invalid(`附件 ${attachment.fileName} 已发生变化,请重新选择。`);
|
|
11027
|
-
let buffer;
|
|
11028
|
-
try {
|
|
11029
|
-
buffer = await attachment.file.arrayBuffer();
|
|
11030
|
-
} catch {
|
|
11031
|
-
invalid(`无法读取附件 ${attachment.fileName},请重新选择。`);
|
|
11032
|
-
}
|
|
11033
|
-
const bytes = new Uint8Array(buffer);
|
|
11034
|
-
if (bytes.byteLength !== attachment.sizeBytes) invalid(`附件 ${attachment.fileName} 的大小已发生变化,请重新选择。`);
|
|
11035
|
-
encoded.push({
|
|
11036
|
-
fileName: attachment.fileName,
|
|
11037
|
-
contentType: attachment.contentType,
|
|
11038
|
-
sizeBytes: bytes.byteLength,
|
|
11039
|
-
bytesBase64: base64(bytes)
|
|
11040
|
-
});
|
|
11041
|
-
}
|
|
11042
|
-
return encoded;
|
|
11043
|
-
}
|
|
11044
|
-
/** Return canonical download metadata only when the service supplied every required field. */
|
|
11045
|
-
function downloadableMailAttachment(value, maxBytes) {
|
|
11046
|
-
if (!Number.isSafeInteger(value.index) || value.index < 0 || value.index > 4294967295) return void 0;
|
|
11047
|
-
if (value.fileName === void 0 || value.contentType === void 0 || value.sizeBytes === void 0) return void 0;
|
|
11048
|
-
if (!/^(?:0|[1-9][0-9]*)$/u.test(value.sizeBytes)) return void 0;
|
|
11049
|
-
const sizeBytes = Number(value.sizeBytes);
|
|
11050
|
-
if (!Number.isSafeInteger(sizeBytes) || sizeBytes < 0 || sizeBytes > maxBytes) return void 0;
|
|
11051
|
-
try {
|
|
11052
|
-
return {
|
|
11053
|
-
index: value.index,
|
|
11054
|
-
fileName: fileName(value.fileName),
|
|
11055
|
-
contentType: contentType(value.contentType),
|
|
11056
|
-
sizeBytes
|
|
11057
|
-
};
|
|
11058
|
-
} catch {
|
|
11059
|
-
return;
|
|
11060
|
-
}
|
|
11061
|
-
}
|
|
11062
|
-
/** Validate exact metadata, canonical Base64, byte length, and SHA-256 before download. */
|
|
11063
|
-
async function prepareMailAttachmentDownload(value, expected, maxBytes) {
|
|
11064
|
-
if (fileName(value.fileName) !== expected.fileName || contentType(value.contentType) !== expected.contentType || value.sizeBytes !== expected.sizeBytes || value.sizeBytes > maxBytes) invalid("下载附件与邮件元数据不一致。");
|
|
11065
|
-
if (!/^[a-f0-9]{64}$/u.test(value.sha256)) invalid("下载附件完整性信息无效。");
|
|
11066
|
-
const expectedEncodedLength = Math.ceil(value.sizeBytes / 3) * 4;
|
|
11067
|
-
if (value.bytesBase64.length !== expectedEncodedLength || value.bytesBase64.length % 4 !== 0 || !/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u.test(value.bytesBase64)) invalid("下载附件编码无效。");
|
|
11068
|
-
let binary;
|
|
11313
|
+
function readMailFolderCache(storage, ownerDid) {
|
|
11314
|
+
const owner = mailListCacheOwner(ownerDid);
|
|
11315
|
+
if (owner === void 0) return "inbox";
|
|
11069
11316
|
try {
|
|
11070
|
-
|
|
11317
|
+
return storage.getItem(`${FOLDER_PREFIX}${encodeURIComponent(owner)}`) === "sent" ? "sent" : "inbox";
|
|
11071
11318
|
} catch {
|
|
11072
|
-
|
|
11319
|
+
return "inbox";
|
|
11073
11320
|
}
|
|
11074
|
-
const bytes = Uint8Array.from(binary, (character) => character.charCodeAt(0));
|
|
11075
|
-
if (bytes.byteLength !== value.sizeBytes || base64(bytes) !== value.bytesBase64) invalid("下载附件大小或编码不一致。");
|
|
11076
|
-
const digest = new Uint8Array(await crypto.subtle.digest("SHA-256", bytes));
|
|
11077
|
-
if (Array.from(digest, (byte) => byte.toString(16).padStart(2, "0")).join("") !== value.sha256) invalid("下载附件完整性校验失败。");
|
|
11078
|
-
return {
|
|
11079
|
-
fileName: expected.fileName,
|
|
11080
|
-
contentType: expected.contentType,
|
|
11081
|
-
bytes
|
|
11082
|
-
};
|
|
11083
11321
|
}
|
|
11084
|
-
/**
|
|
11085
|
-
function
|
|
11086
|
-
const
|
|
11087
|
-
|
|
11322
|
+
/** Remember the current folder without storing any message content. */
|
|
11323
|
+
function writeMailFolderCache(storage, ownerDid, folder) {
|
|
11324
|
+
const owner = mailListCacheOwner(ownerDid);
|
|
11325
|
+
if (owner === void 0) return;
|
|
11088
11326
|
try {
|
|
11089
|
-
|
|
11090
|
-
|
|
11091
|
-
anchor.hidden = true;
|
|
11092
|
-
document.body.append(anchor);
|
|
11093
|
-
anchor.click();
|
|
11094
|
-
} finally {
|
|
11095
|
-
anchor.remove();
|
|
11096
|
-
URL.revokeObjectURL(url);
|
|
11097
|
-
}
|
|
11098
|
-
}
|
|
11099
|
-
/** Execute the exact Browser UI download path: Remote, integrity check, Blob, and save click. */
|
|
11100
|
-
async function downloadAndSaveMailAttachment(download, request, expected, maxBytes, active = () => true) {
|
|
11101
|
-
const result = await download(request);
|
|
11102
|
-
if (!active()) return false;
|
|
11103
|
-
if (!result.ok) invalid(result.error);
|
|
11104
|
-
const prepared = await prepareMailAttachmentDownload(result.value, expected, maxBytes);
|
|
11105
|
-
if (!active()) return false;
|
|
11106
|
-
savePreparedMailAttachment(prepared);
|
|
11107
|
-
return true;
|
|
11327
|
+
storage.setItem(`${FOLDER_PREFIX}${encodeURIComponent(owner)}`, folder);
|
|
11328
|
+
} catch {}
|
|
11108
11329
|
}
|
|
11109
11330
|
//#endregion
|
|
11110
11331
|
//#region \0dsh-awiki-css:AwikiMail.module.css.mjs
|
|
11111
|
-
const css$1 = ".eMUW5a_mail{background:var(--dsw-alias-bg-layer-1);flex:1;grid-template-columns:240px 320px minmax(420px,1fr);min-height:0;display:grid;position:relative}.eMUW5a_sidebar,.eMUW5a_mailList,.eMUW5a_mailDetail{min-width:0;min-height:0}.eMUW5a_sidebar{border-right:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);flex-direction:column;display:flex}.eMUW5a_accountCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:10px;gap:3px;margin:0 14px 12px;padding:10px 12px;display:grid}.eMUW5a_accountCard small,.eMUW5a_accountCard span{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.eMUW5a_accountCard strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.eMUW5a_accountCard .eMUW5a_accountStatus{color:var(--dsw-alias-state-success-primary)}.eMUW5a_folderNav{gap:4px;padding:0 10px;display:grid}.eMUW5a_folderNav button{min-height:38px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:9px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:0 10px;display:grid}.eMUW5a_folderNav button:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_folderNav button[data-active]{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-primary)}.eMUW5a_folderNav small{min-width:20px;color:var(--dsw-alias-brand-primary);text-align:right}.eMUW5a_folderRow{color:var(--dsw-alias-label-secondary);border-radius:9px;grid-template-columns:minmax(0,1fr) 38px;display:grid}.eMUW5a_folderRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_folderRow[data-active]{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-primary)}.eMUW5a_folderRow>button{color:inherit;background:0 0;border-radius:0}.eMUW5a_folderRow>button:hover{background:0 0}.eMUW5a_folderRow>.eMUW5a_composeIconButton{border-radius:8px;grid-template-columns:1fr;place-items:center;gap:0;width:38px;padding:0}.eMUW5a_folderRow>.eMUW5a_composeIconButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_mailList{border-right:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);flex-direction:column;display:flex;position:relative}.eMUW5a_listHeader,.eMUW5a_detailHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:9px;min-height:56px;padding:0 12px;display:flex}.eMUW5a_listHeader>div,.eMUW5a_detailHeader>div{flex-direction:column;flex:1;min-width:0;display:flex}.eMUW5a_listHeader strong,.eMUW5a_detailHeader strong,.eMUW5a_listHeader small,.eMUW5a_detailHeader small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.eMUW5a_listHeader strong,.eMUW5a_detailHeader strong{font-size:13px;line-height:20px}.eMUW5a_listHeader small,.eMUW5a_detailHeader small{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.eMUW5a_listHeader>button,.eMUW5a_detailBack{width:30px;height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;padding:0;display:grid}.eMUW5a_listHeader>button:hover,.eMUW5a_detailBack:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.eMUW5a_listHeader>button:disabled{opacity:.5;cursor:default}.eMUW5a_detailBack{display:none}.eMUW5a_listHeader svg,.eMUW5a_loadingState svg{animation:none}.eMUW5a_listHeader button:disabled svg,.eMUW5a_loadingState svg{animation:1s linear infinite eMUW5a_mail-spin}.eMUW5a_listHeader>.eMUW5a_listBack{display:none}@keyframes eMUW5a_mail-spin{to{transform:rotate(360deg)}}.eMUW5a_rows{flex:1;min-height:0;padding:6px;overflow:auto}.eMUW5a_mailRow{width:100%;min-height:82px;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:7px minmax(0,1fr) auto;gap:7px;padding:10px 9px;display:grid;position:relative}.eMUW5a_mailRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_mailRow[data-active]{background:var(--dsw-alias-interactive-bg-active)}.eMUW5a_unreadDot{background:0 0;border-radius:50%;align-self:start;width:6px;height:6px;margin-top:7px}.eMUW5a_mailRow[data-unread] .eMUW5a_unreadDot{background:var(--dsw-alias-brand-primary)}.eMUW5a_rowContent{flex-direction:column;gap:2px;min-width:0;display:flex}.eMUW5a_rowTop{align-items:center;gap:8px;display:flex}.eMUW5a_rowTop strong{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;line-height:18px;overflow:hidden}.eMUW5a_mailRow[data-unread] .eMUW5a_rowTop strong,.eMUW5a_mailRow[data-unread] .eMUW5a_rowSubject{font-weight:600}.eMUW5a_rowTop time{color:var(--dsw-alias-label-tertiary);flex:none;font-size:10px;line-height:15px}.eMUW5a_rowSubject,.eMUW5a_rowPreview{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.eMUW5a_rowSubject{color:var(--dsw-alias-label-primary);font-size:12px;line-height:18px}.eMUW5a_rowPreview{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.eMUW5a_rowAttachment{color:var(--dsw-alias-label-tertiary);align-self:end;align-items:center;gap:2px;display:flex}.eMUW5a_rowAttachment small{font-size:10px}.eMUW5a_inlineError,.eMUW5a_detailError{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary);justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:11px;line-height:16px;display:flex}.eMUW5a_inlineError button{color:inherit;cursor:pointer;background:0 0;border:0;flex:none;text-decoration:underline}.eMUW5a_loadingState,.eMUW5a_emptyState,.eMUW5a_detailEmpty{color:var(--dsw-alias-label-tertiary);justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex}.eMUW5a_loadingState{pointer-events:none;position:absolute;inset:56px 0 0}.eMUW5a_emptyState{flex-direction:column;min-height:180px}.eMUW5a_emptyState p,.eMUW5a_detailEmpty p{margin:0}.eMUW5a_loadMore{background:var(--dsw-alias-button-elevated-fill);min-height:34px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;border:0;border-radius:9px;margin:7px}.eMUW5a_loadMore:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_mailDetail{background:var(--dsw-alias-bg-layer-1);flex-direction:column;display:flex;position:relative}.eMUW5a_detailEmpty{flex-direction:column;flex:1}.eMUW5a_detailEmpty button{background:var(--dsw-alias-button-primary-fill);min-height:34px;color:var(--dsw-alias-label-primary-inverted);cursor:pointer;border:0;border-radius:9px;padding:0 14px}.eMUW5a_markReadButton{border:1px solid var(--dsw-alias-border-l2);min-height:30px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;background:0 0;border-radius:8px;flex:none;padding:0 9px;font-size:11px}.eMUW5a_markReadButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_markReadButton:disabled{opacity:.5;cursor:default}.eMUW5a_messageBody{flex:1;min-height:0;padding:22px 24px;overflow:auto}.eMUW5a_messageMeta{border-bottom:1px solid var(--dsw-alias-border-l1);padding-bottom:18px}.eMUW5a_messageMeta h3{overflow-wrap:anywhere;margin:0 0 5px;font-size:18px;line-height:27px}.eMUW5a_messageMeta>time{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.eMUW5a_messageMeta dl{gap:3px;margin:14px 0 0;display:grid}.eMUW5a_messageMeta dl>div{grid-template-columns:48px minmax(0,1fr);gap:8px;font-size:11px;line-height:17px;display:grid}.eMUW5a_messageMeta dt{color:var(--dsw-alias-label-tertiary)}.eMUW5a_messageMeta dd{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;margin:0}.eMUW5a_untrustedNotice{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-tertiary);border-radius:8px;align-items:center;gap:7px;margin:16px 0;padding:8px 10px;font-size:11px;line-height:16px;display:flex}.eMUW5a_plainBody{min-height:120px;color:var(--dsw-alias-label-primary);white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:22px}.eMUW5a_truncatedNotice{color:var(--dsw-alias-state-warn-label);margin:14px 0 0;font-size:11px}.eMUW5a_attachments{border-top:1px solid var(--dsw-alias-border-l1);gap:8px;min-width:0;margin-top:22px;padding-top:16px;display:grid}.eMUW5a_attachments h4{margin:0;font-size:12px;line-height:18px}.eMUW5a_attachments>div{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);border-radius:9px;align-items:center;gap:9px;min-width:0;max-width:100%;padding:9px 10px;display:flex}.eMUW5a_attachments>div>span{flex-direction:column;flex:1;min-width:0;display:flex}.eMUW5a_attachments strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.eMUW5a_attachments small{color:var(--dsw-alias-label-tertiary);font-size:10px;line-height:15px}.eMUW5a_attachments button,.eMUW5a_selectedAttachments button{border:1px solid var(--dsw-alias-border-l2);min-height:30px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;background:0 0;border-radius:8px;flex:none;padding:0 10px;font-size:11px}.eMUW5a_attachments button:hover,.eMUW5a_selectedAttachments button:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_attachments button:disabled,.eMUW5a_selectedAttachments button:disabled{opacity:.5;cursor:default}.eMUW5a_attachments .eMUW5a_attachmentDownloadError{color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere}.eMUW5a_notice{z-index:6;box-sizing:border-box;background:var(--dsw-alias-button-primary-fill);max-width:min(360px,100% - 32px);color:var(--dsw-alias-label-primary-inverted);box-shadow:var(--dsw-shadow-lv2);overflow-wrap:anywhere;pointer-events:none;text-align:center;border-radius:9px;padding:10px 14px;font-size:12px;line-height:18px;animation:2.4s both eMUW5a_mail-notice;position:absolute;top:16px;left:50%;transform:translate(-50%)}@keyframes eMUW5a_mail-notice{0%{opacity:0;transform:translate(-50%,-6px)}8%,88%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-4px)}}.eMUW5a_composer{flex-direction:column;flex:1;min-height:0;display:flex}.eMUW5a_composeFields{flex-direction:column;flex:1;gap:11px;min-height:0;padding:18px 20px;display:flex;overflow:auto}.eMUW5a_composeFields label{color:var(--dsw-alias-label-secondary);grid-template-rows:max-content max-content;gap:5px;font-size:11px;line-height:16px;display:grid}.eMUW5a_composeFields input,.eMUW5a_composeFields textarea{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);width:100%;color:var(--dsw-alias-label-primary);font:inherit;resize:vertical;border-radius:9px;padding:8px 10px}.eMUW5a_composeFields input{height:38px}.eMUW5a_composeFields .eMUW5a_bodyField{flex:1;grid-template-rows:max-content minmax(160px,1fr);min-height:160px}.eMUW5a_bodyField textarea{resize:none;min-height:160px}.eMUW5a_composeAttachments{gap:9px;display:grid}.eMUW5a_attachmentPickerRow{align-items:center;gap:10px;display:flex}.eMUW5a_attachmentPickerRow>small{color:var(--dsw-alias-label-tertiary);font-size:10px;line-height:15px}.eMUW5a_attachmentPicker{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);appearance:none;background:var(--dsw-alias-bg-layer-1);height:30px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;white-space:nowrap;border-radius:7px;flex:none;justify-content:center;align-items:center;gap:5px;padding:0 10px;font-size:11px;font-weight:500;line-height:16px;display:inline-flex}.eMUW5a_attachmentPicker:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_attachmentPicker:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}.eMUW5a_attachmentPicker:disabled{opacity:.5;cursor:default}.eMUW5a_attachmentInput{display:none}.eMUW5a_selectedAttachments{gap:7px;display:grid}.eMUW5a_selectedAttachments>div{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);border-radius:9px;align-items:center;gap:9px;padding:8px 9px;display:flex}.eMUW5a_selectedAttachments>div>span{flex-direction:column;flex:1;min-width:0;display:flex}.eMUW5a_selectedAttachments strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.eMUW5a_selectedAttachments small{color:var(--dsw-alias-label-tertiary);font-size:10px;line-height:15px}.eMUW5a_selectedAttachments>p{color:var(--dsw-alias-label-tertiary);margin:0;font-size:10px;line-height:15px}.eMUW5a_composeError{color:var(--dsw-alias-state-error-primary);margin:0;font-size:11px;line-height:16px}.eMUW5a_composeFooter{border-top:1px solid var(--dsw-alias-border-l1);flex:none;justify-content:flex-end;gap:8px;padding:10px 14px;display:flex}.eMUW5a_cancelButton,.eMUW5a_sendButton{cursor:pointer;min-height:34px;font:inherit;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:0 13px;display:flex}.eMUW5a_cancelButton{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary);background:0 0}.eMUW5a_sendButton{background:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-inverted);border:0}.eMUW5a_cancelButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_sendButton:hover{background:var(--dsw-alias-button-primary-hover)}.eMUW5a_confirmSummary{color:var(--dsw-alias-label-secondary);gap:6px;display:grid}.eMUW5a_confirmSummary p,.eMUW5a_discardText{overflow-wrap:anywhere;margin:0}@media (width<=1119px){.eMUW5a_mail{grid-template-columns:220px minmax(0,1fr)}.eMUW5a_mailList,.eMUW5a_mailDetail{grid-area:1/2}.eMUW5a_mailDetail,.eMUW5a_mail[data-detail-active] .eMUW5a_mailList{display:none}.eMUW5a_mail[data-detail-active] .eMUW5a_mailDetail{display:flex}.eMUW5a_detailBack{display:grid}}@media (width<=719px){.eMUW5a_mail{grid-template-columns:1fr}.eMUW5a_sidebar,.eMUW5a_mailList,.eMUW5a_mailDetail{grid-area:1/1}.eMUW5a_mailList,.eMUW5a_mailDetail,.eMUW5a_mail[data-pane=list] .eMUW5a_sidebar,.eMUW5a_mail[data-pane=detail] .eMUW5a_sidebar{display:none}.eMUW5a_mail[data-pane=list] .eMUW5a_mailList,.eMUW5a_mail[data-pane=detail] .eMUW5a_mailDetail{display:flex}.eMUW5a_listHeader>.eMUW5a_listBack{display:grid}.eMUW5a_messageBody{padding:18px}}@media (prefers-reduced-motion:reduce){.eMUW5a_listHeader button:disabled svg,.eMUW5a_loadingState svg,.eMUW5a_notice{animation:none}}";
|
|
11112
|
-
const tagId$
|
|
11113
|
-
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$
|
|
11332
|
+
const css$2 = ".eMUW5a_mail{background:var(--dsw-alias-bg-layer-1);flex:1;grid-template-columns:240px 320px minmax(420px,1fr);min-height:0;display:grid;position:relative}.eMUW5a_sidebar,.eMUW5a_mailList,.eMUW5a_mailDetail{min-width:0;min-height:0}.eMUW5a_sidebar{border-right:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);flex-direction:column;display:flex}.eMUW5a_accountCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:10px;gap:3px;margin:0 14px 12px;padding:10px 12px;display:grid}.eMUW5a_accountCard small,.eMUW5a_accountCard span{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.eMUW5a_accountCard strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.eMUW5a_accountCard .eMUW5a_accountStatus{color:var(--dsw-alias-state-success-primary)}.eMUW5a_folderNav{gap:4px;padding:0 10px;display:grid}.eMUW5a_folderNav button{min-height:38px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:9px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:0 10px;display:grid}.eMUW5a_folderNav button:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_folderNav button[data-active]{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-primary)}.eMUW5a_folderNav small{min-width:20px;color:var(--dsw-alias-brand-primary);text-align:right}.eMUW5a_folderRow{color:var(--dsw-alias-label-secondary);border-radius:9px;grid-template-columns:minmax(0,1fr) 38px;display:grid}.eMUW5a_folderRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_folderRow[data-active]{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-primary)}.eMUW5a_folderRow>button{color:inherit;background:0 0;border-radius:0}.eMUW5a_folderRow>button:hover{background:0 0}.eMUW5a_folderRow>.eMUW5a_composeIconButton{border-radius:8px;grid-template-columns:1fr;place-items:center;gap:0;width:38px;padding:0}.eMUW5a_folderRow>.eMUW5a_composeIconButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_mailList{border-right:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);flex-direction:column;display:flex;position:relative}.eMUW5a_listHeader,.eMUW5a_detailHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:9px;min-height:56px;padding:0 12px;display:flex}.eMUW5a_listHeader>div,.eMUW5a_detailHeader>div{flex-direction:column;flex:1;min-width:0;display:flex}.eMUW5a_listHeader strong,.eMUW5a_detailHeader strong,.eMUW5a_listHeader small,.eMUW5a_detailHeader small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.eMUW5a_listHeader strong,.eMUW5a_detailHeader strong{font-size:13px;line-height:20px}.eMUW5a_listHeader small,.eMUW5a_detailHeader small{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.eMUW5a_listHeader>button,.eMUW5a_detailBack{width:30px;height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;padding:0;display:grid}.eMUW5a_listHeader>button:hover,.eMUW5a_detailBack:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.eMUW5a_listHeader>button:disabled{opacity:.5;cursor:default}.eMUW5a_detailBack{display:none}.eMUW5a_listHeader svg,.eMUW5a_loadingState svg{animation:none}.eMUW5a_listHeader button:disabled svg,.eMUW5a_loadingState svg{animation:1s linear infinite eMUW5a_mail-spin}@keyframes eMUW5a_mail-spin{to{transform:rotate(360deg)}}.eMUW5a_rows{flex:1;min-height:0;padding:6px;overflow:auto}.eMUW5a_mailRow{width:100%;min-height:82px;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:7px minmax(0,1fr) auto;gap:7px;padding:10px 9px;display:grid;position:relative}.eMUW5a_mailRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_mailRow[data-active]{background:var(--dsw-alias-interactive-bg-active)}.eMUW5a_unreadDot{background:0 0;border-radius:50%;align-self:start;width:6px;height:6px;margin-top:7px}.eMUW5a_mailRow[data-unread] .eMUW5a_unreadDot{background:var(--dsw-alias-brand-primary)}.eMUW5a_rowContent{flex-direction:column;gap:2px;min-width:0;display:flex}.eMUW5a_rowTop{align-items:center;gap:8px;display:flex}.eMUW5a_rowTop strong{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;line-height:18px;overflow:hidden}.eMUW5a_mailRow[data-unread] .eMUW5a_rowTop strong,.eMUW5a_mailRow[data-unread] .eMUW5a_rowSubject{font-weight:600}.eMUW5a_rowTop time{color:var(--dsw-alias-label-tertiary);flex:none;font-size:10px;line-height:15px}.eMUW5a_rowSubject,.eMUW5a_rowPreview{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.eMUW5a_rowSubject{color:var(--dsw-alias-label-primary);font-size:12px;line-height:18px}.eMUW5a_rowPreview{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.eMUW5a_rowAttachment{color:var(--dsw-alias-label-tertiary);align-self:end;align-items:center;gap:2px;display:flex}.eMUW5a_rowAttachment small{font-size:10px}.eMUW5a_inlineError,.eMUW5a_detailError{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary);justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:11px;line-height:16px;display:flex}.eMUW5a_inlineError button{color:inherit;cursor:pointer;background:0 0;border:0;flex:none;text-decoration:underline}.eMUW5a_loadingState,.eMUW5a_emptyState,.eMUW5a_detailEmpty{color:var(--dsw-alias-label-tertiary);justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex}.eMUW5a_loadingState{pointer-events:none;position:absolute;inset:56px 0 0}.eMUW5a_emptyState{flex-direction:column;min-height:180px}.eMUW5a_emptyState p,.eMUW5a_detailEmpty p{margin:0}.eMUW5a_loadMore{background:var(--dsw-alias-button-elevated-fill);min-height:34px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;border:0;border-radius:9px;margin:7px}.eMUW5a_loadMore:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_mailDetail{background:var(--dsw-alias-bg-layer-1);flex-direction:column;display:flex;position:relative}.eMUW5a_detailEmpty{flex-direction:column;flex:1}.eMUW5a_detailEmpty button{background:var(--dsw-alias-button-primary-fill);min-height:34px;color:var(--dsw-alias-label-primary-inverted);cursor:pointer;border:0;border-radius:9px;padding:0 14px}.eMUW5a_markReadButton{border:1px solid var(--dsw-alias-border-l2);min-height:30px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;background:0 0;border-radius:8px;flex:none;padding:0 9px;font-size:11px}.eMUW5a_markReadButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_markReadButton:disabled{opacity:.5;cursor:default}.eMUW5a_messageBody{flex:1;min-height:0;padding:22px 24px;overflow:auto}.eMUW5a_messageMeta{border-bottom:1px solid var(--dsw-alias-border-l1);padding-bottom:18px}.eMUW5a_messageMeta h3{overflow-wrap:anywhere;margin:0 0 5px;font-size:18px;line-height:27px}.eMUW5a_messageMeta>time{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.eMUW5a_messageMeta dl{gap:3px;margin:14px 0 0;display:grid}.eMUW5a_messageMeta dl>div{grid-template-columns:48px minmax(0,1fr);gap:8px;font-size:11px;line-height:17px;display:grid}.eMUW5a_messageMeta dt{color:var(--dsw-alias-label-tertiary)}.eMUW5a_messageMeta dd{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;margin:0}.eMUW5a_untrustedNotice{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-tertiary);border-radius:8px;align-items:center;gap:7px;margin:16px 0;padding:8px 10px;font-size:11px;line-height:16px;display:flex}.eMUW5a_plainBody{min-height:120px;color:var(--dsw-alias-label-primary);white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:22px}.eMUW5a_truncatedNotice{color:var(--dsw-alias-state-warn-label);margin:14px 0 0;font-size:11px}.eMUW5a_attachments{border-top:1px solid var(--dsw-alias-border-l1);gap:8px;margin-top:22px;padding-top:16px;display:grid}.eMUW5a_attachments h4{margin:0;font-size:12px;line-height:18px}.eMUW5a_attachments>div{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);border-radius:9px;align-items:center;gap:9px;padding:9px 10px;display:flex}.eMUW5a_attachments>div>span{flex-direction:column;min-width:0;display:flex}.eMUW5a_attachments strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.eMUW5a_attachments small{color:var(--dsw-alias-label-tertiary);font-size:10px;line-height:15px}.eMUW5a_notice{z-index:6;box-sizing:border-box;background:var(--dsw-alias-button-primary-fill);max-width:min(360px,100% - 32px);color:var(--dsw-alias-label-primary-inverted);box-shadow:var(--dsw-shadow-lv2);overflow-wrap:anywhere;pointer-events:none;text-align:center;border-radius:9px;padding:10px 14px;font-size:12px;line-height:18px;animation:2.4s both eMUW5a_mail-notice;position:absolute;top:16px;left:50%;transform:translate(-50%)}@keyframes eMUW5a_mail-notice{0%{opacity:0;transform:translate(-50%,-6px)}8%,88%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-4px)}}.eMUW5a_composer{flex-direction:column;flex:1;min-height:0;display:flex}.eMUW5a_composeFields{flex-direction:column;flex:1;gap:11px;min-height:0;padding:18px 20px;display:flex;overflow:auto}.eMUW5a_composeFields label{color:var(--dsw-alias-label-secondary);grid-template-rows:max-content max-content;gap:5px;font-size:11px;line-height:16px;display:grid}.eMUW5a_composeFields input,.eMUW5a_composeFields textarea{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);width:100%;color:var(--dsw-alias-label-primary);font:inherit;resize:vertical;border-radius:9px;padding:8px 10px}.eMUW5a_composeFields input{height:38px}.eMUW5a_composeFields .eMUW5a_bodyField{flex:1;grid-template-rows:max-content minmax(160px,1fr);min-height:160px}.eMUW5a_bodyField textarea{resize:none;min-height:160px}.eMUW5a_composeError{color:var(--dsw-alias-state-error-primary);margin:0;font-size:11px;line-height:16px}.eMUW5a_composeFooter{border-top:1px solid var(--dsw-alias-border-l1);flex:none;justify-content:flex-end;gap:8px;padding:10px 14px;display:flex}.eMUW5a_cancelButton,.eMUW5a_sendButton{cursor:pointer;min-height:34px;font:inherit;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:0 13px;display:flex}.eMUW5a_cancelButton{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary);background:0 0}.eMUW5a_sendButton{background:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-inverted);border:0}.eMUW5a_cancelButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_sendButton:hover{background:var(--dsw-alias-button-primary-hover)}.eMUW5a_confirmSummary{color:var(--dsw-alias-label-secondary);gap:6px;display:grid}.eMUW5a_confirmSummary p,.eMUW5a_discardText{overflow-wrap:anywhere;margin:0}@media (width<=1119px){.eMUW5a_mail{grid-template-columns:220px minmax(0,1fr)}.eMUW5a_mailList,.eMUW5a_mailDetail{grid-area:1/2}.eMUW5a_mailDetail,.eMUW5a_mail[data-detail-active] .eMUW5a_mailList{display:none}.eMUW5a_mail[data-detail-active] .eMUW5a_mailDetail{display:flex}.eMUW5a_detailBack{display:grid}}@media (width<=719px){.eMUW5a_mail{grid-template-columns:1fr}.eMUW5a_sidebar,.eMUW5a_mailList,.eMUW5a_mailDetail{grid-area:1/1}.eMUW5a_mailList,.eMUW5a_mailDetail,.eMUW5a_mail[data-pane=list] .eMUW5a_sidebar,.eMUW5a_mail[data-pane=detail] .eMUW5a_sidebar{display:none}.eMUW5a_mail[data-pane=list] .eMUW5a_mailList,.eMUW5a_mail[data-pane=detail] .eMUW5a_mailDetail{display:flex}.eMUW5a_messageBody{padding:18px}}@media (prefers-reduced-motion:reduce){.eMUW5a_listHeader button:disabled svg,.eMUW5a_loadingState svg,.eMUW5a_notice{animation:none}}";
|
|
11333
|
+
const tagId$2 = "@awiki/dsh-plugin/AwikiMail.module.css";
|
|
11334
|
+
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) {
|
|
11114
11335
|
const tag = document.createElement("style");
|
|
11115
11336
|
tag.dataset.plugin = "@awiki/dsh-plugin";
|
|
11116
|
-
tag.dataset.pluginCss = tagId$
|
|
11117
|
-
tag.textContent = css$
|
|
11337
|
+
tag.dataset.pluginCss = tagId$2;
|
|
11338
|
+
tag.textContent = css$2;
|
|
11118
11339
|
document.head.appendChild(tag);
|
|
11119
11340
|
}
|
|
11120
11341
|
var _dsh_awiki_css_AwikiMail_module_css_default = {
|
|
11121
11342
|
"accountCard": "eMUW5a_accountCard",
|
|
11122
11343
|
"accountStatus": "eMUW5a_accountStatus",
|
|
11123
|
-
"attachmentDownloadError": "eMUW5a_attachmentDownloadError",
|
|
11124
|
-
"attachmentInput": "eMUW5a_attachmentInput",
|
|
11125
|
-
"attachmentPicker": "eMUW5a_attachmentPicker",
|
|
11126
|
-
"attachmentPickerRow": "eMUW5a_attachmentPickerRow",
|
|
11127
11344
|
"attachments": "eMUW5a_attachments",
|
|
11128
11345
|
"bodyField": "eMUW5a_bodyField",
|
|
11129
11346
|
"cancelButton": "eMUW5a_cancelButton",
|
|
11130
|
-
"composeAttachments": "eMUW5a_composeAttachments",
|
|
11131
11347
|
"composeError": "eMUW5a_composeError",
|
|
11132
11348
|
"composeFields": "eMUW5a_composeFields",
|
|
11133
11349
|
"composeFooter": "eMUW5a_composeFooter",
|
|
@@ -11143,7 +11359,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11143
11359
|
"folderNav": "eMUW5a_folderNav",
|
|
11144
11360
|
"folderRow": "eMUW5a_folderRow",
|
|
11145
11361
|
"inlineError": "eMUW5a_inlineError",
|
|
11146
|
-
"listBack": "eMUW5a_listBack",
|
|
11147
11362
|
"listHeader": "eMUW5a_listHeader",
|
|
11148
11363
|
"loadingState": "eMUW5a_loadingState",
|
|
11149
11364
|
"loadMore": "eMUW5a_loadMore",
|
|
@@ -11164,7 +11379,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11164
11379
|
"rows": "eMUW5a_rows",
|
|
11165
11380
|
"rowSubject": "eMUW5a_rowSubject",
|
|
11166
11381
|
"rowTop": "eMUW5a_rowTop",
|
|
11167
|
-
"selectedAttachments": "eMUW5a_selectedAttachments",
|
|
11168
11382
|
"sendButton": "eMUW5a_sendButton",
|
|
11169
11383
|
"sidebar": "eMUW5a_sidebar",
|
|
11170
11384
|
"truncatedNotice": "eMUW5a_truncatedNotice",
|
|
@@ -11210,11 +11424,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11210
11424
|
function utf8Bytes(value) {
|
|
11211
11425
|
return new TextEncoder().encode(value).byteLength;
|
|
11212
11426
|
}
|
|
11213
|
-
function displayBytes(value) {
|
|
11214
|
-
if (value < 1024) return `${value} bytes`;
|
|
11215
|
-
if (value < 1048576) return `${(value / 1024).toFixed(value < 10240 ? 1 : 0)} KiB`;
|
|
11216
|
-
return `${(value / 1048576).toFixed(value < 10485760 ? 1 : 0)} MiB`;
|
|
11217
|
-
}
|
|
11218
11427
|
function browserLocalStorage() {
|
|
11219
11428
|
try {
|
|
11220
11429
|
return window.localStorage;
|
|
@@ -11351,10 +11560,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11351
11560
|
const [cc, setCc] = (0, react.useState)("");
|
|
11352
11561
|
const [subject, setSubject] = (0, react.useState)("");
|
|
11353
11562
|
const [bodyText, setBodyText] = (0, react.useState)("");
|
|
11354
|
-
const [attachmentLimits, setAttachmentLimits] = (0, react.useState)(null);
|
|
11355
|
-
const [attachments, setAttachments] = (0, react.useState)([]);
|
|
11356
|
-
const [attachmentError, setAttachmentError] = (0, react.useState)(null);
|
|
11357
|
-
const [downloadStates, setDownloadStates] = (0, react.useState)({});
|
|
11358
11563
|
const [composeError, setComposeError] = (0, react.useState)(null);
|
|
11359
11564
|
const [confirmOpen, setConfirmOpen] = (0, react.useState)(false);
|
|
11360
11565
|
const [discardOpen, setDiscardOpen] = (0, react.useState)(false);
|
|
@@ -11365,8 +11570,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11365
11570
|
const loadGeneration = (0, react.useRef)(0);
|
|
11366
11571
|
const detailGeneration = (0, react.useRef)(0);
|
|
11367
11572
|
const noticeRevision = (0, react.useRef)(0);
|
|
11368
|
-
const attachmentRevision = (0, react.useRef)(0);
|
|
11369
|
-
const fileInput = (0, react.useRef)(null);
|
|
11370
11573
|
const visibleUnreadCount = (0, react.useMemo)(() => items.reduce((total, item) => total + (item.unread ? 1 : 0), 0), [items]);
|
|
11371
11574
|
(0, react.useEffect)(() => {
|
|
11372
11575
|
props.onUnreadCountChange(inboxUnreadCount);
|
|
@@ -11415,7 +11618,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11415
11618
|
setListError(null);
|
|
11416
11619
|
setNotice(null);
|
|
11417
11620
|
const cacheVisible = hydrateListCache(requestedFolder);
|
|
11418
|
-
const configRequest = props.getConfig();
|
|
11419
11621
|
const accountRequest = props.getMailAccount();
|
|
11420
11622
|
const inboxRequest = props.listMailInbox({
|
|
11421
11623
|
folder: requestedFolder,
|
|
@@ -11423,13 +11625,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11423
11625
|
limit: 20,
|
|
11424
11626
|
offset: 0
|
|
11425
11627
|
});
|
|
11426
|
-
const configResult = await configRequest;
|
|
11427
|
-
if (generation !== loadGeneration.current) return;
|
|
11428
|
-
setAttachmentLimits(configResult.ok ? {
|
|
11429
|
-
maxCount: configResult.value.mailAttachmentMaxCount,
|
|
11430
|
-
maxBytes: configResult.value.mailAttachmentMaxBytes,
|
|
11431
|
-
totalMaxBytes: configResult.value.mailAttachmentTotalMaxBytes
|
|
11432
|
-
} : null);
|
|
11433
11628
|
const accountResult = await accountRequest;
|
|
11434
11629
|
if (generation !== loadGeneration.current) return;
|
|
11435
11630
|
if (accountResult.ok) setAccount(accountResult.value);
|
|
@@ -11475,7 +11670,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11475
11670
|
setSelectedId(null);
|
|
11476
11671
|
setMessage(null);
|
|
11477
11672
|
setDetailError(null);
|
|
11478
|
-
setDownloadStates({});
|
|
11479
11673
|
if (!hydrateListCache(nextFolder)) applyListPage(nextFolder, {
|
|
11480
11674
|
items: [],
|
|
11481
11675
|
hasMore: false
|
|
@@ -11488,7 +11682,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11488
11682
|
setCompose(false);
|
|
11489
11683
|
setSelectedId(summary.id);
|
|
11490
11684
|
setMessage(null);
|
|
11491
|
-
setDownloadStates({});
|
|
11492
11685
|
setDetailLoading(true);
|
|
11493
11686
|
setDetailError(null);
|
|
11494
11687
|
setNotice(null);
|
|
@@ -11568,14 +11761,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11568
11761
|
showNotice(result.value.updated > 0 ? "已标为已读。" : "该邮件已经是已读状态。");
|
|
11569
11762
|
};
|
|
11570
11763
|
const requestSend = () => {
|
|
11571
|
-
if (attachmentError !== null) {
|
|
11572
|
-
setComposeError(attachmentError);
|
|
11573
|
-
return;
|
|
11574
|
-
}
|
|
11575
|
-
if (attachments.length > 0 && attachmentLimits === null) {
|
|
11576
|
-
setComposeError("邮件附件限制暂不可用,请稍后刷新邮箱再试。");
|
|
11577
|
-
return;
|
|
11578
|
-
}
|
|
11579
11764
|
const validated = validateDraft$1(to, cc, subject, bodyText);
|
|
11580
11765
|
if (!validated.ok) {
|
|
11581
11766
|
setComposeError(validated.error);
|
|
@@ -11589,32 +11774,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11589
11774
|
setCc("");
|
|
11590
11775
|
setSubject("");
|
|
11591
11776
|
setBodyText("");
|
|
11592
|
-
setAttachments([]);
|
|
11593
|
-
setAttachmentError(null);
|
|
11594
|
-
if (fileInput.current !== null) fileInput.current.value = "";
|
|
11595
|
-
setComposeError(null);
|
|
11596
|
-
};
|
|
11597
|
-
const chooseAttachments = (files) => {
|
|
11598
|
-
if (files === null || files.length === 0) return;
|
|
11599
|
-
if (attachmentLimits === null) {
|
|
11600
|
-
setAttachmentError("邮件附件限制暂不可用,请稍后刷新邮箱再试。");
|
|
11601
|
-
return;
|
|
11602
|
-
}
|
|
11603
|
-
try {
|
|
11604
|
-
const next = selectMailAttachments(attachments, files, attachmentLimits, () => {
|
|
11605
|
-
attachmentRevision.current += 1;
|
|
11606
|
-
return `mail-attachment-${attachmentRevision.current}`;
|
|
11607
|
-
});
|
|
11608
|
-
setAttachments(next);
|
|
11609
|
-
setAttachmentError(null);
|
|
11610
|
-
setComposeError(null);
|
|
11611
|
-
} catch (error) {
|
|
11612
|
-
setAttachmentError(error instanceof TypeError ? error.message : "无法选择这些附件。");
|
|
11613
|
-
}
|
|
11614
|
-
};
|
|
11615
|
-
const removeAttachment = (id) => {
|
|
11616
|
-
setAttachments((current) => current.filter((attachment) => attachment.id !== id));
|
|
11617
|
-
setAttachmentError(null);
|
|
11618
11777
|
setComposeError(null);
|
|
11619
11778
|
};
|
|
11620
11779
|
const confirmSend = async () => {
|
|
@@ -11624,27 +11783,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11624
11783
|
setComposeError(validated.error);
|
|
11625
11784
|
return;
|
|
11626
11785
|
}
|
|
11627
|
-
if (attachmentError !== null || attachments.length > 0 && attachmentLimits === null) {
|
|
11628
|
-
setConfirmOpen(false);
|
|
11629
|
-
setComposeError(attachmentError ?? "邮件附件限制暂不可用,请稍后刷新邮箱再试。");
|
|
11630
|
-
return;
|
|
11631
|
-
}
|
|
11632
11786
|
setSending(true);
|
|
11633
|
-
let encodedAttachments = [];
|
|
11634
|
-
try {
|
|
11635
|
-
if (attachments.length > 0) encodedAttachments = await encodeMailAttachments(attachments, attachmentLimits);
|
|
11636
|
-
} catch (error) {
|
|
11637
|
-
setSending(false);
|
|
11638
|
-
setConfirmOpen(false);
|
|
11639
|
-
setComposeError(error instanceof TypeError ? error.message : "无法读取附件,请重新选择后再试。");
|
|
11640
|
-
return;
|
|
11641
|
-
}
|
|
11642
11787
|
const request = {
|
|
11643
11788
|
to: validated.value.to,
|
|
11644
11789
|
cc: validated.value.cc,
|
|
11645
11790
|
subject: validated.value.subject,
|
|
11646
|
-
bodyText: validated.value.bodyText
|
|
11647
|
-
...encodedAttachments.length === 0 ? {} : { attachments: encodedAttachments }
|
|
11791
|
+
bodyText: validated.value.bodyText
|
|
11648
11792
|
};
|
|
11649
11793
|
const result = await props.sendMail(request);
|
|
11650
11794
|
setSending(false);
|
|
@@ -11657,7 +11801,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11657
11801
|
setComposeError("邮件服务没有接受本次发送,请检查内容后重试。");
|
|
11658
11802
|
return;
|
|
11659
11803
|
}
|
|
11660
|
-
const
|
|
11804
|
+
const warningText = result.value.warnings.length === 0 ? "" : `,服务返回 ${result.value.warnings.length} 条提示`;
|
|
11661
11805
|
clearDraft();
|
|
11662
11806
|
setFolder("sent");
|
|
11663
11807
|
const storage = browserLocalStorage();
|
|
@@ -11670,9 +11814,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11670
11814
|
setCompose(false);
|
|
11671
11815
|
setPane("list");
|
|
11672
11816
|
refresh("sent");
|
|
11673
|
-
showNotice(
|
|
11817
|
+
showNotice(`邮件已发送${warningText}。`);
|
|
11674
11818
|
};
|
|
11675
|
-
const dirty = to.trim() !== "" || cc.trim() !== "" || subject.trim() !== "" || bodyText.trim() !== ""
|
|
11819
|
+
const dirty = to.trim() !== "" || cc.trim() !== "" || subject.trim() !== "" || bodyText.trim() !== "";
|
|
11676
11820
|
const cancelCompose = () => {
|
|
11677
11821
|
if (dirty) {
|
|
11678
11822
|
setDiscardOpen(true);
|
|
@@ -11682,39 +11826,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11682
11826
|
setPane("list");
|
|
11683
11827
|
};
|
|
11684
11828
|
const selectedSummary = items.find((item) => item.id === selectedId);
|
|
11685
|
-
const attachmentTotalBytes = attachments.reduce((sum, attachment) => sum + attachment.sizeBytes, 0);
|
|
11686
|
-
const downloadAttachment = async (attachment) => {
|
|
11687
|
-
if (message === null || attachmentLimits === null) return;
|
|
11688
|
-
const expected = downloadableMailAttachment(attachment, attachmentLimits.maxBytes);
|
|
11689
|
-
if (expected === void 0 || downloadStates[attachment.index]?.status === "loading") return;
|
|
11690
|
-
const generation = detailGeneration.current;
|
|
11691
|
-
const localMessageId = message.summary.id;
|
|
11692
|
-
setDownloadStates((current) => ({
|
|
11693
|
-
...current,
|
|
11694
|
-
[attachment.index]: { status: "loading" }
|
|
11695
|
-
}));
|
|
11696
|
-
try {
|
|
11697
|
-
if (!await downloadAndSaveMailAttachment(props.downloadMailAttachment, {
|
|
11698
|
-
localMessageId,
|
|
11699
|
-
attachmentIndex: attachment.index
|
|
11700
|
-
}, expected, attachmentLimits.maxBytes, () => generation === detailGeneration.current && message.summary.id === localMessageId)) return;
|
|
11701
|
-
setDownloadStates((current) => {
|
|
11702
|
-
const next = { ...current };
|
|
11703
|
-
delete next[attachment.index];
|
|
11704
|
-
return next;
|
|
11705
|
-
});
|
|
11706
|
-
showNotice(`已开始下载 ${expected.fileName}。`);
|
|
11707
|
-
} catch (error) {
|
|
11708
|
-
if (generation !== detailGeneration.current || message.summary.id !== localMessageId) return;
|
|
11709
|
-
setDownloadStates((current) => ({
|
|
11710
|
-
...current,
|
|
11711
|
-
[attachment.index]: {
|
|
11712
|
-
status: "error",
|
|
11713
|
-
error: error instanceof TypeError ? error.message : "无法保存附件,请重试。"
|
|
11714
|
-
}
|
|
11715
|
-
}));
|
|
11716
|
-
}
|
|
11717
|
-
};
|
|
11718
11829
|
return (0, react_jsx_runtime.jsxs)("div", {
|
|
11719
11830
|
className: _dsh_awiki_css_AwikiMail_module_css_default.mail,
|
|
11720
11831
|
"data-pane": pane,
|
|
@@ -11780,31 +11891,19 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11780
11891
|
children: [
|
|
11781
11892
|
(0, react_jsx_runtime.jsxs)("header", {
|
|
11782
11893
|
className: _dsh_awiki_css_AwikiMail_module_css_default.listHeader,
|
|
11783
|
-
children: [
|
|
11784
|
-
|
|
11785
|
-
|
|
11786
|
-
|
|
11787
|
-
|
|
11788
|
-
|
|
11789
|
-
|
|
11790
|
-
|
|
11791
|
-
|
|
11792
|
-
|
|
11793
|
-
|
|
11794
|
-
|
|
11795
|
-
|
|
11796
|
-
folder === "inbox" && visibleUnreadCount > 0 ? ` · ${visibleUnreadCount} 封未读` : ""
|
|
11797
|
-
] })] }),
|
|
11798
|
-
(0, react_jsx_runtime.jsx)("button", {
|
|
11799
|
-
type: "button",
|
|
11800
|
-
"aria-label": `刷新${MAIL_FOLDER_COPY[folder].title}`,
|
|
11801
|
-
disabled: listLoading,
|
|
11802
|
-
onClick: () => {
|
|
11803
|
-
refresh();
|
|
11804
|
-
},
|
|
11805
|
-
children: listLoading ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconLoadingOutline16, { size: 15 }) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutline14, { size: 15 })
|
|
11806
|
-
})
|
|
11807
|
-
]
|
|
11894
|
+
children: [(0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("strong", { children: MAIL_FOLDER_COPY[folder].title }), (0, react_jsx_runtime.jsxs)("small", { children: [
|
|
11895
|
+
items.length,
|
|
11896
|
+
" 封邮件",
|
|
11897
|
+
folder === "inbox" && visibleUnreadCount > 0 ? ` · ${visibleUnreadCount} 封未读` : ""
|
|
11898
|
+
] })] }), (0, react_jsx_runtime.jsx)("button", {
|
|
11899
|
+
type: "button",
|
|
11900
|
+
"aria-label": `刷新${MAIL_FOLDER_COPY[folder].title}`,
|
|
11901
|
+
disabled: listLoading,
|
|
11902
|
+
onClick: () => {
|
|
11903
|
+
refresh();
|
|
11904
|
+
},
|
|
11905
|
+
children: listLoading ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconLoadingOutline16, { size: 15 }) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutline14, { size: 15 })
|
|
11906
|
+
})]
|
|
11808
11907
|
}),
|
|
11809
11908
|
listError !== null && (0, react_jsx_runtime.jsxs)("div", {
|
|
11810
11909
|
className: _dsh_awiki_css_AwikiMail_module_css_default.inlineError,
|
|
@@ -11865,7 +11964,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11865
11964
|
"aria-label": `返回${MAIL_FOLDER_COPY[folder].title}`,
|
|
11866
11965
|
onClick: cancelCompose,
|
|
11867
11966
|
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronLeftOutline14, { size: 14 })
|
|
11868
|
-
}), (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("strong", { children: "写邮件" }), (0, react_jsx_runtime.jsx)("small", { children: "
|
|
11967
|
+
}), (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("strong", { children: "写邮件" }), (0, react_jsx_runtime.jsx)("small", { children: "发送纯文本邮件" })] })]
|
|
11869
11968
|
}),
|
|
11870
11969
|
(0, react_jsx_runtime.jsxs)("div", {
|
|
11871
11970
|
className: _dsh_awiki_css_AwikiMail_module_css_default.composeFields,
|
|
@@ -11873,7 +11972,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11873
11972
|
(0, react_jsx_runtime.jsxs)("label", { children: ["收件人", (0, react_jsx_runtime.jsx)("textarea", {
|
|
11874
11973
|
value: to,
|
|
11875
11974
|
rows: 1,
|
|
11876
|
-
disabled: sending,
|
|
11877
11975
|
autoFocus: true,
|
|
11878
11976
|
placeholder: "alice@example.com,可用逗号或换行分隔",
|
|
11879
11977
|
onChange: (event) => {
|
|
@@ -11884,7 +11982,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11884
11982
|
(0, react_jsx_runtime.jsxs)("label", { children: ["抄送", (0, react_jsx_runtime.jsx)("textarea", {
|
|
11885
11983
|
value: cc,
|
|
11886
11984
|
rows: 1,
|
|
11887
|
-
disabled: sending,
|
|
11888
11985
|
placeholder: "选填",
|
|
11889
11986
|
onChange: (event) => {
|
|
11890
11987
|
setCc(event.target.value);
|
|
@@ -11893,7 +11990,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11893
11990
|
})] }),
|
|
11894
11991
|
(0, react_jsx_runtime.jsxs)("label", { children: ["主题", (0, react_jsx_runtime.jsx)("input", {
|
|
11895
11992
|
value: subject,
|
|
11896
|
-
disabled: sending,
|
|
11897
11993
|
placeholder: "邮件主题",
|
|
11898
11994
|
onChange: (event) => {
|
|
11899
11995
|
setSubject(event.target.value);
|
|
@@ -11904,7 +12000,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11904
12000
|
className: _dsh_awiki_css_AwikiMail_module_css_default.bodyField,
|
|
11905
12001
|
children: ["正文", (0, react_jsx_runtime.jsx)("textarea", {
|
|
11906
12002
|
value: bodyText,
|
|
11907
|
-
disabled: sending,
|
|
11908
12003
|
placeholder: "输入纯文本邮件正文",
|
|
11909
12004
|
onChange: (event) => {
|
|
11910
12005
|
setBodyText(event.target.value);
|
|
@@ -11912,65 +12007,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11912
12007
|
}
|
|
11913
12008
|
})]
|
|
11914
12009
|
}),
|
|
11915
|
-
(0, react_jsx_runtime.jsxs)("section", {
|
|
11916
|
-
className: _dsh_awiki_css_AwikiMail_module_css_default.composeAttachments,
|
|
11917
|
-
"aria-label": "邮件附件",
|
|
11918
|
-
children: [(0, react_jsx_runtime.jsxs)("div", {
|
|
11919
|
-
className: _dsh_awiki_css_AwikiMail_module_css_default.attachmentPickerRow,
|
|
11920
|
-
children: [
|
|
11921
|
-
(0, react_jsx_runtime.jsxs)("button", {
|
|
11922
|
-
type: "button",
|
|
11923
|
-
className: _dsh_awiki_css_AwikiMail_module_css_default.attachmentPicker,
|
|
11924
|
-
disabled: sending || attachmentLimits === null || attachmentLimits.maxCount === 0,
|
|
11925
|
-
onClick: () => {
|
|
11926
|
-
fileInput.current?.click();
|
|
11927
|
-
},
|
|
11928
|
-
children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPaperclipOutline16, { size: 14 }), "添加附件"]
|
|
11929
|
-
}),
|
|
11930
|
-
(0, react_jsx_runtime.jsx)("input", {
|
|
11931
|
-
ref: fileInput,
|
|
11932
|
-
className: _dsh_awiki_css_AwikiMail_module_css_default.attachmentInput,
|
|
11933
|
-
type: "file",
|
|
11934
|
-
multiple: true,
|
|
11935
|
-
"aria-label": "选择邮件附件",
|
|
11936
|
-
disabled: sending || attachmentLimits === null || attachmentLimits.maxCount === 0,
|
|
11937
|
-
onChange: (event) => {
|
|
11938
|
-
chooseAttachments(event.currentTarget.files);
|
|
11939
|
-
event.currentTarget.value = "";
|
|
11940
|
-
}
|
|
11941
|
-
}),
|
|
11942
|
-
(0, react_jsx_runtime.jsx)("small", { children: attachmentLimits === null ? "附件限制暂不可用" : `最多 ${attachmentLimits.maxCount} 个 · 单个 ${displayBytes(attachmentLimits.maxBytes)} · 总计 ${displayBytes(attachmentLimits.totalMaxBytes)}` })
|
|
11943
|
-
]
|
|
11944
|
-
}), attachments.length > 0 && (0, react_jsx_runtime.jsxs)("div", {
|
|
11945
|
-
className: _dsh_awiki_css_AwikiMail_module_css_default.selectedAttachments,
|
|
11946
|
-
children: [attachments.map((attachment) => (0, react_jsx_runtime.jsxs)("div", { children: [
|
|
11947
|
-
(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPaperclipOutline16, { size: 15 }),
|
|
11948
|
-
(0, react_jsx_runtime.jsxs)("span", { children: [(0, react_jsx_runtime.jsx)("strong", { children: attachment.fileName }), (0, react_jsx_runtime.jsxs)("small", { children: [
|
|
11949
|
-
attachment.contentType,
|
|
11950
|
-
" · ",
|
|
11951
|
-
displayBytes(attachment.sizeBytes)
|
|
11952
|
-
] })] }),
|
|
11953
|
-
(0, react_jsx_runtime.jsx)("button", {
|
|
11954
|
-
type: "button",
|
|
11955
|
-
disabled: sending,
|
|
11956
|
-
"aria-label": `移除附件 ${attachment.fileName}`,
|
|
11957
|
-
onClick: () => {
|
|
11958
|
-
removeAttachment(attachment.id);
|
|
11959
|
-
},
|
|
11960
|
-
children: "移除"
|
|
11961
|
-
})
|
|
11962
|
-
] }, attachment.id)), (0, react_jsx_runtime.jsxs)("p", { children: [
|
|
11963
|
-
attachments.length,
|
|
11964
|
-
" 个附件 · 共 ",
|
|
11965
|
-
displayBytes(attachmentTotalBytes)
|
|
11966
|
-
] })]
|
|
11967
|
-
})]
|
|
11968
|
-
}),
|
|
11969
|
-
attachmentError !== null && (0, react_jsx_runtime.jsx)("p", {
|
|
11970
|
-
className: _dsh_awiki_css_AwikiMail_module_css_default.composeError,
|
|
11971
|
-
role: "alert",
|
|
11972
|
-
children: attachmentError
|
|
11973
|
-
}),
|
|
11974
12010
|
composeError !== null && (0, react_jsx_runtime.jsx)("p", {
|
|
11975
12011
|
className: _dsh_awiki_css_AwikiMail_module_css_default.composeError,
|
|
11976
12012
|
role: "alert",
|
|
@@ -11989,7 +12025,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11989
12025
|
}), (0, react_jsx_runtime.jsxs)("button", {
|
|
11990
12026
|
type: "submit",
|
|
11991
12027
|
className: _dsh_awiki_css_AwikiMail_module_css_default.sendButton,
|
|
11992
|
-
disabled: sending
|
|
12028
|
+
disabled: sending,
|
|
11993
12029
|
children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSendOutline16, { size: 15 }), "发送"]
|
|
11994
12030
|
})]
|
|
11995
12031
|
})
|
|
@@ -12014,10 +12050,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
12014
12050
|
className: _dsh_awiki_css_AwikiMail_module_css_default.detailBack,
|
|
12015
12051
|
"aria-label": `返回${MAIL_FOLDER_COPY[folder].title}`,
|
|
12016
12052
|
onClick: () => {
|
|
12017
|
-
detailGeneration.current += 1;
|
|
12018
12053
|
setSelectedId(null);
|
|
12019
12054
|
setMessage(null);
|
|
12020
|
-
setDownloadStates({});
|
|
12021
12055
|
setPane("list");
|
|
12022
12056
|
},
|
|
12023
12057
|
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronLeftOutline14, { size: 14 })
|
|
@@ -12073,33 +12107,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
12073
12107
|
}),
|
|
12074
12108
|
message.attachments.length > 0 && (0, react_jsx_runtime.jsxs)("section", {
|
|
12075
12109
|
className: _dsh_awiki_css_AwikiMail_module_css_default.attachments,
|
|
12076
|
-
"aria-label": "
|
|
12077
|
-
children: [(0, react_jsx_runtime.jsx)("h4", { children: "
|
|
12078
|
-
const downloadable = attachmentLimits === null ? void 0 : downloadableMailAttachment(attachment, attachmentLimits.maxBytes);
|
|
12079
|
-
const state = downloadStates[attachment.index];
|
|
12080
|
-
return (0, react_jsx_runtime.jsxs)("div", { children: [
|
|
12081
|
-
(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPaperclipOutline16, { size: 15 }),
|
|
12082
|
-
(0, react_jsx_runtime.jsxs)("span", { children: [
|
|
12083
|
-
(0, react_jsx_runtime.jsx)("strong", { children: attachment.fileName ?? `附件 ${attachment.index + 1}` }),
|
|
12084
|
-
(0, react_jsx_runtime.jsx)("small", { children: [attachment.contentType, attachment.sizeBytes === void 0 ? void 0 : `${attachment.sizeBytes} bytes`].filter(Boolean).join(" · ") || "暂无更多信息" }),
|
|
12085
|
-
downloadable === void 0 && (0, react_jsx_runtime.jsx)("small", { children: "当前记录缺少完整、可验证的下载元数据。" }),
|
|
12086
|
-
state?.status === "error" && (0, react_jsx_runtime.jsx)("small", {
|
|
12087
|
-
className: _dsh_awiki_css_AwikiMail_module_css_default.attachmentDownloadError,
|
|
12088
|
-
role: "alert",
|
|
12089
|
-
children: state.error
|
|
12090
|
-
})
|
|
12091
|
-
] }),
|
|
12092
|
-
downloadable !== void 0 && (0, react_jsx_runtime.jsx)("button", {
|
|
12093
|
-
type: "button",
|
|
12094
|
-
disabled: state?.status === "loading",
|
|
12095
|
-
"aria-label": `${state?.status === "error" ? "重试下载" : "下载附件"} ${downloadable.fileName}`,
|
|
12096
|
-
onClick: () => {
|
|
12097
|
-
downloadAttachment(attachment);
|
|
12098
|
-
},
|
|
12099
|
-
children: state?.status === "loading" ? "下载中…" : state?.status === "error" ? "重试" : "下载"
|
|
12100
|
-
})
|
|
12101
|
-
] }, attachment.index);
|
|
12102
|
-
})]
|
|
12110
|
+
"aria-label": "附件元数据",
|
|
12111
|
+
children: [(0, react_jsx_runtime.jsx)("h4", { children: "附件(仅元数据)" }), message.attachments.map((attachment) => (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPaperclipOutline16, { size: 15 }), (0, react_jsx_runtime.jsxs)("span", { children: [(0, react_jsx_runtime.jsx)("strong", { children: attachment.fileName ?? `附件 ${attachment.index + 1}` }), (0, react_jsx_runtime.jsx)("small", { children: [attachment.contentType, attachment.sizeBytes === void 0 ? void 0 : `${attachment.sizeBytes} bytes`].filter(Boolean).join(" · ") || "暂无更多信息" })] })] }, attachment.index))]
|
|
12103
12112
|
})
|
|
12104
12113
|
]
|
|
12105
12114
|
})
|
|
@@ -12152,20 +12161,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
12152
12161
|
splitAddresses(cc).length,
|
|
12153
12162
|
" 人"
|
|
12154
12163
|
] }),
|
|
12155
|
-
(0, react_jsx_runtime.jsxs)("p", { children: ["主题:", subject.trim()] })
|
|
12156
|
-
(0, react_jsx_runtime.jsxs)("p", { children: [
|
|
12157
|
-
"附件:",
|
|
12158
|
-
attachments.length,
|
|
12159
|
-
" 个 · 共 ",
|
|
12160
|
-
displayBytes(attachmentTotalBytes)
|
|
12161
|
-
] }),
|
|
12162
|
-
attachments.map((attachment) => (0, react_jsx_runtime.jsxs)("p", { children: [
|
|
12163
|
-
attachment.fileName,
|
|
12164
|
-
" · ",
|
|
12165
|
-
attachment.contentType,
|
|
12166
|
-
" · ",
|
|
12167
|
-
displayBytes(attachment.sizeBytes)
|
|
12168
|
-
] }, attachment.id))
|
|
12164
|
+
(0, react_jsx_runtime.jsxs)("p", { children: ["主题:", subject.trim()] })
|
|
12169
12165
|
]
|
|
12170
12166
|
})
|
|
12171
12167
|
}),
|
|
@@ -12176,7 +12172,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
12176
12172
|
},
|
|
12177
12173
|
title: "放弃这封邮件?",
|
|
12178
12174
|
closeLabel: "继续编辑",
|
|
12179
|
-
description: "
|
|
12175
|
+
description: "首版不会保存草稿,放弃后当前内容将被清空。",
|
|
12180
12176
|
footer: (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
12181
12177
|
type: "button",
|
|
12182
12178
|
variant: "outline",
|
|
@@ -12197,7 +12193,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
12197
12193
|
})] }),
|
|
12198
12194
|
children: (0, react_jsx_runtime.jsx)("p", {
|
|
12199
12195
|
className: _dsh_awiki_css_AwikiMail_module_css_default.discardText,
|
|
12200
|
-
children: "
|
|
12196
|
+
children: "收件人、主题和正文中的未发送内容都会丢失。"
|
|
12201
12197
|
})
|
|
12202
12198
|
})
|
|
12203
12199
|
]
|
|
@@ -12844,6 +12840,247 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
12844
12840
|
});
|
|
12845
12841
|
}
|
|
12846
12842
|
//#endregion
|
|
12843
|
+
//#region \0dsh-awiki-css:AwikiDevices.module.css.mjs
|
|
12844
|
+
const css$1 = ".xQ4iKW_page{align-content:start;gap:16px;height:100%;padding:16px;display:grid;overflow:auto}.xQ4iKW_heading{justify-content:space-between;align-items:start;gap:12px;display:flex}.xQ4iKW_heading h3,.xQ4iKW_heading p,.xQ4iKW_page h4,.xQ4iKW_page p{margin:0}.xQ4iKW_heading p,.xQ4iKW_card small{color:var(--dsw-alias-label-secondary)}.xQ4iKW_card{border:1px solid var(--dsw-alias-border-l1);border-radius:10px;gap:8px;margin-top:8px;padding:12px;display:grid}.xQ4iKW_actions{flex-wrap:wrap;gap:8px;display:flex}.xQ4iKW_sas{letter-spacing:.2em;text-align:center;font-variant-numeric:tabular-nums;font-size:30px}.xQ4iKW_error{color:var(--dsw-alias-state-error-primary)}";
|
|
12845
|
+
const tagId$1 = "@awiki/dsh-plugin/AwikiDevices.module.css";
|
|
12846
|
+
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
|
|
12847
|
+
const tag = document.createElement("style");
|
|
12848
|
+
tag.dataset.plugin = "@awiki/dsh-plugin";
|
|
12849
|
+
tag.dataset.pluginCss = tagId$1;
|
|
12850
|
+
tag.textContent = css$1;
|
|
12851
|
+
document.head.appendChild(tag);
|
|
12852
|
+
}
|
|
12853
|
+
var _dsh_awiki_css_AwikiDevices_module_css_default = {
|
|
12854
|
+
"actions": "xQ4iKW_actions",
|
|
12855
|
+
"card": "xQ4iKW_card",
|
|
12856
|
+
"error": "xQ4iKW_error",
|
|
12857
|
+
"heading": "xQ4iKW_heading",
|
|
12858
|
+
"page": "xQ4iKW_page",
|
|
12859
|
+
"sas": "xQ4iKW_sas"
|
|
12860
|
+
};
|
|
12861
|
+
//#endregion
|
|
12862
|
+
//#region lib/types/client/AwikiDevices.js
|
|
12863
|
+
/** Foreground-only ready-admin device management. SAS remains component-local. */
|
|
12864
|
+
function AwikiDevices(props) {
|
|
12865
|
+
const [snapshot, setSnapshot] = (0, react.useState)(null);
|
|
12866
|
+
const [progress, setProgress] = (0, react.useState)(null);
|
|
12867
|
+
const [enteredSas, setEnteredSas] = (0, react.useState)("");
|
|
12868
|
+
const [approval, setApproval] = (0, react.useState)("");
|
|
12869
|
+
const [revokeRef, setRevokeRef] = (0, react.useState)(null);
|
|
12870
|
+
const [revokeConfirmation, setRevokeConfirmation] = (0, react.useState)("");
|
|
12871
|
+
const [error, setError] = (0, react.useState)(null);
|
|
12872
|
+
const refresh = async () => {
|
|
12873
|
+
const result = await props.refreshDeviceManagement();
|
|
12874
|
+
if (!result.ok) return setError(result.error);
|
|
12875
|
+
setSnapshot(result.value);
|
|
12876
|
+
if (progress !== null && ![
|
|
12877
|
+
"authorized",
|
|
12878
|
+
"cancelled",
|
|
12879
|
+
"rejected",
|
|
12880
|
+
"expired"
|
|
12881
|
+
].includes(progress.phase)) {
|
|
12882
|
+
const advanced = await props.startDeviceJoinVerification({ requestRef: progress.requestRef });
|
|
12883
|
+
if (advanced.ok) setProgress(advanced.value);
|
|
12884
|
+
}
|
|
12885
|
+
setError(null);
|
|
12886
|
+
};
|
|
12887
|
+
(0, react.useEffect)(() => {
|
|
12888
|
+
if (!props.active) return;
|
|
12889
|
+
let alive = true;
|
|
12890
|
+
props.refreshDeviceManagement().then((result) => {
|
|
12891
|
+
if (!alive) return;
|
|
12892
|
+
if (result.ok) setSnapshot(result.value);
|
|
12893
|
+
else setError(result.error);
|
|
12894
|
+
});
|
|
12895
|
+
const timer = setInterval(() => {
|
|
12896
|
+
if (alive) refresh();
|
|
12897
|
+
}, 3e3);
|
|
12898
|
+
return () => {
|
|
12899
|
+
alive = false;
|
|
12900
|
+
clearInterval(timer);
|
|
12901
|
+
};
|
|
12902
|
+
}, [
|
|
12903
|
+
props.active,
|
|
12904
|
+
progress?.phase,
|
|
12905
|
+
progress?.requestRef
|
|
12906
|
+
]);
|
|
12907
|
+
const start = async (requestRef) => {
|
|
12908
|
+
const result = await props.startDeviceJoinVerification({ requestRef });
|
|
12909
|
+
if (!result.ok) return setError(result.error);
|
|
12910
|
+
setProgress(result.value);
|
|
12911
|
+
setError(null);
|
|
12912
|
+
};
|
|
12913
|
+
const approve = async () => {
|
|
12914
|
+
if (progress === null) return;
|
|
12915
|
+
const result = await props.approveDeviceJoin({
|
|
12916
|
+
requestRef: progress.requestRef,
|
|
12917
|
+
enteredSas,
|
|
12918
|
+
confirmation: approval
|
|
12919
|
+
});
|
|
12920
|
+
if (!result.ok) return setError(result.error);
|
|
12921
|
+
setProgress(null);
|
|
12922
|
+
setEnteredSas("");
|
|
12923
|
+
setApproval("");
|
|
12924
|
+
await refresh();
|
|
12925
|
+
};
|
|
12926
|
+
const reject = async (requestRef) => {
|
|
12927
|
+
const result = await props.rejectDeviceJoin({
|
|
12928
|
+
requestRef,
|
|
12929
|
+
reason: "user_rejected"
|
|
12930
|
+
});
|
|
12931
|
+
if (!result.ok) return setError(result.error);
|
|
12932
|
+
setProgress(null);
|
|
12933
|
+
await refresh();
|
|
12934
|
+
};
|
|
12935
|
+
const revoke = async () => {
|
|
12936
|
+
if (revokeRef === null) return;
|
|
12937
|
+
const result = await props.revokeDevice({
|
|
12938
|
+
deviceRef: revokeRef,
|
|
12939
|
+
confirmation: revokeConfirmation
|
|
12940
|
+
});
|
|
12941
|
+
if (!result.ok) return setError(result.error);
|
|
12942
|
+
setSnapshot(result.value);
|
|
12943
|
+
setRevokeRef(null);
|
|
12944
|
+
setRevokeConfirmation("");
|
|
12945
|
+
setError(null);
|
|
12946
|
+
};
|
|
12947
|
+
return (0, react_jsx_runtime.jsxs)("section", {
|
|
12948
|
+
className: _dsh_awiki_css_AwikiDevices_module_css_default.page,
|
|
12949
|
+
"aria-label": "AWiki 设备管理",
|
|
12950
|
+
children: [
|
|
12951
|
+
props.modeTabs,
|
|
12952
|
+
(0, react_jsx_runtime.jsxs)("header", {
|
|
12953
|
+
className: _dsh_awiki_css_AwikiDevices_module_css_default.heading,
|
|
12954
|
+
children: [(0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("h3", { children: "设备" }), (0, react_jsx_runtime.jsx)("p", { children: "只有当前 ready-admin 可以批准或撤销设备。" })] }), (0, react_jsx_runtime.jsx)("button", {
|
|
12955
|
+
type: "button",
|
|
12956
|
+
disabled: props.pending,
|
|
12957
|
+
onClick: () => {
|
|
12958
|
+
refresh();
|
|
12959
|
+
},
|
|
12960
|
+
children: "刷新"
|
|
12961
|
+
})]
|
|
12962
|
+
}),
|
|
12963
|
+
snapshot === null && (0, react_jsx_runtime.jsx)("p", {
|
|
12964
|
+
role: "status",
|
|
12965
|
+
children: "正在读取设备状态…"
|
|
12966
|
+
}),
|
|
12967
|
+
snapshot !== null && !snapshot.canManage && (0, react_jsx_runtime.jsx)("p", { children: "当前设备不是可用的管理设备,不能批准或撤销其他设备。" }),
|
|
12968
|
+
snapshot?.canManage && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
12969
|
+
(0, react_jsx_runtime.jsxs)("section", { children: [
|
|
12970
|
+
(0, react_jsx_runtime.jsx)("h4", { children: "待加入" }),
|
|
12971
|
+
snapshot.requests.length === 0 && (0, react_jsx_runtime.jsx)("p", { children: "没有待处理请求。" }),
|
|
12972
|
+
snapshot.requests.map((request) => (0, react_jsx_runtime.jsxs)("article", {
|
|
12973
|
+
className: _dsh_awiki_css_AwikiDevices_module_css_default.card,
|
|
12974
|
+
children: [
|
|
12975
|
+
(0, react_jsx_runtime.jsx)("code", { children: request.candidateKeyFingerprint }),
|
|
12976
|
+
(0, react_jsx_runtime.jsxs)("small", { children: [
|
|
12977
|
+
request.state,
|
|
12978
|
+
" · 有效期至 ",
|
|
12979
|
+
request.expiresAt
|
|
12980
|
+
] }),
|
|
12981
|
+
(0, react_jsx_runtime.jsxs)("div", {
|
|
12982
|
+
className: _dsh_awiki_css_AwikiDevices_module_css_default.actions,
|
|
12983
|
+
children: [(0, react_jsx_runtime.jsx)("button", {
|
|
12984
|
+
type: "button",
|
|
12985
|
+
disabled: props.pending || !request.canStartVerification && !request.claimedByCurrentDevice,
|
|
12986
|
+
onClick: () => {
|
|
12987
|
+
start(request.requestRef);
|
|
12988
|
+
},
|
|
12989
|
+
children: "开始验证"
|
|
12990
|
+
}), (0, react_jsx_runtime.jsx)("button", {
|
|
12991
|
+
type: "button",
|
|
12992
|
+
disabled: props.pending,
|
|
12993
|
+
onClick: () => {
|
|
12994
|
+
reject(request.requestRef);
|
|
12995
|
+
},
|
|
12996
|
+
children: "拒绝"
|
|
12997
|
+
})]
|
|
12998
|
+
})
|
|
12999
|
+
]
|
|
13000
|
+
}, request.requestRef))
|
|
13001
|
+
] }),
|
|
13002
|
+
progress?.phase === "sas-ready" && (0, react_jsx_runtime.jsxs)("section", {
|
|
13003
|
+
className: _dsh_awiki_css_AwikiDevices_module_css_default.card,
|
|
13004
|
+
children: [
|
|
13005
|
+
(0, react_jsx_runtime.jsx)("h4", { children: "核对安全码" }),
|
|
13006
|
+
(0, react_jsx_runtime.jsx)("strong", {
|
|
13007
|
+
className: _dsh_awiki_css_AwikiDevices_module_css_default.sas,
|
|
13008
|
+
children: progress.sas
|
|
13009
|
+
}),
|
|
13010
|
+
(0, react_jsx_runtime.jsx)("p", { children: "输入手机显示的 6 位码,并输入 APPROVE。" }),
|
|
13011
|
+
(0, react_jsx_runtime.jsx)("input", {
|
|
13012
|
+
"aria-label": "手机安全码",
|
|
13013
|
+
value: enteredSas,
|
|
13014
|
+
inputMode: "numeric",
|
|
13015
|
+
maxLength: 6,
|
|
13016
|
+
onChange: (event) => {
|
|
13017
|
+
setEnteredSas(event.target.value);
|
|
13018
|
+
}
|
|
13019
|
+
}),
|
|
13020
|
+
(0, react_jsx_runtime.jsx)("input", {
|
|
13021
|
+
"aria-label": "批准确认词",
|
|
13022
|
+
value: approval,
|
|
13023
|
+
autoComplete: "off",
|
|
13024
|
+
onChange: (event) => {
|
|
13025
|
+
setApproval(event.target.value);
|
|
13026
|
+
},
|
|
13027
|
+
placeholder: "APPROVE"
|
|
13028
|
+
}),
|
|
13029
|
+
(0, react_jsx_runtime.jsx)("button", {
|
|
13030
|
+
type: "button",
|
|
13031
|
+
disabled: props.pending || enteredSas.length !== 6 || approval !== "APPROVE",
|
|
13032
|
+
onClick: () => {
|
|
13033
|
+
approve();
|
|
13034
|
+
},
|
|
13035
|
+
children: "批准为 member"
|
|
13036
|
+
})
|
|
13037
|
+
]
|
|
13038
|
+
}),
|
|
13039
|
+
(0, react_jsx_runtime.jsxs)("section", { children: [(0, react_jsx_runtime.jsx)("h4", { children: "已登记设备" }), snapshot.devices.map((device) => (0, react_jsx_runtime.jsxs)("article", {
|
|
13040
|
+
className: _dsh_awiki_css_AwikiDevices_module_css_default.card,
|
|
13041
|
+
children: [(0, react_jsx_runtime.jsxs)("span", { children: [
|
|
13042
|
+
device.isCurrent ? "当前设备" : "其他设备",
|
|
13043
|
+
" · ",
|
|
13044
|
+
device.role,
|
|
13045
|
+
" · ",
|
|
13046
|
+
device.status
|
|
13047
|
+
] }), !device.isCurrent && device.status === "active" && (revokeRef === device.deviceRef ? (0, react_jsx_runtime.jsxs)("div", {
|
|
13048
|
+
className: _dsh_awiki_css_AwikiDevices_module_css_default.actions,
|
|
13049
|
+
children: [(0, react_jsx_runtime.jsx)("input", {
|
|
13050
|
+
"aria-label": "撤销确认词",
|
|
13051
|
+
value: revokeConfirmation,
|
|
13052
|
+
onChange: (event) => {
|
|
13053
|
+
setRevokeConfirmation(event.target.value);
|
|
13054
|
+
},
|
|
13055
|
+
placeholder: "REVOKE"
|
|
13056
|
+
}), (0, react_jsx_runtime.jsx)("button", {
|
|
13057
|
+
type: "button",
|
|
13058
|
+
disabled: props.pending || revokeConfirmation !== "REVOKE",
|
|
13059
|
+
onClick: () => {
|
|
13060
|
+
revoke();
|
|
13061
|
+
},
|
|
13062
|
+
children: "确认撤销"
|
|
13063
|
+
})]
|
|
13064
|
+
}) : (0, react_jsx_runtime.jsx)("button", {
|
|
13065
|
+
type: "button",
|
|
13066
|
+
disabled: props.pending,
|
|
13067
|
+
onClick: () => {
|
|
13068
|
+
setRevokeRef(device.deviceRef);
|
|
13069
|
+
setRevokeConfirmation("");
|
|
13070
|
+
},
|
|
13071
|
+
children: "撤销"
|
|
13072
|
+
}))]
|
|
13073
|
+
}, device.deviceRef))] })
|
|
13074
|
+
] }),
|
|
13075
|
+
error !== null && (0, react_jsx_runtime.jsx)("p", {
|
|
13076
|
+
className: _dsh_awiki_css_AwikiDevices_module_css_default.error,
|
|
13077
|
+
role: "alert",
|
|
13078
|
+
children: error
|
|
13079
|
+
})
|
|
13080
|
+
]
|
|
13081
|
+
});
|
|
13082
|
+
}
|
|
13083
|
+
//#endregion
|
|
12847
13084
|
//#region lib/types/client/AwikiProfileCard.js
|
|
12848
13085
|
const MAX_DISPLAY_NAME = 50;
|
|
12849
13086
|
const MAX_BIO = 100;
|
|
@@ -13312,23 +13549,35 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
13312
13549
|
className: _dsh_awiki_css_AwikiOverlay_module_css_default.modeTabs,
|
|
13313
13550
|
role: "tablist",
|
|
13314
13551
|
"aria-label": "AWiki 功能",
|
|
13315
|
-
children: [
|
|
13316
|
-
|
|
13317
|
-
|
|
13318
|
-
|
|
13319
|
-
|
|
13320
|
-
|
|
13321
|
-
|
|
13322
|
-
|
|
13323
|
-
|
|
13324
|
-
|
|
13325
|
-
|
|
13326
|
-
|
|
13327
|
-
|
|
13328
|
-
props.
|
|
13329
|
-
|
|
13330
|
-
|
|
13331
|
-
|
|
13552
|
+
children: [
|
|
13553
|
+
(0, react_jsx_runtime.jsx)("button", {
|
|
13554
|
+
type: "button",
|
|
13555
|
+
role: "tab",
|
|
13556
|
+
"aria-selected": props.mode === "chat",
|
|
13557
|
+
onClick: () => {
|
|
13558
|
+
props.onChange("chat");
|
|
13559
|
+
},
|
|
13560
|
+
children: "会话"
|
|
13561
|
+
}),
|
|
13562
|
+
(0, react_jsx_runtime.jsxs)("button", {
|
|
13563
|
+
type: "button",
|
|
13564
|
+
role: "tab",
|
|
13565
|
+
"aria-selected": props.mode === "mail",
|
|
13566
|
+
onClick: () => {
|
|
13567
|
+
props.onChange("mail");
|
|
13568
|
+
},
|
|
13569
|
+
children: ["邮件", props.mailUnreadCount > 0 && (0, react_jsx_runtime.jsx)("small", { children: props.mailUnreadCount > 99 ? "99+" : props.mailUnreadCount })]
|
|
13570
|
+
}),
|
|
13571
|
+
(0, react_jsx_runtime.jsx)("button", {
|
|
13572
|
+
type: "button",
|
|
13573
|
+
role: "tab",
|
|
13574
|
+
"aria-selected": props.mode === "devices",
|
|
13575
|
+
onClick: () => {
|
|
13576
|
+
props.onChange("devices");
|
|
13577
|
+
},
|
|
13578
|
+
children: "设备"
|
|
13579
|
+
})
|
|
13580
|
+
]
|
|
13332
13581
|
});
|
|
13333
13582
|
}
|
|
13334
13583
|
/** Incoming sender label: WNS display name, then Handle, then DID. */
|
|
@@ -14027,40 +14276,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
14027
14276
|
}), props.composeMenu]
|
|
14028
14277
|
})]
|
|
14029
14278
|
}),
|
|
14030
|
-
view.groupRecovery !== null && (0, react_jsx_runtime.jsxs)("div", {
|
|
14031
|
-
className: _dsh_awiki_css_AwikiOverlay_module_css_default.groupRecoveryNotice,
|
|
14032
|
-
"data-status": view.groupRecovery.status,
|
|
14033
|
-
role: view.groupRecovery.status === "blocked" ? "alert" : "status",
|
|
14034
|
-
children: [
|
|
14035
|
-
(0, react_jsx_runtime.jsxs)("span", { children: [(0, react_jsx_runtime.jsx)("strong", { children: view.groupRecovery.status === "pending" ? "正在恢复旧群聊身份" : view.groupRecovery.status === "blocked" ? "部分旧群聊需要处理" : "暂时无法检查旧群聊身份" }), (0, react_jsx_runtime.jsx)("small", { children: view.groupRecovery.status === "pending" ? `${view.groupRecovery.pending} 个群聊尚未完成,其他会话不受影响。` : view.groupRecovery.status === "blocked" ? `${view.groupRecovery.blocked} 个群聊未能自动恢复,其他会话不受影响。` : "私聊和新群聊不受影响,可稍后重试。" })] }),
|
|
14036
|
-
(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
|
|
14037
|
-
label: "重试群聊身份恢复",
|
|
14038
|
-
side: "right",
|
|
14039
|
-
children: (0, react_jsx_runtime.jsx)("button", {
|
|
14040
|
-
type: "button",
|
|
14041
|
-
"aria-label": "重试群聊身份恢复",
|
|
14042
|
-
disabled: view.pending !== null,
|
|
14043
|
-
onClick: () => {
|
|
14044
|
-
props.retryGroupRebindRecovery();
|
|
14045
|
-
},
|
|
14046
|
-
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutline14, { size: 14 })
|
|
14047
|
-
})
|
|
14048
|
-
}),
|
|
14049
|
-
(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
|
|
14050
|
-
label: "稍后处理",
|
|
14051
|
-
side: "right",
|
|
14052
|
-
children: (0, react_jsx_runtime.jsx)("button", {
|
|
14053
|
-
type: "button",
|
|
14054
|
-
"aria-label": "关闭旧群聊处理提示",
|
|
14055
|
-
disabled: view.pending !== null,
|
|
14056
|
-
onClick: () => {
|
|
14057
|
-
props.dismissGroupRecoveryNotice();
|
|
14058
|
-
},
|
|
14059
|
-
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCloseOutline16, { size: 14 })
|
|
14060
|
-
})
|
|
14061
|
-
})
|
|
14062
|
-
]
|
|
14063
|
-
}),
|
|
14064
14279
|
(0, react_jsx_runtime.jsxs)("div", {
|
|
14065
14280
|
className: _dsh_awiki_css_AwikiOverlay_module_css_default.conversationList,
|
|
14066
14281
|
children: [view.conversations.map((conversation) => (0, react_jsx_runtime.jsx)(ConversationRow, {
|
|
@@ -15042,95 +15257,113 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
15042
15257
|
recoveryOperationId: view.recoveryOperationId,
|
|
15043
15258
|
recoveryProgress: view.recoveryProgress,
|
|
15044
15259
|
pending: view.pending !== null,
|
|
15045
|
-
|
|
15046
|
-
legacySharedStateDetected: view.legacySharedStateDetected
|
|
15260
|
+
handleRecoveryPhoneEnabled: view.handleRecoveryPhoneEnabled
|
|
15047
15261
|
})
|
|
15048
15262
|
}),
|
|
15049
|
-
view.status === "ready" && view.sessionStatus === "active" && view.identity !== null && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
15050
|
-
|
|
15051
|
-
|
|
15052
|
-
|
|
15053
|
-
|
|
15054
|
-
|
|
15055
|
-
|
|
15056
|
-
|
|
15057
|
-
|
|
15058
|
-
|
|
15059
|
-
|
|
15060
|
-
modeTabs: (0, react_jsx_runtime.jsx)(ModeTabs, {
|
|
15061
|
-
mode,
|
|
15062
|
-
mailUnreadCount,
|
|
15063
|
-
onChange: setMode
|
|
15064
|
-
}),
|
|
15065
|
-
composeMenu: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Menu, {
|
|
15066
|
-
open: menuOpen,
|
|
15067
|
-
onClose: () => {
|
|
15068
|
-
setMenuOpen(false);
|
|
15263
|
+
view.status === "ready" && view.sessionStatus === "active" && view.identity !== null && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
15264
|
+
(0, react_jsx_runtime.jsx)("div", {
|
|
15265
|
+
className: _dsh_awiki_css_AwikiOverlay_module_css_default.modePanel,
|
|
15266
|
+
"data-active": mode === "chat" || void 0,
|
|
15267
|
+
hidden: mode !== "chat",
|
|
15268
|
+
children: (0, react_jsx_runtime.jsx)(Chat, {
|
|
15269
|
+
...props,
|
|
15270
|
+
selectConversation,
|
|
15271
|
+
view: {
|
|
15272
|
+
...view,
|
|
15273
|
+
identity: view.identity
|
|
15069
15274
|
},
|
|
15070
|
-
|
|
15071
|
-
|
|
15072
|
-
|
|
15073
|
-
|
|
15074
|
-
|
|
15075
|
-
|
|
15076
|
-
|
|
15077
|
-
|
|
15078
|
-
|
|
15079
|
-
id: "group",
|
|
15080
|
-
label: "发起群聊"
|
|
15275
|
+
modeTabs: (0, react_jsx_runtime.jsx)(ModeTabs, {
|
|
15276
|
+
mode,
|
|
15277
|
+
mailUnreadCount,
|
|
15278
|
+
onChange: setMode
|
|
15279
|
+
}),
|
|
15280
|
+
composeMenu: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Menu, {
|
|
15281
|
+
open: menuOpen,
|
|
15282
|
+
onClose: () => {
|
|
15283
|
+
setMenuOpen(false);
|
|
15081
15284
|
},
|
|
15082
|
-
|
|
15083
|
-
|
|
15084
|
-
|
|
15085
|
-
|
|
15086
|
-
|
|
15087
|
-
|
|
15088
|
-
|
|
15089
|
-
|
|
15090
|
-
|
|
15091
|
-
|
|
15092
|
-
|
|
15093
|
-
|
|
15094
|
-
|
|
15095
|
-
|
|
15096
|
-
|
|
15097
|
-
|
|
15098
|
-
|
|
15099
|
-
|
|
15100
|
-
setMenuOpen(
|
|
15285
|
+
align: "end",
|
|
15286
|
+
portal: true,
|
|
15287
|
+
compact: true,
|
|
15288
|
+
items: [
|
|
15289
|
+
{
|
|
15290
|
+
id: "direct",
|
|
15291
|
+
label: "发起私聊"
|
|
15292
|
+
},
|
|
15293
|
+
{
|
|
15294
|
+
id: "group",
|
|
15295
|
+
label: "发起群聊"
|
|
15296
|
+
},
|
|
15297
|
+
{
|
|
15298
|
+
id: "join-group",
|
|
15299
|
+
label: "加入群聊"
|
|
15300
|
+
}
|
|
15301
|
+
],
|
|
15302
|
+
onSelect: (id) => {
|
|
15303
|
+
setMenuOpen(false);
|
|
15304
|
+
if (id === "direct") setComposeDirect(true);
|
|
15305
|
+
if (id === "group") setComposeGroup(true);
|
|
15306
|
+
if (id === "join-group") setJoinGroupOpen(true);
|
|
15101
15307
|
},
|
|
15102
|
-
|
|
15308
|
+
anchor: (0, react_jsx_runtime.jsx)("button", {
|
|
15309
|
+
type: "button",
|
|
15310
|
+
className: _dsh_awiki_css_AwikiOverlay_module_css_default.rosterAction,
|
|
15311
|
+
"aria-label": "发起会话",
|
|
15312
|
+
"aria-expanded": menuOpen,
|
|
15313
|
+
"aria-haspopup": "menu",
|
|
15314
|
+
onClick: () => {
|
|
15315
|
+
setMenuOpen((value) => !value);
|
|
15316
|
+
},
|
|
15317
|
+
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPlusOutline16, {})
|
|
15318
|
+
})
|
|
15103
15319
|
})
|
|
15104
15320
|
})
|
|
15105
|
-
})
|
|
15106
|
-
|
|
15107
|
-
|
|
15108
|
-
|
|
15109
|
-
|
|
15110
|
-
|
|
15111
|
-
|
|
15112
|
-
|
|
15113
|
-
|
|
15114
|
-
|
|
15115
|
-
|
|
15321
|
+
}),
|
|
15322
|
+
(0, react_jsx_runtime.jsx)("div", {
|
|
15323
|
+
className: _dsh_awiki_css_AwikiOverlay_module_css_default.modePanel,
|
|
15324
|
+
"data-active": mode === "mail" || void 0,
|
|
15325
|
+
hidden: mode !== "mail",
|
|
15326
|
+
children: (0, react_jsx_runtime.jsx)(AwikiMail, {
|
|
15327
|
+
active: mode === "mail",
|
|
15328
|
+
cacheOwner: view.identity.did,
|
|
15329
|
+
identityCard: mode === "mail" ? (0, react_jsx_runtime.jsx)(AwikiProfileCard, {
|
|
15330
|
+
identity: view.identity,
|
|
15331
|
+
profile: view.profile,
|
|
15332
|
+
pending: view.pending !== null,
|
|
15333
|
+
updateProfile: props.updateProfile
|
|
15334
|
+
}) : null,
|
|
15335
|
+
modeTabs: (0, react_jsx_runtime.jsx)(ModeTabs, {
|
|
15336
|
+
mode,
|
|
15337
|
+
mailUnreadCount,
|
|
15338
|
+
onChange: setMode
|
|
15339
|
+
}),
|
|
15340
|
+
onUnreadCountChange: setMailUnreadCount,
|
|
15341
|
+
getMailAccount: props.getMailAccount,
|
|
15342
|
+
listMailInbox: props.listMailInbox,
|
|
15343
|
+
readMail: props.readMail,
|
|
15344
|
+
markMailRead: props.markMailRead,
|
|
15345
|
+
sendMail: props.sendMail
|
|
15346
|
+
}, view.identity.did)
|
|
15347
|
+
}),
|
|
15348
|
+
mode === "devices" && (0, react_jsx_runtime.jsx)("div", {
|
|
15349
|
+
className: _dsh_awiki_css_AwikiOverlay_module_css_default.modePanel,
|
|
15350
|
+
"data-active": true,
|
|
15351
|
+
children: (0, react_jsx_runtime.jsx)(AwikiDevices, {
|
|
15352
|
+
active: true,
|
|
15116
15353
|
pending: view.pending !== null,
|
|
15117
|
-
|
|
15118
|
-
|
|
15119
|
-
|
|
15120
|
-
|
|
15121
|
-
|
|
15122
|
-
|
|
15123
|
-
|
|
15124
|
-
|
|
15125
|
-
|
|
15126
|
-
|
|
15127
|
-
|
|
15128
|
-
|
|
15129
|
-
|
|
15130
|
-
sendMail: props.sendMail,
|
|
15131
|
-
downloadMailAttachment: props.downloadMailAttachment
|
|
15132
|
-
}, view.identity.did)
|
|
15133
|
-
})] }),
|
|
15354
|
+
modeTabs: (0, react_jsx_runtime.jsx)(ModeTabs, {
|
|
15355
|
+
mode,
|
|
15356
|
+
mailUnreadCount,
|
|
15357
|
+
onChange: setMode
|
|
15358
|
+
}),
|
|
15359
|
+
refreshDeviceManagement: props.refreshDeviceManagement,
|
|
15360
|
+
startDeviceJoinVerification: props.startDeviceJoinVerification,
|
|
15361
|
+
approveDeviceJoin: props.approveDeviceJoin,
|
|
15362
|
+
rejectDeviceJoin: props.rejectDeviceJoin,
|
|
15363
|
+
revokeDevice: props.revokeDevice
|
|
15364
|
+
})
|
|
15365
|
+
})
|
|
15366
|
+
] }),
|
|
15134
15367
|
composeDirect && (0, react_jsx_runtime.jsx)("div", {
|
|
15135
15368
|
className: _dsh_awiki_css_AwikiOverlay_module_css_default.composeBackdrop,
|
|
15136
15369
|
children: (0, react_jsx_runtime.jsxs)("form", {
|
|
@@ -15718,16 +15951,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
15718
15951
|
/** Bilingual copy for the AWiki identity and installation settings page. */
|
|
15719
15952
|
const zh = {
|
|
15720
15953
|
nav: "AWiki",
|
|
15721
|
-
intro: "管理 AWiki
|
|
15722
|
-
domainLabel: "
|
|
15723
|
-
domainDescription: "
|
|
15954
|
+
intro: "管理 AWiki 身份、域名与本地数据设置。",
|
|
15955
|
+
domainLabel: "默认域名",
|
|
15956
|
+
domainDescription: "输入纯域名,不要包含协议、路径或端口。",
|
|
15724
15957
|
defaultValue: "默认值:{domain}",
|
|
15725
15958
|
save: "保存",
|
|
15726
15959
|
saving: "保存中…",
|
|
15727
15960
|
reset: "恢复默认值",
|
|
15728
15961
|
saved: "已保存。",
|
|
15729
15962
|
restartNotice: "重启 DeepSeek Harness 后生效。",
|
|
15730
|
-
identityNotice: "
|
|
15963
|
+
identityNotice: "此设置仅影响后续注册和短 Handle 的域名补全,不会改写已经注册的 DID 或 Handle。",
|
|
15731
15964
|
invalidDomain: "请输入有效的域名,例如 awiki.ai。",
|
|
15732
15965
|
saveFailed: "未能保存设置,请刷新后重试。",
|
|
15733
15966
|
loading: "正在读取 AWiki 设置…",
|
|
@@ -15750,16 +15983,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
15750
15983
|
};
|
|
15751
15984
|
const en = {
|
|
15752
15985
|
nav: "AWiki",
|
|
15753
|
-
intro: "Manage
|
|
15754
|
-
domainLabel: "
|
|
15755
|
-
domainDescription: "Enter a bare domain
|
|
15986
|
+
intro: "Manage AWiki identity, domain, and local data settings.",
|
|
15987
|
+
domainLabel: "Default domain",
|
|
15988
|
+
domainDescription: "Enter a bare domain without a protocol, path, or port.",
|
|
15756
15989
|
defaultValue: "Default: {domain}",
|
|
15757
15990
|
save: "Save",
|
|
15758
15991
|
saving: "Saving…",
|
|
15759
15992
|
reset: "Restore default",
|
|
15760
15993
|
saved: "Saved.",
|
|
15761
15994
|
restartNotice: "Restart DeepSeek Harness for the change to take effect.",
|
|
15762
|
-
identityNotice: "
|
|
15995
|
+
identityNotice: "This affects future registrations and short-Handle completion. It does not rewrite an existing DID or Handle.",
|
|
15763
15996
|
invalidDomain: "Enter a valid domain, such as awiki.ai.",
|
|
15764
15997
|
saveFailed: "The setting could not be saved. Refresh and try again.",
|
|
15765
15998
|
loading: "Loading AWiki settings…",
|
|
@@ -16008,6 +16241,14 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
16008
16241
|
inspectIdentityAccess: (request) => awiki.inspectIdentityAccess(request),
|
|
16009
16242
|
sendRegistrationOtp: (request) => awiki.sendRegistrationOtp(request),
|
|
16010
16243
|
registerIdentity: (request) => awiki.registerIdentity(request),
|
|
16244
|
+
beginDeviceJoin: () => awiki.beginDeviceJoin(),
|
|
16245
|
+
getDeviceJoinStatus: () => awiki.getDeviceJoinStatus(),
|
|
16246
|
+
cancelDeviceJoin: () => awiki.cancelDeviceJoin(),
|
|
16247
|
+
refreshDeviceManagement: () => awiki.refreshDeviceManagement(),
|
|
16248
|
+
startDeviceJoinVerification: (request) => awiki.startDeviceJoinVerification(request),
|
|
16249
|
+
approveDeviceJoin: (request) => awiki.approveDeviceJoin(request),
|
|
16250
|
+
rejectDeviceJoin: (request) => awiki.rejectDeviceJoin(request),
|
|
16251
|
+
revokeDevice: (request) => awiki.revokeDevice(request),
|
|
16011
16252
|
updateDisplayName: (displayName) => awiki.updateDisplayName(displayName),
|
|
16012
16253
|
updateProfile: (request) => awiki.updateProfile(request),
|
|
16013
16254
|
sendRecoveryOtp: (request) => awiki.sendRecoveryOtp(request),
|
|
@@ -16017,8 +16258,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
16017
16258
|
resumeRecovery: () => awiki.resumeRecovery(),
|
|
16018
16259
|
discardRecovery: () => awiki.discardRecovery(),
|
|
16019
16260
|
loadMoreConversations: () => awiki.loadMoreConversations(),
|
|
16020
|
-
retryGroupRebindRecovery: () => awiki.retryGroupRebindRecovery(),
|
|
16021
|
-
dismissGroupRecoveryNotice: () => awiki.dismissGroupRecoveryNotice(),
|
|
16022
16261
|
hideConversation: (conversationId) => awiki.hideConversation(conversationId),
|
|
16023
16262
|
restoreConversation: (conversationId) => awiki.restoreConversation(conversationId),
|
|
16024
16263
|
startDirectChat: (handle) => awiki.startDirectChat(handle),
|
|
@@ -16048,13 +16287,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
16048
16287
|
value: void 0
|
|
16049
16288
|
} : result;
|
|
16050
16289
|
},
|
|
16051
|
-
getConfig: () => awiki.getConfig(),
|
|
16052
16290
|
getMailAccount: () => awiki.getMailAccount(),
|
|
16053
16291
|
listMailInbox: (request) => awiki.listMailInbox(request),
|
|
16054
16292
|
readMail: (request) => awiki.readMail(request),
|
|
16055
16293
|
markMailRead: (request) => awiki.markMailRead(request),
|
|
16056
|
-
sendMail: (request) => awiki.sendMail(request)
|
|
16057
|
-
downloadMailAttachment: (request) => awiki.downloadMailAttachment(request)
|
|
16294
|
+
sendMail: (request) => awiki.sendMail(request)
|
|
16058
16295
|
})
|
|
16059
16296
|
}, AwikiOverlay);
|
|
16060
16297
|
});
|