@omujs/chat 0.1.22

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 (94) hide show
  1. package/.eslintignore +13 -0
  2. package/.eslintrc.cjs +6 -0
  3. package/.prettierignore +1 -0
  4. package/CHANGELOG.md +262 -0
  5. package/LICENSE +21 -0
  6. package/README.md +1 -0
  7. package/built/dts/chat.d.ts +14 -0
  8. package/built/dts/chat.d.ts.map +1 -0
  9. package/built/dts/client.d.ts +24 -0
  10. package/built/dts/client.d.ts.map +1 -0
  11. package/built/dts/const.d.ts +3 -0
  12. package/built/dts/const.d.ts.map +1 -0
  13. package/built/dts/event/event-registry.d.ts +12 -0
  14. package/built/dts/event/event-registry.d.ts.map +1 -0
  15. package/built/dts/event/event.d.ts +26 -0
  16. package/built/dts/event/event.d.ts.map +1 -0
  17. package/built/dts/event/index.d.ts +3 -0
  18. package/built/dts/event/index.d.ts.map +1 -0
  19. package/built/dts/index.d.ts +4 -0
  20. package/built/dts/index.d.ts.map +1 -0
  21. package/built/dts/models/author.d.ts +40 -0
  22. package/built/dts/models/author.d.ts.map +1 -0
  23. package/built/dts/models/channel.d.ts +34 -0
  24. package/built/dts/models/channel.d.ts.map +1 -0
  25. package/built/dts/models/content.d.ts +76 -0
  26. package/built/dts/models/content.d.ts.map +1 -0
  27. package/built/dts/models/gift.d.ts +25 -0
  28. package/built/dts/models/gift.d.ts.map +1 -0
  29. package/built/dts/models/index.d.ts +10 -0
  30. package/built/dts/models/index.d.ts.map +1 -0
  31. package/built/dts/models/message.d.ts +40 -0
  32. package/built/dts/models/message.d.ts.map +1 -0
  33. package/built/dts/models/paid.d.ts +13 -0
  34. package/built/dts/models/paid.d.ts.map +1 -0
  35. package/built/dts/models/provider.d.ts +37 -0
  36. package/built/dts/models/provider.d.ts.map +1 -0
  37. package/built/dts/models/role.d.ts +28 -0
  38. package/built/dts/models/role.d.ts.map +1 -0
  39. package/built/dts/models/room.d.ts +45 -0
  40. package/built/dts/models/room.d.ts.map +1 -0
  41. package/built/dts/permissions.d.ts +6 -0
  42. package/built/dts/permissions.d.ts.map +1 -0
  43. package/built/esm/chat.js +81 -0
  44. package/built/esm/chat.js.map +1 -0
  45. package/built/esm/client.js +44 -0
  46. package/built/esm/client.js.map +1 -0
  47. package/built/esm/const.js +3 -0
  48. package/built/esm/const.js.map +1 -0
  49. package/built/esm/event/event-registry.js +35 -0
  50. package/built/esm/event/event-registry.js.map +1 -0
  51. package/built/esm/event/event.js +40 -0
  52. package/built/esm/event/event.js.map +1 -0
  53. package/built/esm/event/index.js +3 -0
  54. package/built/esm/event/index.js.map +1 -0
  55. package/built/esm/index.js +4 -0
  56. package/built/esm/index.js.map +1 -0
  57. package/built/esm/models/author.js +42 -0
  58. package/built/esm/models/author.js.map +1 -0
  59. package/built/esm/models/channel.js +45 -0
  60. package/built/esm/models/channel.js.map +1 -0
  61. package/built/esm/models/content.js +154 -0
  62. package/built/esm/models/content.js.map +1 -0
  63. package/built/esm/models/gift.js +33 -0
  64. package/built/esm/models/gift.js.map +1 -0
  65. package/built/esm/models/index.js +10 -0
  66. package/built/esm/models/index.js.map +1 -0
  67. package/built/esm/models/message.js +57 -0
  68. package/built/esm/models/message.js.map +1 -0
  69. package/built/esm/models/paid.js +18 -0
  70. package/built/esm/models/paid.js.map +1 -0
  71. package/built/esm/models/provider.js +49 -0
  72. package/built/esm/models/provider.js.map +1 -0
  73. package/built/esm/models/role.js +37 -0
  74. package/built/esm/models/role.js.map +1 -0
  75. package/built/esm/models/room.js +45 -0
  76. package/built/esm/models/room.js.map +1 -0
  77. package/built/esm/permissions.js +7 -0
  78. package/built/esm/permissions.js.map +1 -0
  79. package/package.json +53 -0
  80. package/src/chat.ts +90 -0
  81. package/src/const.ts +3 -0
  82. package/src/index.ts +3 -0
  83. package/src/models/author.ts +74 -0
  84. package/src/models/channel.ts +69 -0
  85. package/src/models/content.ts +207 -0
  86. package/src/models/gift.ts +51 -0
  87. package/src/models/index.ts +10 -0
  88. package/src/models/message.ts +85 -0
  89. package/src/models/paid.ts +24 -0
  90. package/src/models/provider.ts +75 -0
  91. package/src/models/role.ts +57 -0
  92. package/src/models/room.ts +82 -0
  93. package/src/permissions.ts +7 -0
  94. package/tsconfig.json +12 -0
