@lemoncat7/dsh-partner 1.16.2 → 2.1.0

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.
Files changed (160) hide show
  1. package/README.md +21 -0
  2. package/cordis.patch.yml +1 -0
  3. package/docs/channel-questions-and-avatar.md +30 -0
  4. package/docs/releases/2.0.0.md +34 -0
  5. package/docs/releases/2.1.0.md +13 -0
  6. package/docs/storage-migration.md +72 -0
  7. package/lib/agent-runtime.d.ts +1 -0
  8. package/lib/agent-runtime.d.ts.map +1 -1
  9. package/lib/agent-runtime.js +15 -3
  10. package/lib/agent-runtime.js.map +1 -1
  11. package/lib/api.d.ts +2 -0
  12. package/lib/api.d.ts.map +1 -1
  13. package/lib/api.js +49 -1
  14. package/lib/api.js.map +1 -1
  15. package/lib/attachments/service.d.ts +10 -0
  16. package/lib/attachments/service.d.ts.map +1 -1
  17. package/lib/attachments/service.js +68 -9
  18. package/lib/attachments/service.js.map +1 -1
  19. package/lib/channels/avatar-file.d.ts +3 -0
  20. package/lib/channels/avatar-file.d.ts.map +1 -0
  21. package/lib/channels/avatar-file.js +43 -0
  22. package/lib/channels/avatar-file.js.map +1 -0
  23. package/lib/channels/avatar-tool.d.ts +12 -0
  24. package/lib/channels/avatar-tool.d.ts.map +1 -0
  25. package/lib/channels/avatar-tool.js +78 -0
  26. package/lib/channels/avatar-tool.js.map +1 -0
  27. package/lib/channels/direct/avatar.d.ts +11 -0
  28. package/lib/channels/direct/avatar.d.ts.map +1 -0
  29. package/lib/channels/direct/avatar.js +57 -0
  30. package/lib/channels/direct/avatar.js.map +1 -0
  31. package/lib/channels/manager.d.ts +1 -0
  32. package/lib/channels/manager.d.ts.map +1 -1
  33. package/lib/channels/manager.js +67 -14
  34. package/lib/channels/manager.js.map +1 -1
  35. package/lib/channels/question-origin.d.ts +5 -0
  36. package/lib/channels/question-origin.d.ts.map +1 -0
  37. package/lib/channels/question-origin.js +14 -0
  38. package/lib/channels/question-origin.js.map +1 -0
  39. package/lib/client-controller.d.ts +1 -1
  40. package/lib/client-controller.d.ts.map +1 -1
  41. package/lib/client.d.ts.map +1 -1
  42. package/lib/client.js +460 -239
  43. package/lib/client.js.map +4 -4
  44. package/lib/collaboration/composition.d.ts +2 -0
  45. package/lib/collaboration/composition.d.ts.map +1 -1
  46. package/lib/collaboration/composition.js +4 -0
  47. package/lib/collaboration/composition.js.map +1 -1
  48. package/lib/companions/removal.d.ts.map +1 -1
  49. package/lib/companions/removal.js +3 -0
  50. package/lib/companions/removal.js.map +1 -1
  51. package/lib/concern-store.d.ts +5 -1
  52. package/lib/concern-store.d.ts.map +1 -1
  53. package/lib/concern-store.js +13 -4
  54. package/lib/concern-store.js.map +1 -1
  55. package/lib/config.d.ts +1 -0
  56. package/lib/config.d.ts.map +1 -1
  57. package/lib/config.js +6 -0
  58. package/lib/config.js.map +1 -1
  59. package/lib/domain.d.ts +2 -0
  60. package/lib/domain.d.ts.map +1 -1
  61. package/lib/domain.js.map +1 -1
  62. package/lib/index.d.ts.map +1 -1
  63. package/lib/index.js +165 -132
  64. package/lib/index.js.map +1 -1
  65. package/lib/memory-store.d.ts +4 -1
  66. package/lib/memory-store.d.ts.map +1 -1
  67. package/lib/memory-store.js +10 -2
  68. package/lib/memory-store.js.map +1 -1
  69. package/lib/notifications/domain.d.ts +2 -1
  70. package/lib/notifications/domain.d.ts.map +1 -1
  71. package/lib/notifications/store.d.ts +8 -0
  72. package/lib/notifications/store.d.ts.map +1 -1
  73. package/lib/notifications/store.js +81 -17
  74. package/lib/notifications/store.js.map +1 -1
  75. package/lib/pendant/reader.js +1 -1
  76. package/lib/pendant/reader.js.map +1 -1
  77. package/lib/pendant/widget.d.ts.map +1 -1
  78. package/lib/pendant/widget.js +5 -1
  79. package/lib/pendant/widget.js.map +1 -1
  80. package/lib/storage/atomic.d.ts +3 -0
  81. package/lib/storage/atomic.d.ts.map +1 -0
  82. package/lib/storage/atomic.js +35 -0
  83. package/lib/storage/atomic.js.map +1 -0
  84. package/lib/storage/bootstrap.d.ts +8 -0
  85. package/lib/storage/bootstrap.d.ts.map +1 -0
  86. package/lib/storage/bootstrap.js +31 -0
  87. package/lib/storage/bootstrap.js.map +1 -0
  88. package/lib/storage/coordinator.d.ts +36 -0
  89. package/lib/storage/coordinator.d.ts.map +1 -0
  90. package/lib/storage/coordinator.js +103 -0
  91. package/lib/storage/coordinator.js.map +1 -0
  92. package/lib/storage/layout.d.ts +13 -0
  93. package/lib/storage/layout.d.ts.map +1 -0
  94. package/lib/storage/layout.js +30 -0
  95. package/lib/storage/layout.js.map +1 -0
  96. package/lib/storage/lease.d.ts +5 -0
  97. package/lib/storage/lease.d.ts.map +1 -0
  98. package/lib/storage/lease.js +25 -0
  99. package/lib/storage/lease.js.map +1 -0
  100. package/lib/storage/legacy-backups.d.ts +3 -0
  101. package/lib/storage/legacy-backups.d.ts.map +1 -0
  102. package/lib/storage/legacy-backups.js +14 -0
  103. package/lib/storage/legacy-backups.js.map +1 -0
  104. package/lib/storage/migrate-layout.d.ts +18 -0
  105. package/lib/storage/migrate-layout.d.ts.map +1 -0
  106. package/lib/storage/migrate-layout.js +204 -0
  107. package/lib/storage/migrate-layout.js.map +1 -0
  108. package/lib/storage/migrations/index.d.ts +3 -0
  109. package/lib/storage/migrations/index.d.ts.map +1 -0
  110. package/lib/storage/migrations/index.js +4 -0
  111. package/lib/storage/migrations/index.js.map +1 -0
  112. package/lib/storage/migrations/registry.d.ts +19 -0
  113. package/lib/storage/migrations/registry.d.ts.map +1 -0
  114. package/lib/storage/migrations/registry.js +40 -0
  115. package/lib/storage/migrations/registry.js.map +1 -0
  116. package/lib/storage/migrations/v0-to-v1.d.ts +5 -0
  117. package/lib/storage/migrations/v0-to-v1.d.ts.map +1 -0
  118. package/lib/storage/migrations/v0-to-v1.js +11 -0
  119. package/lib/storage/migrations/v0-to-v1.js.map +1 -0
  120. package/lib/storage/notice.d.ts +4 -0
  121. package/lib/storage/notice.d.ts.map +1 -0
  122. package/lib/storage/notice.js +13 -0
  123. package/lib/storage/notice.js.map +1 -0
  124. package/lib/storage/preflight.d.ts +40 -0
  125. package/lib/storage/preflight.d.ts.map +1 -0
  126. package/lib/storage/preflight.js +208 -0
  127. package/lib/storage/preflight.js.map +1 -0
  128. package/lib/storage/safe-files.d.ts +6 -0
  129. package/lib/storage/safe-files.d.ts.map +1 -0
  130. package/lib/storage/safe-files.js +125 -0
  131. package/lib/storage/safe-files.js.map +1 -0
  132. package/lib/storage/source-archive.d.ts +14 -0
  133. package/lib/storage/source-archive.d.ts.map +1 -0
  134. package/lib/storage/source-archive.js +98 -0
  135. package/lib/storage/source-archive.js.map +1 -0
  136. package/lib/storage/split-state.d.ts +14 -0
  137. package/lib/storage/split-state.d.ts.map +1 -0
  138. package/lib/storage/split-state.js +107 -0
  139. package/lib/storage/split-state.js.map +1 -0
  140. package/lib/store.d.ts +5 -0
  141. package/lib/store.d.ts.map +1 -1
  142. package/lib/store.js +12 -1
  143. package/lib/store.js.map +1 -1
  144. package/lib/ui/storage-recovery-marker.d.ts +4 -0
  145. package/lib/ui/storage-recovery-marker.d.ts.map +1 -0
  146. package/lib/ui/storage-recovery-marker.js +19 -0
  147. package/lib/ui/storage-recovery-marker.js.map +1 -0
  148. package/lib/ui/storage-recovery.d.ts +20 -0
  149. package/lib/ui/storage-recovery.d.ts.map +1 -0
  150. package/lib/ui/storage-recovery.js +39 -0
  151. package/lib/ui/storage-recovery.js.map +1 -0
  152. package/lib/ui/storage-settings.d.ts +2 -0
  153. package/lib/ui/storage-settings.d.ts.map +1 -0
  154. package/lib/ui/storage-settings.js +90 -0
  155. package/lib/ui/storage-settings.js.map +1 -0
  156. package/lib/ui/workspace-navigation.d.ts +78 -0
  157. package/lib/ui/workspace-navigation.d.ts.map +1 -0
  158. package/lib/ui/workspace-navigation.js +28 -0
  159. package/lib/ui/workspace-navigation.js.map +1 -0
  160. package/package.json +5 -1
