@omujs/chat 0.9.10 → 0.9.27

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 (102) hide show
  1. package/CHANGELOG.md +154 -0
  2. package/README.md +19 -1
  3. package/dist/dts/chat.d.ts +18 -19
  4. package/dist/dts/const.d.ts +2 -3
  5. package/dist/dts/event/event-types.d.ts +13 -8
  6. package/dist/dts/event/event.d.ts +24 -25
  7. package/dist/dts/event/index.d.ts +2 -3
  8. package/dist/dts/index.d.ts +6 -5
  9. package/dist/dts/models/author.d.ts +32 -35
  10. package/dist/dts/models/channel.d.ts +28 -31
  11. package/dist/dts/models/content.d.ts +26 -84
  12. package/dist/dts/models/gift.d.ts +20 -22
  13. package/dist/dts/models/index.d.ts +13 -12
  14. package/dist/dts/models/message.d.ts +37 -40
  15. package/dist/dts/models/paid.d.ts +8 -10
  16. package/dist/dts/models/provider.d.ts +31 -34
  17. package/dist/dts/models/reaction.d.ts +18 -20
  18. package/dist/dts/models/role.d.ts +23 -25
  19. package/dist/dts/models/room.d.ts +39 -42
  20. package/dist/dts/models/vote.d.ts +28 -31
  21. package/dist/dts/permissions.d.ts +7 -7
  22. package/dist/esm/chat.js +7652 -112
  23. package/dist/esm/const.js +4751 -3
  24. package/dist/esm/event/event-types.js +75 -9
  25. package/dist/esm/event/event.js +101 -75
  26. package/dist/esm/event/index.js +115 -3
  27. package/dist/esm/index.js +7698 -5
  28. package/dist/esm/models/author.js +4823 -38
  29. package/dist/esm/models/channel.js +4789 -41
  30. package/dist/esm/models/content.js +39 -168
  31. package/dist/esm/models/gift.js +39 -32
  32. package/dist/esm/models/index.js +5190 -12
  33. package/dist/esm/models/message.js +4886 -57
  34. package/dist/esm/models/paid.js +24 -17
  35. package/dist/esm/models/provider.js +4792 -44
  36. package/dist/esm/models/reaction.js +4763 -15
  37. package/dist/esm/models/role.js +43 -36
  38. package/dist/esm/models/room.js +4788 -40
  39. package/dist/esm/models/vote.js +4784 -36
  40. package/dist/esm/permissions.js +4764 -8
  41. package/package.json +26 -37
  42. package/src/chat.ts +49 -43
  43. package/src/const.ts +2 -2
  44. package/src/event/event-types.ts +13 -7
  45. package/src/event/event.ts +18 -18
  46. package/src/event/index.ts +2 -1
  47. package/src/index.ts +5 -4
  48. package/src/models/author.ts +15 -17
  49. package/src/models/channel.ts +11 -13
  50. package/src/models/content.ts +42 -206
  51. package/src/models/gift.ts +1 -3
  52. package/src/models/index.ts +14 -11
  53. package/src/models/message.ts +19 -22
  54. package/src/models/paid.ts +1 -3
  55. package/src/models/provider.ts +16 -18
  56. package/src/models/reaction.ts +5 -6
  57. package/src/models/role.ts +1 -3
  58. package/src/models/room.ts +11 -13
  59. package/src/models/vote.ts +9 -11
  60. package/src/permissions.ts +8 -7
  61. package/tsconfig.json +5 -2
  62. package/tsconfig.tsbuildinfo +1 -0
  63. package/LICENSE +0 -21
  64. package/dist/dts/chat.d.ts.map +0 -1
  65. package/dist/dts/const.d.ts.map +0 -1
  66. package/dist/dts/event/event-types.d.ts.map +0 -1
  67. package/dist/dts/event/event.d.ts.map +0 -1
  68. package/dist/dts/event/index.d.ts.map +0 -1
  69. package/dist/dts/index.d.ts.map +0 -1
  70. package/dist/dts/models/author.d.ts.map +0 -1
  71. package/dist/dts/models/channel.d.ts.map +0 -1
  72. package/dist/dts/models/content.d.ts.map +0 -1
  73. package/dist/dts/models/gift.d.ts.map +0 -1
  74. package/dist/dts/models/index.d.ts.map +0 -1
  75. package/dist/dts/models/message.d.ts.map +0 -1
  76. package/dist/dts/models/paid.d.ts.map +0 -1
  77. package/dist/dts/models/provider.d.ts.map +0 -1
  78. package/dist/dts/models/reaction.d.ts.map +0 -1
  79. package/dist/dts/models/role.d.ts.map +0 -1
  80. package/dist/dts/models/room.d.ts.map +0 -1
  81. package/dist/dts/models/vote.d.ts.map +0 -1
  82. package/dist/dts/permissions.d.ts.map +0 -1
  83. package/dist/esm/chat.js.map +0 -1
  84. package/dist/esm/const.js.map +0 -1
  85. package/dist/esm/event/event-types.js.map +0 -1
  86. package/dist/esm/event/event.js.map +0 -1
  87. package/dist/esm/event/index.js.map +0 -1
  88. package/dist/esm/index.js.map +0 -1
  89. package/dist/esm/models/author.js.map +0 -1
  90. package/dist/esm/models/channel.js.map +0 -1
  91. package/dist/esm/models/content.js.map +0 -1
  92. package/dist/esm/models/gift.js.map +0 -1
  93. package/dist/esm/models/index.js.map +0 -1
  94. package/dist/esm/models/message.js.map +0 -1
  95. package/dist/esm/models/paid.js.map +0 -1
  96. package/dist/esm/models/provider.js.map +0 -1
  97. package/dist/esm/models/reaction.js.map +0 -1
  98. package/dist/esm/models/role.js.map +0 -1
  99. package/dist/esm/models/room.js.map +0 -1
  100. package/dist/esm/models/vote.js.map +0 -1
  101. package/dist/esm/permissions.js.map +0 -1
  102. package/eslint.config.js +0 -6