@@ -0,0 +1,40 @@
1
+ import { Identifier } from '@omujs/omu/identifier.js';
2
+ import type { Keyable, Timestamped } from '@omujs/omu/interface.js';
3
+ import type { Model } from '@omujs/omu/model.js';
4
+ import * as content from './content.js';
5
+ import type { GiftJson } from './gift.js';
6
+ import { Gift } from './gift.js';
7
+ import type { PaidJson } from './paid.js';
8
+ import { Paid } from './paid.js';
9
+ export type MessageJson = {
10
+ room_id: string;
11
+ id: string;
12
+ created_at: string;
13
+ author_id?: string;
14
+ content?: content.ComponentJson;
15
+ paid?: PaidJson;
16
+ gifts?: GiftJson[];
17
+ };
18
+ export declare class Message implements Model<MessageJson>, Keyable, Timestamped {
19
+ roomId: Identifier;
20
+ id: Identifier;
21
+ authorId?: Identifier;
22
+ content?: content.Component;
23
+ paid?: Paid;
24
+ gifts?: Gift[];
25
+ createdAt: Date;
26
+ constructor(options: {
27
+ roomId: Identifier;
28
+ id: Identifier;
29
+ authorId?: Identifier;
30
+ createdAt: Date;
31
+ content?: content.Component;
32
+ paid?: Paid;
33
+ gifts?: Gift[];
34
+ });
35
+ static fromJson(info: MessageJson): Message;
36
+ get text(): string;
37
+ key(): string;
38
+ toJson(): MessageJson;
39
+ }
40
+ //# sourceMappingURL=message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/models/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,MAAM,WAAW,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAChC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;CACtB,CAAC;AAEF,qBAAa,OAAQ,YAAW,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,WAAW;IAC7D,MAAM,EAAE,UAAU,CAAC;IACnB,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;gBAEX,OAAO,EAAE;QACjB,MAAM,EAAE,UAAU,CAAC;QACnB,EAAE,EAAE,UAAU,CAAC;QACf,QAAQ,CAAC,EAAE,UAAU,CAAC;QACtB,SAAS,EAAE,IAAI,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;QAC5B,IAAI,CAAC,EAAE,IAAI,CAAC;QACZ,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;KAClB;IAaD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO;IAY3C,IAAI,IAAI,IAAI,MAAM,CAKjB;IAED,GAAG,IAAI,MAAM;IAIb,MAAM,IAAI,WAAW;CAWxB"}
@@ -0,0 +1,13 @@
1
+ import type { Model } from '@omujs/omu/model.js';
2
+ export type PaidJson = {
3
+ amount: number;
4
+ currency: string;
5
+ };
6
+ export declare class Paid implements Model<PaidJson> {
7
+ amount: number;
8
+ currency: string;
9
+ constructor(amount: number, currency: string);
10
+ static fromJson(options: PaidJson): Paid;
11
+ toJson(): PaidJson;
12
+ }
13
+ //# sourceMappingURL=paid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paid.d.ts","sourceRoot":"","sources":["../../../src/models/paid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,MAAM,QAAQ,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,qBAAa,IAAK,YAAW,KAAK,CAAC,QAAQ,CAAC;IAE7B,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,MAAM;gBADhB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM;IAG3B,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAIxC,MAAM,IAAI,QAAQ;CAMrB"}
@@ -0,0 +1,37 @@
1
+ import { Identifier } from '@omujs/omu/identifier.js';
2
+ import type { Keyable } from '@omujs/omu/interface.js';
3
+ import type { Model } from '@omujs/omu/model.js';
4
+ export type ProviderJson = {
5
+ id: string;
6
+ url: string;
7
+ name: string;
8
+ version: string;
9
+ repository_url: string;
10
+ image_url?: string;
11
+ description: string;
12
+ regex: string;
13
+ };
14
+ export declare class Provider implements Keyable, Model<ProviderJson> {
15
+ id: Identifier;
16
+ url: string;
17
+ name: string;
18
+ version: string;
19
+ repositoryUrl: string;
20
+ imageUrl?: string;
21
+ description: string;
22
+ regex: string;
23
+ constructor(options: {
24
+ id: Identifier;
25
+ url: string;
26
+ name: string;
27
+ version: string;
28
+ repository_url: string;
29
+ image_url?: string;
30
+ description: string;
31
+ regex: string;
32
+ });
33
+ static fromJson(data: ProviderJson): Provider;
34
+ toJson(): ProviderJson;
35
+ key(): string;
36
+ }
37
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/models/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qBAAa,QAAS,YAAW,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAClD,EAAE,EAAE,UAAU,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;gBAET,OAAO,EAAE;QACjB,EAAE,EAAE,UAAU,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACjB;IAWD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ;IAa7C,MAAM,IAAI,YAAY;IAatB,GAAG,IAAI,MAAM;CAGhB"}
@@ -0,0 +1,28 @@
1
+ import type { Model } from '@omujs/omu/model.js';
2
+ export type RoleJson = {
3
+ id?: string;
4
+ name: string;
5
+ is_owner: boolean;
6
+ is_moderator: boolean;
7
+ icon_url?: string;
8
+ color?: string;
9
+ };
10
+ export declare class Role implements Model<RoleJson> {
11
+ id?: string;
12
+ name: string;
13
+ isOwner: boolean;
14
+ isModerator: boolean;
15
+ iconUrl?: string;
16
+ color?: string;
17
+ constructor(options: {
18
+ id?: string;
19
+ name: string;
20
+ isOwner: boolean;
21
+ isModerator: boolean;
22
+ iconUrl?: string;
23
+ color?: string;
24
+ });
25
+ static fromJson(json: RoleJson): Role;
26
+ toJson(): RoleJson;
27
+ }
28
+ //# sourceMappingURL=role.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../../src/models/role.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,MAAM,QAAQ,GAAG;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,IAAK,YAAW,KAAK,CAAC,QAAQ,CAAC;IACxC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;gBAEH,OAAO,EAAE;QACjB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,EAAE,OAAO,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB;IASD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAWrC,MAAM,IAAI,QAAQ;CAUrB"}
@@ -0,0 +1,45 @@
1
+ import { Identifier } from '@omujs/omu/identifier.js';
2
+ import type { Keyable, Timestamped } from '@omujs/omu/interface.js';
3
+ import type { Model } from '@omujs/omu/model.js';
4
+ export type MetadataJson = {
5
+ title?: string;
6
+ description?: string;
7
+ url?: string;
8
+ thumbnail?: string;
9
+ viewers?: number;
10
+ created_at?: string;
11
+ started_at?: string;
12
+ ended_at?: string;
13
+ };
14
+ export type Status = 'online' | 'reserved' | 'offline';
15
+ export type RoomJson = {
16
+ id: string;
17
+ provider_id: string;
18
+ connected: boolean;
19
+ status: Status;
20
+ metadata?: MetadataJson;
21
+ channel_id?: string;
22
+ created_at: string;
23
+ };
24
+ export declare class Room implements Model<RoomJson>, Keyable, Timestamped {
25
+ id: Identifier;
26
+ providerId: Identifier;
27
+ connected: boolean;
28
+ status: Status;
29
+ metadata?: MetadataJson;
30
+ channelId?: string;
31
+ createdAt: Date;
32
+ constructor(options: {
33
+ id: Identifier;
34
+ providerId: Identifier;
35
+ connected: boolean;
36
+ status: Status;
37
+ metadata?: MetadataJson;
38
+ channelId?: string;
39
+ createdAt: Date;
40
+ });
41
+ static fromJson(options: RoomJson): Room;
42
+ toJson(): RoomJson;
43
+ key(): string;
44
+ }
45
+ //# sourceMappingURL=room.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../../../src/models/room.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAEvD,MAAM,MAAM,QAAQ,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,qBAAa,IAAK,YAAW,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,WAAW;IACvD,EAAE,EAAE,UAAU,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;gBAEX,OAAO,EAAE;QACjB,EAAE,EAAE,UAAU,CAAC;QACf,UAAU,EAAE,UAAU,CAAC;QACvB,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,IAAI,CAAC;KACnB;IAUD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAYxC,MAAM,IAAI,QAAQ;IAYlB,GAAG,IAAI,MAAM;CAGhB"}
@@ -0,0 +1,6 @@
1
+ export declare const CHAT_PERMISSION_ID: import("@omujs/omu").Identifier;
2
+ export declare const CHAT_READ_PERMISSION_ID: import("@omujs/omu").Identifier;
3
+ export declare const CHAT_WRITE_PERMISSION_ID: import("@omujs/omu").Identifier;
4
+ export declare const CHAT_SEND_PERMISSION_ID: import("@omujs/omu").Identifier;
5
+ export declare const CHAT_CHANNEL_TREE_PERMISSION_ID: import("@omujs/omu").Identifier;
6
+ //# sourceMappingURL=permissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/permissions.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,iCAAa,CAAC;AAC7C,eAAO,MAAM,uBAAuB,iCAAkC,CAAC;AACvE,eAAO,MAAM,wBAAwB,iCAAmC,CAAC;AACzE,eAAO,MAAM,uBAAuB,iCAAkC,CAAC;AACvE,eAAO,MAAM,+BAA+B,iCAAyC,CAAC"}
@@ -0,0 +1,81 @@
1
+ import { EndpointType } from '@omujs/omu/extension/endpoint/endpoint.js';
2
+ import { TableType } from '@omujs/omu/extension/table/index.js';
3
+ import { Serializer } from '@omujs/omu/serializer.js';
4
+ import { IDENTIFIER } from './const.js';
5
+ import { Author, Channel, Message, Provider, Room } from './models/index.js';
6
+ import { CHAT_CHANNEL_TREE_PERMISSION_ID, CHAT_PERMISSION_ID, CHAT_READ_PERMISSION_ID, CHAT_WRITE_PERMISSION_ID, } from './permissions.js';
7
+ const MESSAGE_TABLE_TYPE = TableType.createModel(IDENTIFIER, {
8
+ name: 'messages',
9
+ model: Message,
10
+ permissions: {
11
+ all: CHAT_PERMISSION_ID,
12
+ read: CHAT_READ_PERMISSION_ID,
13
+ write: CHAT_WRITE_PERMISSION_ID,
14
+ },
15
+ });
16
+ const AUTHOR_TABLE_TYPE = TableType.createModel(IDENTIFIER, {
17
+ name: 'authors',
18
+ model: Author,
19
+ permissions: {
20
+ all: CHAT_PERMISSION_ID,
21
+ read: CHAT_READ_PERMISSION_ID,
22
+ write: CHAT_WRITE_PERMISSION_ID,
23
+ },
24
+ });
25
+ const CHANNEL_TABLE_TYPE = TableType.createModel(IDENTIFIER, {
26
+ name: 'channels',
27
+ model: Channel,
28
+ permissions: {
29
+ all: CHAT_PERMISSION_ID,
30
+ read: CHAT_READ_PERMISSION_ID,
31
+ write: CHAT_WRITE_PERMISSION_ID,
32
+ },
33
+ });
34
+ const PROVIDER_TABLE_TYPE = TableType.createModel(IDENTIFIER, {
35
+ name: 'providers',
36
+ model: Provider,
37
+ permissions: {
38
+ all: CHAT_PERMISSION_ID,
39
+ read: CHAT_READ_PERMISSION_ID,
40
+ write: CHAT_WRITE_PERMISSION_ID,
41
+ },
42
+ });
43
+ const ROOM_TABLE_TYPE = TableType.createModel(IDENTIFIER, {
44
+ name: 'rooms',
45
+ model: Room,
46
+ permissions: {
47
+ all: CHAT_PERMISSION_ID,
48
+ read: CHAT_READ_PERMISSION_ID,
49
+ write: CHAT_WRITE_PERMISSION_ID,
50
+ },
51
+ });
52
+ const CREATE_CHANNEL_TREE_ENDPOINT = EndpointType.createJson(IDENTIFIER, {
53
+ name: 'create_channel_tree',
54
+ requestSerializer: Serializer.noop(),
55
+ responseSerializer: Serializer.model(Channel).toArray(),
56
+ permissionId: CHAT_CHANNEL_TREE_PERMISSION_ID,
57
+ });
58
+ export class Chat {
59
+ client;
60
+ messages;
61
+ authors;
62
+ channels;
63
+ providers;
64
+ rooms;
65
+ constructor(client) {
66
+ this.client = client;
67
+ client.server.require(IDENTIFIER);
68
+ client.permissions.require(CHAT_PERMISSION_ID);
69
+ this.messages = client.tables.get(MESSAGE_TABLE_TYPE);
70
+ this.authors = client.tables.get(AUTHOR_TABLE_TYPE);
71
+ this.channels = client.tables.get(CHANNEL_TABLE_TYPE);
72
+ this.providers = client.tables.get(PROVIDER_TABLE_TYPE);
73
+ this.rooms = client.tables.get(ROOM_TABLE_TYPE);
74
+ this.messages.setCacheSize(1000);
75
+ this.authors.setCacheSize(500);
76
+ }
77
+ async createChannelTree(url) {
78
+ return await this.client.endpoints.call(CREATE_CHANNEL_TREE_ENDPOINT, url);
79
+ }
80
+ }
81
+ //# sourceMappingURL=chat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/chat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import * as omu from '@omuchatjs/omu';
2
+ import { Chat } from './chat.js';
3
+ import { EventRegistry } from './event/index.js';
4
+ export class Client extends omu.OmuClient {
5
+ eventRegistry;
6
+ chat;
7
+ constructor({ app, address, token, }) {
8
+ super({
9
+ app,
10
+ address: address || {
11
+ host: '127.0.0.1',
12
+ port: 26423,
13
+ secure: false,
14
+ },
15
+ token: token ?? new BrowserTokenProvider('omu-token'),
16
+ });
17
+ this.eventRegistry = new EventRegistry(this);
18
+ this.chat = new Chat(this);
19
+ }
20
+ on(event, handler) {
21
+ this.eventRegistry.on(event, handler);
22
+ }
23
+ }
24
+ export class BrowserTokenProvider {
25
+ key;
26
+ constructor(key) {
27
+ this.key = key;
28
+ }
29
+ getKey(serverAddress, app) {
30
+ return JSON.stringify([serverAddress.host, serverAddress.port, app.key()]);
31
+ }
32
+ async set(serverAddress, app, token) {
33
+ const tokens = JSON.parse(localStorage.getItem(this.key) || '{}');
34
+ const key = this.getKey(serverAddress, app);
35
+ tokens[key] = token;
36
+ localStorage.setItem(this.key, JSON.stringify(tokens));
37
+ }
38
+ async get(serverAddress, app) {
39
+ const tokens = JSON.parse(localStorage.getItem(this.key) || '{}');
40
+ const key = this.getKey(serverAddress, app);
41
+ return Promise.resolve(tokens[key] || null);
42
+ }
43
+ }
44
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AAItC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,OAAO,MAAO,SAAQ,GAAG,CAAC,SAAS;IACpB,aAAa,CAAgB;IAC9B,IAAI,CAAO;IAE3B,YAAY,EACR,GAAG,EACH,OAAO,EACP,KAAK,GAMR;QACG,KAAK,CAAC;YACF,GAAG;YACH,OAAO,EAAE,OAAO,IAAI;gBAChB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,KAAK;aAChB;YACD,KAAK,EAAE,KAAK,IAAI,IAAI,oBAAoB,CAAC,WAAW,CAAC;SACxD,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,EAAE,CAAsB,KAAkB,EAAE,OAAwB;QAChE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;CACJ;AAED,MAAM,OAAO,oBAAoB;IACA;IAA7B,YAA6B,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAG,CAAC;IAEpC,MAAM,CAAC,aAAsB,EAAE,GAAY;QAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,aAAsB,EAAE,GAAY,EAAE,KAAa;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,aAAsB,EAAE,GAAY;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC5C,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;IAChD,CAAC;CACJ"}
@@ -0,0 +1,3 @@
1
+ import { Identifier } from '@omujs/omu/identifier.js';
2
+ export const IDENTIFIER = new Identifier('com.omuapps', 'chat');
3
+ //# sourceMappingURL=const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../src/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC"}
@@ -0,0 +1,35 @@
1
+ export class EventRegistry {
2
+ client;
3
+ handlers = new Map();
4
+ constructor(client) {
5
+ this.client = client;
6
+ }
7
+ on(event, handler) {
8
+ if (!this.handlers.has(event.name)) {
9
+ event.create(this.client, (...data) => {
10
+ this.emit(event, ...data);
11
+ });
12
+ }
13
+ const handlers = this.handlers.get(event.name) || new Array();
14
+ handlers.push(handler);
15
+ this.handlers.set(event.name, handlers);
16
+ return () => {
17
+ const handlers = this.handlers.get(event.name);
18
+ if (handlers) {
19
+ const index = handlers.indexOf(handler);
20
+ if (index !== -1) {
21
+ handlers.splice(index, 1);
22
+ }
23
+ }
24
+ };
25
+ }
26
+ emit(event, ...data) {
27
+ const handlers = this.handlers.get(event.name);
28
+ if (handlers) {
29
+ for (const handler of handlers) {
30
+ handler(...data);
31
+ }
32
+ }
33
+ }
34
+ }
35
+ //# sourceMappingURL=event-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-registry.js","sourceRoot":"","sources":["../../../src/event/event-registry.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,aAAa;IAGO;IAFZ,QAAQ,GAAqC,IAAI,GAAG,EAAE,CAAC;IAExE,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAI,CAAC;IAEzC,EAAE,CAAsB,KAAkB,EAAE,OAAwB;QACvE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;gBAClC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACP,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,EAAmB,CAAC;QAC/E,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACxC,OAAO,GAAG,EAAE;YACR,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,QAAQ,EAAE,CAAC;gBACX,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACxC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;oBACf,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC9B,CAAC;YACL,CAAC;QACL,CAAC,CAAC;IACN,CAAC;IAEM,IAAI,CAAsB,KAAkB,EAAE,GAAG,IAAO;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,QAAQ,EAAE,CAAC;YACX,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;YACrB,CAAC;QACL,CAAC;IACL,CAAC;CACJ"}
@@ -0,0 +1,40 @@
1
+ export class EventKey {
2
+ name;
3
+ create;
4
+ constructor(name, create = () => { }) {
5
+ this.name = name;
6
+ this.create = create;
7
+ }
8
+ }
9
+ function initTableEvent(consumer) {
10
+ return (client, invoke) => {
11
+ const table = consumer(client);
12
+ table.listen();
13
+ table.event.add.listen((items) => {
14
+ for (const item of items.values()) {
15
+ invoke(item);
16
+ }
17
+ });
18
+ };
19
+ }
20
+ export const events = {
21
+ Ready: new EventKey('ready', (client, invoke) => {
22
+ client.network.event.connected.listen(() => invoke());
23
+ }),
24
+ MessageCreate: new EventKey('on_message', initTableEvent((client) => client.chat.messages)),
25
+ MessageUpdate: new EventKey('on_message_update', initTableEvent((client) => client.chat.messages)),
26
+ MessageDelete: new EventKey('on_message_delete', initTableEvent((client) => client.chat.messages)),
27
+ AuthorCreate: new EventKey('on_author_create', initTableEvent((client) => client.chat.authors)),
28
+ AuthorUpdate: new EventKey('on_author_update', initTableEvent((client) => client.chat.authors)),
29
+ AuthorDelete: new EventKey('on_author_delete', initTableEvent((client) => client.chat.authors)),
30
+ ChannelCreate: new EventKey('on_channel_create', initTableEvent((client) => client.chat.channels)),
31
+ ChannelUpdate: new EventKey('on_channel_update', initTableEvent((client) => client.chat.channels)),
32
+ ChannelDelete: new EventKey('on_channel_delete', initTableEvent((client) => client.chat.channels)),
33
+ ProviderCreate: new EventKey('on_provider_create', initTableEvent((client) => client.chat.providers)),
34
+ ProviderUpdate: new EventKey('on_provider_update', initTableEvent((client) => client.chat.providers)),
35
+ ProviderDelete: new EventKey('on_provider_delete', initTableEvent((client) => client.chat.providers)),
36
+ RoomCreate: new EventKey('on_room_create', initTableEvent((client) => client.chat.rooms)),
37
+ RoomUpdate: new EventKey('on_room_update', initTableEvent((client) => client.chat.rooms)),
38
+ RoomDelete: new EventKey('on_room_delete', initTableEvent((client) => client.chat.rooms)),
39
+ };
40
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/event/event.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { EventRegistry } from './event-registry.js';
2
+ export { EventKey, events } from './event.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/event/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAqB,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { Chat } from './chat.js';
2
+ export * as models from './models/index.js';
3
+ export * as permissions from './permissions.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { Identifier } from '@omujs/omu/identifier.js';
2
+ import { Role } from './role.js';
3
+ export class Author {
4
+ providerId;
5
+ id;
6
+ name;
7
+ avatarUrl;
8
+ roles;
9
+ metadata;
10
+ constructor(options) {
11
+ this.providerId = options.providerId;
12
+ this.id = options.id;
13
+ this.name = options.name;
14
+ this.avatarUrl = options.avatarUrl;
15
+ this.roles = options.roles;
16
+ this.metadata = options.metadata;
17
+ }
18
+ static fromJson(info) {
19
+ return new Author({
20
+ providerId: Identifier.fromKey(info.provider_id),
21
+ id: Identifier.fromKey(info.id),
22
+ name: info.name,
23
+ avatarUrl: info.avatar_url,
24
+ roles: info.roles?.map((role) => Role.fromJson(role)),
25
+ metadata: info.metadata,
26
+ });
27
+ }
28
+ key() {
29
+ return `${this.providerId}:${this.id}`;
30
+ }
31
+ toJson() {
32
+ return {
33
+ provider_id: this.providerId.key(),
34
+ id: this.id.key(),
35
+ name: this.name,
36
+ avatar_url: this.avatarUrl,
37
+ roles: this.roles?.map((role) => role.toJson()),
38
+ metadata: this.metadata,
39
+ };
40
+ }
41
+ }
42
+ //# sourceMappingURL=author.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"author.js","sourceRoot":"","sources":["../../../src/models/author.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAKtD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAmBjC,MAAM,OAAO,MAAM;IACR,UAAU,CAAa;IACvB,EAAE,CAAa;IACf,IAAI,CAAU;IACd,SAAS,CAAU;IACnB,KAAK,CAAU;IACf,QAAQ,CAAkB;IAEjC,YAAY,OAOX;QACG,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAgB;QAC5B,OAAO,IAAI,MAAM,CAAC;YACd,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;YAChD,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrD,QAAQ,EAAE,IAAI,CAAC,QAAQ;SAC1B,CAAC,CAAC;IACP,CAAC;IAED,GAAG;QACC,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM;QACF,OAAO;YACH,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE;YAClC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/C,QAAQ,EAAE,IAAI,CAAC,QAAQ;SAC1B,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,45 @@
1
+ import { Identifier } from '@omujs/omu/identifier.js';
2
+ export class Channel {
3
+ providerId;
4
+ id;
5
+ url;
6
+ name;
7
+ description;
8
+ active;
9
+ iconUrl;
10
+ constructor(option) {
11
+ this.providerId = option.providerId;
12
+ this.id = option.id;
13
+ this.url = option.url;
14
+ this.name = option.name;
15
+ this.description = option.description;
16
+ this.active = option.active;
17
+ this.iconUrl = option.iconUrl;
18
+ }
19
+ static fromJson(json) {
20
+ return new Channel({
21
+ providerId: Identifier.fromKey(json.provider_id),
22
+ id: Identifier.fromKey(json.id),
23
+ url: json.url,
24
+ name: json.name,
25
+ description: json.description,
26
+ active: json.active,
27
+ iconUrl: json.icon_url,
28
+ });
29
+ }
30
+ key() {
31
+ return this.id.key();
32
+ }
33
+ toJson() {
34
+ return {
35
+ provider_id: this.providerId.key(),
36
+ id: this.id.key(),
37
+ url: this.url,
38
+ name: this.name,
39
+ description: this.description,
40
+ active: this.active,
41
+ icon_url: this.iconUrl,
42
+ };
43
+ }
44
+ }
45
+ //# sourceMappingURL=channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../../src/models/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AActD,MAAM,OAAO,OAAO;IAChB,UAAU,CAAa;IACvB,EAAE,CAAa;IACf,GAAG,CAAS;IACZ,IAAI,CAAS;IACb,WAAW,CAAS;IACpB,MAAM,CAAU;IAChB,OAAO,CAAS;IAEhB,YAAY,MAQX;QACG,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAiB;QAC7B,OAAO,IAAI,OAAO,CAAC;YACf,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;YAChD,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,QAAQ;SACzB,CAAC,CAAC;IACP,CAAC;IAED,GAAG;QACC,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,MAAM;QACF,OAAO;YACH,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE;YAClC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,OAAO;SACzB,CAAC;IACN,CAAC;CACJ"}