@alkemio/matrix-adapter-lib 0.6.2 → 1.0.0-beta2

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 (152) hide show
  1. package/README.md +204 -2
  2. package/dist/commands.d.ts +101 -0
  3. package/dist/commands.js +99 -0
  4. package/dist/commands.js.map +1 -0
  5. package/dist/dto/generated.d.ts +273 -0
  6. package/dist/dto/generated.js +41 -0
  7. package/dist/dto/generated.js.map +1 -0
  8. package/dist/dto/index.d.ts +1 -40
  9. package/dist/dto/index.js +1 -40
  10. package/dist/dto/index.js.map +1 -1
  11. package/dist/index.d.ts +2 -2
  12. package/dist/index.js +2 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/matrix.adapter.event.type.d.ts +23 -22
  15. package/dist/matrix.adapter.event.type.js +24 -23
  16. package/dist/matrix.adapter.event.type.js.map +1 -1
  17. package/package.json +33 -27
  18. package/dist/dto/admin/admin.all.rooms.payload.d.ts +0 -3
  19. package/dist/dto/admin/admin.all.rooms.payload.js +0 -3
  20. package/dist/dto/admin/admin.all.rooms.payload.js.map +0 -1
  21. package/dist/dto/admin/admin.replicate.room.membership.payload.d.ts +0 -6
  22. package/dist/dto/admin/admin.replicate.room.membership.payload.js +0 -3
  23. package/dist/dto/admin/admin.replicate.room.membership.payload.js.map +0 -1
  24. package/dist/dto/admin/admin.replicate.room.membership.response.payload.d.ts +0 -4
  25. package/dist/dto/admin/admin.replicate.room.membership.response.payload.js +0 -3
  26. package/dist/dto/admin/admin.replicate.room.membership.response.payload.js.map +0 -1
  27. package/dist/dto/base.event.payload.d.ts +0 -3
  28. package/dist/dto/base.event.payload.js +0 -3
  29. package/dist/dto/base.event.payload.js.map +0 -1
  30. package/dist/dto/base.event.response.payload.d.ts +0 -2
  31. package/dist/dto/base.event.response.payload.js +0 -3
  32. package/dist/dto/base.event.response.payload.js.map +0 -1
  33. package/dist/dto/room/room.create.payload.d.ts +0 -5
  34. package/dist/dto/room/room.create.payload.js +0 -3
  35. package/dist/dto/room/room.create.payload.js.map +0 -1
  36. package/dist/dto/room/room.create.response.payload.d.ts +0 -4
  37. package/dist/dto/room/room.create.response.payload.js +0 -3
  38. package/dist/dto/room/room.create.response.payload.js.map +0 -1
  39. package/dist/dto/room/room.delete.payload.d.ts +0 -4
  40. package/dist/dto/room/room.delete.payload.js +0 -3
  41. package/dist/dto/room/room.delete.payload.js.map +0 -1
  42. package/dist/dto/room/room.delete.response.payload.d.ts +0 -4
  43. package/dist/dto/room/room.delete.response.payload.js +0 -3
  44. package/dist/dto/room/room.delete.response.payload.js.map +0 -1
  45. package/dist/dto/room/room.details.payload.d.ts +0 -5
  46. package/dist/dto/room/room.details.payload.js +0 -3
  47. package/dist/dto/room/room.details.payload.js.map +0 -1
  48. package/dist/dto/room/room.details.response.payload.d.ts +0 -5
  49. package/dist/dto/room/room.details.response.payload.js +0 -3
  50. package/dist/dto/room/room.details.response.payload.js.map +0 -1
  51. package/dist/dto/room/room.members.payload.d.ts +0 -4
  52. package/dist/dto/room/room.members.payload.js +0 -3
  53. package/dist/dto/room/room.members.payload.js.map +0 -1
  54. package/dist/dto/room/room.members.response.payload.d.ts +0 -4
  55. package/dist/dto/room/room.members.response.payload.js +0 -3
  56. package/dist/dto/room/room.members.response.payload.js.map +0 -1
  57. package/dist/dto/room/room.message.add.reaction.payload.d.ts +0 -7
  58. package/dist/dto/room/room.message.add.reaction.payload.js +0 -3
  59. package/dist/dto/room/room.message.add.reaction.payload.js.map +0 -1
  60. package/dist/dto/room/room.message.add.reaction.response.payload.d.ts +0 -5
  61. package/dist/dto/room/room.message.add.reaction.response.payload.js +0 -3
  62. package/dist/dto/room/room.message.add.reaction.response.payload.js.map +0 -1
  63. package/dist/dto/room/room.message.delete.payload.d.ts +0 -6
  64. package/dist/dto/room/room.message.delete.payload.js +0 -3
  65. package/dist/dto/room/room.message.delete.payload.js.map +0 -1
  66. package/dist/dto/room/room.message.delete.response.payload.d.ts +0 -4
  67. package/dist/dto/room/room.message.delete.response.payload.js +0 -3
  68. package/dist/dto/room/room.message.delete.response.payload.js.map +0 -1
  69. package/dist/dto/room/room.message.details.payload.d.ts +0 -5
  70. package/dist/dto/room/room.message.details.payload.js +0 -3
  71. package/dist/dto/room/room.message.details.payload.js.map +0 -1
  72. package/dist/dto/room/room.message.reaction.sender.payload.d.ts +0 -5
  73. package/dist/dto/room/room.message.reaction.sender.payload.js +0 -3
  74. package/dist/dto/room/room.message.reaction.sender.payload.js.map +0 -1
  75. package/dist/dto/room/room.message.reaction.sender.response.payload.d.ts +0 -4
  76. package/dist/dto/room/room.message.reaction.sender.response.payload.js +0 -3
  77. package/dist/dto/room/room.message.reaction.sender.response.payload.js.map +0 -1
  78. package/dist/dto/room/room.message.remove.reaction.payload.d.ts +0 -6
  79. package/dist/dto/room/room.message.remove.reaction.payload.js +0 -3
  80. package/dist/dto/room/room.message.remove.reaction.payload.js.map +0 -1
  81. package/dist/dto/room/room.message.send.payload.d.ts +0 -6
  82. package/dist/dto/room/room.message.send.payload.js +0 -3
  83. package/dist/dto/room/room.message.send.payload.js.map +0 -1
  84. package/dist/dto/room/room.message.send.reply.payload.d.ts +0 -7
  85. package/dist/dto/room/room.message.send.reply.payload.js +0 -3
  86. package/dist/dto/room/room.message.send.reply.payload.js.map +0 -1
  87. package/dist/dto/room/room.message.send.response.payload.d.ts +0 -5
  88. package/dist/dto/room/room.message.send.response.payload.js +0 -3
  89. package/dist/dto/room/room.message.send.response.payload.js.map +0 -1
  90. package/dist/dto/room/room.message.sender.payload.d.ts +0 -5
  91. package/dist/dto/room/room.message.sender.payload.js +0 -3
  92. package/dist/dto/room/room.message.sender.payload.js.map +0 -1
  93. package/dist/dto/room/room.message.sender.response.payload.d.ts +0 -4
  94. package/dist/dto/room/room.message.sender.response.payload.js +0 -3
  95. package/dist/dto/room/room.message.sender.response.payload.js.map +0 -1
  96. package/dist/dto/room/room.update.state.payload.d.ts +0 -6
  97. package/dist/dto/room/room.update.state.payload.js +0 -3
  98. package/dist/dto/room/room.update.state.payload.js.map +0 -1
  99. package/dist/dto/user/user.add.to.rooms.payload.d.ts +0 -5
  100. package/dist/dto/user/user.add.to.rooms.payload.js +0 -3
  101. package/dist/dto/user/user.add.to.rooms.payload.js.map +0 -1
  102. package/dist/dto/user/user.add.to.rooms.response.payload.d.ts +0 -4
  103. package/dist/dto/user/user.add.to.rooms.response.payload.js +0 -3
  104. package/dist/dto/user/user.add.to.rooms.response.payload.js.map +0 -1
  105. package/dist/dto/user/user.register.payload.d.ts +0 -4
  106. package/dist/dto/user/user.register.payload.js +0 -3
  107. package/dist/dto/user/user.register.payload.js.map +0 -1
  108. package/dist/dto/user/user.register.response.payload.d.ts +0 -4
  109. package/dist/dto/user/user.register.response.payload.js +0 -3
  110. package/dist/dto/user/user.register.response.payload.js.map +0 -1
  111. package/dist/dto/user/user.remove.from.rooms.payload.d.ts +0 -5
  112. package/dist/dto/user/user.remove.from.rooms.payload.js +0 -3
  113. package/dist/dto/user/user.remove.from.rooms.payload.js.map +0 -1
  114. package/dist/dto/user/user.remove.from.rooms.response.payload.d.ts +0 -4
  115. package/dist/dto/user/user.remove.from.rooms.response.payload.js +0 -3
  116. package/dist/dto/user/user.remove.from.rooms.response.payload.js.map +0 -1
  117. package/dist/dto/user/user.rooms.direct.payload.d.ts +0 -4
  118. package/dist/dto/user/user.rooms.direct.payload.js +0 -3
  119. package/dist/dto/user/user.rooms.direct.payload.js.map +0 -1
  120. package/dist/dto/user/user.rooms.payload.d.ts +0 -4
  121. package/dist/dto/user/user.rooms.payload.js +0 -3
  122. package/dist/dto/user/user.rooms.payload.js.map +0 -1
  123. package/dist/dto/user/user.rooms.response.payload.d.ts +0 -5
  124. package/dist/dto/user/user.rooms.response.payload.js +0 -3
  125. package/dist/dto/user/user.rooms.response.payload.js.map +0 -1
  126. package/dist/dto/user/user.start.direct.messaging.payload.d.ts +0 -5
  127. package/dist/dto/user/user.start.direct.messaging.payload.js +0 -3
  128. package/dist/dto/user/user.start.direct.messaging.payload.js.map +0 -1
  129. package/dist/dto/user/user.start.direct.messaging.response.payload.d.ts +0 -5
  130. package/dist/dto/user/user.start.direct.messaging.response.payload.js +0 -3
  131. package/dist/dto/user/user.start.direct.messaging.response.payload.js.map +0 -1
  132. package/dist/dto/user/user.stop.direct.messaging.payload.d.ts +0 -5
  133. package/dist/dto/user/user.stop.direct.messaging.payload.js +0 -3
  134. package/dist/dto/user/user.stop.direct.messaging.payload.js.map +0 -1
  135. package/dist/dto/user/user.stop.direct.messaging.response.payload.d.ts +0 -4
  136. package/dist/dto/user/user.stop.direct.messaging.response.payload.js +0 -3
  137. package/dist/dto/user/user.stop.direct.messaging.response.payload.js.map +0 -1
  138. package/dist/types/index.d.ts +0 -4
  139. package/dist/types/index.js +0 -21
  140. package/dist/types/index.js.map +0 -1
  141. package/dist/types/message.d.ts +0 -9
  142. package/dist/types/message.js +0 -7
  143. package/dist/types/message.js.map +0 -1
  144. package/dist/types/reaction.d.ts +0 -7
  145. package/dist/types/reaction.js +0 -7
  146. package/dist/types/reaction.js.map +0 -1
  147. package/dist/types/room.d.ts +0 -9
  148. package/dist/types/room.direct.d.ts +0 -4
  149. package/dist/types/room.direct.js +0 -8
  150. package/dist/types/room.direct.js.map +0 -1
  151. package/dist/types/room.js +0 -7
  152. package/dist/types/room.js.map +0 -1