package/CHANGELOG.md CHANGED
@@ -3,6 +3,160 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 0.9.27 (2025-11-15)
7
+
8
+ **Note:** Version bump only for package @omujs/chat
9
+
10
+
11
+
12
+
13
+
14
+ ## 0.9.26 (2025-11-11)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * OBSプラグイン動かないからPythonを3.12.3に戻す ([bffa038](https://github.com/OMUAPPS/omuapps/commit/bffa038fb2bbfd379fa3d9380bca1b9365ca0224))
20
+
21
+
22
+
23
+
24
+
25
+ ## 0.9.25 (2025-11-11)
26
+
27
+ **Note:** Version bump only for package @omujs/chat
28
+
29
+
30
+
31
+
32
+
33
+ ## 0.9.24 (2025-11-06)
34
+
35
+ **Note:** Version bump only for package @omujs/chat
36
+
37
+
38
+
39
+
40
+
41
+ ## 0.9.23 (2025-11-04)
42
+
43
+ **Note:** Version bump only for package @omujs/chat
44
+
45
+
46
+
47
+
48
+
49
+ ## 0.9.22 (2025-11-03)
50
+
51
+
52
+ ### Bug Fixes
53
+
54
+ * **site:** アセットの接続エラーの説明を分かりやすくする ([2f8cced](https://github.com/OMUAPPS/omuapps/commit/2f8cced2e5813bc5d3cbe14d9d811242a279c257))
55
+
56
+
57
+
58
+
59
+
60
+ ## 0.9.21 (2025-11-01)
61
+
62
+ **Note:** Version bump only for package @omujs/chat
63
+
64
+
65
+
66
+
67
+
68
+ ## 0.9.20 (2025-10-31)
69
+
70
+
71
+ ### Bug Fixes
72
+
73
+ * **app-discord-overlay:** reactive互換を削除 ([8f46a65](https://github.com/OMUAPPS/omuapps/commit/8f46a65091a5b98851253ccf382ae27fb769131e))
74
+
75
+
76
+
77
+
78
+
79
+ ## 0.9.19 (2025-10-29)
80
+
81
+
82
+ ### Bug Fixes
83
+
84
+ * **app-marshmallow:** アカウント切り替えができない問題を修正 ([33bede6](https://github.com/OMUAPPS/omuapps/commit/33bede6ed97cf2c6beed341bab6f6d8b56c81036))
85
+
86
+
87
+
88
+
89
+
90
+ ## 0.9.18 (2025-10-29)
91
+
92
+
93
+ ### Bug Fixes
94
+
95
+ * **dash:** プラグインインストール画面の重複してる警告を削除 ([3002828](https://github.com/OMUAPPS/omuapps/commit/3002828a3a9cbca89629b6507806f1757000e26e))
96
+
97
+
98
+
99
+
100
+
101
+ ## 0.9.17 (2025-10-28)
102
+
103
+ **Note:** Version bump only for package @omujs/chat
104
+
105
+
106
+
107
+
108
+
109
+ ## 0.9.16 (2025-10-27)
110
+
111
+ **Note:** Version bump only for package @omujs/chat
112
+
113
+
114
+
115
+
116
+
117
+ ## 0.9.15 (2025-10-27)
118
+
119
+
120
+ ### Bug Fixes
121
+
122
+ * **app-reaction:** アセット側の表示がされない問題を修正 ([d680875](https://github.com/OMUAPPS/omuapps/commit/d680875954e68de8a8de3902fcf3d5c7a46c1846))
123
+
124
+
125
+
126
+
127
+
128
+ ## 0.9.14 (2025-10-27)
129
+
130
+ **Note:** Version bump only for package @omujs/chat
131
+
132
+
133
+
134
+
135
+
136
+ ## 0.9.13 (2025-07-23)
137
+
138
+ **Note:** Version bump only for package @omujs/chat
139
+
140
+
141
+
142
+
143
+
144
+ ## 0.9.12 (2025-07-23)
145
+
146
+ **Note:** Version bump only for package @omujs/chat
147
+
148
+
149
+
150
+
151
+
152
+ ## 0.9.11 (2025-07-23)
153
+
154
+ **Note:** Version bump only for package @omujs/chat
155
+
156
+
157
+
158
+
159
+
6
160
  ## 0.9.10 (2025-02-13)
7
161
 
8
162
 
package/README.md CHANGED
@@ -1 +1,19 @@
1
- ![graph](../../assets/graph-chat.png)
1
+ # @omujs/chat
2
+
3
+ OMUを通してチャット機能を提供するパッケージです。
4
+
5
+ ## Usage
6
+
7
+ ```typescript
8
+ ...
9
+ import { Chat, events } from '@omujs/chat';
10
+
11
+ const chat = Chat.create(omu);
12
+
13
+ chat.on(events.message.add, async (message) => {
14
+ console.log(`New message created: ${message.text}`);
15
+ });
16
+ chat.on(events.room.add, (room) => {
17
+ console.log(`New room created: ${room.metadata.title}`);
18
+ })
19
+ ```
@@ -1,21 +1,20 @@
1
- import type { Client } from '@omujs/omu/client.js';
2
- import type { Signal } from '@omujs/omu/extension/signal/signal.js';
3
- import type { Table } from '@omujs/omu/extension/table/index.js';
4
- import type { EventHandler, EventSource } from './event/event.js';
5
- import { Author, Channel, Message, Provider, Reaction, Room, Vote } from './models/index.js';
1
+ import type { Omu } from "@omujs/omu";
2
+ import type { Signal } from "@omujs/omu/api/signal";
3
+ import type { Table } from "@omujs/omu/api/table";
4
+ import type { EventHandler, EventSource } from "./event";
5
+ import { Author, Channel, Message, Provider, Reaction, Room, Vote } from "./models";
6
6
  export declare class Chat {
7
- private readonly client;
8
- readonly messages: Table<Message>;
9
- readonly authors: Table<Author>;
10
- readonly channels: Table<Channel>;
11
- readonly providers: Table<Provider>;
12
- readonly rooms: Table<Room>;
13
- readonly votes: Table<Vote>;
14
- readonly reactionSignal: Signal<Reaction>;
15
- private readonly eventRegistry;
16
- private constructor();
17
- static create(client: Client): Chat;
18
- createChannelTree(url: string): Promise<Channel[]>;
19
- on<P extends Array<any>>(event: EventSource<P>, handler: EventHandler<P>): void;
7
+ private readonly omu;
8
+ readonly messages: Table<Message>;
9
+ readonly authors: Table<Author>;
10
+ readonly channels: Table<Channel>;
11
+ readonly providers: Table<Provider>;
12
+ readonly rooms: Table<Room>;
13
+ readonly votes: Table<Vote>;
14
+ readonly reactionSignal: Signal<Reaction>;
15
+ private readonly eventRegistry;
16
+ private constructor();
17
+ static create(omu: Omu): Chat;
18
+ createChannelTree(url: string): Promise<Channel[]>;
19
+ on<P extends Array<any>>(event: EventSource<P>, handler: EventHandler<P>): void;
20
20
  }
21
- //# sourceMappingURL=chat.d.ts.map
@@ -1,3 +1,2 @@
1
- import { Identifier } from '@omujs/omu/identifier.js';
2
- export declare const IDENTIFIER: Identifier;
3
- //# sourceMappingURL=const.d.ts.map
1
+ import { Identifier } from "@omujs/omu";
2
+ export declare const PLUGIN_ID: Identifier;
@@ -1,10 +1,15 @@
1
- import { TableEvent } from './event.js';
1
+ import { Author } from "../models/author.js";
2
+ import { Channel } from "../models/channel.js";
3
+ import { Message } from "../models/message.js";
4
+ import { Provider } from "../models/provider.js";
5
+ import { Room } from "../models/room.js";
6
+ import { Vote } from "../models/vote.js";
7
+ import { TableEvent } from "./event.js";
2
8
  export declare const events: {
3
- message: TableEvent<import("../models/message.js").Message>;
4
- author: TableEvent<import("../models/author.js").Author>;
5
- channel: TableEvent<import("../models/channel.js").Channel>;
6
- provider: TableEvent<import("../models/provider.js").Provider>;
7
- room: TableEvent<import("../models/room.js").Room>;
8
- vote: TableEvent<import("../models/vote.js").Vote>;
9
+ Message: TableEvent<Message>;
10
+ Author: TableEvent<Author>;
11
+ Channel: TableEvent<Channel>;
12
+ Provider: TableEvent<Provider>;
13
+ Room: TableEvent<Room>;
14
+ Vote: TableEvent<Vote>;
9
15
  };
10
- //# sourceMappingURL=event-types.d.ts.map
@@ -1,34 +1,33 @@
1
- import type { Unlisten } from '@omujs/omu/event-emitter.js';
2
- import { EventEmitter } from '@omujs/omu/event-emitter.js';
3
- import type { Table } from '@omujs/omu/extension/table/table.js';
4
- import type { Chat } from '../chat.js';
1
+ import type { Table } from "@omujs/omu/api/table";
2
+ import type { Unlisten } from "@omujs/omu/event";
3
+ import { EventEmitter } from "@omujs/omu/event";
4
+ import type { Chat } from "../chat.js";
5
5
  export type EventHandler<P extends Array<any>> = (...args: P) => Promise<void> | void;
6
6
  export interface EventSource<P extends Array<any>> {
7
- subscribe(handler: EventHandler<P>, chat: Chat): Unlisten;
7
+ subscribe(handler: EventHandler<P>, chat: Chat): Unlisten;
8
8
  }
9
9
  export declare class ListenerEvent<P extends Array<any>> implements EventSource<P> {
10
- private readonly getListener;
11
- constructor(getListener: (chat: Chat) => EventEmitter<P>);
12
- subscribe(handler: EventHandler<P>, chat: Chat): Unlisten;
10
+ private readonly getListener;
11
+ constructor(getListener: (chat: Chat) => EventEmitter<P>);
12
+ subscribe(handler: EventHandler<P>, chat: Chat): Unlisten;
13
13
  }
14
14
  export declare class TableEvent<T> extends ListenerEvent<[Map<string, T>]> {
15
- private readonly getTable;
16
- readonly addBatch: ListenerEvent<[Map<string, T>]>;
17
- readonly updateBatch: ListenerEvent<[Map<string, T>]>;
18
- readonly removeBatch: ListenerEvent<[Map<string, T>]>;
19
- readonly add: EventSource<[T]>;
20
- readonly update: EventSource<[T]>;
21
- readonly remove: EventSource<[T]>;
22
- readonly clear: EventSource<[]>;
23
- readonly wrappers: Record<string, Unlisten>;
24
- constructor(getTable: (chat: Chat) => Table<T>);
25
- private static createBatchWrapper;
26
- private createBatchSubscriber;
15
+ private readonly getTable;
16
+ readonly AddBatch: ListenerEvent<[Map<string, T>]>;
17
+ readonly UpdateBatch: ListenerEvent<[Map<string, T>]>;
18
+ readonly RemoveBatch: ListenerEvent<[Map<string, T>]>;
19
+ readonly Add: EventSource<[T]>;
20
+ readonly Update: EventSource<[T]>;
21
+ readonly Remove: EventSource<[T]>;
22
+ readonly Clear: EventSource<[]>;
23
+ readonly wrappers: Record<string, Unlisten>;
24
+ constructor(getTable: (chat: Chat) => Table<T>);
25
+ private static createBatchWrapper;
26
+ private createBatchSubscriber;
27
27
  }
28
28
  export declare class EventRegistry {
29
- private readonly chat;
30
- private readonly events;
31
- constructor(chat: Chat);
32
- register<P extends Array<any>>(event: EventSource<P>, handler: EventHandler<P>): void;
29
+ private readonly chat;
30
+ private readonly events;
31
+ constructor(chat: Chat);
32
+ register<P extends Array<any>>(event: EventSource<P>, handler: EventHandler<P>): void;
33
33
  }
34
- //# sourceMappingURL=event.d.ts.map
@@ -1,3 +1,2 @@
1
- export { EventHandler, EventRegistry, EventSource } from './event.js';
2
- export { events } from './event-types.js';
3
- //# sourceMappingURL=index.d.ts.map
1
+ export { events as Events } from "./event-types.js";
2
+ export { EventHandler, EventRegistry, EventSource } from "./event.js";
@@ -1,5 +1,6 @@
1
- export { Chat } from './chat.js';
2
- export { events as ChatEvents, events } from './event/index.js';
3
- export * as models from './models/index.js';
4
- export * as permissions from './permissions.js';
5
- //# sourceMappingURL=index.d.ts.map
1
+ export { Chat } from "./chat.js";
2
+ export { Events as ChatEvents } from "./event";
3
+ export * as Models from "./models";
4
+ export { Content };
5
+ import { Content } from "./models";
6
+ export * as ChatPermissions from "./permissions.js";
@@ -1,40 +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
- import type { RoleJson } from './role.js';
5
- import { Role } from './role.js';
1
+ import { Identifier } from "@omujs/omu";
2
+ import type { RoleJson } from "./role.js";
3
+ import { Role } from "./role.js";
6
4
  export type AuthorMetadata = {
7
- url?: string;
8
- screen_id?: string;
9
- avatar_url?: string;
10
- description?: string;
11
- links?: string[];
5
+ url?: string;
6
+ screen_id?: string;
7
+ avatar_url?: string;
8
+ description?: string;
9
+ links?: string[];
12
10
  };
13
11
  export type AuthorJson = {
14
- provider_id: string;
15
- id: string;
16
- name?: string;
17
- avatar_url?: string;
18
- roles?: RoleJson[];
19
- metadata?: AuthorMetadata;
12
+ provider_id: string;
13
+ id: string;
14
+ metadata: AuthorMetadata;
15
+ name?: string;
16
+ avatar_url?: string;
17
+ roles?: RoleJson[];
20
18
  };
21
- export declare class Author implements Keyable, Model<AuthorJson> {
22
- providerId: Identifier;
23
- id: Identifier;
24
- name?: string;
25
- avatarUrl?: string;
26
- roles?: Role[];
27
- metadata?: AuthorMetadata;
28
- constructor(options: {
29
- providerId: Identifier;
30
- id: Identifier;
31
- name?: string;
32
- avatarUrl?: string;
33
- roles?: Role[];
34
- metadata?: AuthorMetadata;
35
- });
36
- static fromJson(info: AuthorJson): Author;
37
- key(): string;
38
- toJson(): AuthorJson;
19
+ export declare class Author {
20
+ providerId: Identifier;
21
+ id: Identifier;
22
+ metadata: AuthorMetadata;
23
+ name?: string;
24
+ avatarUrl?: string;
25
+ roles?: Role[];
26
+ constructor(options: {
27
+ providerId: Identifier;
28
+ id: Identifier;
29
+ metadata?: AuthorMetadata;
30
+ name?: string;
31
+ avatarUrl?: string;
32
+ roles?: Role[];
33
+ });
34
+ static deserialize(info: AuthorJson): Author;
35
+ key(): string;
36
+ static serialize(item: Author): AuthorJson;
39
37
  }
40
- //# sourceMappingURL=author.d.ts.map
@@ -1,34 +1,31 @@
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';
1
+ import { Identifier } from "@omujs/omu";
4
2
  export type ChannelJson = {
5
- provider_id: string;
6
- id: string;
7
- url: string;
8
- name: string;
9
- description: string;
10
- active: boolean;
11
- icon_url: string;
3
+ provider_id: string;
4
+ id: string;
5
+ url: string;
6
+ name: string;
7
+ description: string;
8
+ active: boolean;
9
+ icon_url: string;
12
10
  };
13
- export declare class Channel implements Model<ChannelJson>, Keyable {
14
- providerId: Identifier;
15
- id: Identifier;
16
- url: string;
17
- name: string;
18
- description: string;
19
- active: boolean;
20
- iconUrl: string;
21
- constructor(option: {
22
- providerId: Identifier;
23
- id: Identifier;
24
- url: string;
25
- name: string;
26
- description: string;
27
- active: boolean;
28
- iconUrl: string;
29
- });
30
- static fromJson(json: ChannelJson): Channel;
31
- key(): string;
32
- toJson(): ChannelJson;
11
+ export declare class Channel {
12
+ providerId: Identifier;
13
+ id: Identifier;
14
+ url: string;
15
+ name: string;
16
+ description: string;
17
+ active: boolean;
18
+ iconUrl: string;
19
+ constructor(option: {
20
+ providerId: Identifier;
21
+ id: Identifier;
22
+ url: string;
23
+ name: string;
24
+ description: string;
25
+ active: boolean;
26
+ iconUrl: string;
27
+ });
28
+ static deserialize(json: ChannelJson): Channel;
29
+ key(): string;
30
+ static serialize(item: Channel): ChannelJson;
33
31
  }
34
- //# sourceMappingURL=channel.d.ts.map
@@ -1,85 +1,27 @@
1
- import { Identifier } from '@omujs/omu';
2
- type Primitive = {
3
- [key: string]: Primitive | string | number | boolean | null;
4
- } | any[] | string | number | boolean | null;
5
- export type ComponentJson = {
6
- type: string;
7
- data: Primitive;
1
+ import { JsonType } from "@omujs/omu/serialize";
2
+ export type ComponentType<
3
+ T extends string,
4
+ D extends JsonType = JsonType
5
+ > = {
6
+ type: T;
7
+ data: D;
8
8
  };
9
- export interface Parent {
10
- children: Component[];
11
- }
12
- export declare abstract class Component<T extends string = string, D extends Primitive = Primitive> {
13
- type: T;
14
- constructor(type: T);
15
- abstract toJson(): D;
16
- isParent(): this is Parent;
17
- walk(cb: (component: Component) => void): void;
18
- iter(): Iterable<Component>;
19
- toString(): string;
20
- }
21
- export type ComponentType<D, C extends Component> = {
22
- type: string;
23
- fromJson(json: D): C;
24
- };
25
- export declare function deserialize(json: ComponentJson): Component;
26
- export declare function serialize(component: Component): ComponentJson;
27
- export declare function register<D, C extends Component>(type: string, deserialize: (json: D) => C): void;
28
- export type RootData = ComponentJson[];
29
- export declare class Root extends Component<'root', RootData> implements Parent {
30
- children: Component[];
31
- constructor(children: Component[]);
32
- toJson(): RootData;
33
- add(component: Component): void;
34
- text(): string;
35
- }
36
- export type TextData = string;
37
- export declare class Text extends Component<'text', TextData> {
38
- text: string;
39
- constructor(text: string);
40
- toJson(): TextData;
41
- static of(text: string): Text;
42
- }
43
- export type ImageData = {
44
- url: string;
45
- id: string;
46
- name?: string;
47
- };
48
- export declare class Image extends Component<'image', ImageData> {
49
- url: string;
50
- id: string;
51
- name: string | undefined;
52
- constructor(url: string, id: string, name?: string | undefined);
53
- toJson(): ImageData;
54
- static of({ url, id, name }: {
55
- url: string;
56
- id: string;
57
- name?: string;
58
- }): Image;
59
- }
60
- export type AssetData = {
61
- id: string;
62
- };
63
- export declare class Asset extends Component<'asset', AssetData> {
64
- id: Identifier;
65
- constructor(id: Identifier);
66
- toJson(): AssetData;
67
- }
68
- export type LinkData = {
69
- url: string;
70
- children: ComponentJson[];
71
- };
72
- export declare class Link extends Component<'link', LinkData> implements Parent {
73
- url: string;
74
- children: Component[];
75
- constructor(url: string, children: Component[]);
76
- toJson(): LinkData;
77
- }
78
- export type SystemData = ComponentJson[];
79
- export declare class System extends Component<'system', SystemData> implements Parent {
80
- children: Component[];
81
- constructor(children: Component[]);
82
- toJson(): SystemData;
83
- }
84
- export {};
85
- //# sourceMappingURL=content.d.ts.map
9
+ export type Root = ComponentType<"root", Component[]>;
10
+ export type Text = ComponentType<"text", string>;
11
+ export type Image = ComponentType<"image", {
12
+ url: string;
13
+ id: string;
14
+ name?: string;
15
+ }>;
16
+ export type Asset = ComponentType<"asset", {
17
+ id: string;
18
+ }>;
19
+ export type Link = ComponentType<"link", {
20
+ url: string;
21
+ children: Component[];
22
+ }>;
23
+ export type System = ComponentType<"system", Component[]>;
24
+ export type Component = Root | Text | Image | Asset | Link | System;
25
+ export declare function children(component: Component): Component[];
26
+ export declare function walk(component: Component): Iterable<Component>;
27
+ export declare function format(component: Component): string;
@@ -1,25 +1,23 @@
1
- import type { Model } from '@omujs/omu/model.js';
2
1
  export type GiftJson = {
3
- id: string;
4
- name?: string;
5
- amount?: number;
6
- is_paid?: boolean;
7
- image_url?: string;
2
+ id: string;
3
+ name?: string;
4
+ amount?: number;
5
+ is_paid?: boolean;
6
+ image_url?: string;
8
7
  };
9
- export declare class Gift implements Model<GiftJson> {
10
- id: string;
11
- name?: string;
12
- amount?: number;
13
- isPaid?: boolean;
14
- imageUrl?: string;
15
- constructor(options: {
16
- id: string;
17
- name?: string;
18
- amount?: number;
19
- isPaid?: boolean;
20
- imageUrl?: string;
21
- });
22
- static fromJson(options: GiftJson): Gift;
23
- toJson(): GiftJson;
8
+ export declare class Gift {
9
+ id: string;
10
+ name?: string;
11
+ amount?: number;
12
+ isPaid?: boolean;
13
+ imageUrl?: string;
14
+ constructor(options: {
15
+ id: string;
16
+ name?: string;
17
+ amount?: number;
18
+ isPaid?: boolean;
19
+ imageUrl?: string;
20
+ });
21
+ static fromJson(options: GiftJson): Gift;
22
+ toJson(): GiftJson;
24
23
  }
25
- //# sourceMappingURL=gift.d.ts.map
@@ -1,12 +1,13 @@
1
- export { Author } from './author.js';
2
- export { Channel } from './channel.js';
3
- export * as content from './content.js';
4
- export { Gift } from './gift.js';
5
- export { Message } from './message.js';
6
- export { Paid } from './paid.js';
7
- export { Reaction } from './reaction.js';
8
- export { Provider } from './provider.js';
9
- export { Role } from './role.js';
10
- export { Room } from './room.js';
11
- export { Vote, Choice } from './vote.js';
12
- //# sourceMappingURL=index.d.ts.map
1
+ export { Author, AuthorJson } from "./author.js";
2
+ export { Channel, ChannelJson } from "./channel.js";
3
+ export { Asset, Component, ComponentType, Image, Link, Root, System, Text } from "./content.js";
4
+ export { Gift, GiftJson } from "./gift.js";
5
+ export { Message, MessageJson } from "./message.js";
6
+ export { Paid, PaidJson } from "./paid.js";
7
+ export { Provider, ProviderJson } from "./provider.js";
8
+ export { Reaction, ReactionJson } from "./reaction.js";
9
+ export { Role, RoleJson } from "./role.js";
10
+ export { Room, RoomJson } from "./room.js";
11
+ export { Choice, Vote, VoteJson } from "./vote.js";
12
+ export { Content };
13
+ import * as Content from "./content.js";