package/lib/api.js CHANGED
@@ -22,13 +22,25 @@ export function registerPartnerApi(webServer, prefix, runtime) {
22
22
  return webServer.register({
23
23
  kind: 'prefix', path: prefix,
24
24
  handler: async (req, res) => {
25
+ let release;
25
26
  try {
26
27
  assertSameOrigin(req);
28
+ if (req.method === 'GET' && new URL(req.url ?? '/', 'http://partner.local').pathname === `${prefix}/storage/status`) {
29
+ if (!runtime.storage)
30
+ throw httpError(503, '存储服务不可用');
31
+ return sendJson(res, 200, await runtime.storage.status());
32
+ }
33
+ if (runtime.storage?.running)
34
+ throw httpError(503, '伙伴正在升级迁移,请稍后刷新');
35
+ release = runtime.storage?.enterRequest();
27
36
  await dispatch(req, res, prefix, runtime);
28
37
  }
29
38
  catch (error) {
30
39
  sendError(res, error);
31
40
  }
41
+ finally {
42
+ release?.();
43
+ }
32
44
  },
33
45
  });
34
46
  }
@@ -37,6 +49,42 @@ async function dispatch(req, res, prefix, runtime) {
37
49
  const relative = url.pathname.slice(prefix.length).replace(/^\/+|\/+$/g, '');
38
50
  const segments = relative ? relative.split('/').map(decodeURIComponent) : [];
39
51
  const method = req.method ?? 'GET';
52
+ if (method === 'GET' && segments.length === 2 && segments[0] === 'storage' && segments[1] === 'status') {
53
+ if (!runtime.storage)
54
+ throw httpError(503, '存储服务不可用');
55
+ return sendJson(res, 200, await runtime.storage.status());
56
+ }
57
+ if (segments.length === 2 && segments[0] === 'storage' && segments[1] === 'migrate') {
58
+ if (method !== 'POST')
59
+ throw httpError(405, '请使用升级迁移按钮提交');
60
+ mutation(req);
61
+ if (!runtime.storage)
62
+ throw httpError(503, '存储迁移服务不可用');
63
+ const body = await readObject(req);
64
+ if (body.confirm !== true || body.expectedVersion !== 0)
65
+ throw httpError(400, '请确认备份与目录迁移,重新检查当前版本');
66
+ runtime.storage.start(body.expectedVersion);
67
+ return sendJson(res, 202, { accepted: true });
68
+ }
69
+ if (segments.length === 2 && segments[0] === 'storage' && segments[1] === 'cleanup') {
70
+ if (method !== 'POST')
71
+ throw httpError(405, '请使用清理确认按钮');
72
+ mutation(req);
73
+ if (!runtime.storage)
74
+ throw httpError(503, '存储服务不可用');
75
+ const body = await readObject(req);
76
+ if (body.confirm !== true || body.expectedVersion !== 1)
77
+ throw httpError(400, '请确认已备份的旧路径清理');
78
+ runtime.storage.startCleanup();
79
+ return sendJson(res, 202, { accepted: true });
80
+ }
81
+ if (segments.length === 2 && segments[0] === 'storage' && segments[1] === 'inspect') {
82
+ if (method !== 'GET')
83
+ throw httpError(405, '目前仅支持只读迁移检查,尚未开放执行迁移');
84
+ if (!runtime.storage)
85
+ throw httpError(503, '存储检查服务不可用');
86
+ return sendJson(res, 200, await runtime.storage.inspect());
87
+ }
40
88
  if (segments[0] === 'companions' && segments[1] && runtime.store.isCompanionRemoving(segments[1]) && !(method === 'DELETE' && segments.length === 2))
41
89
  throw httpError(409, '伙伴正在删除,请稍后刷新');
42
90
  if (await dispatchPendantApi(req, res, segments, runtime.inbox))
@@ -115,7 +163,7 @@ async function dispatch(req, res, prefix, runtime) {
115
163
  await runtime.companions.remove(id, {
116
164
  isBusy: target => runtime.agents.isCompanionBusy(target) || runtime.heartbeat.isRunning(target) || runtime.dailyReview.isRunning(target),
117
165
  validateDirectory: target => runtime.agents.validateCompanionDirectory(target),
118
- ...(removeFiles === '1' ? { removeDirectory: (target) => runtime.agents.removeCompanionDirectory(target) } : {}),
166
+ ...(removeFiles === '1' ? { removeDirectory: async (target) => { runtime.inbox.releaseOwner(target); runtime.deliveries?.releaseOwner(target); await runtime.agents.removeCompanionDirectory(target); } } : {}),
119
167
  detachWorkspace: target => runtime.agents.removeCompanionWorkspace(target),
120
168
  resetSessions: target => runtime.agents.resetCompanion(target),
121
169
  clearMemory: target => runtime.memory.clear(target),
package/lib/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAIzC,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,IAAI,EAAoC,MAAM,aAAa,CAAA;AAGlH,OAAO,EAAkB,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAEzE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,WAAW,EAAuB,MAAM,oBAAoB,CAAA;AAWrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAA;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAE7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAE1E,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAKtG,MAAM,WAAW,GAAC,IAAI,OAAO,EAAiC,CAAA;AAC9D,SAAS,UAAU,CAAC,KAAkB;IACpC,IAAI,KAAK,GAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAChC,IAAG,CAAC,KAAK,EAAC,CAAC;QAAA,KAAK,GAAC,IAAI,gBAAgB,EAAE,CAAC;QAAA,WAAW,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,CAAC,CAAA;IAAA,CAAC;IACrE,OAAO,KAAK,CAAA;AACd,CAAC;AAuBD,MAAM,UAAU,kBAAkB,CAAC,SAAwB,EAAE,MAAc,EAAE,OAAmB;IAC9F,OAAO,SAAS,CAAC,QAAQ,CAAC;QACxB,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM;QAC5B,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAC1B,IAAI,CAAC;gBACH,gBAAgB,CAAC,GAAG,CAAC,CAAA;gBACrB,MAAM,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YAAC,CAAC;QAC3C,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,GAAoB,EAAE,GAAmB,EAAE,MAAc,EAAE,OAAmB;IACpG,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,sBAAsB,CAAC,CAAA;IAC3D,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAC5E,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5E,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAA;IAClC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;QAAE,MAAM,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;IAC1L,IAAI,MAAM,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC;QAAE,OAAM;IACvE,IAAI,OAAO,CAAC,UAAU,IAAI,MAAM,sBAAsB,CAAC,GAAG,EAAC,GAAG,EAAC,QAAQ,EAAC,OAAO,CAAC,UAAU,EAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAM;IACjH,IAAI,MAAM,KAAK,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;IACpI,IAAI,MAAM,KAAK,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1E,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,KAAK,EAAC,QAAQ,EAAC,EAAE,CAAC,CAAC;YACzF,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI;YACpC,MAAM,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;SAC3H,CAAC,CAAC,CAAC,CAAA;QACJ,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;IAC9G,CAAC;IACD,IAAI,MAAM,KAAK,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;IACjG,IAAI,MAAM,2BAA2B,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC;QAAE,OAAM;IAE/E,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC;QACjC,IAAI,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,QAAQ,CAAC,GAAG,CAAC,CAAA;YACb,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;YACpF,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;QACtC,CAAC;QACD,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,EAAE,IAAI,MAAM,KAAK,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,eAAe,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvF,QAAQ,CAAC,GAAG,CAAC,CAAA;YACb,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;YAClC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;gBAAE,MAAM,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YACvF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;gBAAE,MAAM,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YACzK,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAA4B,CAAC,CAAC,CAAA;YAC3D,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,GAAG,CAAC,MAAM;gBAAE,MAAM,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;YACjF,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBACjC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;gBACzD,IAAI,CAAC,SAAS;oBAAE,MAAM,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;gBAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;oBAChE,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAA;oBACvF,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,WAAW,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC;wBAAE,MAAM,SAAS,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAA;oBACvJ,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAA;gBACjE,CAAC,CAAC,CAAA;gBACF,SAAS,CAAC,oBAAoB,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAA6B,EAAE,OAAO,EAAE,CAAA;gBACtF,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAClC,CAAC,CAAC,CAAA;YACF,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAC,EAAE,EAAE,IAAI,EAAC,CAAC,CAAA;QACvC,CAAC;QACD,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChG,QAAQ,CAAC,GAAG,CAAC,CAAA;YACb,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACpC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAA;YACzD,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAA;QAC9E,CAAC;QACD,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,QAAQ,CAAC,GAAG,CAAC,CAAA;YACb,MAAM,KAAK,GAAG,uBAAuB,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;YACxE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;gBAC9D,IAAI,CAAC,QAAQ;oBAAE,MAAM,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;gBAC5C,MAAM,IAAI,GAAc,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAC,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAA;gBAClQ,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAC/E,CAAC,CAAC,CAAA;YACF,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAE,CAAA;YAC3D,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QACjC,CAAC;QACD,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrE,QAAQ,CAAC,GAAG,CAAC,CAAA;YACb,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;YACvD,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,GAAG,IAAI,WAAW,KAAK,GAAG;gBAAE,MAAM,SAAS,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAA;YACrH,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE;gBAClC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC;gBACxI,iBAAiB,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,0BAA0B,CAAC,MAAM,CAAC;gBAC9E,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxH,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC;gBAC1E,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC;gBAC9D,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;gBACnD,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;aACxD,CAAC,CAAA;YACF,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;QACtC,CAAC;QACD,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClG,QAAQ,CAAC,GAAG,CAAC,CAAA;YACb,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACpC,MAAM,UAAU,GAAG,mBAAmB,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;YAC1E,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBACjC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;gBAC5D,IAAI,MAAM,EAAE,CAAC;oBAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;oBAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBAAC,CAAC;gBAC7E,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,EAAE,CAAC,CAAA;gBACrF,IAAI,UAAU,CAAC,SAAS,CAAC,OAAO;oBAAE,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC;wBAC3D,WAAW,EAAE,EAAE;wBACf,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,eAAe,GAAG,MAAM;wBACvE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC;qBACpE,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YACF,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;QAC3C,CAAC;QACD,IAAI,EAAE,KAAK,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YACjD,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACpC,IAAI,MAAM,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBAAE,OAAM;YACtF,IAAI,MAAM,KAAK,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;gBACtC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,EAAE,CAAC,CAAA;gBACrE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;gBAC3E,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAA;gBAC5D,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBAC1D,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC;iBAC3N,CAAC,CAAA;gBACF,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;oBACxB,QAAQ,EAAE,WAAW;oBACrB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;wBAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;wBAC/F,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,CAAA;wBACxH,OAAO,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,MAAM,IAAI,OAAO,EAAE,CAAA;oBAChF,CAAC,CAAC;iBACH,CAAC,CAAA;YACJ,CAAC;YACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YAC5B,IAAI,MAAM,KAAK,KAAK,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxE,QAAQ,CAAC,GAAG,CAAC,CAAA;gBACb,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;gBAClC,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;YACpJ,CAAC;YACD,IAAI,MAAM,KAAK,QAAQ,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3E,QAAQ,CAAC,GAAG,CAAC,CAAA;gBACb,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;gBAC/C,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;YACtC,CAAC;QACH,CAAC;QACD,IAAI,EAAE,KAAK,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;YACnD,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACpC,IAAI,MAAM,KAAK,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;YAC7G,IAAI,MAAM,KAAK,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;gBAC5E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC1D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;oBAAE,MAAM,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;gBAC/E,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAA;YACxE,CAAC;YACD,IAAI,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,QAAQ,CAAC,GAAG,CAAC,CAAA;gBACb,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;gBAClC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAAE,MAAM,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;gBACrF,MAAM,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,iBAA2B,CAAC,CAAA;gBACxF,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAC,EAAE,EAAE,IAAI,EAAC,CAAC,CAAA;YACvC,CAAC;YACD,IAAI,MAAM,KAAK,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,QAAQ,CAAC,GAAG,CAAC,CAAA;gBACb,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;gBAClC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAAE,MAAM,SAAS,CAAC,GAAG,EAAE,eAAe,CAAC,CAAA;gBACxF,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI;oBAAE,MAAM,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;gBACtK,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;gBAC1H,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAC,OAAO,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAC,IAAI,CAAC,iBAA2B,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAC,YAAY,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,CAAA;YACtQ,CAAC;YACD,IAAI,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,QAAQ,CAAC,GAAG,CAAC,CAAA;gBACb,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;gBAClC,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;gBACtF,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;gBAC1H,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;YACrI,CAAC;YACD,IAAI,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxG,QAAQ,CAAC,GAAG,CAAC,CAAA;gBACb,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;gBACjE,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,YAAY,IAAI,MAAM,KAAK,SAAS;oBAAE,MAAM,SAAS,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAA;gBACnJ,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;gBACnD,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;YACzC,CAAC;QACH,CAAC;QACD,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,iBAAiB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvG,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACtD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YACpE,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;QAC7F,CAAC;QACD,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,mBAAmB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzG,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAA;QACpK,CAAC;QACD,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/H,QAAQ,CAAC,GAAG,CAAC,CAAA;YACb,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACpC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;YAClC,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YACtG,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAA;QACzE,CAAC;QACD,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7H,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACpC,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/D,CAAC;QACD,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3H,QAAQ,CAAC,GAAG,CAAC,CAAC;YAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACnD,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAA;QACxE,CAAC;QACD,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzH,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACpC,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QACxD,IAAI,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,QAAQ,CAAC,GAAG,CAAC,CAAA;YACb,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,CAAC,CAAA;YACjF,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YAC7C,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAA;QACnE,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,MAAM,KAAK,KAAK,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC/C,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW;gBAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;YACrE,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACtB,MAAM,OAAO,GAAG;gBACd,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC1F,IAAI,EAAE,QAAQ,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG;aAC7F,CAAA;YACD,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;YACzG,IAAI,CAAC;gBAAC,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;YAAC,CAAC;YAC7E,OAAO,KAAK,EAAE,CAAC;gBAAC,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAAC,MAAM,KAAK,CAAA;YAAC,CAAC;YAC3F,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YACxC,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;QAC/B,IAAG,MAAM,KAAG,KAAK,IAAE,QAAQ,CAAC,CAAC,CAAC,KAAG,QAAQ,IAAE,QAAQ,CAAC,MAAM,KAAG,CAAC;YAAC,OAAO,QAAQ,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAC,QAAQ,EAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAC,CAAC,CAAA;QAC5K,IAAI,MAAM,KAAK,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC;YACtG,QAAQ,CAAC,GAAG,CAAC,CAAA;YACb,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;YAClC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,CAAC,CAAA;YAC9D,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YAC7C,IAAI,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,WAAW,CAAC;gBAAE,MAAM,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YAClF,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;YACjC,IAAG,IAAI,CAAC,QAAQ,KAAG,SAAS,IAAE,IAAI,CAAC,QAAQ,KAAG,UAAU,IAAE,IAAI,CAAC,QAAQ,KAAG,OAAO;gBAAC,MAAM,SAAS,CAAC,GAAG,EAAC,QAAQ,CAAC,CAAA;YAC/G,MAAM,KAAK,GAAC,IAAI,CAAC,QAAQ,KAAG,UAAU,CAAA,CAAC,CAAA,MAAM,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,EAAC,MAAM,EAAC,EAAC,QAAQ,EAAC,IAAI,CAAC,QAAQ,EAAC,QAAQ,EAAC,IAAI,CAAC,QAAQ,EAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAA,CAAC,CAAA,EAAC,QAAQ,EAAC,IAAI,CAAC,QAAQ,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,SAAS,CAAA;YAC3M,MAAM,QAAQ,GAAC,KAAK,EAAE,KAAK,IAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAC,UAAU,EAAC,IAAI,CAAC,CAAA;YAChE,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YACrD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAA;YACzC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC3B,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAC,EAAE,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAC,CAAC,CAAA;YACpD,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;YAC3E,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAA;YAChE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACtB,MAAM,OAAO,GAAG,EAAC,EAAE,EAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAC,WAAW,EAAC,QAAQ,EAAC,MAAM,CAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,CAAC,SAAS;gBAC7G,IAAI,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAC,OAAO,EAAC,KAAK,EAAC,SAAS,EAAC,GAAG,EAAC,SAAS,EAAC,GAAG;gBAC1E,MAAM,EAAC,EAAC,OAAO,EAAC,MAAM,CAAC,OAAO,EAAC,QAAQ,EAAC,MAAM,CAAC,QAAQ,EAAC,MAAM,EAAC,QAAQ,CAAC,MAAM,EAAC,MAAM,EAAC,QAAQ,CAAC,MAAM,EAAC,EAAC,CAAA;YACzG,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAC,EAAC,OAAO,EAAC,MAAM,CAAC,OAAO,EAAC,QAAQ,EAAC,CAAC,CAAA;YAC7E,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA,EAAE;oBAChC,IAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,QAAQ,KAAG,MAAM,CAAC,QAAQ,IAAE,CAAC,CAAC,SAAS,KAAG,QAAQ,CAAC,SAAS,IAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAG,MAAM,CAAC,OAAO,CAAC;wBAAC,MAAM,SAAS,CAAC,GAAG,EAAC,6BAA6B,CAAC,CAAA;oBAChL,IAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,WAAW,CAAC;wBAAC,MAAM,SAAS,CAAC,GAAG,EAAC,QAAQ,CAAC,CAAA;oBAC9E,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;oBAC5B,IAAG,QAAQ,CAAC,MAAM;wBAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,QAAQ,CAAC,SAAS,CAAC,EAAC,SAAS,EAAC,OAAO,CAAC,EAAE,EAAC,MAAM,EAAC,QAAQ,CAAC,MAAM,EAAC,WAAW,EAAC,QAAQ,CAAC,MAAM,EAAC,cAAc,EAAC,MAAM,CAAC,QAAQ,EAAC,MAAM,EAAC,SAAS,EAAC,SAAS,EAAC,GAAG,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,CAAA;gBACtN,CAAC,CAAC,CAAA;YACJ,CAAC;YAAC,OAAM,KAAK,EAAE,CAAC;gBAAA,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAAA,MAAM,KAAK,CAAA;YAAA,CAAC;YACzE,KAAK,EAAE,MAAM,EAAE,CAAA;YACf,OAAO,QAAQ,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,OAAO,EAAC,CAAC,CAAA;QACpC,CAAC;QACD,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChG,QAAQ,CAAC,GAAG,CAAC,CAAA;YACb,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;YAClC,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS;gBAAE,MAAM,SAAS,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAA;YACtF,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;YACnD,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;QACzC,CAAC;QACD,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrE,QAAQ,CAAC,GAAG,CAAC,CAAA;YACb,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YACjC,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,EAAE,IAAI,MAAM,KAAG,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAG,UAAU,IAAI,QAAQ,CAAC,MAAM,KAAG,CAAC,EAAE,CAAC;YAC7E,QAAQ,CAAC,GAAG,CAAC,CAAA;YACb,MAAM,IAAI,GAAC,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;YAChC,IAAG,OAAO,IAAI,CAAC,UAAU,KAAG,QAAQ,IAAE,IAAI,CAAC,UAAU,CAAC,MAAM,GAAC,EAAE;gBAAC,MAAM,SAAS,CAAC,GAAG,EAAC,WAAW,CAAC,CAAA;YAChG,IAAG,IAAI,CAAC,eAAe,KAAG,IAAI,IAAE,OAAO,IAAI,CAAC,eAAe,KAAG,QAAQ;gBAAC,MAAM,SAAS,CAAC,GAAG,EAAC,QAAQ,CAAC,CAAA;YACpG,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA,EAAE;gBAChC,MAAM,MAAM,GAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,EAAE,IAAE,CAAC,CAAC,MAAM,KAAG,UAAU,CAAC,CAAA;gBACrE,IAAG,CAAC,MAAM;oBAAC,MAAM,SAAS,CAAC,GAAG,EAAC,WAAW,CAAC,CAAA;gBAC3C,MAAM,SAAS,GAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,MAAM,CAAC,SAAS,CAAC,EAAE,WAAW,CAAA;gBAC5E,IAAG,IAAI,CAAC,eAAe,KAAG,IAAI,EAAE,CAAC;oBAC/B,MAAM,MAAM,GAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,IAAI,CAAC,eAAe,IAAE,CAAC,CAAC,MAAM,KAAG,UAAU,CAAC,CAAA;oBACvF,IAAG,CAAC,MAAM,IAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,MAAM,CAAC,SAAS,IAAE,CAAC,CAAC,WAAW,KAAG,SAAS,CAAC;wBAAC,MAAM,SAAS,CAAC,GAAG,EAAC,kBAAkB,CAAC,CAAA;oBAC/H,MAAM,CAAC,cAAc,GAAC,EAAC,SAAS,EAAC,MAAM,CAAC,SAAS,EAAC,MAAM,EAAC,MAAM,CAAC,MAAM,EAAC,CAAA;gBACzE,CAAC;;oBAAM,OAAO,MAAM,CAAC,cAAc,CAAA;gBACnC,IAAI,IAAI,CAAC,UAAqB,CAAC,IAAI,EAAE;oBAAC,MAAM,CAAC,UAAU,GAAE,IAAI,CAAC,UAAqB,CAAC,IAAI,EAAE,CAAA;;oBACrF,OAAO,MAAM,CAAC,UAAU,CAAA;gBAC7B,MAAM,CAAC,SAAS,GAAC,IAAI,CAAC,GAAG,EAAE,CAAA;YAC7B,CAAC,CAAC,CAAA;YACF,OAAO,QAAQ,CAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,CAAA;QACpC,CAAC;QACD,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/F,QAAQ,CAAC,GAAG,CAAC,CAAA;YACb,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;YACjE,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM,SAAS,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAA;YACpG,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;YAC9E,IAAI,OAAO,KAAK,SAAS;gBAAE,MAAM,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YAC1D,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBACjC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;gBAC1D,IAAI,MAAM,EAAE,CAAC;oBAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;oBAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBAAC,CAAC;YACvE,CAAC,CAAC,CAAA;YACF,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChG,QAAQ,CAAC,GAAG,CAAC,CAAA;YACb,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;YACrD,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAA;QAC3D,CAAC;QACD,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9F,QAAQ,CAAC,GAAG,CAAC,CAAA;YACb,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;YACnD,MAAM,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAC7C,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAA;QAC9E,CAAC;IACH,CAAC;IACD,MAAM,SAAS,CAAC,GAAG,EAAE,iCAAiC,CAAC,CAAA;AACzD,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,OAAmB;IAGzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;IACtC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrF,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE;QAC1B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;IACpB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IACrG,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,OAAO,EAAE,CAAA;AACxK,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,IAAY,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA,CAAC,CAAC;AAChM,SAAS,QAAQ,CAAC,MAAc,IAAY,OAAO,GAAG,MAAM,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAA,CAAC,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,17 @@ export interface AttachmentDelivery {
14
14
  export declare class AttachmentDeliveryService {
15
15
  private readonly root;
16
16
  private readonly db;
17
+ private readonly privateRoot?;
17
18
  private queues;
19
+ private closed;
20
+ private shards;
21
+ releaseOwner(id: string): void;
18
22
  private constructor();
23
+ static openPartitioned(root: string, privateRoot: (id: string) => string): Promise<AttachmentDeliveryService>;
24
+ private directory;
25
+ private database;
26
+ private existingDatabase;
27
+ importExisting(item: AttachmentDelivery, data: Buffer): Promise<void>;
19
28
  static open(root: string): Promise<AttachmentDeliveryService>;
20
29
  serial<T>(sessionId: string, work: () => Promise<T>): Promise<T>;
21
30
  get(id: string): AttachmentDelivery | undefined;
@@ -30,6 +39,7 @@ export declare class AttachmentDeliveryService {
30
39
  }, signal: AbortSignal): Promise<AttachmentDelivery>;
31
40
  bytes(item: AttachmentDelivery): Promise<Buffer>;
32
41
  deliver(item: AttachmentDelivery, send: (file: PartnerOutboundAttachment) => Promise<void>): Promise<AttachmentDelivery>;
42
+ freeze(): Promise<void>;
33
43
  close(): void;
34
44
  }
35
45
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/attachments/service.ts"],"names":[],"mappings":"AAMA,OAAO,EAA2B,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AAE/F,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;IACnF,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;CACpG;AAGD,4FAA4F;AAC5F,qBAAa,yBAAyB;IAEhB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAU,OAAO,CAAC,QAAQ,CAAC,EAAE;IADtE,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO;WACM,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAS7D,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAKtE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAK/C,OAAO,CAAC,IAAI;IAGN,OAAO,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoCvK,KAAK,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAKhD,OAAO,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,yBAAyB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAY9H,KAAK,IAAI,IAAI;CACd"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/attachments/service.ts"],"names":[],"mappings":"AAMA,OAAO,EAA2B,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AAE/F,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;IACnF,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;CACpG;AAGD,4FAA4F;AAC5F,qBAAa,yBAAyB;IAKhB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAU,OAAO,CAAC,QAAQ,CAAC,EAAE;IAAgB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAJnH,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,MAAM,CAAkC;IAChD,YAAY,CAAC,EAAE,EAAC,MAAM,GAAE,IAAI;IAC5B,OAAO;WACM,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAOnH,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,gBAAgB;IAQlB,cAAc,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WAM9D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAS7D,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAKtE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAQ/C,OAAO,CAAC,IAAI;IAIN,OAAO,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAsCvK,KAAK,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAMhD,OAAO,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,yBAAyB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAYxH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAC7B,KAAK,IAAI,IAAI;CACd"}
@@ -1,5 +1,5 @@
1
1
  import { createHash } from 'node:crypto';
2
- import { constants } from 'node:fs';
2
+ import { constants, mkdirSync, chmodSync, existsSync } from 'node:fs';
3
3
  import { chmod, mkdir, open, realpath, readFile, writeFile } from 'node:fs/promises';
4
4
  import { join } from 'node:path';
5
5
  import { DatabaseSync } from 'node:sqlite';
@@ -10,10 +10,55 @@ const MAX_STORED_BYTES = 512 * 1024 * 1024;
10
10
  export class AttachmentDeliveryService {
11
11
  root;
12
12
  db;
13
+ privateRoot;
13
14
  queues = new Map();
14
- constructor(root, db) {
15
+ closed = false;
16
+ shards = new Map();
17
+ releaseOwner(id) { this.shards.get(id)?.close(); this.shards.delete(id); }
18
+ constructor(root, db, privateRoot) {
15
19
  this.root = root;
16
20
  this.db = db;
21
+ this.privateRoot = privateRoot;
22
+ }
23
+ static async openPartitioned(root, privateRoot) {
24
+ await mkdir(root, { recursive: true, mode: 0o700 });
25
+ const path = join(root, 'index.sqlite'), db = new DatabaseSync(path);
26
+ db.exec('CREATE TABLE IF NOT EXISTS owners(id TEXT PRIMARY KEY, companion_id TEXT NOT NULL)');
27
+ await chmod(path, 0o600);
28
+ return new AttachmentDeliveryService(root, db, privateRoot);
29
+ }
30
+ directory(owner) { return this.privateRoot ? join(this.privateRoot(owner), 'deliveries') : this.root; }
31
+ database(owner) {
32
+ if (this.closed)
33
+ throw new Error('附件存储已关闭');
34
+ if (!this.privateRoot)
35
+ return this.db;
36
+ const cached = this.shards.get(owner);
37
+ if (cached)
38
+ return cached;
39
+ const directory = this.directory(owner);
40
+ mkdirSync(directory, { recursive: true, mode: 0o700 });
41
+ const path = join(directory, 'deliveries.sqlite'), db = new DatabaseSync(path);
42
+ chmodSync(path, 0o600);
43
+ db.exec('PRAGMA busy_timeout=3000; CREATE TABLE IF NOT EXISTS deliveries(id TEXT PRIMARY KEY, payload TEXT NOT NULL, size INTEGER NOT NULL)');
44
+ this.shards.set(owner, db);
45
+ return db;
46
+ }
47
+ existingDatabase(owner) {
48
+ if (this.privateRoot && !existsSync(join(this.directory(owner), 'deliveries.sqlite'))) {
49
+ this.shards.get(owner)?.close();
50
+ this.shards.delete(owner);
51
+ this.db.prepare('DELETE FROM owners WHERE companion_id=?').run(owner);
52
+ return undefined;
53
+ }
54
+ return this.database(owner);
55
+ }
56
+ async importExisting(item, data) {
57
+ if (!/^[a-f0-9]{64}$/.test(item.id) || data.length !== item.size || createHash('sha256').update(data).digest('hex') !== item.hash)
58
+ throw new Error('附件迁移校验失败');
59
+ this.database(item.companionId);
60
+ await writeFile(join(this.directory(item.companionId), item.id), data, { flag: 'wx', mode: 0o600 });
61
+ this.save(item);
17
62
  }
18
63
  static async open(root) {
19
64
  await mkdir(root, { recursive: true, mode: 0o700 });
@@ -42,11 +87,18 @@ export class AttachmentDeliveryService {
42
87
  get(id) {
43
88
  if (!/^[a-f0-9]{64}$/.test(id))
44
89
  return undefined;
45
- const row = this.db.prepare('SELECT payload FROM deliveries WHERE id = ?').get(id);
90
+ if (this.closed)
91
+ throw new Error('附件存储已关闭');
92
+ const owner = this.privateRoot ? this.db.prepare('SELECT companion_id FROM owners WHERE id = ?').get(id) : undefined;
93
+ if (this.privateRoot && !owner)
94
+ return undefined;
95
+ const row = this.existingDatabase(String(owner?.companion_id ?? ''))?.prepare('SELECT payload FROM deliveries WHERE id = ?').get(id);
46
96
  return row ? JSON.parse(String(row.payload)) : undefined;
47
97
  }
48
98
  save(item) {
49
- this.db.prepare('INSERT OR REPLACE INTO deliveries(id,payload,size) VALUES (?,?,?)').run(item.id, JSON.stringify(item), item.size);
99
+ this.database(item.companionId).prepare('INSERT OR REPLACE INTO deliveries(id,payload,size) VALUES (?,?,?)').run(item.id, JSON.stringify(item), item.size);
100
+ if (this.privateRoot)
101
+ this.db.prepare('INSERT OR REPLACE INTO owners(id,companion_id) VALUES (?,?)').run(item.id, item.companionId);
50
102
  }
51
103
  async prepare(input, signal) {
52
104
  signal.throwIfAborted();
@@ -85,10 +137,12 @@ export class AttachmentDeliveryService {
85
137
  const existing = this.get(id);
86
138
  if (existing)
87
139
  return existing;
88
- const used = Number(this.db.prepare('SELECT COALESCE(SUM(size),0) AS total FROM deliveries').get().total);
140
+ const owners = this.privateRoot ? this.db.prepare('SELECT DISTINCT companion_id FROM owners').all().map(row => String(row.companion_id)) : [''];
141
+ const used = owners.reduce((sum, owner) => sum + Number(this.existingDatabase(owner)?.prepare('SELECT COALESCE(SUM(size),0) AS total FROM deliveries').get().total ?? 0), 0);
89
142
  if (used + data.length > MAX_STORED_BYTES)
90
143
  throw new Error('附件交付存储已达到 512 MB,请先由管理员清理历史交付;未发送文件');
91
- await writeFile(join(this.root, id), data, { flag: 'wx', mode: 0o600 }).catch(error => { if (error.code !== 'EEXIST')
144
+ this.database(input.companionId);
145
+ await writeFile(join(this.directory(input.companionId), id), data, { flag: 'wx', mode: 0o600 }).catch(error => { if (error.code !== 'EEXIST')
92
146
  throw error; });
93
147
  const item = { id, companionId: input.companionId, sessionId: input.sessionId, name: file.name, mediaType: file.mediaType, kind: file.kind, size: data.length, hash, channel: input.channel ? 'pending' : 'none' };
94
148
  await this.bytes(item);
@@ -96,7 +150,9 @@ export class AttachmentDeliveryService {
96
150
  return item;
97
151
  }
98
152
  async bytes(item) {
99
- const data = await readFile(join(this.root, item.id));
153
+ if (!/^[a-f0-9]{64}$/.test(item.id))
154
+ throw new Error('附件标识无效');
155
+ const data = await readFile(join(this.directory(item.companionId), item.id));
100
156
  if (data.length !== item.size || createHash('sha256').update(data).digest('hex') !== item.hash)
101
157
  throw new Error('交付附件校验失败,请重新提交原文件');
102
158
  return data;
@@ -106,7 +162,7 @@ export class AttachmentDeliveryService {
106
162
  return item;
107
163
  await this.bytes(item);
108
164
  try {
109
- await send({ path: join(this.root, item.id), name: item.name, kind: item.kind, mediaType: item.mediaType });
165
+ await send({ path: join(this.directory(item.companionId), item.id), name: item.name, kind: item.kind, mediaType: item.mediaType });
110
166
  item.channel = 'sent';
111
167
  this.save(item);
112
168
  }
@@ -117,6 +173,9 @@ export class AttachmentDeliveryService {
117
173
  }
118
174
  return item;
119
175
  }
120
- close() { this.db.close(); }
176
+ async freeze() { await Promise.allSettled(this.queues.values()); this.close(); }
177
+ close() { if (this.closed)
178
+ return; this.closed = true; for (const db of this.shards.values())
179
+ db.close(); this.db.close(); }
121
180
  }
122
181
  //# sourceMappingURL=service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/attachments/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/attachments/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACrE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,EAAE,uBAAuB,EAAkC,MAAM,uBAAuB,CAAA;AAM/F,MAAM,gBAAgB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAA;AAE1C,4FAA4F;AAC5F,MAAM,OAAO,yBAAyB;IAKC;IAA+B;IAAmC;IAJ/F,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAA;IAC5C,MAAM,GAAG,KAAK,CAAA;IACd,MAAM,GAAG,IAAI,GAAG,EAAwB,CAAA;IAChD,YAAY,CAAC,EAAS,IAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA,CAAA,CAAC;IAClF,YAAqC,IAAY,EAAmB,EAAgB,EAAmB,WAAoC;QAAtG,SAAI,GAAJ,IAAI,CAAQ;QAAmB,OAAE,GAAF,EAAE,CAAc;QAAmB,gBAAW,GAAX,WAAW,CAAyB;IAAG,CAAC;IAC/I,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,WAAmC;QAC5E,MAAM,KAAK,CAAC,IAAI,EAAC,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,CAAC,CAAA;QAC7C,MAAM,IAAI,GAAC,IAAI,CAAC,IAAI,EAAC,cAAc,CAAC,EAAC,EAAE,GAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;QAC9D,EAAE,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAA;QAC7F,MAAM,KAAK,CAAC,IAAI,EAAC,KAAK,CAAC,CAAA;QACvB,OAAO,IAAI,yBAAyB,CAAC,IAAI,EAAC,EAAE,EAAC,WAAW,CAAC,CAAA;IAC3D,CAAC;IACO,SAAS,CAAC,KAAa,IAAY,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA,CAAC,CAAC;IACrH,QAAQ,CAAC,KAAa;QAC5B,IAAG,IAAI,CAAC,MAAM;YAAC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;QACzC,IAAG,CAAC,IAAI,CAAC,WAAW;YAAC,OAAO,IAAI,CAAC,EAAE,CAAA;QACnC,MAAM,MAAM,GAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAAA,IAAG,MAAM;YAAC,OAAO,MAAM,CAAA;QAC3D,MAAM,SAAS,GAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAAA,SAAS,CAAC,SAAS,EAAC,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,CAAC,CAAA;QACtF,MAAM,IAAI,GAAC,IAAI,CAAC,SAAS,EAAC,mBAAmB,CAAC,EAAC,EAAE,GAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;QAAA,SAAS,CAAC,IAAI,EAAC,KAAK,CAAC,CAAA;QAC9F,EAAE,CAAC,IAAI,CAAC,oIAAoI,CAAC,CAAA;QAC7I,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,CAAC,CAAC;QAAA,OAAO,EAAE,CAAA;IACrC,CAAC;IACO,gBAAgB,CAAC,KAAY;QACnC,IAAG,IAAI,CAAC,WAAW,IAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC;YAClF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACzD,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACrE,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,IAAwB,EAAE,IAAY;QACzD,IAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAE,IAAI,CAAC,MAAM,KAAG,IAAI,CAAC,IAAI,IAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAG,IAAI,CAAC,IAAI;YAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;QACpJ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC/B,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAC,IAAI,CAAC,EAAE,CAAC,EAAC,IAAI,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,CAAC,CAAA;QAC3F,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAY;QAC5B,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,EAAE,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;QACzE,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACxB,EAAE,CAAC,IAAI,CAAC,qIAAqI,CAAC,CAAA;YAC9I,OAAO,IAAI,yBAAyB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAAC,MAAM,KAAK,CAAA;QAAC,CAAC;IAC7C,CAAC;IACD,KAAK,CAAC,MAAM,CAAI,SAAiB,EAAE,IAAsB;QACvD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QAC/B,IAAI,CAAC;YAAC,OAAO,MAAM,GAAG,CAAA;QAAC,CAAC;gBAAS,CAAC;YAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;gBAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAAC,CAAC;IAC5G,CAAC;IACD,GAAG,CAAC,EAAU;QACZ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,OAAO,SAAS,CAAA;QAChD,IAAG,IAAI,CAAC,MAAM;YAAC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;QACzC,MAAM,KAAK,GAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAClH,IAAG,IAAI,CAAC,WAAW,IAAE,CAAC,KAAK;YAAC,OAAO,SAAS,CAAA;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACpI,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAuB,CAAC,CAAC,CAAC,SAAS,CAAA;IAChF,CAAC;IACO,IAAI,CAAC,IAAwB;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,mEAAmE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1J,IAAG,IAAI,CAAC,WAAW;YAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAClI,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,KAA4G,EAAE,MAAmB;QAC7I,MAAM,CAAC,cAAc,EAAE,CAAA;QACvB,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAC9H,MAAM,KAAK,GAAG,MAAM,0BAA0B,CAAC,SAAS,KAAK,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;QAClF,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;QACzF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;QAC/E,IAAI,IAAY,CAAA;QAChB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YAChC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,uBAAuB;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;YAC/F,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;YAC1C,IAAI,KAAK,GAAG,CAAC,CAAA;YACb,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAM,CAAC,cAAc,EAAE,CAAA;gBACvB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE,KAAK,CAAC,CAAA;gBACpF,IAAI,CAAC,SAAS;oBAAE,MAAK;gBACrB,KAAK,IAAI,SAAS,CAAA;YACpB,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YACjC,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;YACpK,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QAClC,CAAC;gBAAS,CAAC;YAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QAAC,CAAC;QAClC,MAAM,CAAC,cAAc,EAAE,CAAA;QACvB,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC5D,MAAM,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,WAAW,EAAC,KAAK,CAAC,SAAS,EAAC,KAAK,CAAC,IAAI,EAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACnI,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC7B,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAA;QAC7B,MAAM,MAAM,GAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,EAAE,CAAA,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAC3I,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAC,KAAK,EAAC,EAAE,CAAA,GAAG,GAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,uDAAuD,CAAC,CAAC,GAAG,EAAG,CAAC,KAAK,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA;QACvK,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,gBAAgB;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACjG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAChC,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAA,CAAC,CAAC,CAAC,CAAA;QAC5J,MAAM,IAAI,GAAuB,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAA;QACtO,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACf,OAAO,IAAI,CAAA;IACb,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,IAAwB;QAClC,IAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC5D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QAC5E,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;QACpI,OAAO,IAAI,CAAA;IACb,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,IAAwB,EAAE,IAAwD;QAC9F,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM;YAAE,OAAO,IAAI,CAAA;QACnE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACtB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;YAC9H,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACxC,MAAM,KAAK,CAAA;QACb,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,KAAK,CAAC,MAAM,KAAoB,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA,CAAC,CAAC;IAC9F,KAAK,KAAW,IAAG,IAAI,CAAC,MAAM;QAAC,OAAO,CAAA,IAAI,CAAC,MAAM,GAAC,IAAI,CAAC,CAAA,KAAI,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;QAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA,CAAC,CAAC;CACzH"}
@@ -0,0 +1,3 @@
1
+ import type { AvatarImage } from './direct/avatar.js';
2
+ export declare function readAvatarImage(cwd: string, path: string, signal: AbortSignal): Promise<AvatarImage>;
3
+ //# sourceMappingURL=avatar-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar-file.d.ts","sourceRoot":"","sources":["../../src/channels/avatar-file.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGrD,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CA2B1G"}
@@ -0,0 +1,43 @@
1
+ import { constants } from 'node:fs';
2
+ import { open, realpath } from 'node:fs/promises';
3
+ import { isAbsolute, relative, resolve, sep } from 'node:path';
4
+ const LIMIT = 2 * 1024 * 1024;
5
+ export async function readAvatarImage(cwd, path, signal) {
6
+ signal.throwIfAborted();
7
+ if (!path || path.length > 4096 || path.includes('\0') || /^[a-z]+:\/\//i.test(path))
8
+ throw new Error('头像必须使用当前会话目录内的本地图片路径');
9
+ const root = await realpath(cwd), actual = await realpath(resolve(root, path));
10
+ const rel = relative(root, actual);
11
+ if (rel === '..' || rel.startsWith(`..${sep}`) || isAbsolute(rel))
12
+ throw new Error('头像图片超出当前会话目录,不能读取其他伙伴或系统文件');
13
+ const file = await open(actual, constants.O_RDONLY | constants.O_NOFOLLOW);
14
+ try {
15
+ const before = await file.stat();
16
+ if (!before.isFile() || before.size < 4 || before.size > LIMIT)
17
+ throw new Error('头像必须是 2 MB 以内的 PNG/JPEG 普通文件');
18
+ const bytes = Buffer.alloc(before.size + 1);
19
+ let size = 0;
20
+ while (size < bytes.length) {
21
+ signal.throwIfAborted();
22
+ const read = await file.read(bytes, size, bytes.length - size, size);
23
+ if (!read.bytesRead)
24
+ break;
25
+ size += read.bytesRead;
26
+ }
27
+ const after = await file.stat();
28
+ if (size !== before.size || after.size !== before.size || after.mtimeMs !== before.mtimeMs)
29
+ throw new Error('头像文件在读取时发生变化,请重试');
30
+ const data = bytes.subarray(0, size);
31
+ const png = data.length >= 24 && data.subarray(0, 8).equals(Buffer.from([137, 80, 78, 71, 13, 10, 26, 10])) && data.toString('ascii', 12, 16) === 'IHDR';
32
+ const jpeg = data[0] === 255 && data[1] === 216 && data[2] === 255;
33
+ if (!png && !jpeg)
34
+ throw new Error('头像文件不是有效的 PNG/JPEG 图片;不支持 SVG、HTML 或仅修改扩展名的文件');
35
+ if (png && (!data.readUInt32BE(16) || !data.readUInt32BE(20) || data.readUInt32BE(16) > 4096 || data.readUInt32BE(20) > 4096))
36
+ throw new Error('PNG 头像尺寸不得超过 4096 × 4096');
37
+ return { bytes: data, mediaType: png ? 'image/png' : 'image/jpeg' };
38
+ }
39
+ finally {
40
+ await file.close();
41
+ }
42
+ }
43
+ //# sourceMappingURL=avatar-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar-file.js","sourceRoot":"","sources":["../../src/channels/avatar-file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { ToolDefinition } from '@deepseek-ai/dsh-tools';
2
+ import type { PartnerStore } from '../store.js';
3
+ import type { PartnerCredentialVault } from '../credentials.js';
4
+ /** One service owns serialization and live authorization; credentials never enter tool results. */
5
+ export declare class ChannelAvatarService {
6
+ private readonly store;
7
+ private readonly credentials;
8
+ private readonly queues;
9
+ constructor(store: PartnerStore, credentials: PartnerCredentialVault);
10
+ tool(companionId: string): ToolDefinition;
11
+ }
12
+ //# sourceMappingURL=avatar-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar-tool.d.ts","sourceRoot":"","sources":["../../src/channels/avatar-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAK/D,mGAAmG;AACnG,qBAAa,oBAAoB;IAEnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAgB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAD9E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;gBAChC,KAAK,EAAE,YAAY,EAAmB,WAAW,EAAE,sBAAsB;IAEtG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc;CAiD1C"}
@@ -0,0 +1,78 @@
1
+ import { directConfig } from './direct/transport.js';
2
+ import { updateDirectAvatar } from './direct/avatar.js';
3
+ import { readAvatarImage } from './avatar-file.js';
4
+ /** One service owns serialization and live authorization; credentials never enter tool results. */
5
+ export class ChannelAvatarService {
6
+ store;
7
+ credentials;
8
+ queues = new Map();
9
+ constructor(store, credentials) {
10
+ this.store = store;
11
+ this.credentials = credentials;
12
+ }
13
+ tool(companionId) {
14
+ const service = this;
15
+ return {
16
+ name: 'partner_channel_avatar',
17
+ description: '伙伴默认可用:修改自己的 Matrix / Mattermost 渠道账号头像。先 list 查看可修改渠道,再 set 提供 channelId 和当前会话目录内的真实 PNG/JPEG 图片 path(最多 2 MB)。账号级修改影响该账号全部会话,不是房间头像或 DSH 卡片图案。不支持微信、不改其他伙伴、禁止跨伙伴共用账号修改。不自动生成或下载 URL,必须以 updated=true 为成功依据。',
18
+ parameters: { type: 'object', additionalProperties: false, properties: { action: { type: 'string', enum: ['list', 'set'] }, channelId: { type: 'string' }, path: { type: 'string' } }, required: ['action'] },
19
+ output: { schema: { type: 'string' }, render: (_args, value) => [{ type: 'text', text: String(value) }] },
20
+ presentCall: () => ({ card: 'generic', title: '伙伴渠道头像' }),
21
+ async execute(raw, exec) {
22
+ const input = raw;
23
+ const agent = exec.agent;
24
+ if (!agent || !input || typeof input !== 'object')
25
+ throw new Error('头像修改需要当前伙伴会话');
26
+ const authorize = () => {
27
+ exec.signal.throwIfAborted();
28
+ const state = service.store.snapshot();
29
+ if (!state.companions.some(companion => companion.id === companionId) || service.store.isCompanionRemoving(companionId)
30
+ || !state.sessions.some(route => route.sessionId === agent.session.id && route.companionId === companionId))
31
+ throw new Error('伙伴已删除、正在删除或会话不属于当前伙伴');
32
+ };
33
+ authorize();
34
+ const owned = service.store.snapshot().channels.filter(channel => channel.companionId === companionId && (channel.platform === 'matrix' || channel.platform === 'mattermost'));
35
+ if (input.action === 'list')
36
+ return JSON.stringify({ channels: owned.map(channel => ({ channelId: channel.id, name: channel.name, platform: channel.platform, accountId: channel.accountId, enabled: channel.enabled })), scope: '账号级头像,跨伙伴共用账号禁止修改' });
37
+ if (input.action !== 'set' || typeof input.channelId !== 'string' || typeof input.path !== 'string')
38
+ throw new Error('set 需要 channelId 和本地图片 path');
39
+ const channel = owned.find(item => item.id === input.channelId);
40
+ if (!channel || !channel.enabled || !channel.direct)
41
+ throw new Error('渠道不存在、未启用或不属于当前伙伴');
42
+ const cwd = agent.session.header.cwd;
43
+ if (!cwd)
44
+ throw new Error('当前会话缺少工作目录');
45
+ const key = `${channel.platform}:${channel.direct.baseUrl}:${channel.accountId}`;
46
+ const previous = service.queues.get(key) ?? Promise.resolve();
47
+ const path = input.path;
48
+ const job = previous.catch(() => { }).then(async () => {
49
+ const guard = () => {
50
+ authorize();
51
+ const state = service.store.snapshot(), current = state.channels.find(item => item.id === channel.id);
52
+ if (!current?.enabled || current.companionId !== companionId || current.platform !== channel.platform || current.accountId !== channel.accountId || current.direct?.baseUrl !== channel.direct?.baseUrl)
53
+ throw new Error('渠道配置已变化,头像未继续更新');
54
+ if (state.channels.some(other => other.companionId !== companionId && other.platform === channel.platform && other.accountId === channel.accountId && other.direct?.baseUrl.replace(/\/$/, '') === channel.direct?.baseUrl.replace(/\/$/, '')))
55
+ throw new Error('该账号被其他伙伴共用,修改头像会影响其他伙伴;请先使用独立账号');
56
+ };
57
+ guard();
58
+ const image = await readAvatarImage(cwd, path, exec.signal);
59
+ const credential = await service.credentials.read(channel.id);
60
+ const config = directConfig({ platform: channel.platform, baseUrl: credential.baseUrl, targetId: '' });
61
+ if (config.baseUrl !== channel.direct.baseUrl.replace(/\/$/, ''))
62
+ throw new Error('渠道地址和凭据地址不一致,请重新配置');
63
+ const result = await updateDirectAvatar(config, credential.botToken, channel.accountId, image, exec.signal, guard);
64
+ return JSON.stringify({ updated: true, channelId: channel.id, platform: channel.platform, ...result, scope: 'account' });
65
+ });
66
+ service.queues.set(key, job);
67
+ try {
68
+ return await job;
69
+ }
70
+ finally {
71
+ if (service.queues.get(key) === job)
72
+ service.queues.delete(key);
73
+ }
74
+ },
75
+ };
76
+ }
77
+ }
78
+ //# sourceMappingURL=avatar-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar-tool.js","sourceRoot":"","sources":["../../src/channels/avatar-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { DirectConfig } from './transport.js';
2
+ export interface AvatarImage {
3
+ bytes: Uint8Array;
4
+ mediaType: 'image/png' | 'image/jpeg';
5
+ }
6
+ /** Only updates the authenticated account. No caller-controlled user id or remote image fetch. */
7
+ export declare function updateDirectAvatar(config: DirectConfig, token: string, accountId: string, image: AvatarImage, signal: AbortSignal, guard: () => void): Promise<{
8
+ accountId: string;
9
+ avatar: string;
10
+ }>;
11
+ //# sourceMappingURL=avatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../../src/channels/direct/avatar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,MAAM,WAAW,WAAW;IAAG,KAAK,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,WAAW,GAAG,YAAY,CAAA;CAAE;AAEzF,kGAAkG;AAClG,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAqC3M"}