@zhin.js/client 1.0.17 → 1.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 (116) hide show
  1. package/client/app.ts +228 -0
  2. package/client/bootstrap/loadConsoleEntries.test.ts +32 -0
  3. package/client/bootstrap/loadConsoleEntries.ts +149 -0
  4. package/client/console-utils/cn.ts +6 -0
  5. package/client/console-utils/remoteApi.ts +48 -0
  6. package/client/index.ts +61 -14
  7. package/client/persistence/idb-store.ts +76 -0
  8. package/client/runtime/index.ts +12 -0
  9. package/client/store/createRegistryStore.ts +46 -0
  10. package/client/websocket/hooks.ts +218 -510
  11. package/client/websocket/index.ts +6 -43
  12. package/client/websocket/instance.ts +10 -32
  13. package/client/websocket/manager.ts +301 -385
  14. package/client/websocket/remote-settings.ts +25 -0
  15. package/client/websocket/types.ts +58 -222
  16. package/dist/app.d.ts +95 -0
  17. package/dist/app.d.ts.map +1 -0
  18. package/dist/app.js +147 -0
  19. package/dist/app.js.map +1 -0
  20. package/dist/bootstrap/loadConsoleEntries.d.ts +26 -0
  21. package/dist/bootstrap/loadConsoleEntries.d.ts.map +1 -0
  22. package/dist/bootstrap/loadConsoleEntries.js +111 -0
  23. package/dist/bootstrap/loadConsoleEntries.js.map +1 -0
  24. package/dist/bootstrap/loadConsoleEntries.test.d.ts +2 -0
  25. package/dist/bootstrap/loadConsoleEntries.test.d.ts.map +1 -0
  26. package/dist/bootstrap/loadConsoleEntries.test.js +27 -0
  27. package/dist/bootstrap/loadConsoleEntries.test.js.map +1 -0
  28. package/dist/console-utils/cn.d.ts +3 -0
  29. package/dist/console-utils/cn.d.ts.map +1 -0
  30. package/dist/console-utils/cn.js +6 -0
  31. package/dist/console-utils/cn.js.map +1 -0
  32. package/dist/console-utils/remoteApi.d.ts +7 -0
  33. package/dist/console-utils/remoteApi.d.ts.map +1 -0
  34. package/dist/console-utils/remoteApi.js +41 -0
  35. package/dist/console-utils/remoteApi.js.map +1 -0
  36. package/dist/index.d.ts +11 -7
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +13 -14
  39. package/dist/index.js.map +1 -1
  40. package/dist/persistence/idb-store.d.ts +15 -0
  41. package/dist/persistence/idb-store.d.ts.map +1 -0
  42. package/dist/persistence/idb-store.js +61 -0
  43. package/dist/persistence/idb-store.js.map +1 -0
  44. package/dist/runtime/index.d.ts +6 -0
  45. package/dist/runtime/index.d.ts.map +1 -0
  46. package/dist/runtime/index.js +10 -0
  47. package/dist/runtime/index.js.map +1 -0
  48. package/dist/store/createRegistryStore.d.ts +9 -0
  49. package/dist/store/createRegistryStore.d.ts.map +1 -0
  50. package/dist/store/createRegistryStore.js +38 -0
  51. package/dist/store/createRegistryStore.js.map +1 -0
  52. package/dist/websocket/hooks.d.ts +35 -58
  53. package/dist/websocket/hooks.d.ts.map +1 -1
  54. package/dist/websocket/hooks.js +134 -410
  55. package/dist/websocket/hooks.js.map +1 -1
  56. package/dist/websocket/index.d.ts +5 -10
  57. package/dist/websocket/index.d.ts.map +1 -1
  58. package/dist/websocket/index.js +5 -25
  59. package/dist/websocket/index.js.map +1 -1
  60. package/dist/websocket/instance.d.ts +1 -14
  61. package/dist/websocket/instance.d.ts.map +1 -1
  62. package/dist/websocket/instance.js +2 -20
  63. package/dist/websocket/instance.js.map +1 -1
  64. package/dist/websocket/manager.d.ts +28 -93
  65. package/dist/websocket/manager.d.ts.map +1 -1
  66. package/dist/websocket/manager.js +213 -221
  67. package/dist/websocket/manager.js.map +1 -1
  68. package/dist/websocket/remote-settings.d.ts +5 -0
  69. package/dist/websocket/remote-settings.d.ts.map +1 -0
  70. package/dist/websocket/remote-settings.js +23 -0
  71. package/dist/websocket/remote-settings.js.map +1 -0
  72. package/dist/websocket/types.d.ts +35 -122
  73. package/dist/websocket/types.d.ts.map +1 -1
  74. package/dist/websocket/types.js +4 -13
  75. package/dist/websocket/types.js.map +1 -1
  76. package/package.json +13 -11
  77. package/client/router/index.tsx +0 -54
  78. package/client/store/index.ts +0 -132
  79. package/client/store/reducers/config.ts +0 -135
  80. package/client/store/reducers/index.ts +0 -19
  81. package/client/store/reducers/route.ts +0 -126
  82. package/client/store/reducers/script.ts +0 -109
  83. package/client/store/reducers/ui.ts +0 -31
  84. package/client/websocket/messageHandler.ts +0 -208
  85. package/dist/router/index.d.ts +0 -25
  86. package/dist/router/index.d.ts.map +0 -1
  87. package/dist/router/index.js +0 -48
  88. package/dist/router/index.js.map +0 -1
  89. package/dist/store/index.d.ts +0 -19
  90. package/dist/store/index.d.ts.map +0 -1
  91. package/dist/store/index.js +0 -67
  92. package/dist/store/index.js.map +0 -1
  93. package/dist/store/reducers/config.d.ts +0 -54
  94. package/dist/store/reducers/config.d.ts.map +0 -1
  95. package/dist/store/reducers/config.js +0 -78
  96. package/dist/store/reducers/config.js.map +0 -1
  97. package/dist/store/reducers/index.d.ts +0 -13
  98. package/dist/store/reducers/index.d.ts.map +0 -1
  99. package/dist/store/reducers/index.js +0 -11
  100. package/dist/store/reducers/index.js.map +0 -1
  101. package/dist/store/reducers/route.d.ts +0 -30
  102. package/dist/store/reducers/route.d.ts.map +0 -1
  103. package/dist/store/reducers/route.js +0 -85
  104. package/dist/store/reducers/route.js.map +0 -1
  105. package/dist/store/reducers/script.d.ts +0 -13
  106. package/dist/store/reducers/script.d.ts.map +0 -1
  107. package/dist/store/reducers/script.js +0 -78
  108. package/dist/store/reducers/script.js.map +0 -1
  109. package/dist/store/reducers/ui.d.ts +0 -8
  110. package/dist/store/reducers/ui.d.ts.map +0 -1
  111. package/dist/store/reducers/ui.js +0 -23
  112. package/dist/store/reducers/ui.js.map +0 -1
  113. package/dist/websocket/messageHandler.d.ts +0 -58
  114. package/dist/websocket/messageHandler.d.ts.map +0 -1
  115. package/dist/websocket/messageHandler.js +0 -174
  116. package/dist/websocket/messageHandler.js.map +0 -1
