maoda-commander-tt 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/README.md +168 -0
  2. package/dist/bedrock/assert/assert.d.ts +5 -0
  3. package/dist/bedrock/assert/assert.d.ts.map +1 -0
  4. package/dist/bedrock/assert/assert.js +21 -0
  5. package/dist/bedrock/assert/assert.js.map +1 -0
  6. package/dist/bedrock/assert/index.d.ts +2 -0
  7. package/dist/bedrock/assert/index.d.ts.map +1 -0
  8. package/dist/bedrock/assert/index.js +3 -0
  9. package/dist/bedrock/assert/index.js.map +1 -0
  10. package/dist/bedrock/async/barrier.d.ts +20 -0
  11. package/dist/bedrock/async/barrier.d.ts.map +1 -0
  12. package/dist/bedrock/async/barrier.js +37 -0
  13. package/dist/bedrock/async/barrier.js.map +1 -0
  14. package/dist/bedrock/async/cancellation.d.ts +28 -0
  15. package/dist/bedrock/async/cancellation.d.ts.map +1 -0
  16. package/dist/bedrock/async/cancellation.js +156 -0
  17. package/dist/bedrock/async/cancellation.js.map +1 -0
  18. package/dist/bedrock/async/idle.d.ts +9 -0
  19. package/dist/bedrock/async/idle.d.ts.map +1 -0
  20. package/dist/bedrock/async/idle.js +2 -0
  21. package/dist/bedrock/async/idle.js.map +1 -0
  22. package/dist/bedrock/async/index.d.ts +7 -0
  23. package/dist/bedrock/async/index.d.ts.map +1 -0
  24. package/dist/bedrock/async/index.js +13 -0
  25. package/dist/bedrock/async/index.js.map +1 -0
  26. package/dist/bedrock/async/promise.d.ts +59 -0
  27. package/dist/bedrock/async/promise.d.ts.map +1 -0
  28. package/dist/bedrock/async/promise.js +124 -0
  29. package/dist/bedrock/async/promise.js.map +1 -0
  30. package/dist/bedrock/async/replace-token.d.ts +61 -0
  31. package/dist/bedrock/async/replace-token.d.ts.map +1 -0
  32. package/dist/bedrock/async/replace-token.js +86 -0
  33. package/dist/bedrock/async/replace-token.js.map +1 -0
  34. package/dist/bedrock/async/serial-async-task.d.ts +10 -0
  35. package/dist/bedrock/async/serial-async-task.d.ts.map +1 -0
  36. package/dist/bedrock/async/serial-async-task.js +101 -0
  37. package/dist/bedrock/async/serial-async-task.js.map +1 -0
  38. package/dist/bedrock/async/wait.d.ts +6 -0
  39. package/dist/bedrock/async/wait.d.ts.map +1 -0
  40. package/dist/bedrock/async/wait.js +8 -0
  41. package/dist/bedrock/async/wait.js.map +1 -0
  42. package/dist/bedrock/cache/index.d.ts +2 -0
  43. package/dist/bedrock/cache/index.d.ts.map +1 -0
  44. package/dist/bedrock/cache/index.js +2 -0
  45. package/dist/bedrock/cache/index.js.map +1 -0
  46. package/dist/bedrock/cache/lru.d.ts +14 -0
  47. package/dist/bedrock/cache/lru.d.ts.map +1 -0
  48. package/dist/bedrock/cache/lru.js +44 -0
  49. package/dist/bedrock/cache/lru.js.map +1 -0
  50. package/dist/bedrock/dispose/disposable-linked-list.d.ts +6 -0
  51. package/dist/bedrock/dispose/disposable-linked-list.d.ts.map +1 -0
  52. package/dist/bedrock/dispose/disposable-linked-list.js +26 -0
  53. package/dist/bedrock/dispose/disposable-linked-list.js.map +1 -0
  54. package/dist/bedrock/dispose/disposable-store.d.ts +12 -0
  55. package/dist/bedrock/dispose/disposable-store.d.ts.map +1 -0
  56. package/dist/bedrock/dispose/disposable-store.js +61 -0
  57. package/dist/bedrock/dispose/disposable-store.js.map +1 -0
  58. package/dist/bedrock/dispose/disposable-t.d.ts +25 -0
  59. package/dist/bedrock/dispose/disposable-t.d.ts.map +1 -0
  60. package/dist/bedrock/dispose/disposable-t.js +85 -0
  61. package/dist/bedrock/dispose/disposable-t.js.map +1 -0
  62. package/dist/bedrock/dispose/disposable-utils.d.ts +6 -0
  63. package/dist/bedrock/dispose/disposable-utils.d.ts.map +1 -0
  64. package/dist/bedrock/dispose/disposable-utils.js +12 -0
  65. package/dist/bedrock/dispose/disposable-utils.js.map +1 -0
  66. package/dist/bedrock/dispose/dispose-base.d.ts +5 -0
  67. package/dist/bedrock/dispose/dispose-base.d.ts.map +1 -0
  68. package/dist/bedrock/dispose/dispose-base.js +3 -0
  69. package/dist/bedrock/dispose/dispose-base.js.map +1 -0
  70. package/dist/bedrock/dispose/index.d.ts +11 -0
  71. package/dist/bedrock/dispose/index.d.ts.map +1 -0
  72. package/dist/bedrock/dispose/index.js +8 -0
  73. package/dist/bedrock/dispose/index.js.map +1 -0
  74. package/dist/bedrock/dispose/logger.d.ts +8 -0
  75. package/dist/bedrock/dispose/logger.d.ts.map +1 -0
  76. package/dist/bedrock/dispose/logger.js +26 -0
  77. package/dist/bedrock/dispose/logger.js.map +1 -0
  78. package/dist/bedrock/dispose/tracker.d.ts +13 -0
  79. package/dist/bedrock/dispose/tracker.d.ts.map +1 -0
  80. package/dist/bedrock/dispose/tracker.js +59 -0
  81. package/dist/bedrock/dispose/tracker.js.map +1 -0
  82. package/dist/bedrock/error/error-base.d.ts +23 -0
  83. package/dist/bedrock/error/error-base.d.ts.map +1 -0
  84. package/dist/bedrock/error/error-base.js +5 -0
  85. package/dist/bedrock/error/error-base.js.map +1 -0
  86. package/dist/bedrock/error/error-code.d.ts +34 -0
  87. package/dist/bedrock/error/error-code.d.ts.map +1 -0
  88. package/dist/bedrock/error/error-code.js +36 -0
  89. package/dist/bedrock/error/error-code.js.map +1 -0
  90. package/dist/bedrock/error/error-const.d.ts +2 -0
  91. package/dist/bedrock/error/error-const.d.ts.map +1 -0
  92. package/dist/bedrock/error/error-const.js +16 -0
  93. package/dist/bedrock/error/error-const.js.map +1 -0
  94. package/dist/bedrock/error/error-or.d.ts +2 -0
  95. package/dist/bedrock/error/error-or.d.ts.map +1 -0
  96. package/dist/bedrock/error/error-or.js +3 -0
  97. package/dist/bedrock/error/error-or.js.map +1 -0
  98. package/dist/bedrock/error/error-t.d.ts +7 -0
  99. package/dist/bedrock/error/error-t.d.ts.map +1 -0
  100. package/dist/bedrock/error/error-t.js +76 -0
  101. package/dist/bedrock/error/error-t.js.map +1 -0
  102. package/dist/bedrock/error/index.d.ts +6 -0
  103. package/dist/bedrock/error/index.d.ts.map +1 -0
  104. package/dist/bedrock/error/index.js +6 -0
  105. package/dist/bedrock/error/index.js.map +1 -0
  106. package/dist/bedrock/event/emitter.d.ts +44 -0
  107. package/dist/bedrock/event/emitter.d.ts.map +1 -0
  108. package/dist/bedrock/event/emitter.js +118 -0
  109. package/dist/bedrock/event/emitter.js.map +1 -0
  110. package/dist/bedrock/event/error-handler.d.ts +14 -0
  111. package/dist/bedrock/event/error-handler.d.ts.map +1 -0
  112. package/dist/bedrock/event/error-handler.js +21 -0
  113. package/dist/bedrock/event/error-handler.js.map +1 -0
  114. package/dist/bedrock/event/index.d.ts +12 -0
  115. package/dist/bedrock/event/index.d.ts.map +1 -0
  116. package/dist/bedrock/event/index.js +10 -0
  117. package/dist/bedrock/event/index.js.map +1 -0
  118. package/dist/bedrock/event/once.d.ts +3 -0
  119. package/dist/bedrock/event/once.d.ts.map +1 -0
  120. package/dist/bedrock/event/once.js +26 -0
  121. package/dist/bedrock/event/once.js.map +1 -0
  122. package/dist/bedrock/event/phase-emitter.d.ts +113 -0
  123. package/dist/bedrock/event/phase-emitter.d.ts.map +1 -0
  124. package/dist/bedrock/event/phase-emitter.js +163 -0
  125. package/dist/bedrock/event/phase-emitter.js.map +1 -0
  126. package/dist/bedrock/event/shortcut-event-utils.d.ts +8 -0
  127. package/dist/bedrock/event/shortcut-event-utils.d.ts.map +1 -0
  128. package/dist/bedrock/event/shortcut-event-utils.js +21 -0
  129. package/dist/bedrock/event/shortcut-event-utils.js.map +1 -0
  130. package/dist/bedrock/get-or-create/get-or-create.d.ts +2 -0
  131. package/dist/bedrock/get-or-create/get-or-create.d.ts.map +1 -0
  132. package/dist/bedrock/get-or-create/get-or-create.js +15 -0
  133. package/dist/bedrock/get-or-create/get-or-create.js.map +1 -0
  134. package/dist/bedrock/get-or-create/index.d.ts +2 -0
  135. package/dist/bedrock/get-or-create/index.d.ts.map +1 -0
  136. package/dist/bedrock/get-or-create/index.js +2 -0
  137. package/dist/bedrock/get-or-create/index.js.map +1 -0
  138. package/dist/bedrock/hash/hash-t.d.ts +3 -0
  139. package/dist/bedrock/hash/hash-t.d.ts.map +1 -0
  140. package/dist/bedrock/hash/hash-t.js +12 -0
  141. package/dist/bedrock/hash/hash-t.js.map +1 -0
  142. package/dist/bedrock/hash/index.d.ts +3 -0
  143. package/dist/bedrock/hash/index.d.ts.map +1 -0
  144. package/dist/bedrock/hash/index.js +3 -0
  145. package/dist/bedrock/hash/index.js.map +1 -0
  146. package/dist/bedrock/json/index.d.ts +2 -0
  147. package/dist/bedrock/json/index.d.ts.map +1 -0
  148. package/dist/bedrock/json/index.js +2 -0
  149. package/dist/bedrock/json/index.js.map +1 -0
  150. package/dist/bedrock/json/json.d.ts +3 -0
  151. package/dist/bedrock/json/json.d.ts.map +1 -0
  152. package/dist/bedrock/json/json.js +17 -0
  153. package/dist/bedrock/json/json.js.map +1 -0
  154. package/dist/bedrock/lock/capability.d.ts +41 -0
  155. package/dist/bedrock/lock/capability.d.ts.map +1 -0
  156. package/dist/bedrock/lock/capability.js +76 -0
  157. package/dist/bedrock/lock/capability.js.map +1 -0
  158. package/dist/bedrock/lock/index.d.ts +2 -0
  159. package/dist/bedrock/lock/index.d.ts.map +1 -0
  160. package/dist/bedrock/lock/index.js +3 -0
  161. package/dist/bedrock/lock/index.js.map +1 -0
  162. package/dist/bedrock/lock/semaphore.d.ts +14 -0
  163. package/dist/bedrock/lock/semaphore.d.ts.map +1 -0
  164. package/dist/bedrock/lock/semaphore.js +18 -0
  165. package/dist/bedrock/lock/semaphore.js.map +1 -0
  166. package/dist/bedrock/lock/shared-mutex.d.ts +98 -0
  167. package/dist/bedrock/lock/shared-mutex.d.ts.map +1 -0
  168. package/dist/bedrock/lock/shared-mutex.js +223 -0
  169. package/dist/bedrock/lock/shared-mutex.js.map +1 -0
  170. package/dist/bedrock/response/index.d.ts +2 -0
  171. package/dist/bedrock/response/index.d.ts.map +1 -0
  172. package/dist/bedrock/response/index.js +2 -0
  173. package/dist/bedrock/response/index.js.map +1 -0
  174. package/dist/bedrock/response/response.d.ts +16 -0
  175. package/dist/bedrock/response/response.d.ts.map +1 -0
  176. package/dist/bedrock/response/response.js +14 -0
  177. package/dist/bedrock/response/response.js.map +1 -0
  178. package/dist/bedrock/structure/linked-list.d.ts +22 -0
  179. package/dist/bedrock/structure/linked-list.d.ts.map +1 -0
  180. package/dist/bedrock/structure/linked-list.js +96 -0
  181. package/dist/bedrock/structure/linked-list.js.map +1 -0
  182. package/dist/bedrock/uuid/index.d.ts +2 -0
  183. package/dist/bedrock/uuid/index.d.ts.map +1 -0
  184. package/dist/bedrock/uuid/index.js +2 -0
  185. package/dist/bedrock/uuid/index.js.map +1 -0
  186. package/dist/bedrock/uuid/uuid.d.ts +7 -0
  187. package/dist/bedrock/uuid/uuid.d.ts.map +1 -0
  188. package/dist/bedrock/uuid/uuid.js +59 -0
  189. package/dist/bedrock/uuid/uuid.js.map +1 -0
  190. package/dist/commands/hello-command.d.ts +16 -0
  191. package/dist/commands/hello-command.d.ts.map +1 -0
  192. package/dist/commands/hello-command.js +28 -0
  193. package/dist/commands/hello-command.js.map +1 -0
  194. package/dist/commands/index.d.ts +2 -0
  195. package/dist/commands/index.d.ts.map +1 -0
  196. package/dist/commands/index.js +2 -0
  197. package/dist/commands/index.js.map +1 -0
  198. package/dist/core/base-command.d.ts +27 -0
  199. package/dist/core/base-command.d.ts.map +1 -0
  200. package/dist/core/base-command.js +57 -0
  201. package/dist/core/base-command.js.map +1 -0
  202. package/dist/core/cli-app.d.ts +25 -0
  203. package/dist/core/cli-app.d.ts.map +1 -0
  204. package/dist/core/cli-app.js +52 -0
  205. package/dist/core/cli-app.js.map +1 -0
  206. package/dist/core/command-types.d.ts +6 -0
  207. package/dist/core/command-types.d.ts.map +1 -0
  208. package/dist/core/command-types.js +2 -0
  209. package/dist/core/command-types.js.map +1 -0
  210. package/dist/core/index.d.ts +6 -0
  211. package/dist/core/index.d.ts.map +1 -0
  212. package/dist/core/index.js +3 -0
  213. package/dist/core/index.js.map +1 -0
  214. package/dist/index.d.ts +1 -0
  215. package/dist/index.d.ts.map +1 -0
  216. package/dist/index.js +2 -0
  217. package/dist/index.js.map +1 -0
  218. package/dist/main.d.ts +3 -0
  219. package/dist/main.d.ts.map +1 -0
  220. package/dist/main.js +19 -0
  221. package/dist/main.js.map +1 -0
  222. package/package.json +53 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bedrock/get-or-create/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './get-or-create';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bedrock/get-or-create/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function numberHash(val: number, initialHashVal?: number): number;
