@agentunion/fastaun-browser 0.5.3 → 0.5.4

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/CHANGELOG.md CHANGED
@@ -6,6 +6,44 @@
6
6
 
7
7
  ---
8
8
 
9
+ ## 0.5.4 — 2026-07-09
10
+
11
+ ### 新功能
12
+
13
+ #### 通用 indexed document settings
14
+ - 浏览器 `GroupFacade` 新增 `getSettingWithIndex()` / `updateSettingWithIndex()`,支持按 `keyName` 管理 `{keyName}.content` 与 `{keyName}.attachments` 两类文档型 indexed settings。
15
+ - `keyName` 增加统一校验:必须匹配 `^[A-Za-z][A-Za-z0-9_-]{0,63}$`,并拒绝 `join`、`group`、`index`、`visibility` 等保留基名。
16
+ - `getAnnouncement()` / `updateAnnouncement()` 与 `getRules()` / `updateRules()` 复用通用 indexed document setting 路径,继续通过 signed `group.index` + `expected_index_etag` CAS 写入。
17
+
18
+ #### 入群要求附件
19
+ - `getJoinRequirements()` / `updateJoinRequirements()` 支持 `attachments`,对应服务端 `join.attachments` indexed setting。
20
+ - `join.attachments` 与公告/群规附件保持同一类 `group.fs` 引用结构,可通过 group.index 签名索引同步。
21
+
22
+ #### Group FS 角色 ACL
23
+ - 服务端 group.fs 命名空间新增受保护 `.group` 控制目录,并为 owner/admin 同步基线角色 ACL。
24
+ - owner/admin 默认可写群自有区;admin 可管理群自有区角色 ACL。
25
+ - `role:member` 支持按具体业务目录授予 `rw`,允许成员创建/上传,但不允许删除、重命名或移动群自有区内容。
26
+
27
+ ### 修复
28
+
29
+ - 修复 Storage 直接入口对群自有区删除/移动/重命名权限检查不足的问题,删除类操作统一走 `delete` 权限判定。
30
+ - 修复旧 group AID 证书类型仍为 normal 时,Storage 无法通过 group resolver 判定群空间的问题。
31
+ - 兼容 CA 续期时 PEM 公钥与 SPKI base64 的等价比较,并兼容托管续期返回 `cert_pem` / `new_cert` 字段。
32
+
33
+ ### 改进
34
+
35
+ - message/group WAL writer 的 `micro_wait` 支持 auto 预算模型,并扩展性能统计输出,便于观察批量写入队列深度与 pending 状态。
36
+ - group.fs 命名空间在读取 group 记录时支持懒修复,缺失 baseline ACL 时可重试同步。
37
+ - SDK 包版本、运行时 `VERSION` 和 conformance 期望版本更新为 `0.5.4`。
38
+
39
+ ### 测试
40
+
41
+ - 扩展浏览器 GroupFacade group index 单元测试,覆盖通用 indexed document setting、`join.attachments` 缓存读取和 group.index 写入路径。
42
+ - 更新 conformance 版本期望到 `0.5.4`。
43
+ - 服务端测试扩展 group settings、group.fs namespace / role ACL、Storage 群自有区权限和 CA 续期兼容性。
44
+
45
+ ---
46
+
9
47
  ## 0.5.3 — 2026-07-07
10
48
 
11
49
  ### 新功能
@@ -6,6 +6,44 @@
6
6
 
7
7
  ---
8
8
 
9
+ ## 0.5.4 — 2026-07-09
10
+
11
+ ### 新功能
12
+
13
+ #### 通用 indexed document settings
14
+ - 浏览器 `GroupFacade` 新增 `getSettingWithIndex()` / `updateSettingWithIndex()`,支持按 `keyName` 管理 `{keyName}.content` 与 `{keyName}.attachments` 两类文档型 indexed settings。
15
+ - `keyName` 增加统一校验:必须匹配 `^[A-Za-z][A-Za-z0-9_-]{0,63}$`,并拒绝 `join`、`group`、`index`、`visibility` 等保留基名。
16
+ - `getAnnouncement()` / `updateAnnouncement()` 与 `getRules()` / `updateRules()` 复用通用 indexed document setting 路径,继续通过 signed `group.index` + `expected_index_etag` CAS 写入。
17
+
18
+ #### 入群要求附件
19
+ - `getJoinRequirements()` / `updateJoinRequirements()` 支持 `attachments`,对应服务端 `join.attachments` indexed setting。
20
+ - `join.attachments` 与公告/群规附件保持同一类 `group.fs` 引用结构,可通过 group.index 签名索引同步。
21
+
22
+ #### Group FS 角色 ACL
23
+ - 服务端 group.fs 命名空间新增受保护 `.group` 控制目录,并为 owner/admin 同步基线角色 ACL。
24
+ - owner/admin 默认可写群自有区;admin 可管理群自有区角色 ACL。
25
+ - `role:member` 支持按具体业务目录授予 `rw`,允许成员创建/上传,但不允许删除、重命名或移动群自有区内容。
26
+
27
+ ### 修复
28
+
29
+ - 修复 Storage 直接入口对群自有区删除/移动/重命名权限检查不足的问题,删除类操作统一走 `delete` 权限判定。
30
+ - 修复旧 group AID 证书类型仍为 normal 时,Storage 无法通过 group resolver 判定群空间的问题。
31
+ - 兼容 CA 续期时 PEM 公钥与 SPKI base64 的等价比较,并兼容托管续期返回 `cert_pem` / `new_cert` 字段。
32
+
33
+ ### 改进
34
+
35
+ - message/group WAL writer 的 `micro_wait` 支持 auto 预算模型,并扩展性能统计输出,便于观察批量写入队列深度与 pending 状态。
36
+ - group.fs 命名空间在读取 group 记录时支持懒修复,缺失 baseline ACL 时可重试同步。
37
+ - SDK 包版本、运行时 `VERSION` 和 conformance 期望版本更新为 `0.5.4`。
38
+
39
+ ### 测试
40
+
41
+ - 扩展浏览器 GroupFacade group index 单元测试,覆盖通用 indexed document setting、`join.attachments` 缓存读取和 group.index 写入路径。
42
+ - 更新 conformance 版本期望到 `0.5.4`。
43
+ - 服务端测试扩展 group settings、group.fs namespace / role ACL、Storage 群自有区权限和 CA 续期兼容性。
44
+
45
+ ---
46
+
9
47
  ## 0.5.3 — 2026-07-07
10
48
 
11
49
  ### 新功能
@@ -329,7 +329,7 @@ headers = client.get_protected_headers()
329
329
  | Collab | `client.collab` | `client.collab` | `client.Collab()` | 版本化文档、标签、`gc` / `reflog` / `revert` |
330
330
  | Group FS | `client.group.fs` | `client.group.fs` | `client.Group().FS()` | POSIX 风格群文件系统;`ls/find/stat/lstat/mkdir/rm/cp/mv/df/mount/umount`,以及 `set_acl/remove_acl/get_acl/list_acl` 角色 ACL 门面,上传下载数据面由 SDK 编排 |
331
331
 
332
- 群文件系统路径统一使用 `group_aid:/...`,成员数据区使用 `group_aid:/memberdata/{member_ref}/...`。SDK 不拼接真实 storage 路径,`memberdata` 到成员 `group_data/{group_aid}` 的映射只在服务端完成。群自有区写入允许当前 `group_aid` 证书签名、默认 `role:owner`、以及 owner 通过 `group.fs.set_acl` 显式授权后的 `role:admin`;撤销使用 `group.fs.remove_acl`,查询使用 `group.fs.get_acl/list_acl`,这些角色 ACL 操作都要求当前 group owner 调用且对外权限位显示为 `rwx`。JS 浏览器版上传中 `string` 默认表示文本内容,Node 本地路径需显式 `sourceType: "path"`、`localPath: true` 或 `local:` 前缀;Python/TS/Go 默认把 `string` 当本地路径。
332
+ 群文件系统路径统一使用 `group_aid:/...`,成员数据区使用 `group_aid:/memberdata/{member_ref}/...`。SDK 不拼接真实 storage 路径,`memberdata` 到成员 `group_data/{group_aid}` 的映射只在服务端完成。群自有区写入允许当前 `group_aid` 证书签名;成员角色中 `owner/admin` 默认可写群自有区,`member` 默认不可写。`owner/admin` 可通过 `group.fs.set_acl` 对特定业务目录授予 `role:member` `rw` 权限,用于后续群协作场景;`rw` 只允许创建/写入,不授予删除、移动、重命名权限。`rwd` 是 storage 内部权限位,SDK/RPC 对外按 POSIX 视图显示为 `rwx`,不给删除/移动/重命名权限时只使用 `rw`。`.group/` 是系统控制目录,默认给 `owner/admin` 写权限,用于群公告、群规则、入群要求附件,不能向 `role:member` 授权。老群如果缺少 `.group/` 默认 ACL,group 服务会在该群首次被 RPC 访问时 best-effort 触发 namespace/ACL lazy repair;ACL 同步全部成功后才记录本进程已检查,失败会在后续访问继续重试。JS 浏览器版上传中 `string` 默认表示文本内容,Node 本地路径需显式 `sourceType: "path"`、`localPath: true` 或 `local:` 前缀;Python/TS/Go 默认把 `string` 当本地路径。
333
333
 