package/README.md CHANGED
@@ -1,3 +1,205 @@
1
- # matrix-adapter-lib
1
+ # @alkem-io/matrix-adapter-go-lib
2
2
 
3
- Library of types for working with the Alkemio matrix adapter service.
3
+ TypeScript library providing type-safe DTOs and event types for interacting with the Alkemio Matrix Adapter service.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ # npm
9
+ npm install @alkem-io/matrix-adapter-go-lib
10
+
11
+ # pnpm
12
+ pnpm add @alkem-io/matrix-adapter-go-lib
13
+
14
+ # yarn
15
+ yarn add @alkem-io/matrix-adapter-go-lib
16
+ ```
17
+
18
+ ## Usage
19
+
20
+ ### Event Types
21
+
22
+ Use `MatrixAdapterEventType` enum for RabbitMQ topic routing:
23
+
24
+ ```typescript
25
+ import { MatrixAdapterEventType } from '@alkem-io/matrix-adapter-go-lib';
26
+
27
+ // Subscribe to commands
28
+ consumer.subscribe(MatrixAdapterEventType.COMMUNICATION_ROOM_CREATE);
29
+ consumer.subscribe(MatrixAdapterEventType.COMMUNICATION_SPACE_CREATE);
30
+
31
+ // Listen for events
32
+ consumer.subscribe(MatrixAdapterEventType.COMMUNICATION_MESSAGE_RECEIVED);
33
+ ```
34
+
35
+ ### Request/Response DTOs
36
+
37
+ All command payloads and responses are fully typed:
38
+
39
+ ```typescript
40
+ import {
41
+ CreateRoomRequest,
42
+ CreateRoomResponse,
43
+ RoomTypeCommunity,
44
+ JoinRuleInvite,
45
+ BaseResponse,
46
+ ErrCodeRoomNotFound,
47
+ } from '@alkem-io/matrix-adapter-go-lib';
48
+
49
+ // Build a request
50
+ const request: CreateRoomRequest = {
51
+ alkemio_room_id: 'uuid-v4-or-v7',
52
+ type: RoomTypeCommunity,
53
+ name: 'My Room',
54
+ initial_members: ['actor-uuid-1', 'actor-uuid-2'],
55
+ join_rule: JoinRuleInvite,
56
+ };
57
+
58
+ // Handle response
59
+ function handleResponse(response: CreateRoomResponse) {
60
+ if (response.BaseResponse.success) {
61
+ console.log('Room created');
62
+ } else {
63
+ const error = response.BaseResponse.error;
64
+ if (error?.code === ErrCodeRoomNotFound) {
65
+ console.error('Room not found:', error.message);
66
+ }
67
+ }
68
+ }
69
+ ```
70
+
71
+ ### Space Operations (Protocol V3)
72
+
73
+ ```typescript
74
+ import {
75
+ CreateSpaceRequest,
76
+ GetSpaceResponse,
77
+ SetParentRequest,
78
+ BatchAddSpaceMemberRequest,
79
+ JoinRuleRestricted,
80
+ } from '@alkem-io/matrix-adapter-go-lib';
81
+
82
+ // Create a space with hierarchy
83
+ const spaceRequest: CreateSpaceRequest = {
84
+ alkemio_context_id: 'context-uuid',
85
+ name: 'My Space',
86
+ parent_context_id: 'parent-context-uuid',
87
+ join_rule: JoinRuleRestricted,
88
+ initial_members: ['actor-uuid'],
89
+ };
90
+
91
+ // Set parent-child relationship
92
+ const hierarchyRequest: SetParentRequest = {
93
+ child_id: 'room-or-space-uuid',
94
+ is_space: false, // true for subspaces, false for rooms
95
+ parent_context_id: 'parent-space-uuid',
96
+ };
97
+
98
+ // Batch membership operations
99
+ const batchRequest: BatchAddSpaceMemberRequest = {
100
+ actor_id: 'actor-uuid',
101
+ alkemio_context_ids: ['space-1', 'space-2', 'space-3'],
102
+ };
103
+ ```
104
+
105
+ ## API Reference
106
+
107
+ ### Event Types
108
+
109
+ | Event | Topic | Description |
110
+ |-------|-------|-------------|
111
+ | `COMMUNICATION_ROOM_CREATE` | `communication.room.create` | Create a room |
112
+ | `COMMUNICATION_ROOM_GET` | `communication.room.get` | Get room details |
113
+ | `COMMUNICATION_ROOM_UPDATE` | `communication.room.update` | Update room metadata |
114
+ | `COMMUNICATION_ROOM_DELETE` | `communication.room.delete` | Delete a room |
115
+ | `COMMUNICATION_ROOM_LIST` | `communication.room.list` | List all rooms |
116
+ | `COMMUNICATION_ROOM_MEMBER_BATCH_ADD` | `communication.room.member.batch.add` | Add actor to rooms |
117
+ | `COMMUNICATION_ROOM_MEMBER_BATCH_REMOVE` | `communication.room.member.batch.remove` | Remove actor from rooms |
118
+ | `COMMUNICATION_SPACE_CREATE` | `communication.space.create` | Create a space |
119
+ | `COMMUNICATION_SPACE_GET` | `communication.space.get` | Get space details |
120
+ | `COMMUNICATION_SPACE_UPDATE` | `communication.space.update` | Update space metadata |
121
+ | `COMMUNICATION_SPACE_DELETE` | `communication.space.delete` | Delete a space |
122
+ | `COMMUNICATION_SPACE_LIST` | `communication.space.list` | List all spaces |
123
+ | `COMMUNICATION_SPACE_MEMBER_BATCH_ADD` | `communication.space.member.batch.add` | Add actor to spaces |
124
+ | `COMMUNICATION_SPACE_MEMBER_BATCH_REMOVE` | `communication.space.member.batch.remove` | Remove actor from spaces |
125
+ | `COMMUNICATION_HIERARCHY_SET_PARENT` | `communication.hierarchy.set_parent` | Set parent-child relationship |
126
+ | `COMMUNICATION_MESSAGE_SEND` | `communication.message.send` | Send a message |
127
+ | `COMMUNICATION_MESSAGE_GET` | `communication.message.get` | Get message details |
128
+ | `COMMUNICATION_MESSAGE_DELETE` | `communication.message.delete` | Delete a message |
129
+ | `COMMUNICATION_REACTION_ADD` | `communication.reaction.add` | Add reaction |
130
+ | `COMMUNICATION_REACTION_REMOVE` | `communication.reaction.remove` | Remove reaction |
131
+ | `COMMUNICATION_REACTION_GET` | `communication.reaction.get` | Get reaction details |
132
+ | `COMMUNICATION_ACTOR_SYNC` | `communication.actor.sync` | Sync actor profile |
133
+ | `COMMUNICATION_MESSAGE_RECEIVED` | `communication.message.received` | Message received event |
134
+
135
+ ### Type Aliases
136
+
137
+ | Type | Description |
138
+ |------|-------------|
139
+ | `AlkemioRoomID` | UUID identifying a room in Alkemio |
140
+ | `AlkemioActorID` | UUID identifying an actor (user/bot) |
141
+ | `AlkemioContextID` | UUID identifying a context (Space) |
142
+ | `MessageID` | Opaque message identifier |
143
+ | `ReactionID` | Opaque reaction identifier |
144
+
145
+ ### Constants
146
+
147
+ #### Room Types
148
+ - `RoomTypeCommunity` - General community room
149
+ - `RoomTypeDirect` - Direct message room (exactly 2 actors)
150
+
151
+ #### Join Rules
152
+ - `JoinRulePublic` - Anyone can join
153
+ - `JoinRuleInvite` - Requires invitation
154
+ - `JoinRuleRestricted` - Members of parent space can join (MSC3083)
155
+
156
+ #### Error Codes
157
+ - `ErrCodeInvalidParam` - Request validation failed
158
+ - `ErrCodeRoomNotFound` - Room does not exist
159
+ - `ErrCodeSpaceNotFound` - Space does not exist
160
+ - `ErrCodeActorNotFound` - Actor does not exist
161
+ - `ErrCodeMatrixError` - Matrix SDK/homeserver error
162
+ - `ErrCodeInternalError` - Unexpected system error
163
+ - `ErrCodeNotAllowed` - Operation not permitted
164
+
165
+ ## Response Handling
166
+
167
+ All responses extend `BaseResponse`:
168
+
169
+ ```typescript
170
+ interface BaseResponse {
171
+ success: boolean;
172
+ error?: ErrorResponse;
173
+ }
174
+
175
+ interface ErrorResponse {
176
+ code: ErrorCode;
177
+ message: string;
178
+ details?: string;
179
+ }
180
+ ```
181
+
182
+ Batch operations return per-item results using `BaseResponse`:
183
+
184
+ ```typescript
185
+ interface BatchAddMemberResponse {
186
+ success: boolean;
187
+ error?: ErrorResponse;
188
+ results?: { [roomId: string]: BaseResponse };
189
+ }
190
+ ```
191
+
192
+ ## Generation
193
+
194
+ This library is **auto-generated** from Go source code in `pkg/dto/`. Do not edit `src/dto/generated.ts` directly.
195
+
196
+ To regenerate after Go DTO changes:
197
+
198
+ ```bash
199
+ # From repository root
200
+ make generate
201
+ ```
202
+
203
+ ## License
204
+
205
+ EUPL-1.2
@@ -0,0 +1,101 @@
1
+ import type { AddReactionRequest, AddReactionResponse, BaseResponse, BatchAddMemberRequest, BatchAddMemberResponse, BatchAddSpaceMemberRequest, BatchAddSpaceMemberResponse, BatchRemoveMemberRequest, BatchRemoveMemberResponse, BatchRemoveSpaceMemberRequest, BatchRemoveSpaceMemberResponse, CreateRoomRequest, CreateSpaceRequest, DeleteMessageRequest, DeleteRoomRequest, DeleteSpaceRequest, GetMessageRequest, GetMessageResponse, GetReactionRequest, GetReactionResponse, GetRoomRequest, GetRoomResponse, GetSpaceRequest, GetSpaceResponse, ListRoomsRequest, ListRoomsResponse, ListSpacesRequest, ListSpacesResponse, MessageReceivedPayload, RemoveReactionRequest, SendMessageRequest, SendMessageResponse, SetParentRequest, SyncActorRequest, UpdateRoomRequest, UpdateSpaceRequest } from './dto';
2
+ export declare const Commands: {
3
+ readonly 'communication.actor.sync': {
4
+ readonly request: SyncActorRequest;
5
+ readonly response: BaseResponse;
6
+ };
7
+ readonly 'communication.hierarchy.set_parent': {
8
+ readonly request: SetParentRequest;
9
+ readonly response: BaseResponse;
10
+ };
11
+ readonly 'communication.message.delete': {
12
+ readonly request: DeleteMessageRequest;
13
+ readonly response: BaseResponse;
14
+ };
15
+ readonly 'communication.message.get': {
16
+ readonly request: GetMessageRequest;
17
+ readonly response: GetMessageResponse;
18
+ };
19
+ readonly 'communication.message.send': {
20
+ readonly request: SendMessageRequest;
21
+ readonly response: SendMessageResponse;
22
+ };
23
+ readonly 'communication.reaction.add': {
24
+ readonly request: AddReactionRequest;
25
+ readonly response: AddReactionResponse;
26
+ };
27
+ readonly 'communication.reaction.get': {
28
+ readonly request: GetReactionRequest;
29
+ readonly response: GetReactionResponse;
30
+ };
31
+ readonly 'communication.reaction.remove': {
32
+ readonly request: RemoveReactionRequest;
33
+ readonly response: BaseResponse;
34
+ };
35
+ readonly 'communication.room.create': {
36
+ readonly request: CreateRoomRequest;
37
+ readonly response: BaseResponse;
38
+ };
39
+ readonly 'communication.room.delete': {
40
+ readonly request: DeleteRoomRequest;
41
+ readonly response: BaseResponse;
42
+ };
43
+ readonly 'communication.room.get': {
44
+ readonly request: GetRoomRequest;
45
+ readonly response: GetRoomResponse;
46
+ };
47
+ readonly 'communication.room.list': {
48
+ readonly request: ListRoomsRequest;
49
+ readonly response: ListRoomsResponse;
50
+ };
51
+ readonly 'communication.room.member.batch.add': {
52
+ readonly request: BatchAddMemberRequest;
53
+ readonly response: BatchAddMemberResponse;
54
+ };
55
+ readonly 'communication.room.member.batch.remove': {
56
+ readonly request: BatchRemoveMemberRequest;
57
+ readonly response: BatchRemoveMemberResponse;
58
+ };
59
+ readonly 'communication.room.update': {
60
+ readonly request: UpdateRoomRequest;
61
+ readonly response: BaseResponse;
62
+ };
63
+ readonly 'communication.space.create': {
64
+ readonly request: CreateSpaceRequest;
65
+ readonly response: BaseResponse;
66
+ };
67
+ readonly 'communication.space.delete': {
68
+ readonly request: DeleteSpaceRequest;
69
+ readonly response: BaseResponse;
70
+ };
71
+ readonly 'communication.space.get': {
72
+ readonly request: GetSpaceRequest;
73
+ readonly response: GetSpaceResponse;
74
+ };
75
+ readonly 'communication.space.list': {
76
+ readonly request: ListSpacesRequest;
77
+ readonly response: ListSpacesResponse;
78
+ };
79
+ readonly 'communication.space.member.batch.add': {
80
+ readonly request: BatchAddSpaceMemberRequest;
81
+ readonly response: BatchAddSpaceMemberResponse;
82
+ };
83
+ readonly 'communication.space.member.batch.remove': {
84
+ readonly request: BatchRemoveSpaceMemberRequest;
85
+ readonly response: BatchRemoveSpaceMemberResponse;
86
+ };
87
+ readonly 'communication.space.update': {
88
+ readonly request: UpdateSpaceRequest;
89
+ readonly response: BaseResponse;
90
+ };
91
+ };
92
+ export declare const OutgoingEvents: {
93
+ readonly 'communication.message.received': {
94
+ readonly payload: MessageReceivedPayload;
95
+ };
96
+ };
97
+ export type CommandTopic = keyof typeof Commands;
98
+ export type RequestFor<T extends CommandTopic> = (typeof Commands)[T]['request'];
99
+ export type ResponseFor<T extends CommandTopic> = (typeof Commands)[T]['response'];
100
+ export type OutgoingEventTopic = keyof typeof OutgoingEvents;
101
+ export type PayloadFor<T extends OutgoingEventTopic> = (typeof OutgoingEvents)[T]['payload'];
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OutgoingEvents = exports.Commands = void 0;
4
+ exports.Commands = {
5
+ 'communication.actor.sync': {
6
+ request: {},
7
+ response: {},
8
+ },
9
+ 'communication.hierarchy.set_parent': {
10
+ request: {},
11
+ response: {},
12
+ },
13
+ 'communication.message.delete': {
14
+ request: {},
15
+ response: {},
16
+ },
17
+ 'communication.message.get': {
18
+ request: {},
19
+ response: {},
20
+ },
21
+ 'communication.message.send': {
22
+ request: {},
23
+ response: {},
24
+ },
25
+ 'communication.reaction.add': {
26
+ request: {},
27
+ response: {},
28
+ },
29
+ 'communication.reaction.get': {
30
+ request: {},
31
+ response: {},
32
+ },
33
+ 'communication.reaction.remove': {
34
+ request: {},
35
+ response: {},
36
+ },
37
+ 'communication.room.create': {
38
+ request: {},
39
+ response: {},
40
+ },
41
+ 'communication.room.delete': {
42
+ request: {},
43
+ response: {},
44
+ },
45
+ 'communication.room.get': {
46
+ request: {},
47
+ response: {},
48
+ },
49
+ 'communication.room.list': {
50
+ request: {},
51
+ response: {},
52
+ },
53
+ 'communication.room.member.batch.add': {
54
+ request: {},
55
+ response: {},
56
+ },
57
+ 'communication.room.member.batch.remove': {
58
+ request: {},
59
+ response: {},
60
+ },
61
+ 'communication.room.update': {
62
+ request: {},
63
+ response: {},
64
+ },
65
+ 'communication.space.create': {
66
+ request: {},
67
+ response: {},
68
+ },
69
+ 'communication.space.delete': {
70
+ request: {},
71
+ response: {},
72
+ },
73
+ 'communication.space.get': {
74
+ request: {},
75
+ response: {},
76
+ },
77
+ 'communication.space.list': {
78
+ request: {},
79
+ response: {},
80
+ },
81
+ 'communication.space.member.batch.add': {
82
+ request: {},
83
+ response: {},
84
+ },
85
+ 'communication.space.member.batch.remove': {
86
+ request: {},
87
+ response: {},
88
+ },
89
+ 'communication.space.update': {
90
+ request: {},
91
+ response: {},
92
+ },
93
+ };
94
+ exports.OutgoingEvents = {
95
+ 'communication.message.received': {
96
+ payload: {},
97
+ },
98
+ };
99
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":";;;AA6Ca,QAAA,QAAQ,GAAG;IACtB,0BAA0B,EAAE;QAC1B,OAAO,EAAE,EAAsB;QAC/B,QAAQ,EAAE,EAAkB;KAC7B;IACD,oCAAoC,EAAE;QACpC,OAAO,EAAE,EAAsB;QAC/B,QAAQ,EAAE,EAAkB;KAC7B;IACD,8BAA8B,EAAE;QAC9B,OAAO,EAAE,EAA0B;QACnC,QAAQ,EAAE,EAAkB;KAC7B;IACD,2BAA2B,EAAE;QAC3B,OAAO,EAAE,EAAuB;QAChC,QAAQ,EAAE,EAAwB;KACnC;IACD,4BAA4B,EAAE;QAC5B,OAAO,EAAE,EAAwB;QACjC,QAAQ,EAAE,EAAyB;KACpC;IACD,4BAA4B,EAAE;QAC5B,OAAO,EAAE,EAAwB;QACjC,QAAQ,EAAE,EAAyB;KACpC;IACD,4BAA4B,EAAE;QAC5B,OAAO,EAAE,EAAwB;QACjC,QAAQ,EAAE,EAAyB;KACpC;IACD,+BAA+B,EAAE;QAC/B,OAAO,EAAE,EAA2B;QACpC,QAAQ,EAAE,EAAkB;KAC7B;IACD,2BAA2B,EAAE;QAC3B,OAAO,EAAE,EAAuB;QAChC,QAAQ,EAAE,EAAkB;KAC7B;IACD,2BAA2B,EAAE;QAC3B,OAAO,EAAE,EAAuB;QAChC,QAAQ,EAAE,EAAkB;KAC7B;IACD,wBAAwB,EAAE;QACxB,OAAO,EAAE,EAAoB;QAC7B,QAAQ,EAAE,EAAqB;KAChC;IACD,yBAAyB,EAAE;QACzB,OAAO,EAAE,EAAsB;QAC/B,QAAQ,EAAE,EAAuB;KAClC;IACD,qCAAqC,EAAE;QACrC,OAAO,EAAE,EAA2B;QACpC,QAAQ,EAAE,EAA4B;KACvC;IACD,wCAAwC,EAAE;QACxC,OAAO,EAAE,EAA8B;QACvC,QAAQ,EAAE,EAA+B;KAC1C;IACD,2BAA2B,EAAE;QAC3B,OAAO,EAAE,EAAuB;QAChC,QAAQ,EAAE,EAAkB;KAC7B;IACD,4BAA4B,EAAE;QAC5B,OAAO,EAAE,EAAwB;QACjC,QAAQ,EAAE,EAAkB;KAC7B;IACD,4BAA4B,EAAE;QAC5B,OAAO,EAAE,EAAwB;QACjC,QAAQ,EAAE,EAAkB;KAC7B;IACD,yBAAyB,EAAE;QACzB,OAAO,EAAE,EAAqB;QAC9B,QAAQ,EAAE,EAAsB;KACjC;IACD,0BAA0B,EAAE;QAC1B,OAAO,EAAE,EAAuB;QAChC,QAAQ,EAAE,EAAwB;KACnC;IACD,sCAAsC,EAAE;QACtC,OAAO,EAAE,EAAgC;QACzC,QAAQ,EAAE,EAAiC;KAC5C;IACD,yCAAyC,EAAE;QACzC,OAAO,EAAE,EAAmC;QAC5C,QAAQ,EAAE,EAAoC;KAC/C;IACD,4BAA4B,EAAE;QAC5B,OAAO,EAAE,EAAwB;QACjC,QAAQ,EAAE,EAAkB;KAC7B;CACO,CAAC;AAKE,QAAA,cAAc,GAAG;IAC5B,gCAAgC,EAAE;QAChC,OAAO,EAAE,EAA4B;KACtC;CACO,CAAC"}
@@ -0,0 +1,273 @@
1
+ export interface SyncActorRequest {
2
+ actor_id: AlkemioActorID;
3
+ display_name: string;
4
+ avatar_url?: string;
5
+ }
6
+ export interface BatchAddMemberRequest {
7
+ actor_id: AlkemioActorID;
8
+ alkemio_room_ids: AlkemioRoomID[];
9
+ }
10
+ export interface BatchAddMemberResponse extends BaseResponse {
11
+ results?: {
12
+ [key: string]: BaseResponse;
13
+ };
14
+ }
15
+ export interface BatchRemoveMemberRequest {
16
+ actor_id: AlkemioActorID;
17
+ alkemio_room_ids: AlkemioRoomID[];
18
+ reason?: string;
19
+ }
20
+ export interface BatchRemoveMemberResponse extends BaseResponse {
21
+ results?: {
22
+ [key: string]: BaseResponse;
23
+ };
24
+ }
25
+ export declare const TopicRoomCreate = "communication.room.create";
26
+ export declare const TopicRoomGet = "communication.room.get";
27
+ export declare const TopicRoomUpdate = "communication.room.update";
28
+ export declare const TopicRoomDelete = "communication.room.delete";
29
+ export declare const TopicRoomList = "communication.room.list";
30
+ export declare const TopicMessageSend = "communication.message.send";
31
+ export declare const TopicMessageGet = "communication.message.get";
32
+ export declare const TopicMessageDelete = "communication.message.delete";
33
+ export declare const TopicMessageReceived = "communication.message.received";
34
+ export declare const TopicReactionAdd = "communication.reaction.add";
35
+ export declare const TopicReactionRemove = "communication.reaction.remove";
36
+ export declare const TopicReactionGet = "communication.reaction.get";
37
+ export declare const TopicRoomMemberBatchAdd = "communication.room.member.batch.add";
38
+ export declare const TopicRoomMemberBatchRemove = "communication.room.member.batch.remove";
39
+ export declare const TopicActorSync = "communication.actor.sync";
40
+ export declare const TopicSpaceCreate = "communication.space.create";
41
+ export declare const TopicSpaceGet = "communication.space.get";
42
+ export declare const TopicSpaceUpdate = "communication.space.update";
43
+ export declare const TopicSpaceDelete = "communication.space.delete";
44
+ export declare const TopicSpaceList = "communication.space.list";
45
+ export declare const TopicHierarchySetParent = "communication.hierarchy.set_parent";
46
+ export declare const TopicSpaceMemberBatchAdd = "communication.space.member.batch.add";
47
+ export declare const TopicSpaceMemberBatchRemove = "communication.space.member.batch.remove";
48
+ export interface CommandDef {
49
+ Topic: string;
50
+ RequestType: string;
51
+ ResponseType: string;
52
+ }
53
+ export type ErrorCode = string;
54
+ export declare const ErrCodeInvalidParam: ErrorCode;
55
+ export declare const ErrCodeRoomNotFound: ErrorCode;
56
+ export declare const ErrCodeSpaceNotFound: ErrorCode;
57
+ export declare const ErrCodeActorNotFound: ErrorCode;
58
+ export declare const ErrCodeMessageNotFound: ErrorCode;
59
+ export declare const ErrCodeReactionNotFound: ErrorCode;
60
+ export declare const ErrCodeMatrixError: ErrorCode;
61
+ export declare const ErrCodeInternalError: ErrorCode;
62
+ export declare const ErrCodeNotAllowed: ErrorCode;
63
+ export interface ErrorResponse {
64
+ code: ErrorCode;
65
+ message: string;
66
+ details?: string;
67
+ }
68
+ export interface BaseResponse {
69
+ success: boolean;
70
+ error?: ErrorResponse;
71
+ }
72
+ export interface MessageReceivedPayload {
73
+ roomId: string;
74
+ roomName: string;
75
+ message: Message;
76
+ actorID: string;
77
+ communityId?: string;
78
+ }
79
+ export interface Message {
80
+ id: string;
81
+ message: string;
82
+ threadID?: string;
83
+ sender: string;
84
+ timestamp: number;
85
+ reactions: Reaction[];
86
+ }
87
+ export interface Reaction {
88
+ id: string;
89
+ emoji: string;
90
+ sender: string;
91
+ timestamp: number;
92
+ messageId: string;
93
+ }
94
+ export interface SetParentRequest {
95
+ child_id: string;
96
+ is_space: boolean;
97
+ parent_context_id: AlkemioContextID;
98
+ order?: string;
99
+ suggested?: boolean;
100
+ }
101
+ export interface MessageDto {
102
+ id: MessageID;
103
+ content: string;
104
+ sender_actor_id: AlkemioActorID;
105
+ timestamp: string;
106
+ reactions: ReactionDto[];
107
+ thread_id?: MessageID;
108
+ }
109
+ export interface SendMessageRequest {
110
+ alkemio_room_id: AlkemioRoomID;
111
+ sender_actor_id: AlkemioActorID;
112
+ content: string;
113
+ parent_message_id?: MessageID;
114
+ }
115
+ export interface SendMessageResponse extends BaseResponse {
116
+ message_id: MessageID;
117
+ timestamp: string;
118
+ }
119
+ export interface GetMessageRequest {
120
+ alkemio_room_id: AlkemioRoomID;
121
+ message_id: MessageID;
122
+ }
123
+ export interface GetMessageResponse extends BaseResponse {
124
+ message: MessageDto;
125
+ }
126
+ export interface DeleteMessageRequest {
127
+ alkemio_room_id: AlkemioRoomID;
128
+ message_id: MessageID;
129
+ sender_actor_id: AlkemioActorID;
130
+ reason?: string;
131
+ }
132
+ export interface ReactionDto {
133
+ id: ReactionID;
134
+ emoji: string;
135
+ sender_actor_id: AlkemioActorID;
136
+ timestamp: string;
137
+ }
138
+ export interface AddReactionRequest {
139
+ alkemio_room_id: AlkemioRoomID;
140
+ message_id: MessageID;
141
+ sender_actor_id: AlkemioActorID;
142
+ emoji: string;
143
+ }
144
+ export interface AddReactionResponse extends BaseResponse {
145
+ reaction_id: ReactionID;
146
+ }
147
+ export interface RemoveReactionRequest {
148
+ alkemio_room_id: AlkemioRoomID;
149
+ reaction_id: ReactionID;
150
+ sender_actor_id: AlkemioActorID;
151
+ }
152
+ export interface GetReactionRequest {
153
+ alkemio_room_id: AlkemioRoomID;
154
+ reaction_id: ReactionID;
155
+ }
156
+ export interface GetReactionResponse extends BaseResponse {
157
+ reaction: ReactionDto;
158
+ }
159
+ export interface CreateRoomRequest {
160
+ alkemio_room_id: AlkemioRoomID;
161
+ type: RoomType;
162
+ name?: string;
163
+ initial_members?: AlkemioActorID[];
164
+ topic?: string;
165
+ avatar_url?: string;
166
+ parent_context_id?: AlkemioContextID;
167
+ join_rule?: JoinRule;
168
+ }
169
+ export interface GetRoomRequest {
170
+ alkemio_room_id: AlkemioRoomID;
171
+ }
172
+ export interface GetRoomResponse extends BaseResponse {
173
+ alkemio_room_id: AlkemioRoomID;
174
+ display_name: string;
175
+ member_actor_ids: AlkemioActorID[];
176
+ messages: MessageDto[];
177
+ }
178
+ export interface UpdateRoomRequest {
179
+ alkemio_room_id: AlkemioRoomID;
180
+ name?: string;
181
+ topic?: string;
182
+ is_public?: boolean;
183
+ avatar_url?: string;
184
+ join_rule?: JoinRule;
185
+ }
186
+ export interface DeleteRoomRequest {
187
+ alkemio_room_id: AlkemioRoomID;
188
+ reason?: string;
189
+ }
190
+ export interface ListRoomsRequest {
191
+ cursor?: string;
192
+ }
193
+ export interface ListRoomsResponse extends BaseResponse {
194
+ alkemio_room_ids: AlkemioRoomID[];
195
+ next_cursor?: string;
196
+ }
197
+ export interface SpaceChildDto {
198
+ child_id: string;
199
+ is_space: boolean;
200
+ order?: string;
201
+ suggested?: boolean;
202
+ }
203
+ export interface CreateSpaceRequest {
204
+ alkemio_context_id: AlkemioContextID;
205
+ name: string;
206
+ topic?: string;
207
+ avatar_url?: string;
208
+ parent_context_id?: AlkemioContextID;
209
+ join_rule?: JoinRule;
210
+ initial_members?: AlkemioActorID[];
211
+ }
212
+ export interface GetSpaceRequest {
213
+ alkemio_context_id: AlkemioContextID;
214
+ }
215
+ export interface GetSpaceResponse extends BaseResponse {
216
+ alkemio_context_id: AlkemioContextID;
217
+ display_name: string;
218
+ topic?: string;
219
+ avatar_url?: string;
220
+ join_rule: JoinRule;
221
+ member_actor_ids: AlkemioActorID[];
222
+ children: SpaceChildDto[];
223
+ parent_context_id?: AlkemioContextID;
224
+ }
225
+ export interface UpdateSpaceRequest {
226
+ alkemio_context_id: AlkemioContextID;
227
+ name?: string;
228
+ topic?: string;
229
+ avatar_url?: string;
230
+ join_rule?: JoinRule;
231
+ }
232
+ export interface DeleteSpaceRequest {
233
+ alkemio_context_id: AlkemioContextID;
234
+ reason?: string;
235
+ }
236
+ export interface ListSpacesRequest {
237
+ cursor?: string;
238
+ }
239
+ export interface ListSpacesResponse extends BaseResponse {
240
+ alkemio_context_ids: AlkemioContextID[];
241
+ next_cursor?: string;
242
+ }
243
+ export interface BatchAddSpaceMemberRequest {
244
+ actor_id: AlkemioActorID;
245
+ alkemio_context_ids: AlkemioContextID[];
246
+ }
247
+ export interface BatchAddSpaceMemberResponse extends BaseResponse {
248
+ results?: {
249
+ [key: string]: BaseResponse;
250
+ };
251
+ }
252
+ export interface BatchRemoveSpaceMemberRequest {
253
+ actor_id: AlkemioActorID;
254
+ alkemio_context_ids: AlkemioContextID[];
255
+ reason?: string;
256
+ }
257
+ export interface BatchRemoveSpaceMemberResponse extends BaseResponse {
258
+ results?: {
259
+ [key: string]: BaseResponse;
260
+ };
261
+ }
262
+ export type AlkemioRoomID = string;
263
+ export type AlkemioActorID = string;
264
+ export type MessageID = string;
265
+ export type ReactionID = string;
266
+ export type AlkemioContextID = string;
267
+ export type RoomType = string;
268
+ export declare const RoomTypeCommunity: RoomType;
269
+ export declare const RoomTypeDirect: RoomType;
270
+ export type JoinRule = string;
271
+ export declare const JoinRulePublic: JoinRule;
272
+ export declare const JoinRuleInvite: JoinRule;
273
+ export declare const JoinRuleRestricted: JoinRule;