@@ -1,58 +0,0 @@
1
- /**
2
- * WebSocket 消息处理器
3
- * 负责处理不同类型的 WebSocket 消息并分发到对应的处理逻辑
4
- */
5
- import type { WebSocketMessage } from './types';
6
- export declare class MessageHandler {
7
- /**
8
- * 处理 WebSocket 消息
9
- */
10
- static handle(message: WebSocketMessage): void;
11
- /**
12
- * 处理脚本同步消息
13
- */
14
- private static handleScriptSync;
15
- /**
16
- * 处理脚本添加消息
17
- */
18
- private static handleScriptAdd;
19
- /**
20
- * 处理脚本删除消息
21
- */
22
- private static handleScriptDelete;
23
- /**
24
- * 处理配置更新消息
25
- */
26
- private static handleConfigUpdated;
27
- /**
28
- * 处理批量配置消息
29
- */
30
- private static handleConfigBatch;
31
- /**
32
- * 处理配置错误消息
33
- */
34
- private static handleConfigError;
35
- /**
36
- * 处理 Schema 更新消息
37
- */
38
- private static handleSchemaUpdated;
39
- /**
40
- * 处理批量 Schema 消息
41
- */
42
- private static handleSchemaBatch;
43
- /**
44
- * 处理轻量 HMR 刷新通知
45
- * 服务端监听到入口目录文件变更后发送此消息,客户端直接刷新页面
46
- */
47
- private static handleHmrReload;
48
- /**
49
- * 处理系统重启通知
50
- * 服务端即将重启,延迟后刷新页面以重新连接
51
- */
52
- private static handleSystemRestart;
53
- /**
54
- * 处理系统消息
55
- */
56
- private static handleSystemMessage;
57
- }
58
- //# sourceMappingURL=messageHandler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messageHandler.d.ts","sourceRoot":"","sources":["../../client/websocket/messageHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,qBAAa,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAkE9C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAW/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAO9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAOjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IASlC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAMhC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAShC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IASlC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAMhC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAM9B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAOlC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;CAInC"}
@@ -1,174 +0,0 @@
1
- /**
2
- * WebSocket 消息处理器
3
- * 负责处理不同类型的 WebSocket 消息并分发到对应的处理逻辑
4
- */
5
- import { store, syncEntries, addEntry, removeEntry, loadScripts, loadScript, unloadScript, updateConfig, updateSchema, updateConfigs, updateSchemas, setError } from '../store';
6
- export class MessageHandler {
7
- /**
8
- * 处理 WebSocket 消息
9
- */
10
- static handle(message) {
11
- try {
12
- const t = message.type;
13
- if (t === 'bot:request' || t === 'bot:notice' || t === 'bot:message') {
14
- if (typeof window !== 'undefined') {
15
- window.dispatchEvent(new CustomEvent('zhin-console-bot-push', { detail: message }));
16
- }
17
- return;
18
- }
19
- switch (message.type) {
20
- // 脚本管理相关消息
21
- case 'sync':
22
- this.handleScriptSync(message);
23
- break;
24
- case 'add':
25
- this.handleScriptAdd(message);
26
- break;
27
- case 'delete':
28
- this.handleScriptDelete(message);
29
- break;
30
- // 配置管理相关消息
31
- case 'config:updated':
32
- this.handleConfigUpdated(message);
33
- break;
34
- case 'config:batch':
35
- this.handleConfigBatch(message);
36
- break;
37
- case 'config:error':
38
- this.handleConfigError(message);
39
- break;
40
- // Schema 管理相关消息
41
- case 'schema:updated':
42
- this.handleSchemaUpdated(message);
43
- break;
44
- case 'schema:batch':
45
- this.handleSchemaBatch(message);
46
- break;
47
- // 轻量 HMR:文件变更时刷新页面
48
- case 'hmr:reload':
49
- this.handleHmrReload(message);
50
- break;
51
- // 系统重启通知:延迟后刷新页面
52
- case 'system:restarting':
53
- this.handleSystemRestart();
54
- break;
55
- // 系统消息
56
- case 'init-data':
57
- case 'data-update':
58
- this.handleSystemMessage(message);
59
- break;
60
- default:
61
- console.warn('[WebSocket] Unknown message type:', message.type);
62
- }
63
- }
64
- catch (error) {
65
- console.error('[WebSocket] Message handling error:', error);
66
- }
67
- }
68
- /**
69
- * 处理脚本同步消息
70
- */
71
- static handleScriptSync(message) {
72
- if (message.data?.key === 'entries') {
73
- const entries = Array.isArray(message.data.value)
74
- ? message.data.value
75
- : [message.data.value];
76
- store.dispatch(syncEntries(entries));
77
- store.dispatch(loadScripts(entries));
78
- }
79
- }
80
- /**
81
- * 处理脚本添加消息
82
- */
83
- static handleScriptAdd(message) {
84
- if (message.data?.key === 'entries') {
85
- store.dispatch(addEntry(message.data.value));
86
- store.dispatch(loadScript(message.data.value));
87
- }
88
- }
89
- /**
90
- * 处理脚本删除消息
91
- */
92
- static handleScriptDelete(message) {
93
- if (message.data?.key === 'entries') {
94
- store.dispatch(removeEntry(message.data.value));
95
- store.dispatch(unloadScript(message.data.value));
96
- }
97
- }
98
- /**
99
- * 处理配置更新消息
100
- */
101
- static handleConfigUpdated(message) {
102
- if (message.pluginName && message.data !== undefined) {
103
- store.dispatch(updateConfig({
104
- pluginName: message.pluginName,
105
- config: message.data
106
- }));
107
- }
108
- }
109
- /**
110
- * 处理批量配置消息
111
- */
112
- static handleConfigBatch(message) {
113
- if (message.data) {
114
- store.dispatch(updateConfigs(message.data));
115
- }
116
- }
117
- /**
118
- * 处理配置错误消息
119
- */
120
- static handleConfigError(message) {
121
- if (message.pluginName && message.error) {
122
- store.dispatch(setError({
123
- pluginName: message.pluginName,
124
- error: message.error
125
- }));
126
- }
127
- }
128
- /**
129
- * 处理 Schema 更新消息
130
- */
131
- static handleSchemaUpdated(message) {
132
- if (message.pluginName && message.data !== undefined) {
133
- store.dispatch(updateSchema({
134
- pluginName: message.pluginName,
135
- schema: message.data
136
- }));
137
- }
138
- }
139
- /**
140
- * 处理批量 Schema 消息
141
- */
142
- static handleSchemaBatch(message) {
143
- if (message.data) {
144
- store.dispatch(updateSchemas(message.data));
145
- }
146
- }
147
- /**
148
- * 处理轻量 HMR 刷新通知
149
- * 服务端监听到入口目录文件变更后发送此消息,客户端直接刷新页面
150
- */
151
- static handleHmrReload(message) {
152
- const file = message.data?.file || '';
153
- console.info(`[HMR] 文件变更: ${file},正在刷新页面...`);
154
- window.location.reload();
155
- }
156
- /**
157
- * 处理系统重启通知
158
- * 服务端即将重启,延迟后刷新页面以重新连接
159
- */
160
- static handleSystemRestart() {
161
- console.info('[System] 服务端正在重启,稍后将自动刷新...');
162
- setTimeout(() => {
163
- window.location.reload();
164
- }, 3000);
165
- }
166
- /**
167
- * 处理系统消息
168
- */
169
- static handleSystemMessage(message) {
170
- // 系统消息暂时不需要特殊处理
171
- // 可以在这里添加系统级别的消息处理逻辑
172
- }
173
- }
174
- //# sourceMappingURL=messageHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messageHandler.js","sourceRoot":"","sources":["../../client/websocket/messageHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,KAAK,EACL,WAAW,EACX,QAAQ,EACR,WAAW,EACX,WAAW,EACX,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,QAAQ,EACT,MAAM,UAAU,CAAA;AAGjB,MAAM,OAAO,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,OAAyB;QACrC,IAAI,CAAC;YACH,MAAM,CAAC,GAAI,OAA4B,CAAC,IAAI,CAAA;YAC5C,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,aAAa,EAAE,CAAC;gBACrE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;oBAClC,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAC9D,CAAA;gBACH,CAAC;gBACD,OAAM;YACR,CAAC;YACD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,WAAW;gBACX,KAAK,MAAM;oBACT,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;oBAC9B,MAAK;gBACP,KAAK,KAAK;oBACR,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;oBAC7B,MAAK;gBACP,KAAK,QAAQ;oBACX,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;oBAChC,MAAK;gBAEP,WAAW;gBACX,KAAK,gBAAgB;oBACnB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;oBACjC,MAAK;gBACP,KAAK,cAAc;oBACjB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;oBAC/B,MAAK;gBACP,KAAK,cAAc;oBACjB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;oBAC/B,MAAK;gBAEP,gBAAgB;gBAChB,KAAK,gBAAgB;oBACnB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;oBACjC,MAAK;gBACP,KAAK,cAAc;oBACjB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;oBAC/B,MAAK;gBAEP,mBAAmB;gBACnB,KAAK,YAAY;oBACf,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;oBAC7B,MAAK;gBAEP,iBAAiB;gBACjB,KAAK,mBAAmB;oBACtB,IAAI,CAAC,mBAAmB,EAAE,CAAA;oBAC1B,MAAK;gBAEP,OAAO;gBACP,KAAK,WAAW,CAAC;gBACjB,KAAK,aAAa;oBAChB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;oBACjC,MAAK;gBAEP;oBACE,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;YACnE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAA;QAC7D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,gBAAgB,CAAC,OAAY;QAC1C,IAAI,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC/C,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;gBACpB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAExB,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;YACpC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,eAAe,CAAC,OAAY;QACzC,IAAI,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,SAAS,EAAE,CAAC;YACpC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;YAC5C,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,kBAAkB,CAAC,OAAY;QAC5C,IAAI,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,SAAS,EAAE,CAAC;YACpC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;YAC/C,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAClD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,mBAAmB,CAAC,OAAY;QAC7C,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACrD,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,MAAM,EAAE,OAAO,CAAC,IAAI;aACrB,CAAC,CAAC,CAAA;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,iBAAiB,CAAC,OAAY;QAC3C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,iBAAiB,CAAC,OAAY;QAC3C,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACxC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACtB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAC,CAAC,CAAA;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,mBAAmB,CAAC,OAAY;QAC7C,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACrD,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,MAAM,EAAE,OAAO,CAAC,IAAI;aACrB,CAAC,CAAC,CAAA;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,iBAAiB,CAAC,OAAY;QAC3C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,eAAe,CAAC,OAAY;QACzC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAA;QACrC,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,YAAY,CAAC,CAAA;QAC7C,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA;IAC1B,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,mBAAmB;QAChC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;QAC3C,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA;QAC1B,CAAC,EAAE,IAAI,CAAC,CAAA;IACV,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,mBAAmB,CAAC,OAAyB;QAC1D,gBAAgB;QAChB,qBAAqB;IACvB,CAAC;CACF"}