334
334
  ### 消息与群组门面
335
335
 
@@ -347,15 +347,20 @@ headers = client.get_protected_headers()
347
347
  - `getInfo()` — 查询群组信息(扁平化格式,提升常用字段到顶层),**推荐外部使用**
348
348
  - `info()` — 查询群组详细信息(带权限控制,非成员只能看公开群,成员能看 seq/epoch 等运行时状态)
349
349
 
350
- **群设置便利方法**:`GroupFacade` 提供向后兼容的便利方法:
351
-
352
- - `getAnnouncement()` / `updateAnnouncement()` — 群公告
353
- - `getRules()` / `updateRules()` — 群规则
354
- - `getJoinRequirements()` / `updateJoinRequirements()` — 入群要求
355
-
356
- 读取方法优先返回 SDK 本地缓存;本地没有对应值时才读取相应 settings 做初始化。便利读取从服务端拿到 canonical `group_aid` 后,会同时以 canonical `group_aid` 和本次入参 `group_id` 写入 settings cache,避免 legacy/base `group_id` 下一次读取直接 cache miss。即使 `checkGroupIndex` 观察到远端 etag 与本地 etag 不一致,`getAnnouncement()` / `getRules()` / `getJoinRequirements()` 也不会自动拉取远端版本覆盖本地缓存。`updateAnnouncement()` / `updateRules()` / `updateJoinRequirements()` 属于 indexed 写入,内部会调用 `updateGroupIndex` 生成签名 `group.index` 并带 `expected_index_etag` CAS 提交。
357
-
358
- **Group Index 高级同步方法**:`group.index` 是 SDK 内部签名 manifest,用于记录群公告、群规则、入群要求及附件稳定引用的版本。SDK 观察 `_meta.group_indexes` 后只记录远端 etag;etag 不一致只表示本地与观察到的远端版本不同,可能是远端更新,也可能是本地有未提交修改。应用层需要显式选择 pull 远端或 push 本地。
350
+ **群设置便利方法**:`GroupFacade` 提供向后兼容的便利方法:
351
+
352
+ - `getAnnouncement()` / `updateAnnouncement()` — 群公告
353
+ - `getRules()` / `updateRules()` — 群规则
354
+ - `getJoinRequirements()` / `updateJoinRequirements()` — 入群要求
355
+ - `getSettingWithIndex()` / `updateSettingWithIndex()` — 通用文档型 indexed setting(Python 为 `get_setting_with_index()` / `update_setting_with_index()`,Go 为 `GetSettingWithIndex()` / `UpdateSettingWithIndex()`)
356
+
357
+ 读取方法优先返回 SDK 本地缓存;本地没有对应值时才读取相应 settings 做初始化。便利读取从服务端拿到 canonical `group_aid` 后,会同时以 canonical `group_aid` 和本次入参 `group_id` 写入 settings cache,避免 legacy/base `group_id` 下一次读取直接 cache miss。即使 `checkGroupIndex` 观察到远端 etag 与本地 etag 不一致,`getAnnouncement()` / `getRules()` / `getJoinRequirements()` / `getSettingWithIndex()` 也不会自动拉取远端版本覆盖本地缓存。`updateAnnouncement()` / `updateRules()` / `updateJoinRequirements()` / `updateSettingWithIndex()` 属于 indexed 写入,内部会调用 `updateGroupIndex` 生成签名 `group.index` 并带 `expected_index_etag` CAS 提交。
358
+
359
+ `getSettingWithIndex()` / `updateSettingWithIndex()` 比三对预定义方法多一个 `keyName`(Python 可传 `key_name`,Go 同时接受 `keyName` / `key_name`)。SDK 会生成 `{keyName}.content` 和 `{keyName}.attachments` 两个 settings key;`keyName` 只能是受控文档名(`^[A-Za-z][A-Za-z0-9_-]{0,63}$`,且不能使用 `join` 等保留前缀)。`getRules()` / `updateRules()` 与 `getAnnouncement()` / `updateAnnouncement()` 是该通用方法在 `rules`、`announcement` 上的薄封装;`getJoinRequirements()` / `updateJoinRequirements()` 保持结构化 schema,不改成 `join.content`。
360
+
361
+ 这些 `update*` 便利方法只更新群设置元数据:`updateRules()` / `updateAnnouncement()` / `updateSettingWithIndex()` 写入 `*.content` 与 `*.attachments`,`updateJoinRequirements()` 写入 `join.mode` / `join.question` / `join.auto_approve_patterns` / `join.max_pending` / `join.attachments`。`attachments` 只保存稳定引用,附件实体应先上传到 group.fs 群自有区,推荐路径为 `group_aid:/.group/attachments/{rules|announcement|join|<keyName>}/...`。
362
+
363
+ **Group Index 高级同步方法**:`group.index` 是 SDK 内部签名 manifest,用于记录群公告、群规则、入群要求及附件稳定引用的版本。SDK 观察 `_meta.group_indexes` 后只记录远端 etag;etag 不一致只表示本地与观察到的远端版本不同,可能是远端更新,也可能是本地有未提交修改。应用层需要显式选择 pull 远端或 push 本地。
359
364
 
360
365
  | 语义 | Python | TS/JS | Go | 说明 |
361
366
  |------|--------|-------|----|------|
@@ -525,13 +530,14 @@ fmt.Printf("拉取成功,etag: %s\n", result["meta"].(map[string]any)["etag"])
525
530
  | `last_modified` | int | ❌ | 时间戳毫秒(默认 `Date.now()` / `time.time()*1000`) |
526
531
  | `max_attempts` | int | ❌ | CAS 冲突最大重试次数(默认 2) |
527
532
 
528
- **支持的 indexed settings keys**:
529
-
530
- - `rules.content` / `rules.attachments` — 群规则及附件
531
- - `announcement.content` / `announcement.attachments` — 群公告及附件
532
- - `join.mode` / `join.question` / `join.auto_approve_patterns` / `join.max_pending` — 入群要求
533
-
534
- **返回值**:
533
+ **支持的 indexed settings keys**:
534
+
535
+ - `rules.content` / `rules.attachments` — 群规则及附件
536
+ - `announcement.content` / `announcement.attachments` — 群公告及附件
537
+ - `join.mode` / `join.question` / `join.auto_approve_patterns` / `join.max_pending` / `join.attachments` 入群要求及附件
538
+ - `{keyName}.content` / `{keyName}.attachments` — 通用文档型 indexed setting;`keyName` 需满足 `^[A-Za-z][A-Za-z0-9_-]{0,63}$`,且不能使用 `join` 等保留前缀
539
+
540
+ **返回值**:
535
541
 