2
+ export declare function stringHash(s: string, hashVal?: number): number;
3
+ //# sourceMappingURL=hash-t.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash-t.d.ts","sourceRoot":"","sources":["../../../src/bedrock/hash/hash-t.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,GAAE,MAAU,GAAG,MAAM,CAG1E;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,MAAU,GAAG,MAAM,CAMjE"}
@@ -0,0 +1,12 @@
1
+ export function numberHash(val, initialHashVal = 0) {
2
+ // 将原始的hash值扩大范围,结果强制为int32整数
3
+ return ((initialHashVal << 5) - initialHashVal + val) | 0;
4
+ }
5
+ export function stringHash(s, hashVal = 0) {
6
+ hashVal = numberHash(149417, hashVal);
7
+ for (let i = 0, length = s.length; i < length; i++) {
8
+ hashVal = numberHash(s.charCodeAt(i), hashVal);
9
+ }
10
+ return hashVal;
11
+ }
12
+ //# sourceMappingURL=hash-t.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash-t.js","sourceRoot":"","sources":["../../../src/bedrock/hash/hash-t.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,iBAAyB,CAAC;IAChE,6BAA6B;IAC7B,OAAO,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,cAAc,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAS,EAAE,UAAkB,CAAC;IACvD,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnD,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { stringHash } from './hash-t';
2
+ export { numberHash } from './hash-t';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bedrock/hash/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { stringHash } from './hash-t';
2
+ export { numberHash } from './hash-t';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bedrock/hash/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './json';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bedrock/json/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './json';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bedrock/json/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function safeJsonParse<T>(value: string): T;
2
+ export declare function safeJsonStringify<T>(value: T): string;
3
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../src/bedrock/json/json.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CAMjD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAMrD"}
@@ -0,0 +1,17 @@
1
+ export function safeJsonParse(value) {
2
+ try {
3
+ return JSON.parse(value);
4
+ }
5
+ catch (error) {
6
+ return {};
7
+ }
8
+ }
9
+ export function safeJsonStringify(value) {
10
+ try {
11
+ return JSON.stringify(value);
12
+ }
13
+ catch (error) {
14
+ return '{}';
15
+ }
16
+ }
17
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/bedrock/json/json.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAI,KAAa;IAC5C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAI,KAAQ;IAC3C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { type Event } from '../event';
2
+ /**
3
+ * 资源状态
4
+ */
5
+ export declare enum CapabilityStatus {
6
+ Unlocked = 0,
7
+ Locked = 1
8
+ }
9
+ /**
10
+ * 独享的资源
11
+ *
12
+ * acquire 获取控制权
13
+ * release 释放控制权
14
+ */
15
+ export declare class Capability {
16
+ onUnlocked: Event<[]>;
17
+ private readonly _onUnlocked;
18
+ private _status;
19
+ constructor();
20
+ get status(): CapabilityStatus;
21
+ acquire(): void;
22
+ release(): void;
23
+ }
24
+ /**
25
+ * 共享的资源
26
+ *
27
+ * acquire 获取控制权
28
+ * release 释放控制权
29
+ */
30
+ export declare class SharedCapability {
31
+ onUnlocked: Event<[]>;
32
+ private readonly _onUnlocked;
33
+ private _status;
34
+ private _counter;
35
+ constructor();
36
+ get status(): CapabilityStatus;
37
+ get counter(): number;
38
+ acquire(): void;
39
+ release(): void;
40
+ }
41
+ //# sourceMappingURL=capability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../../../src/bedrock/lock/capability.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAO/C;;GAEG;AACH,oBAAY,gBAAgB;IAC1B,QAAQ,IAAA;IACR,MAAM,IAAA;CACP;AAED;;;;;GAKG;AACH,qBAAa,UAAU;IACd,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAE7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,OAAO,CAA6B;;IAM5C,IAAI,MAAM,IAAI,gBAAgB,CAE7B;IAEM,OAAO,IAAI,IAAI;IAKf,OAAO,IAAI,IAAI;CAKvB;AAED;;;;;GAKG;AACH,qBAAa,gBAAgB;IACpB,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAE7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,QAAQ,CAAK;;IAMrB,IAAI,MAAM,IAAI,gBAAgB,CAE7B;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAEM,OAAO;IAOP,OAAO;CAQf"}
@@ -0,0 +1,76 @@
1
+ import { lvAssert } from '../assert';
2
+ import { Emitter } from '../event';
3
+ //
4
+ // 资源对应的是标准库中的 unsigned state 以及相关的位运算
5
+ // 我们用两个具体的Capability结构实现(Capability命名来源于标准库)
6
+ //
7
+ /**
8
+ * 资源状态
9
+ */
10
+ export var CapabilityStatus;
11
+ (function (CapabilityStatus) {
12
+ CapabilityStatus[CapabilityStatus["Unlocked"] = 0] = "Unlocked";
13
+ CapabilityStatus[CapabilityStatus["Locked"] = 1] = "Locked";
14
+ })(CapabilityStatus || (CapabilityStatus = {}));
15
+ /**
16
+ * 独享的资源
17
+ *
18
+ * acquire 获取控制权
19
+ * release 释放控制权
20
+ */
21
+ export class Capability {
22
+ onUnlocked;
23
+ _onUnlocked = new Emitter();
24
+ _status = CapabilityStatus.Unlocked;
25
+ constructor() {
26
+ this.onUnlocked = this._onUnlocked.event;
27
+ }
28
+ get status() {
29
+ return this._status;
30
+ }
31
+ acquire() {
32
+ lvAssert(this._status === CapabilityStatus.Unlocked);
33
+ this._status = CapabilityStatus.Locked;
34
+ }
35
+ release() {
36
+ lvAssert(this._status === CapabilityStatus.Locked);
37
+ this._status = CapabilityStatus.Unlocked;
38
+ this._onUnlocked.fire();
39
+ }
40
+ }
41
+ /**
42
+ * 共享的资源
43
+ *
44
+ * acquire 获取控制权
45
+ * release 释放控制权
46
+ */
47
+ export class SharedCapability {
48
+ onUnlocked;
49
+ _onUnlocked = new Emitter();
50
+ _status = CapabilityStatus.Unlocked;
51
+ _counter = 0;
52
+ constructor() {
53
+ this.onUnlocked = this._onUnlocked.event;
54
+ }
55
+ get status() {
56
+ return this._status;
57
+ }
58
+ get counter() {
59
+ return this._counter;
60
+ }
61
+ acquire() {
62
+ if (this._status === CapabilityStatus.Unlocked) {
63
+ this._status = CapabilityStatus.Locked;
64
+ }
65
+ this._counter++;
66
+ }
67
+ release() {
68
+ lvAssert(this._counter > 0);
69
+ this._counter--;
70
+ if (this._counter === 0) {
71
+ this._status = CapabilityStatus.Unlocked;
72
+ this._onUnlocked.fire();
73
+ }
74
+ }
75
+ }
76
+ //# sourceMappingURL=capability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability.js","sourceRoot":"","sources":["../../../src/bedrock/lock/capability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,OAAO,EAAc,MAAM,UAAU,CAAC;AAE/C,EAAE;AACF,sCAAsC;AACtC,6CAA6C;AAC7C,EAAE;AAEF;;GAEG;AACH,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,+DAAQ,CAAA;IACR,2DAAM,CAAA;AACR,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;AAED;;;;;GAKG;AACH,MAAM,OAAO,UAAU;IACd,UAAU,CAAY;IAEZ,WAAW,GAAG,IAAI,OAAO,EAAM,CAAC;IACzC,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC;IAE5C;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;IAC3C,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEM,OAAO;QACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,KAAK,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC;IACzC,CAAC;IAEM,OAAO;QACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,KAAK,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IACpB,UAAU,CAAY;IAEZ,WAAW,GAAG,IAAI,OAAO,EAAM,CAAC;IACzC,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC;IACpC,QAAQ,GAAG,CAAC,CAAC;IAErB;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;IAC3C,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,OAAO;QACZ,IAAI,IAAI,CAAC,OAAO,KAAK,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAC/C,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAEM,OAAO;QACZ,QAAQ,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export { SharedMutex } from './shared-mutex';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bedrock/lock/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ // 读写能力的互斥量,实现读写锁的能力
2
+ export { SharedMutex } from './shared-mutex';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bedrock/lock/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { Event } from '../event';
2
+ /**
3
+ * 信号
4
+ *
5
+ * 用来模拟标准库的condition_variable
6
+ * 提供监听某个信号被激活的能力
7
+ */
8
+ export declare class Semaphore {
9
+ onActive: Event<[]>;
10
+ private readonly _onActive;
11
+ constructor();
12
+ notify(): void;
13
+ }
14
+ //# sourceMappingURL=semaphore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semaphore.d.ts","sourceRoot":"","sources":["../../../src/bedrock/lock/semaphore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGtC;;;;;GAKG;AACH,qBAAa,SAAS;IACb,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;;IAMxC,MAAM,IAAI,IAAI;CAGtB"}
@@ -0,0 +1,18 @@
1
+ import { Emitter } from '../event';
2
+ /**
3
+ * 信号
4
+ *
5
+ * 用来模拟标准库的condition_variable
6
+ * 提供监听某个信号被激活的能力
7
+ */
8
+ export class Semaphore {
9
+ onActive;
10
+ _onActive = new Emitter();
11
+ constructor() {
12
+ this.onActive = this._onActive.event;
13
+ }
14
+ notify() {
15
+ this._onActive.fire();
16
+ }
17
+ }
18
+ //# sourceMappingURL=semaphore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semaphore.js","sourceRoot":"","sources":["../../../src/bedrock/lock/semaphore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,SAAS;IACb,QAAQ,CAAY;IACV,SAAS,GAAG,IAAI,OAAO,EAAM,CAAC;IAE/C;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACvC,CAAC;IAEM,MAAM;QACX,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;CACF"}
@@ -0,0 +1,98 @@
1
+ import { Capability } from './capability';
2
+ /**
3
+ * 提供读写能力的共享互斥量
4
+ *
5
+ * 参考C++17标准库双门思想实现
6
+ * 接口也与标准库保持一致
7
+ * 方法内部禁止promise,只可以对外暴露promise
8
+ *
9
+ * 核心
10
+ * - 写写互斥,读写互斥,读读可重入
11
+ *
12
+ * 使用举例:
13
+ * class Foo {
14
+ * private _mutex = new SharedMutex();
15
+ *
16
+ * async add() {
17
+ * // 上写锁
18
+ * await this._mutex.lock();
19
+ * // ...write something
20
+ * this._mutex.unlock();
21
+ * }
22
+ *
23
+ * async getSomething1() {
24
+ * // 上读锁
25
+ * await this._mutex.lockShared();
26
+ * try {
27
+ * return xxx;
28
+ * } finally {
29
+ * this._mutex.unlockShared();
30
+ * }
31
+ * }
32
+ *
33
+ * async getSomething2() {
34
+ * // 上读锁
35
+ * await this._mutex.lockShared();
36
+ * try {
37
+ * return xxx;
38
+ * } finally {
39
+ * this._mutex.unlockShared();
40
+ * }
41
+ * }
42
+ * }
43
+ */
44
+ export declare class SharedMutex {
45
+ private readonly _waitingWriters;
46
+ private _writer?;
47
+ private _waitingReader?;
48
+ private _reader?;
49
+ /**
50
+ * 是否被锁住
51
+ */
52
+ isLocked(): boolean | Capability;
53
+ /**
54
+ * 等待并获取写锁
55
+ */
56
+ lock(): Promise<void>;
57
+ /**
58
+ * 尝试获取写锁,立刻返回结果
59
+ */
60
+ tryLock(): boolean;
61
+ /**
62
+ * 解除写锁
63
+ */
64
+ unLock(): void;
65
+ /**
66
+ * 等待并获取读锁
67
+ */
68
+ lockShared(): Promise<void>;
69
+ /**
70
+ * 尝试获取读锁,立刻返回结果
71
+ */
72
+ tryLockShared(): boolean;
73
+ /**
74
+ * 解除读锁
75
+ */
76
+ unLockShared(): void;
77
+ /**
78
+ * 获取当前读者数量
79
+ */
80
+ private get _readerCount();
81
+ /**
82
+ * 写者进入第一道门
83
+ */
84
+ private _writerEnterGate1;
85
+ /**
86
+ * 写者进入第二道门
87
+ */
88
+ private _writerEnterGate2;
89
+ /**
90
+ * 读者进入第一道门
91
+ */
92
+ private _readerEnterGate1;
93
+ /**
94
+ * 锁释放时推进流程
95
+ */
96
+ private _moveForward;
97
+ }
98
+ //# sourceMappingURL=shared-mutex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-mutex.d.ts","sourceRoot":"","sources":["../../../src/bedrock/lock/shared-mutex.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,UAAU,EAAoB,MAAM,cAAc,CAAC;AAG9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBAAa,WAAW;IAEtB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmB;IAKnD,OAAO,CAAC,OAAO,CAAC,CAAa;IAG7B,OAAO,CAAC,cAAc,CAAC,CAAY;IAGnC,OAAO,CAAC,OAAO,CAAC,CAAmB;IAEnC;;OAEG;IACI,QAAQ;IAIf;;OAEG;IACI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB5B;;OAEG;IACI,OAAO,IAAI,OAAO;IASzB;;OAEG;IACI,MAAM,IAAI,IAAI;IAOrB;;OAEG;IACI,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBlC;;OAEG;IACI,aAAa,IAAI,OAAO;IAS/B;;OAEG;IACI,YAAY,IAAI,IAAI;IAU3B;;OAEG;IACH,OAAO,KAAK,YAAY,GAEvB;IAED;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,OAAO,CAAC,YAAY;CAkBrB"}
@@ -0,0 +1,223 @@
1
+ import { lvAssert, lvAssertNotNil } from '../assert';
2
+ import { listenOnce } from '../event';
3
+ import { SharedCapability, Capability, CapabilityStatus } from './capability';
4
+ import { Semaphore } from './semaphore';
5
+ /**
6
+ * 提供读写能力的共享互斥量
7
+ *
8
+ * 参考C++17标准库双门思想实现
9
+ * 接口也与标准库保持一致
10
+ * 方法内部禁止promise,只可以对外暴露promise
11
+ *
12
+ * 核心
13
+ * - 写写互斥,读写互斥,读读可重入
14
+ *
15
+ * 使用举例:
16
+ * class Foo {
17
+ * private _mutex = new SharedMutex();
18
+ *
19
+ * async add() {
20
+ * // 上写锁
21
+ * await this._mutex.lock();
22
+ * // ...write something
23
+ * this._mutex.unlock();
24
+ * }
25
+ *
26
+ * async getSomething1() {
27
+ * // 上读锁
28
+ * await this._mutex.lockShared();
29
+ * try {
30
+ * return xxx;
31
+ * } finally {
32
+ * this._mutex.unlockShared();
33
+ * }
34
+ * }
35
+ *
36
+ * async getSomething2() {
37
+ * // 上读锁
38
+ * await this._mutex.lockShared();
39
+ * try {
40
+ * return xxx;
41
+ * } finally {
42
+ * this._mutex.unlockShared();
43
+ * }
44
+ * }
45
+ * }
46
+ */
47
+ export class SharedMutex {
48
+ // 在第一道门外等待的写者
49
+ _waitingWriters = [];
50
+ // 已经通过了第一道门的写者
51
+ // 如果在第二道门外等待,状态为sharedLocked
52
+ // 如果已经进入到第二道门内拿到了锁,状态为locked
53
+ _writer;
54
+ // 在第一道门外等待的读者
55
+ _waitingReader;
56
+ // 拿到锁的读者
57
+ _reader;
58
+ /**
59
+ * 是否被锁住
60
+ */
61
+ isLocked() {
62
+ return this._writer || this._readerCount !== 0;
63
+ }
64
+ /**
65
+ * 等待并获取写锁
66
+ */
67
+ lock() {
68
+ return new Promise((resolve) => {
69
+ // 第一道门
70
+ if (this._writer) {
71
+ // 如果已经有写者进入了,其他写者等待
72
+ const token = new Semaphore();
73
+ this._waitingWriters.push(token);
74
+ token.onActive(() => {
75
+ this._writerEnterGate1(resolve);
76
+ });
77
+ }
78
+ else {
79
+ this._writerEnterGate1(resolve);
80
+ }
81
+ });
82
+ }
83
+ /**
84
+ * 尝试获取写锁,立刻返回结果
85
+ */
86
+ tryLock() {
87
+ if (this._writer || this._readerCount > 0) {
88
+ return false;
89
+ }
90
+ // 这里不需要await,一定可以上锁
91
+ this.lock();
92
+ return true;
93
+ }
94
+ /**
95
+ * 解除写锁
96
+ */
97
+ unLock() {
98
+ lvAssertNotNil(this._writer);
99
+ // 打开第一道门
100
+ this._writer.release();
101
+ }
102
+ /**
103
+ * 等待并获取读锁
104
+ */
105
+ lockShared() {
106
+ return new Promise((resolve) => {
107
+ // 读者只需要进第一道门
108
+ if (this._writer) {
109
+ // 如果有写者已经进入了第一道门,读者等待
110
+ if (!this._waitingReader) {
111
+ this._waitingReader = new Semaphore();
112
+ }
113
+ this._waitingReader.onActive(() => {
114
+ this._readerEnterGate1(resolve);
115
+ });
116
+ }
117
+ else {
118
+ this._readerEnterGate1(resolve);
119
+ }
120
+ });
121
+ }
122
+ /**
123
+ * 尝试获取读锁,立刻返回结果
124
+ */
125
+ tryLockShared() {
126
+ if (this._writer) {
127
+ return false;
128
+ }
129
+ // 不需要await,一定可以上锁
130
+ this.lockShared();
131
+ return true;
132
+ }
133
+ /**
134
+ * 解除读锁
135
+ */
136
+ unLockShared() {
137
+ lvAssertNotNil(this._reader);
138
+ if (this._writer) {
139
+ // TODO(niurouwan): 暂时保留,方便验证,稳定后可以去掉
140
+ lvAssert(this._writer.status === CapabilityStatus.Unlocked);
141
+ }
142
+ this._reader.release();
143
+ }
144
+ /**
145
+ * 获取当前读者数量
146
+ */
147
+ get _readerCount() {
148
+ return this._reader ? this._reader.counter : 0;
149
+ }
150
+ /**
151
+ * 写者进入第一道门
152
+ */
153
+ _writerEnterGate1(resolve) {
154
+ lvAssert(!this._writer);
155
+ // 确定写者,关第一道门
156
+ this._writer = new Capability();
157
+ // 第二道门
158
+ // 等待所有读者出去
159
+ if (this._readerCount > 0) {
160
+ listenOnce(this._reader.onUnlocked)(() => {
161
+ this._writerEnterGate2(resolve);
162
+ });
163
+ }
164
+ else {
165
+ this._writerEnterGate2(resolve);
166
+ }
167
+ }
168
+ /**
169
+ * 写者进入第二道门
170
+ */
171
+ _writerEnterGate2(resolve) {
172
+ lvAssertNotNil(this._writer);
173
+ lvAssert(this._readerCount === 0);
174
+ // 成功加锁
175
+ this._writer.acquire();
176
+ listenOnce(this._writer.onUnlocked)(() => {
177
+ lvAssertNotNil(this._writer);
178
+ // 不再持有
179
+ this._writer = undefined;
180
+ this._moveForward();
181
+ });
182
+ resolve();
183
+ }
184
+ /**
185
+ * 读者进入第一道门
186
+ */
187
+ _readerEnterGate1(resolve) {
188
+ lvAssert(!this._writer);
189
+ // 门外等待的读者清除
190
+ this._waitingReader = undefined;
191
+ if (!this._reader) {
192
+ this._reader = new SharedCapability();
193
+ this._reader.acquire();
194
+ listenOnce(this._reader.onUnlocked)(() => {
195
+ this._moveForward();
196
+ });
197
+ }
198
+ else {
199
+ this._reader.acquire();
200
+ }
201
+ resolve();
202
+ }
203
+ /**
204
+ * 锁释放时推进流程
205
+ */
206
+ _moveForward() {
207
+ // 如果有写者在等待在第二道门前面,那么此时推进的一定是读锁释放,直接return即可
208
+ if (this._writer) {
209
+ return;
210
+ }
211
+ // 写者优先,优先通知在第一道门前面的写者
212
+ if (this._waitingWriters.length > 0) {
213
+ const semaphore = this._waitingWriters.shift();
214
+ semaphore.notify();
215
+ return;
216
+ }
217
+ // 最后通知第一道门前面的读者
218
+ if (this._waitingReader) {
219
+ this._waitingReader.notify();
220
+ }
221
+ }
222
+ }
223
+ //# sourceMappingURL=shared-mutex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-mutex.js","sourceRoot":"","sources":["../../../src/bedrock/lock/shared-mutex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './response';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bedrock/response/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './response';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bedrock/response/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,16 @@
1
+ export interface ISuccessResponse<T = any> {
2
+ code: 0;
3
+ data: T;
4
+ msg: string;
5
+ }
6
+ export interface IErrorResponse {
7
+ code: Exclude<number, 0>;
8
+ msg: string;
9
+ }
10
+ export type IResponse<T = any> = ISuccessResponse<T> | IErrorResponse;
11
+ export declare function makeSuccessResponse<T = any>(data: T): ISuccessResponse<T>;
12
+ export declare function makeErrorResponse(code: number, msg: string): {
13
+ code: number;
14
+ msg: string;
15
+ };
16
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/bedrock/response/response.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,GAAG;IACvC,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,EAAE,CAAC,CAAC;IACR,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,GAAG,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;AAEtE,wBAAgB,mBAAmB,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAMzE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;;;EAK1D"}