536
542
  ```python
537
543
  {
@@ -600,13 +606,16 @@ console.log(`推送成功,新 etag: ${result._meta.group_indexes['g-team.agent
600
606
 
601
607
  ```go
602
608
  // Go - 更新入群要求
603
- result, err := client.Group().UpdateGroupIndex(ctx, map[string]any{
604
- "group_id": "g-team.agentid.pub",
605
- "settings": map[string]any{
606
- "join.mode": "approval",
607
- "join.question": "你是如何知道本群的?",
608
- },
609
- })
609
+ result, err := client.Group().UpdateGroupIndex(ctx, map[string]any{
610
+ "group_id": "g-team.agentid.pub",
611
+ "settings": map[string]any{
612
+ "join.mode": "approval",
613
+ "join.question": "你是如何知道本群的?",
614
+ "join.attachments": []any{
615
+ map[string]any{"type": "group.fs", "path": "/.group/attachments/join/guide.pdf"},
616
+ },
617
+ },
618
+ })
610
619
  if err != nil {
611
620
  log.Fatal(err)
612
621
  }
@@ -618,9 +627,10 @@ fmt.Printf("推送成功\n")
618
627
  1. **权限要求**:写入 indexed settings 需要 admin 及以上权限
619
628
  2. **签名算法限制**:当前版本仅支持 ECDSA-P256-SHA256,使用其他算法的 AID 无法签名
620
629
  3. **CAS 冲突策略**:默认重试 2 次,高并发场景建议增加 `max_attempts`
621
- 4. **`signer` 必须是当前连接身份**:服务端强制校验 `signed_by == actor_aid`,传入其他 AID 会被拒绝
622
-
623
- ---
630
+ 4. **`signer` 必须是当前连接身份**:服务端强制校验 `signed_by == actor_aid`,传入其他 AID 会被拒绝
631
+ 5. **附件字段只存引用**:`updateRules` / `updateAnnouncement` / `updateSettingWithIndex` 传入 `content` 和 `attachments` 元数据引用;`updateJoinRequirements` 传入结构化入群字段和 `attachments` 元数据引用。附件实体先上传到群自有区,推荐路径为 `group_aid:/.group/attachments/{rules|announcement|join|<keyName>}/...`。群自有区默认允许 `owner/admin` 写入,`member` 默认不可写;`.group/` 不允许授予 `role:member` 写权限。
632
+
633
+ ---
624
634
 
625
635
  ## ServiceProxyClient
626
636
 
@@ -103,7 +103,7 @@
103
103
  | [group.set_settings](#groupset_settings) | 统一设置群参数(含公告、规则、入群要求、dispatch_mode 等) |
104
104
  | [group.get_settings](#groupget_settings) | 统一读取群参数 |
105
105
 
106
- **便利方法**:SDK 提供向后兼容的便利方法(`getAnnouncement`/`updateAnnouncement`/`getRules`/`updateRules`/`getJoinRequirements`/`updateJoinRequirements`)。读取方法优先返回 SDK 本地缓存,本地没有对应值时才调用 `get_settings` 初始化;即使观察到远端 etag 不一致也不会自动 pull 远端。indexed 写入方法内部调用 `updateGroupIndex` 生成签名 `group.index` 并通过 `set_settings` CAS 提交。
106
+ **便利方法**:SDK 提供向后兼容的便利方法(`getAnnouncement`/`updateAnnouncement`/`getRules`/`updateRules`/`getJoinRequirements`/`updateJoinRequirements`),并提供通用文档型方法(`getSettingWithIndex`/`updateSettingWithIndex`,Python 为 `get_setting_with_index`/`update_setting_with_index`,Go 为 `GetSettingWithIndex`/`UpdateSettingWithIndex`)。读取方法优先返回 SDK 本地缓存,本地没有对应值时才调用 `get_settings` 初始化;即使观察到远端 etag 不一致也不会自动 pull 远端。indexed 写入方法内部调用 `updateGroupIndex` 生成签名 `group.index` 并通过 `set_settings` CAS 提交。
107
107
 
108
108
  ### 群文件系统
109
109
 
@@ -493,7 +493,7 @@ SDK 发起 `group.*` 调用时会把传入的 `group_id` / `groupId` / `group_ai
493
493
 
494
494
  ### group.set_role
495
495
 
496
- 设置成员角色。需要 **owner** 权限。不能改变 owner 角色。该 RPC 只改变 membership 中的角色事实,不授予或撤销群自有区写 ACL;`role:admin` 是否可写群自有区由 `group.fs.set_acl` / `group.fs.remove_acl` 显式控制。
496
+ 设置成员角色。`owner` 可将普通成员设为 `admin`,也可将 `admin` 设回 `member`;`admin` 不能修改其它成员角色,只能将自己的角色降为 `member`。不能通过 `group.set_role` 改变 `owner` 角色;群主只在建群或 `group.transfer_owner` 中变更。该 RPC 改变 membership 中的角色事实;`owner/admin` 默认拥有群自有区写权限,`member` 默认没有写权限。成员级群协作目录应通过 `group.fs.set_acl` 显式授予 `role:member` 的 `rw` 权限。
497
497
 
498
498
  **参数**:
499
499
 
@@ -966,7 +966,12 @@ aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(n
966
966
  | `expected_index_etag` | string | 写 `group.index` 时必填 | CAS 期望旧 etag;空字符串表示只允许创建首个 `group.index` |
967
967
  | `settings["dispatch_mode"]` | string | 否 | `"broadcast"` / `"mention"`,默认 `"broadcast"` |
968
968
  | `settings["rules.content"]` | string | 否 | 群规则正文 |
969
+ | `settings["rules.attachments"]` | array | 否 | 群规则附件稳定引用 |
969
970
  | `settings["announcement.content"]` | string | 否 | 群公告正文 |
971
+ | `settings["announcement.attachments"]` | array | 否 | 群公告附件稳定引用 |
972
+ | `settings["join.attachments"]` | array | 否 | 入群要求附件稳定引用 |
973
+ | `settings["{keyName}.content"]` | string | 否 | 通用文档型 indexed setting 正文;`keyName` 需满足受控命名规则 |
974
+ | `settings["{keyName}.attachments"]` | array | 否 | 通用文档型 indexed setting 附件稳定引用 |
970
975
  | `settings["group.index"]` | object | 更新 indexed settings 时必填 | 签名 group index,当前结构至少包含 `body` |
971
976
 
972
977
  **预定义群级参数**:
@@ -981,9 +986,10 @@ aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(n
981
986
  | `announcement.content` | string | `""` | 群公告正文 |
982
987
  | `announcement.attachments` | array | `[]` | 群公告附件 |
983
988
  | `join.mode` | string | 按 `visibility` 推导:`public -> open`,`private -> approval` | 入群模式:`"open"` / `"approval"` / `"invite_only"` / `"closed"` |
984
- | `join.question` | string | `""` | 入群问题 |
985
- | `join.auto_approve_patterns` | array | `[]` | 自动批准 AID 匹配规则 |
989
+ | `join.question` | string | `""` | 入群问题 |
990
+ | `join.auto_approve_patterns` | array | `[]` | 自动批准 AID 匹配规则 |
986
991
  | `join.max_pending` | integer | `100` | 最大待审批入群申请数 |
992
+ | `join.attachments` | array | `[]` | 入群材料附件稳定引用 |
987
993
  | `dispatch_mode` | string | `"broadcast"` | 群消息分发标签:`"broadcast"` / `"mention"`;未显式设置时 `get_settings` 仍返回默认值 |
988
994
  | `group.index` | object | — | 保留 key;签名 JSONL 群索引,由 SDK 生成,服务端只校验、CAS 保存和返回 |
989
995
 
@@ -993,15 +999,18 @@ aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(n
993
999
  |-----|------|
994
1000
  | `rules.content` / `rules.attachments` | 群规则正文与附件稳定引用 |
995
1001
  | `announcement.content` / `announcement.attachments` | 群公告正文与附件稳定引用 |
996
- | `join.mode` / `join.question` / `join.auto_approve_patterns` / `join.max_pending` | 入群要求配置 |
1002
+ | `join.mode` / `join.question` / `join.auto_approve_patterns` / `join.max_pending` / `join.attachments` | 入群要求配置与附件稳定引用 |
1003
+ | `{keyName}.content` / `{keyName}.attachments` | 通用文档型设置正文与附件稳定引用 |
997
1004
 
998
1005
  写入规则:
999
1006
 
1000
1007
  - 只更新非 indexed settings 时,继续直接调用 `set_settings`,不需要 `group.index`。
1001
1008
  - 更新任意 indexed setting 时,必须在同一次 `settings` 中携带签名 `group.index`。
1009
+ - 服务端只接受受控动态文档 key:`{keyName}.content` / `{keyName}.attachments`,其中 `keyName` 匹配 `^[A-Za-z][A-Za-z0-9_-]{0,63}$`,且不能使用 `join` 等保留前缀。调用方不能用该机制写任意 settings key。
1002
1010
  - 写入 `group.index` 时必须传 `expected_index_etag`。
1003
1011
  - 服务端在同一事务内比较当前 `group.index` etag、写 indexed settings、写 `group.index`。
1004
1012
  - CAS 失败时错误消息包含 `group.index etag conflict`;SDK 的 `updateGroupIndex` 会重新读取当前 index、重建签名并按 `max_attempts` 重试。
1013
+ - `rules.attachments`、`announcement.attachments`、`join.attachments` 和 `{keyName}.attachments` 只保存附件引用;附件实体应先写入群自有区,推荐路径为 `group_aid:/.group/attachments/{rules|announcement|join|<keyName>}/...`。群自有区默认允许 `owner/admin` 写入,`member` 默认不可写;`.group/` 是系统控制目录,不允许授予 `role:member` 写权限。
1005
1014
 
1006
1015
  ```python
1007
1016
  await client.call("group.set_settings", {
@@ -1386,8 +1395,9 @@ result = await client.call("group.thought.get", {
1386
1395
 
1387
1396
  权限与签名约束:
1388
1397
 
1389
- - 群自有区是除 `memberdata` 等系统保留路径外的整个 `group_aid` namespace。`group_aid` 当前证书签名可写;`role:owner` 默认可写;`role:admin` 需要 owner 通过 `group.fs.set_acl` 显式授权后才可写。
1390
- - `group.fs.set_acl` / `group.fs.remove_acl` / `group.fs.get_acl` / `group.fs.list_acl` 只能由当前 group owner 调用,且当前只允许管理或查询 `grantee_aid="role:admin"` 的群自有区角色 ACL;成员升降级、退群、踢出不会联动授权或撤销。
1398
+ - 群自有区是除 `memberdata` 等系统保留路径外的整个 `group_aid` namespace。`group_aid` 当前证书签名可写;成员角色中 `owner/admin` 默认可写,`member` 默认不可写。`group_aid:/.group/` 是系统控制目录,用于群公告、群规则、入群要求附件,默认允许 `owner/admin` 写入。
1399
+ - 老群如果缺少 `.group/` 默认 ACL,group 服务会在该群首次被 RPC 访问时 best-effort 触发 namespace/ACL lazy repair;只有本次 baseline ACL 全部同步成功才记录本进程已检查,失败会在后续访问继续重试。
1400
+ - `group.fs.set_acl` / `group.fs.remove_acl` / `group.fs.get_acl` / `group.fs.list_acl` 只能由当前 group `owner/admin` 调用。当前支持 `grantee_aid="role:admin"` 与 `grantee_aid="role:member"`;`role:member` 只能授予具体业务目录的 `rw` 权限,不能授予根目录或 `.group/`,也不能获得删除、移动、重命名权限。成员升降级、退群、踢出不会联动授权或撤销目录 ACL。
1391
1401
  - `memberdata/{member_ref}` 写入默认只允许该成员本人;SDK 只传 group path,不拼接真实 storage 路径。
1392
1402
  - 上传控制面会透传 `parents` 到 storage:默认 `parents=true` 时可递归创建父目录,显式 `parents=false` 时父目录必须已存在。
1393
1403
  - JavaScript 浏览器版 `cp(string, group)` 默认把 string 当文本内容上传;Node 本地路径需显式传 `sourceType: "path"`、`localPath: true` 或使用 `local:` 前缀。Python、TypeScript 和 Go 默认把 string 当本地路径。
@@ -1418,21 +1428,21 @@ result = await client.call("group.thought.get", {
1418
1428
 
1419
1429
  ### group.fs.set_acl
1420
1430
 
1421
- 授予群自有区角色 ACL。需要当前 group owner 身份签名调用;底层由 group 服务以内部门面写入 `storage.set_acl`。
1422
-
1423
- 参数:`path` 必填,指向群自有区路径;`grantee_aid` 只能为 `role:admin`;`perms` 默认 `rwx`,必须包含写权限。`path` 可传 `group_aid:/archive` 等 group path。服务端写入 storage 内部权限位时会把 POSIX 删除位 `x` 映射为内部 `d`,对外响应仍显示 `rwx`。
1431
+ 授予群自有区角色 ACL。需要当前 group `owner/admin` 身份调用;底层由 group 服务以内部门面写入 `storage.set_acl`。
1432
+
1433
+ 参数:`path` 必填,指向群自有区路径;`grantee_aid` 可为 `role:admin` 或 `role:member`。`role:admin` 默认 `rwx`;`role:member` 只能为 `rw`,且只能授到具体业务目录,不能授到根目录或 `.group/`。`path` 可传 `group_aid:/archive` 等 group path。服务端写入 storage 内部权限位时会把 POSIX 删除位 `x` 映射为内部 `d`,对外响应仍显示 `rwx`;不授删除、移动、重命名权限时使用 `rw`。
1424
1434
 
1425
1435
  ### group.fs.remove_acl
1426
1436
 
1427
- 撤销群自有区角色 ACL。需要当前 group owner 身份签名调用;底层由 group 服务以内部门面写入 `storage.remove_acl`。
1428
-
1429
- 参数:`path` 必填,指向群自有区路径;`grantee_aid` 只能为 `role:admin`。撤销后,当前 admin 角色成员不再因该路径的 `role:admin` ACL 获得写权限。
1437
+ 撤销群自有区角色 ACL。需要当前 group `owner/admin` 身份调用;底层由 group 服务以内部门面写入 `storage.remove_acl`。
1438
+
1439
+ 参数:`path` 必填,指向群自有区路径;`grantee_aid` 可为 `role:admin` `role:member`。撤销 `role:member` 后,member 不再因该目录 ACL 获得创建/写入权限。
1430
1440
 
1431
1441
  ### group.fs.get_acl
1432
1442
 
1433
- 查询群自有区角色 ACL。需要当前 group owner 身份签名调用;普通 admin/member 不能查询。参数:`path` 必填,指向群自有区路径;可传裸路径 + `group_id`,也可传完整 `group_aid:/...`。
1434
-
1435
- 响应包含 `group_id`、`group_aid`、`path`、`area`、`storage` 和 `acls`。`acls[].perms` 使用 POSIX 视图,删除权限显示为 `x`,因此 owner 授权 `role:admin:rwx` 后查询也返回 `rwx`。
1443
+ 查询群自有区角色 ACL。需要当前 group `owner/admin` 身份调用;普通 member 不能查询。参数:`path` 必填,指向群自有区路径;可传裸路径 + `group_id`,也可传完整 `group_aid:/...`。
1444
+
1445
+ 响应包含 `group_id`、`group_aid`、`path`、`area`、`storage` 和 `acls`。`acls[].perms` 使用 POSIX 视图,删除权限显示为 `x`,因此授权 `role:admin:rwx` 后查询也返回 `rwx`;`role:member` 只应返回 `rw`。
1436
1446
 
1437
1447
  ### group.fs.list_acl
1438
1448
 
package/dist/bundle.js CHANGED
@@ -460,7 +460,7 @@ var init_indexeddb_store = __esm({
460
460
  });
461
461
 
462
462
  // src/version.ts
463
- var VERSION = "0.5.3";
463
+ var VERSION = "0.5.4";
464
464
 
465
465
  // src/types.ts
466
466
  var ConnectionState = /* @__PURE__ */ ((ConnectionState2) => {
@@ -11660,6 +11660,19 @@ function isRecord4(value) {
11660
11660
  }
11661
11661
 
11662
11662
  // src/facades.ts
11663
+ var INDEXED_DOCUMENT_SETTING_KEY_NAME_RE = /^[A-Za-z][A-Za-z0-9_-]{0,63}$/;
11664
+ var INDEXED_DOCUMENT_SETTING_RESERVED_BASES = /* @__PURE__ */ new Set([
11665
+ "join",
11666
+ "dispatch_mode",
11667
+ "duty",
11668
+ "e2ee",
11669
+ "group",
11670
+ "group_index",
11671
+ "index",
11672
+ "name",
11673
+ "description",
11674
+ "visibility"
11675
+ ]);
11663
11676
  function stripNil2(params2) {
11664
11677
  const out = {};
11665
11678
  for (const [key, value] of Object.entries(params2 ?? {})) {
@@ -11688,6 +11701,14 @@ function indexUpdateParams(groupId, settings, merged) {
11688
11701
  }
11689
11702
  return out;
11690
11703
  }
11704
+ function indexedDocumentKeyName(params2) {
11705
+ const raw = "keyName" in params2 ? params2.keyName : params2.key_name;
11706
+ const keyName = String(raw ?? "").trim();
11707
+ if (!keyName || INDEXED_DOCUMENT_SETTING_RESERVED_BASES.has(keyName.toLowerCase()) || !INDEXED_DOCUMENT_SETTING_KEY_NAME_RE.test(keyName)) {
11708
+ throw new Error("keyName must match ^[A-Za-z][A-Za-z0-9_-]{0,63}$");
11709
+ }
11710
+ return keyName;
11711
+ }
11691
11712
  var RpcFacade = class {
11692
11713
  constructor(client) {
11693
11714
  __publicField(this, "client");
@@ -12048,83 +12069,115 @@ var GroupFacade = class extends RpcFacade {
12048
12069
  ackEvents(params2) {
12049
12070
  return this.call("group.ack_events", params2);
12050
12071
  }
12051
- async getAnnouncement(params2) {
12072
+ documentSettingResult(groupId, keyName, settings) {
12073
+ const contentKey = `${keyName}.content`;
12074
+ const attachmentsKey = `${keyName}.attachments`;
12075
+ return {
12076
+ group_id: groupId,
12077
+ setting: {
12078
+ group_id: groupId,
12079
+ key_name: keyName,
12080
+ content: settings[contentKey] ?? "",
12081
+ attachments: settings[attachmentsKey] ?? [],
12082
+ updated_by: settings[`${contentKey}.updated_by`] ?? "",
12083
+ updated_at: settings[`${contentKey}.updated_at`] ?? 0
12084
+ }
12085
+ };
12086
+ }
12087
+ async getSettingWithIndex(params2) {
12052
12088
  const merged = params2 || {};
12053
12089
  const groupId = merged.group_id;
12054
12090
  if (!groupId) throw new Error("group_id is required");
12091
+ const keyName = indexedDocumentKeyName(merged);
12055
12092
  const { groupId: resultGroupId, settings } = await this.getIndexedSettings(
12056
12093
  String(groupId),
12057
- ["announcement.content", "announcement.attachments"]
12094
+ [`${keyName}.content`, `${keyName}.attachments`]
12058
12095
  );
12096
+ return this.documentSettingResult(resultGroupId, keyName, settings);
12097
+ }
12098
+ async updateSettingWithIndex(params2) {
12099
+ const merged = params2 || {};
12100
+ const groupId = merged.group_id;
12101
+ if (!groupId) throw new Error("group_id is required");
12102
+ const keyName = indexedDocumentKeyName(merged);
12103
+ if (!("content" in merged)) throw new Error("content is required");
12104
+ const content = merged.content;
12105
+ const attachments = merged.attachments ?? [];
12106
+ const settingsUpdate = { [`${keyName}.content`]: content };
12107
+ if ("attachments" in merged) {
12108
+ settingsUpdate[`${keyName}.attachments`] = attachments;
12109
+ }
12110
+ const result = await this.updateGroupIndex(indexUpdateParams(groupId, settingsUpdate, merged));
12111
+ const resultGroupId = String(result.group_id ?? groupId);
12059
12112
  return {
12060
12113
  group_id: resultGroupId,
12061
- announcement: {
12114
+ setting: {
12062
12115
  group_id: resultGroupId,
12063
- content: settings["announcement.content"] || "",
12064
- attachments: settings["announcement.attachments"] || [],
12065
- updated_by: settings["announcement.content.updated_by"] || "",
12066
- updated_at: settings["announcement.content.updated_at"] || 0
12116
+ key_name: keyName,
12117
+ content,
12118
+ attachments,
12119
+ updated_by: "",
12120
+ updated_at: 0
12121
+ }
12122
+ };
12123
+ }
12124
+ async getAnnouncement(params2) {
12125
+ const merged = params2 || {};
12126
+ const result = await this.getSettingWithIndex({ ...merged, keyName: "announcement" });
12127
+ const resultMap = result;
12128
+ const setting = resultMap.setting;
12129
+ return {
12130
+ group_id: resultMap.group_id,
12131
+ announcement: {
12132
+ group_id: setting.group_id,
12133
+ content: setting.content,
12134
+ attachments: setting.attachments,
12135
+ updated_by: setting.updated_by,
12136
+ updated_at: setting.updated_at
12067
12137
  }
12068
12138
  };
12069
12139
  }
12070
12140
  async updateAnnouncement(params2) {
12071
12141
  const merged = params2 || {};
12072
- const groupId = merged.group_id;
12073
- const content = merged.content;
12074
- const attachments = merged.attachments;
12075
- if (!groupId) throw new Error("group_id is required");
12076
- if (content === void 0) throw new Error("content is required");
12077
- const settingsUpdate = { "announcement.content": content };
12078
- if (attachments !== void 0) {
12079
- settingsUpdate["announcement.attachments"] = attachments;
12080
- }
12081
- const result = await this.updateGroupIndex(indexUpdateParams(groupId, settingsUpdate, merged));
12142
+ const result = await this.updateSettingWithIndex({ ...merged, keyName: "announcement" });
12143
+ const resultMap = result;
12144
+ const setting = resultMap.setting;
12082
12145
  return {
12083
- group_id: result.group_id,
12146
+ group_id: resultMap.group_id,
12084
12147
  announcement: {
12085
- group_id: result.group_id,
12086
- content,
12087
- attachments: attachments || []
12148
+ group_id: resultMap.group_id,
12149
+ content: setting.content,
12150
+ attachments: setting.attachments
12088
12151
  }
12089
12152
  };
12090
12153
  }
12091
12154
  async getRules(params2) {
12092
12155
  const merged = params2 || {};
12093
- const groupId = merged.group_id;
12094
- if (!groupId) throw new Error("group_id is required");
12095
- const { groupId: resultGroupId, settings } = await this.getIndexedSettings(
12096
- String(groupId),
12097
- ["rules.content", "rules.attachments"]
12098
- );
12156
+ const result = await this.getSettingWithIndex({ ...merged, keyName: "rules" });
12157
+ const resultMap = result;
12158
+ const setting = resultMap.setting;
12099
12159
  return {
12100
- group_id: resultGroupId,
12160
+ group_id: resultMap.group_id,
12101
12161
  rules: {
12102
- group_id: resultGroupId,
12103
- content: settings["rules.content"] || "",
12104
- attachments: settings["rules.attachments"] || [],
12105
- updated_by: settings["rules.content.updated_by"] || "",
12106
- updated_at: settings["rules.content.updated_at"] || 0
12162
+ group_id: setting.group_id,
12163
+ content: setting.content,
12164
+ attachments: setting.attachments,
12165
+ updated_by: setting.updated_by,
12166
+ updated_at: setting.updated_at
12107
12167
  }
12108
12168
  };
12109
12169
  }
12110
12170
  async updateRules(params2) {
12111
12171
  const merged = params2 || {};
12112
- const groupId = merged.group_id;
12113
- const content = merged.content;
12114
- const attachments = merged.attachments;
12115
- if (!groupId) throw new Error("group_id is required");
12116
- if (content === void 0) throw new Error("content is required");
12117
- const settingsUpdate = { "rules.content": content };
12118
- if (attachments !== void 0) {
12119
- settingsUpdate["rules.attachments"] = attachments;
12120
- }
12121
- const result = await this.updateGroupIndex(indexUpdateParams(groupId, settingsUpdate, merged));
12172
+ const result = await this.updateSettingWithIndex({ ...merged, keyName: "rules" });
12173
+ const resultMap = result;
12174
+ const setting = resultMap.setting;
12122
12175
  return {
12123
- group_id: result.group_id,
12176
+ group_id: resultMap.group_id,
12124
12177
  rules: {
12125
- group_id: result.group_id,
12126
- content,
12127
- attachments: attachments || []
12178
+ group_id: resultMap.group_id,
12179
+ content: setting.content,
12180
+ attachments: setting.attachments
12128
12181
  }
12129
12182
  };
12130
12183
  }
@@ -12134,7 +12187,7 @@ var GroupFacade = class extends RpcFacade {
12134
12187
  if (!groupId) throw new Error("group_id is required");
12135
12188
  const { groupId: resultGroupId, settings } = await this.getIndexedSettings(
12136
12189
  String(groupId),
12137
- ["join.mode", "join.question", "join.auto_approve_patterns", "join.max_pending"]
12190
+ ["join.mode", "join.question", "join.auto_approve_patterns", "join.max_pending", "join.attachments"]
12138
12191
  );
12139
12192
  return {
12140
12193
  group_id: resultGroupId,
@@ -12144,6 +12197,7 @@ var GroupFacade = class extends RpcFacade {
12144
12197
  question: settings["join.question"] || "",
12145
12198
  auto_approve_patterns: settings["join.auto_approve_patterns"] || [],
12146
12199
  max_pending: settings["join.max_pending"] || 100,
12200
+ attachments: settings["join.attachments"] || [],
12147
12201
  updated_by: settings["join.mode.updated_by"] || "",
12148
12202
  updated_at: settings["join.mode.updated_at"] || 0
12149
12203
  }
@@ -12158,6 +12212,7 @@ var GroupFacade = class extends RpcFacade {
12158
12212
  if ("question" in merged) settingsUpdate["join.question"] = merged.question;
12159
12213
  if ("auto_approve_patterns" in merged) settingsUpdate["join.auto_approve_patterns"] = merged.auto_approve_patterns;
12160
12214
  if ("max_pending" in merged) settingsUpdate["join.max_pending"] = merged.max_pending;
12215
+ if ("attachments" in merged) settingsUpdate["join.attachments"] = merged.attachments;
12161
12216
  if (Object.keys(settingsUpdate).length === 0) {
12162
12217
  throw new Error("at least one field to update is required");
12163
12218
  }
@@ -12169,7 +12224,8 @@ var GroupFacade = class extends RpcFacade {
12169
12224
  mode: merged.mode,
12170
12225
  question: merged.question,
12171
12226
  auto_approve_patterns: merged.auto_approve_patterns,
12172
- max_pending: merged.max_pending
12227
+ max_pending: merged.max_pending,
12228
+ attachments: merged.attachments || []
12173
12229
  }
12174
12230
  };
12175
12231
  }
package/dist/facades.d.ts CHANGED
@@ -83,6 +83,9 @@ export declare class GroupFacade extends RpcFacade {
83
83
  pullEvents(params?: FacadeParams | null): Promise<RpcResult>;
84
84
  ackMessages(params?: FacadeParams | null): Promise<RpcResult>;
85
85
  ackEvents(params?: FacadeParams | null): Promise<RpcResult>;
86
+ private documentSettingResult;
87
+ getSettingWithIndex(params?: FacadeParams | null): Promise<RpcResult>;
88
+ updateSettingWithIndex(params?: FacadeParams | null): Promise<RpcResult>;
86
89
  getAnnouncement(params?: FacadeParams | null): Promise<RpcResult>;
87
90
  updateAnnouncement(params?: FacadeParams | null): Promise<RpcResult>;
88
91
  getRules(params?: FacadeParams | null): Promise<RpcResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"facades.d.ts","sourceRoot":"","sources":["../src/facades.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"facades.d.ts","sourceRoot":"","sources":["../src/facades.ts"],"names":[],"mappings":"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"}
package/dist/facades.js CHANGED
@@ -2,6 +2,19 @@ import { GroupFSVFS } from './group-fs.js';
2
2
  import { GROUP_INDEX_KEY, parseGroupIndex, prepareGroupSettingsWithIndex, verifyGroupIndex } from './group-index.js';
3
3
  import { validateGroupIDFormat } from './validators.js';
4
4
  export { GroupFSVFS, isGroupRemotePath } from './group-fs.js';
5
+ const INDEXED_DOCUMENT_SETTING_KEY_NAME_RE = /^[A-Za-z][A-Za-z0-9_-]{0,63}$/;
6
+ const INDEXED_DOCUMENT_SETTING_RESERVED_BASES = new Set([
7
+ 'join',
8
+ 'dispatch_mode',
9
+ 'duty',
10
+ 'e2ee',
11
+ 'group',
12
+ 'group_index',
13
+ 'index',
14
+ 'name',
15
+ 'description',
16
+ 'visibility',
17
+ ]);
5
18
  function stripNil(params) {
6
19
  const out = {};
7
20
  for (const [key, value] of Object.entries(params ?? {})) {
@@ -33,6 +46,14 @@ function indexUpdateParams(groupId, settings, merged) {
33
46
  }
34
47
  return out;
35
48
  }
49
+ function indexedDocumentKeyName(params) {
50
+ const raw = 'keyName' in params ? params.keyName : params.key_name;
51
+ const keyName = String(raw ?? '').trim();
52
+ if (!keyName || INDEXED_DOCUMENT_SETTING_RESERVED_BASES.has(keyName.toLowerCase()) || !INDEXED_DOCUMENT_SETTING_KEY_NAME_RE.test(keyName)) {
53
+ throw new Error('keyName must match ^[A-Za-z][A-Za-z0-9_-]{0,63}$');
54
+ }
55
+ return keyName;
56
+ }
36
57
  class RpcFacade {
37
58
  client;
38
59
  constructor(client) {
@@ -414,87 +435,119 @@ export class GroupFacade extends RpcFacade {
414
435
  ackEvents(params) {
415
436
  return this.call('group.ack_events', params);
416
437
  }
417
- async getAnnouncement(params) {
418
- // 便利方法:基于 getSettings
438
+ documentSettingResult(groupId, keyName, settings) {
439
+ const contentKey = `${keyName}.content`;
440
+ const attachmentsKey = `${keyName}.attachments`;
441
+ return {
442
+ group_id: groupId,
443
+ setting: {
444
+ group_id: groupId,
445
+ key_name: keyName,
446
+ content: settings[contentKey] ?? '',
447
+ attachments: settings[attachmentsKey] ?? [],
448
+ updated_by: settings[`${contentKey}.updated_by`] ?? '',
449
+ updated_at: settings[`${contentKey}.updated_at`] ?? 0,
450
+ }
451
+ };
452
+ }
453
+ async getSettingWithIndex(params) {
419
454
  const merged = params || {};
420
455
  const groupId = merged.group_id;
421
456
  if (!groupId)
422
457
  throw new Error('group_id is required');
423
- const { groupId: resultGroupId, settings } = await this.getIndexedSettings(String(groupId), ['announcement.content', 'announcement.attachments']);
458
+ const keyName = indexedDocumentKeyName(merged);
459
+ const { groupId: resultGroupId, settings } = await this.getIndexedSettings(String(groupId), [`${keyName}.content`, `${keyName}.attachments`]);
460
+ return this.documentSettingResult(resultGroupId, keyName, settings);
461
+ }
462
+ async updateSettingWithIndex(params) {
463
+ const merged = params || {};
464
+ const groupId = merged.group_id;
465
+ if (!groupId)
466
+ throw new Error('group_id is required');
467
+ const keyName = indexedDocumentKeyName(merged);
468
+ if (!('content' in merged))
469
+ throw new Error('content is required');
470
+ const content = merged.content;
471
+ const attachments = merged.attachments ?? [];
472
+ const settingsUpdate = { [`${keyName}.content`]: content };
473
+ if ('attachments' in merged) {
474
+ settingsUpdate[`${keyName}.attachments`] = attachments;
475
+ }
476
+ const result = await this.updateGroupIndex(indexUpdateParams(groupId, settingsUpdate, merged));
477
+ const resultGroupId = String(result.group_id ?? groupId);
424
478
  return {
425
479
  group_id: resultGroupId,
426
- announcement: {
480
+ setting: {
427
481
  group_id: resultGroupId,
428
- content: settings['announcement.content'] || '',
429
- attachments: settings['announcement.attachments'] || [],
430
- updated_by: settings['announcement.content.updated_by'] || '',
431
- updated_at: settings['announcement.content.updated_at'] || 0
482
+ key_name: keyName,
483
+ content,
484
+ attachments,
485
+ updated_by: '',
486
+ updated_at: 0
487
+ }
488
+ };
489
+ }
490
+ async getAnnouncement(params) {
491
+ // 便利方法:基于 getSettings
492
+ const merged = params || {};
493
+ const result = await this.getSettingWithIndex({ ...merged, keyName: 'announcement' });
494
+ const resultMap = result;
495
+ const setting = resultMap.setting;
496
+ return {
497
+ group_id: resultMap.group_id,
498
+ announcement: {
499
+ group_id: setting.group_id,
500
+ content: setting.content,
501
+ attachments: setting.attachments,
502
+ updated_by: setting.updated_by,
503
+ updated_at: setting.updated_at
432
504
  }
433
505
  };
434
506
  }
435
507
  async updateAnnouncement(params) {
436
508
  // 便利方法:基于 setSettings
437
509
  const merged = params || {};
438
- const groupId = merged.group_id;
439
- const content = merged.content;
440
- const attachments = merged.attachments;
441
- if (!groupId)
442
- throw new Error('group_id is required');
443
- if (content === undefined)
444
- throw new Error('content is required');
445
- const settingsUpdate = { 'announcement.content': content };
446
- if (attachments !== undefined) {
447
- settingsUpdate['announcement.attachments'] = attachments;
448
- }
449
- const result = await this.updateGroupIndex(indexUpdateParams(groupId, settingsUpdate, merged));
510
+ const result = await this.updateSettingWithIndex({ ...merged, keyName: 'announcement' });
511
+ const resultMap = result;
512
+ const setting = resultMap.setting;
450
513
  return {
451
- group_id: result.group_id,
514
+ group_id: resultMap.group_id,
452
515
  announcement: {
453
- group_id: result.group_id,
454
- content,
455
- attachments: attachments || []
516
+ group_id: resultMap.group_id,
517
+ content: setting.content,
518
+ attachments: setting.attachments
456
519
  }
457
520
  };
458
521
  }
459
522
  async getRules(params) {
460
523
  // 便利方法:基于 getSettings
461
524
  const merged = params || {};
462
- const groupId = merged.group_id;
463
- if (!groupId)
464
- throw new Error('group_id is required');
465
- const { groupId: resultGroupId, settings } = await this.getIndexedSettings(String(groupId), ['rules.content', 'rules.attachments']);
525
+ const result = await this.getSettingWithIndex({ ...merged, keyName: 'rules' });
526
+ const resultMap = result;
527
+ const setting = resultMap.setting;
466
528
  return {
467
- group_id: resultGroupId,
529
+ group_id: resultMap.group_id,
468
530
  rules: {
469
- group_id: resultGroupId,
470
- content: settings['rules.content'] || '',
471
- attachments: settings['rules.attachments'] || [],
472
- updated_by: settings['rules.content.updated_by'] || '',
473
- updated_at: settings['rules.content.updated_at'] || 0
531
+ group_id: setting.group_id,
532
+ content: setting.content,
533
+ attachments: setting.attachments,
534
+ updated_by: setting.updated_by,
535
+ updated_at: setting.updated_at
474
536
  }
475
537
  };
476
538
  }
477
539
  async updateRules(params) {
478
540
  // 便利方法:基于 setSettings
479
541
  const merged = params || {};
480
- const groupId = merged.group_id;
481
- const content = merged.content;
482
- const attachments = merged.attachments;
483
- if (!groupId)
484
- throw new Error('group_id is required');
485
- if (content === undefined)
486
- throw new Error('content is required');
487
- const settingsUpdate = { 'rules.content': content };
488
- if (attachments !== undefined) {
489
- settingsUpdate['rules.attachments'] = attachments;
490
- }
491
- const result = await this.updateGroupIndex(indexUpdateParams(groupId, settingsUpdate, merged));
542
+ const result = await this.updateSettingWithIndex({ ...merged, keyName: 'rules' });
543
+ const resultMap = result;
544
+ const setting = resultMap.setting;
492
545
  return {
493
- group_id: result.group_id,
546
+ group_id: resultMap.group_id,
494
547
  rules: {
495
- group_id: result.group_id,
496
- content,
497
- attachments: attachments || []
548
+ group_id: resultMap.group_id,
549
+ content: setting.content,
550
+ attachments: setting.attachments
498
551
  }
499
552
  };
500
553
  }
@@ -504,7 +557,7 @@ export class GroupFacade extends RpcFacade {
504
557
  const groupId = merged.group_id;
505
558
  if (!groupId)
506
559
  throw new Error('group_id is required');
507
- const { groupId: resultGroupId, settings } = await this.getIndexedSettings(String(groupId), ['join.mode', 'join.question', 'join.auto_approve_patterns', 'join.max_pending']);
560
+ const { groupId: resultGroupId, settings } = await this.getIndexedSettings(String(groupId), ['join.mode', 'join.question', 'join.auto_approve_patterns', 'join.max_pending', 'join.attachments']);
508
561
  return {
509
562
  group_id: resultGroupId,
510
563
  join_requirements: {
@@ -513,6 +566,7 @@ export class GroupFacade extends RpcFacade {
513
566
  question: settings['join.question'] || '',
514
567
  auto_approve_patterns: settings['join.auto_approve_patterns'] || [],
515
568
  max_pending: settings['join.max_pending'] || 100,
569
+ attachments: settings['join.attachments'] || [],
516
570
  updated_by: settings['join.mode.updated_by'] || '',
517
571
  updated_at: settings['join.mode.updated_at'] || 0
518
572
  }
@@ -533,6 +587,8 @@ export class GroupFacade extends RpcFacade {
533
587
  settingsUpdate['join.auto_approve_patterns'] = merged.auto_approve_patterns;
534
588
  if ('max_pending' in merged)
535
589
  settingsUpdate['join.max_pending'] = merged.max_pending;
590
+ if ('attachments' in merged)
591
+ settingsUpdate['join.attachments'] = merged.attachments;
536
592
  if (Object.keys(settingsUpdate).length === 0) {
537
593
  throw new Error('at least one field to update is required');
538
594
  }
@@ -544,7 +600,8 @@ export class GroupFacade extends RpcFacade {
544
600
  mode: merged.mode,
545
601
  question: merged.question,
546
602
  auto_approve_patterns: merged.auto_approve_patterns,
547
- max_pending: merged.max_pending
603
+ max_pending: merged.max_pending,
604
+ attachments: merged.attachments || []
548
605
  }
549
606
  };
550
607
  }
@@ -1 +1 @@
1
- {"version":3,"file":"facades.js","sourceRoot":"","sources":["../src/facades.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAErH,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAW9D,SAAS,QAAQ,CAAC,MAA4B;IAC5C,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QACxD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC9D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,MAA4B;IACjD,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,SAAS,CAAC;IAC/C,OAAO,GAAG,CAAC,QAAQ,CAAC;IACpB,OAAO,GAAG,CAAC,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED,kDAAkD;AAClD,SAAS,aAAa,CAAC,MAAiB;IACtC,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAK,MAAc,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QAC/C,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAC5B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgB,EAAE,QAA6B,EAAE,MAA2B;IACrG,MAAM,GAAG,GAAwB,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IACjE,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC,EAAE,CAAC;QAC9D,IAAI,GAAG,IAAI,MAAM;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,SAAS;IACM,MAAM,CAAkB;IAE3C,YAAY,MAAuB;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAES,IAAI,CAAC,MAAc,EAAE,MAA4B;QACzD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IACjD,GAAG,CAAC,MAA4B;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,GAAG,CAAC,MAA4B;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,SAAS;IAClC,QAAQ,CAAwB;IAExC,IAAI,OAAO;QACT,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,MAA4B;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,CAAC,MAA4B;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,GAAG,CAAC,MAA4B;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,MAA4B;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,WAAW,CAAC,MAA4B;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAC/C,GAAG,CAAC,MAA4B;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAC,MAA4B;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,SAAS;IAChC,GAAG,CAAc;IACjB,QAAQ,CAAsB;IAEtC,IAAI,EAAE;QACJ,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,IAAI,OAAO;QACT,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,MAA4B;QACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;YACtE,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,CAAC,MAA4B;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,YAAY,CAAC,MAA4B;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,aAAa,CAAC,MAA4B;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,CAAC,MAA4B;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,MAA4B;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,CAAC,MAA4B;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,MAA4B;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,MAA4B;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,MAA4B;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,MAA4B;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ,CAAC,MAA4B;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,SAAS,CAAC,MAA4B;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU,CAAC,MAA4B;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,CAAC,MAA4B;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,MAA4B;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,CAAC,MAA4B;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa,CAAC,MAA4B;QACxC,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,KAAK,UAAU,EAAE,CAAC;YAC3E,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,gBAAgB,CAAC,MAA4B;QAC3C,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,qBAAqB,KAAK,UAAU,EAAE,CAAC;YAC9E,OAAO,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED,GAAG,CAAC,MAA4B;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,MAA4B;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,UAAU,CAAC,MAA4B;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,WAAW,CAAC,MAA4B;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,gBAAgB,CAAC,MAA4B;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,iBAAiB,CAAC,MAA4B;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,sBAAsB,CAAC,MAA4B;QACjD,OAAO,IAAI,CAAC,IAAI,CAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,gBAAgB,CAAC,MAA4B;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,eAAe,CAAC,MAA4B;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,aAAa,CAAC,MAA4B;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,gBAAgB,CAAC,MAA4B;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,WAAW,CAAC,MAA4B;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,WAAW,CAAC,MAA4B;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAA4B;QAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1E,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAa,CAAC;QACrC,MAAM,KAAK,GAAG,OAAO,SAAS,CAAC,iBAAiB,KAAK,UAAU;YAC7D,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAChD,CAAC,CAAC,KAAK,CAAC;QACV,MAAM,UAAU,GAAG,OAAO,SAAS,CAAC,uBAAuB,KAAK,UAAU;YACxE,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,EAAE;YACnD,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,sBAAsB,KAAK,UAAU;YACtE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC1D,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,UAAU,IAAI,WAAW,IAAI,SAAS,KAAK,UAAU,CAAC;QACrE,OAAO;YACL,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,UAAU;YACvB,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,UAAU;YACvB,OAAO,EAAE,MAAM;YACf,YAAY,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,CAAC;YACxD,aAAa,EAAE,UAAU,EAAE,aAAa;YACxC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;YAC/B,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAA4B;QAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACtF,MAAM,QAAQ,GAAG,MAAM,CAAE,MAA8B,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC;QAC9E,IAAI,UAAU,GAAQ,IAAI,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAK,MAA8B,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAClE,IAAI,IAAI,EAAE,GAAG,KAAK,eAAe;gBAAE,SAAS;YAC5C,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,MAAM;QACR,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,EAAE,QAAQ,EAAG,MAA8B,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAC/H,CAAC;QACD,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAc,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAClH,MAAM,SAAS,GAAG,IAAI,CAAC,MAAa,CAAC;QACrC,IAAI,IAAI,IAAI,OAAO,SAAS,CAAC,mBAAmB,KAAK,UAAU,EAAE,CAAC;YAChE,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO;YACL,QAAQ,EAAG,MAA8B,CAAC,QAAQ;YAClD,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,UAAU;YACvB,IAAI,EAAE,MAAM,CAAC,IAA4B;YACzC,OAAO,EAAE,MAAM,CAAC,OAA+B;YAC/C,QAAQ,EAAE,QAAqB;SAChC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,UAAmB,EAAE,MAA0E;QAClI,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAa,CAAC;QACrC,IAAI,MAAM,GAAG,SAAS,CAAC,UAAU,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QAClF,IAAI,CAAC,MAAM,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAC1D,MAAM,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,EAAE,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,UAAiB,EAAE,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAI,iCAAiC,CAAC,CAAC;QAC/F,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,mBAAmB,EAAE,CAAC,CAAC;IAC/H,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAA4B;QACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAmC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1I,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAK,IAAI,CAAC,MAAc,CAAC,UAAU,CAAC;QAChE,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9E,IAAI,SAAS,GAAY,IAAI,CAAC;QAC9B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YACvF,MAAM,QAAQ,GAAG,MAAM,CAAE,OAA+B,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC;YAC/E,IAAI,YAAY,GAAY,IAAI,CAAC;YACjC,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,KAAK,MAAM,IAAI,IAAK,OAA+B,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;gBACnE,IAAI,IAAI,EAAE,GAAG,KAAK,eAAe;oBAAE,SAAS;gBAC5C,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC1B,IAAI,YAAY;oBAAE,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,YAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC9F,MAAM;YACR,CAAC;YACD,MAAM,cAAc,GAAG,MAAM,6BAA6B,CAAC;gBACzD,QAAQ;gBACR,QAAQ,EAAE,QAAmC;gBAC7C,MAAM,EAAE,MAAa;gBACrB,YAAY;gBACZ,SAAS,EAAE,YAAmB;aAC/B,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;oBACpC,QAAQ,EAAE,OAAO;oBACjB,QAAQ,EAAE,cAA2B;oBACrC,mBAAmB,EAAE,YAAY;iBAClC,CAAC,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,CAAE,cAA0C,CAAC,eAAe,CAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAChI,MAAM,SAAS,GAAG,IAAI,CAAC,MAAa,CAAC;gBACrC,IAAI,UAAU,IAAI,OAAO,SAAS,CAAC,mBAAmB,KAAK,UAAU,EAAE,CAAC;oBACtE,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;gBAChE,CAAC;gBACD,IAAI,OAAO,SAAS,CAAC,uBAAuB,KAAK,UAAU,EAAE,CAAC;oBAC5D,MAAM,MAAM,GAAG,eAAe,CAAE,cAA0C,CAAC,eAAe,CAAQ,CAAC,CAAC;oBACpG,MAAM,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,QAAmC,EAAE;wBACrF,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,IAAI,EAAE,UAAU;wBAChB,UAAU,EAAG,cAA0C,CAAC,eAAe,CAAC;qBACzE,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAE,GAAa,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;oBAAE,MAAM,GAAG,CAAC;gBACjF,SAAS,GAAG,GAAG,CAAC;YAClB,CAAC;QACH,CAAC;QACD,IAAI,SAAS;YAAE,MAAM,SAAS,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,OAAe,EAAE,IAAc;QAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAa,CAAC;QACrC,IAAI,OAAO,SAAS,CAAC,2BAA2B,KAAK,UAAU,EAAE,CAAC;YAChE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,2BAA2B,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC1E,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QACjF,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,MAA6B,CAAC;QAChD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,OAAO,SAAS,CAAC,uBAAuB,KAAK,UAAU,EAAE,CAAC;YAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC;YACxD,MAAM,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC5D,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACzB,MAAM,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtE,CAAC;IAEO,KAAK,CAAC,yBAAyB,CACrC,OAAe,EACf,QAAgB,EAChB,OAAmC,EACnC,IAAY,EACZ,UAAoB;QAEpB,MAAM,IAAI,GAAG,OAAO;aACjB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;aAChF,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAa,CAAC;QACrC,IAAI,MAAM,GAAwB,EAAE,CAAC;QACrC,IAAI,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACxB,IAAI,OAAO,SAAS,CAAC,oCAAoC,KAAK,UAAU,EAAE,CAAC;YACzE,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,oCAAoC,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5F,MAAM,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;YACtC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,OAAO,GAAwB,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,aAAa,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,QAAQ,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;QAC3C,IAAI,OAAO,SAAS,CAAC,uBAAuB,KAAK,UAAU,EAAE,CAAC;YAC5D,MAAM,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,MAA4B;QAC/B,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,MAA4B;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,CAAC,MAA4B;QAC/B,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,UAAU,CAAC,MAA4B;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,WAAW,CAAC,MAA4B;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,SAAS,CAAC,MAA4B;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAA4B;QAChD,sBAAsB;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAEtD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CACxE,MAAM,CAAC,OAAO,CAAC,EACf,CAAC,sBAAsB,EAAE,0BAA0B,CAAC,CACrD,CAAC;QACF,OAAO;YACL,QAAQ,EAAE,aAAa;YACvB,YAAY,EAAE;gBACZ,QAAQ,EAAE,aAAa;gBACvB,OAAO,EAAE,QAAQ,CAAC,sBAAsB,CAAC,IAAI,EAAE;gBAC/C,WAAW,EAAE,QAAQ,CAAC,0BAA0B,CAAC,IAAI,EAAE;gBACvD,UAAU,EAAE,QAAQ,CAAC,iCAAiC,CAAC,IAAI,EAAE;gBAC7D,UAAU,EAAE,QAAQ,CAAC,iCAAiC,CAAC,IAAI,CAAC;aAC7D;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAA4B;QACnD,sBAAsB;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAEvC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtD,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAElE,MAAM,cAAc,GAAwB,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC;QAChF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,cAAc,CAAC,0BAA0B,CAAC,GAAG,WAAW,CAAC;QAC3D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;QAE/F,OAAO;YACL,QAAQ,EAAG,MAA8B,CAAC,QAAQ;YAClD,YAAY,EAAE;gBACZ,QAAQ,EAAG,MAA8B,CAAC,QAAQ;gBAClD,OAAO;gBACP,WAAW,EAAE,WAAW,IAAI,EAAE;aAC/B;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAA4B;QACzC,sBAAsB;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAEtD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CACxE,MAAM,CAAC,OAAO,CAAC,EACf,CAAC,eAAe,EAAE,mBAAmB,CAAC,CACvC,CAAC;QACF,OAAO;YACL,QAAQ,EAAE,aAAa;YACvB,KAAK,EAAE;gBACL,QAAQ,EAAE,aAAa;gBACvB,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE;gBACxC,WAAW,EAAE,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE;gBAChD,UAAU,EAAE,QAAQ,CAAC,0BAA0B,CAAC,IAAI,EAAE;gBACtD,UAAU,EAAE,QAAQ,CAAC,0BAA0B,CAAC,IAAI,CAAC;aACtD;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAA4B;QAC5C,sBAAsB;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAEvC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtD,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAElE,MAAM,cAAc,GAAwB,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC;QACzE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,cAAc,CAAC,mBAAmB,CAAC,GAAG,WAAW,CAAC;QACpD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;QAE/F,OAAO;YACL,QAAQ,EAAG,MAA8B,CAAC,QAAQ;YAClD,KAAK,EAAE;gBACL,QAAQ,EAAG,MAA8B,CAAC,QAAQ;gBAClD,OAAO;gBACP,WAAW,EAAE,WAAW,IAAI,EAAE;aAC/B;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,MAA4B;QACpD,sBAAsB;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAEtD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CACxE,MAAM,CAAC,OAAO,CAAC,EACf,CAAC,WAAW,EAAE,eAAe,EAAE,4BAA4B,EAAE,kBAAkB,CAAC,CACjF,CAAC;QACF,OAAO;YACL,QAAQ,EAAE,aAAa;YACvB,iBAAiB,EAAE;gBACjB,QAAQ,EAAE,aAAa;gBACvB,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,MAAM;gBACrC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE;gBACzC,qBAAqB,EAAE,QAAQ,CAAC,4BAA4B,CAAC,IAAI,EAAE;gBACnE,WAAW,EAAE,QAAQ,CAAC,kBAAkB,CAAC,IAAI,GAAG;gBAChD,UAAU,EAAE,QAAQ,CAAC,sBAAsB,CAAC,IAAI,EAAE;gBAClD,UAAU,EAAE,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC;aAClD;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,MAA4B;QACvD,sBAAsB;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEhC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAEtD,MAAM,cAAc,GAAwB,EAAE,CAAC;QAC/C,IAAI,MAAM,IAAI,MAAM;YAAE,cAAc,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QAChE,IAAI,UAAU,IAAI,MAAM;YAAE,cAAc,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC5E,IAAI,uBAAuB,IAAI,MAAM;YAAE,cAAc,CAAC,4BAA4B,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC;QACnH,IAAI,aAAa,IAAI,MAAM;YAAE,cAAc,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;QAErF,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;QAE/F,OAAO;YACL,QAAQ,EAAG,MAA8B,CAAC,QAAQ;YAClD,iBAAiB,EAAE;gBACjB,QAAQ,EAAG,MAA8B,CAAC,QAAQ;gBAClD,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;gBACnD,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC;SACF,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,MAA4B;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,SAAS;IACzC,MAAM,CAAC,MAA4B;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,MAA4B;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,MAA4B;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,UAAU,CAAC,MAA4B;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;CACF"}
1
+ {"version":3,"file":"facades.js","sourceRoot":"","sources":["../src/facades.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.5.3";
1
+ export declare const VERSION = "0.5.4";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // AUN SDK 版本号(单一事实来源)。
2
2
  // 所有引用点(index.ts / auth.ts / v2/e2ee/encrypt-p2p.ts)统一从此导入,
3
3
  // 避免多处独立定义导致版本号不一致。
4
- export const VERSION = '0.5.3';
4
+ export const VERSION = '0.5.4';
5
5
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentunion/fastaun-browser",
3
- "version": "0.5.3",
3
+ "version": "0.5.4",
4
4
  "description": "AUN Protocol Core SDK for Browser",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",