@sidebandchat/client 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/COPYRIGHT +8 -0
  2. package/LICENSE +674 -0
  3. package/README.md +121 -2
  4. package/dist/activity/activity-sharing-controller.d.ts +131 -0
  5. package/dist/activity/activity-sharing-controller.d.ts.map +1 -0
  6. package/dist/activity/activity-sharing-controller.js +351 -0
  7. package/dist/activity/activity-sharing-controller.js.map +1 -0
  8. package/dist/activity/index.d.ts +2 -0
  9. package/dist/activity/index.d.ts.map +1 -0
  10. package/dist/activity/index.js +2 -0
  11. package/dist/activity/index.js.map +1 -0
  12. package/dist/attachments/attachment-client.d.ts +36 -0
  13. package/dist/attachments/attachment-client.d.ts.map +1 -0
  14. package/dist/attachments/attachment-client.js +98 -0
  15. package/dist/attachments/attachment-client.js.map +1 -0
  16. package/dist/attachments/draft-attachment.d.ts +17 -0
  17. package/dist/attachments/draft-attachment.d.ts.map +1 -0
  18. package/dist/attachments/draft-attachment.js +2 -0
  19. package/dist/attachments/draft-attachment.js.map +1 -0
  20. package/dist/auth/identity-client.d.ts +64 -0
  21. package/dist/auth/identity-client.d.ts.map +1 -0
  22. package/dist/auth/identity-client.js +65 -0
  23. package/dist/auth/identity-client.js.map +1 -0
  24. package/dist/auth/index.d.ts +2 -0
  25. package/dist/auth/index.d.ts.map +1 -0
  26. package/dist/auth/index.js +2 -0
  27. package/dist/auth/index.js.map +1 -0
  28. package/dist/badges/badge-verifier.d.ts +11 -0
  29. package/dist/badges/badge-verifier.d.ts.map +1 -0
  30. package/dist/badges/badge-verifier.js +128 -0
  31. package/dist/badges/badge-verifier.js.map +1 -0
  32. package/dist/calls/calls-client.d.ts +16 -0
  33. package/dist/calls/calls-client.d.ts.map +1 -0
  34. package/dist/calls/calls-client.js +55 -0
  35. package/dist/calls/calls-client.js.map +1 -0
  36. package/dist/calls/index.d.ts +3 -0
  37. package/dist/calls/index.d.ts.map +1 -0
  38. package/dist/calls/index.js +2 -0
  39. package/dist/calls/index.js.map +1 -0
  40. package/dist/calls/media-controls.d.ts +38 -0
  41. package/dist/calls/media-controls.d.ts.map +1 -0
  42. package/dist/calls/media-controls.js +134 -0
  43. package/dist/calls/media-controls.js.map +1 -0
  44. package/dist/calls/media-presentation-controller.d.ts +39 -0
  45. package/dist/calls/media-presentation-controller.d.ts.map +1 -0
  46. package/dist/calls/media-presentation-controller.js +106 -0
  47. package/dist/calls/media-presentation-controller.js.map +1 -0
  48. package/dist/calls/media-types.d.ts +37 -0
  49. package/dist/calls/media-types.d.ts.map +1 -0
  50. package/dist/calls/media-types.js +2 -0
  51. package/dist/calls/media-types.js.map +1 -0
  52. package/dist/calls/media.d.ts +39 -0
  53. package/dist/calls/media.d.ts.map +1 -0
  54. package/dist/calls/media.js +501 -0
  55. package/dist/calls/media.js.map +1 -0
  56. package/dist/client/ephemeral-state.d.ts +52 -0
  57. package/dist/client/ephemeral-state.d.ts.map +1 -0
  58. package/dist/client/ephemeral-state.js +371 -0
  59. package/dist/client/ephemeral-state.js.map +1 -0
  60. package/dist/client/index.d.ts +7 -0
  61. package/dist/client/index.d.ts.map +1 -0
  62. package/dist/client/index.js +4 -0
  63. package/dist/client/index.js.map +1 -0
  64. package/dist/client/live-event-controller.d.ts +14 -0
  65. package/dist/client/live-event-controller.d.ts.map +1 -0
  66. package/dist/client/live-event-controller.js +28 -0
  67. package/dist/client/live-event-controller.js.map +1 -0
  68. package/dist/client/platform-adapters.d.ts +122 -0
  69. package/dist/client/platform-adapters.d.ts.map +1 -0
  70. package/dist/client/platform-adapters.js +2 -0
  71. package/dist/client/platform-adapters.js.map +1 -0
  72. package/dist/client/session-runtime.d.ts +115 -0
  73. package/dist/client/session-runtime.d.ts.map +1 -0
  74. package/dist/client/session-runtime.js +607 -0
  75. package/dist/client/session-runtime.js.map +1 -0
  76. package/dist/client/sideband-client.d.ts +141 -0
  77. package/dist/client/sideband-client.d.ts.map +1 -0
  78. package/dist/client/sideband-client.js +575 -0
  79. package/dist/client/sideband-client.js.map +1 -0
  80. package/dist/client/snapshot-client.d.ts +9 -0
  81. package/dist/client/snapshot-client.d.ts.map +1 -0
  82. package/dist/client/snapshot-client.js +18 -0
  83. package/dist/client/snapshot-client.js.map +1 -0
  84. package/dist/client/state.d.ts +112 -0
  85. package/dist/client/state.d.ts.map +1 -0
  86. package/dist/client/state.js +992 -0
  87. package/dist/client/state.js.map +1 -0
  88. package/dist/communities/community-client.d.ts +40 -0
  89. package/dist/communities/community-client.d.ts.map +1 -0
  90. package/dist/communities/community-client.js +166 -0
  91. package/dist/communities/community-client.js.map +1 -0
  92. package/dist/conversations/index.d.ts +2 -0
  93. package/dist/conversations/index.d.ts.map +1 -0
  94. package/dist/conversations/index.js +2 -0
  95. package/dist/conversations/index.js.map +1 -0
  96. package/dist/conversations/mentions.d.ts +18 -0
  97. package/dist/conversations/mentions.d.ts.map +1 -0
  98. package/dist/conversations/mentions.js +108 -0
  99. package/dist/conversations/mentions.js.map +1 -0
  100. package/dist/conversations/messaging-client.d.ts +56 -0
  101. package/dist/conversations/messaging-client.d.ts.map +1 -0
  102. package/dist/conversations/messaging-client.js +333 -0
  103. package/dist/conversations/messaging-client.js.map +1 -0
  104. package/dist/conversations/replies-controller.d.ts +50 -0
  105. package/dist/conversations/replies-controller.d.ts.map +1 -0
  106. package/dist/conversations/replies-controller.js +206 -0
  107. package/dist/conversations/replies-controller.js.map +1 -0
  108. package/dist/devices/device-client.d.ts +11 -0
  109. package/dist/devices/device-client.d.ts.map +1 -0
  110. package/dist/devices/device-client.js +27 -0
  111. package/dist/devices/device-client.js.map +1 -0
  112. package/dist/domain.d.ts +528 -0
  113. package/dist/domain.d.ts.map +1 -0
  114. package/dist/domain.js +13 -0
  115. package/dist/domain.js.map +1 -0
  116. package/dist/entity-id.d.ts +32 -0
  117. package/dist/entity-id.d.ts.map +1 -0
  118. package/dist/entity-id.js +17 -0
  119. package/dist/entity-id.js.map +1 -0
  120. package/dist/index.d.ts +11 -0
  121. package/dist/index.d.ts.map +1 -0
  122. package/dist/index.js +10 -0
  123. package/dist/index.js.map +1 -0
  124. package/dist/instance/index.d.ts +5 -0
  125. package/dist/instance/index.d.ts.map +1 -0
  126. package/dist/instance/index.js +3 -0
  127. package/dist/instance/index.js.map +1 -0
  128. package/dist/instance/instance-policy.d.ts +13 -0
  129. package/dist/instance/instance-policy.d.ts.map +1 -0
  130. package/dist/instance/instance-policy.js +2 -0
  131. package/dist/instance/instance-policy.js.map +1 -0
  132. package/dist/instance-access.d.ts +66 -0
  133. package/dist/instance-access.d.ts.map +1 -0
  134. package/dist/instance-access.js +84 -0
  135. package/dist/instance-access.js.map +1 -0
  136. package/dist/instance-capabilities.d.ts +12 -0
  137. package/dist/instance-capabilities.d.ts.map +1 -0
  138. package/dist/instance-capabilities.js +2 -0
  139. package/dist/instance-capabilities.js.map +1 -0
  140. package/dist/instance-endpoint.d.ts +32 -0
  141. package/dist/instance-endpoint.d.ts.map +1 -0
  142. package/dist/instance-endpoint.js +147 -0
  143. package/dist/instance-endpoint.js.map +1 -0
  144. package/dist/model/index.d.ts +3 -0
  145. package/dist/model/index.d.ts.map +1 -0
  146. package/dist/model/index.js +3 -0
  147. package/dist/model/index.js.map +1 -0
  148. package/dist/model/selectors.d.ts +22 -0
  149. package/dist/model/selectors.d.ts.map +1 -0
  150. package/dist/model/selectors.js +73 -0
  151. package/dist/model/selectors.js.map +1 -0
  152. package/dist/private-conversation/file-hash.d.ts +2 -0
  153. package/dist/private-conversation/file-hash.d.ts.map +1 -0
  154. package/dist/private-conversation/file-hash.js +13 -0
  155. package/dist/private-conversation/file-hash.js.map +1 -0
  156. package/dist/private-conversation/private-conversation-crypto.d.ts +48 -0
  157. package/dist/private-conversation/private-conversation-crypto.d.ts.map +1 -0
  158. package/dist/private-conversation/private-conversation-crypto.js +169 -0
  159. package/dist/private-conversation/private-conversation-crypto.js.map +1 -0
  160. package/dist/private-conversation/private-conversations-client.d.ts +23 -0
  161. package/dist/private-conversation/private-conversations-client.d.ts.map +1 -0
  162. package/dist/private-conversation/private-conversations-client.js +77 -0
  163. package/dist/private-conversation/private-conversations-client.js.map +1 -0
  164. package/dist/private-conversation/private-transfer-limits.d.ts +9 -0
  165. package/dist/private-conversation/private-transfer-limits.d.ts.map +1 -0
  166. package/dist/private-conversation/private-transfer-limits.js +9 -0
  167. package/dist/private-conversation/private-transfer-limits.js.map +1 -0
  168. package/dist/private-conversation/private-transfer-protocol.d.ts +53 -0
  169. package/dist/private-conversation/private-transfer-protocol.d.ts.map +1 -0
  170. package/dist/private-conversation/private-transfer-protocol.js +184 -0
  171. package/dist/private-conversation/private-transfer-protocol.js.map +1 -0
  172. package/dist/private-conversation/private-transfer-transport.d.ts +22 -0
  173. package/dist/private-conversation/private-transfer-transport.d.ts.map +1 -0
  174. package/dist/private-conversation/private-transfer-transport.js +94 -0
  175. package/dist/private-conversation/private-transfer-transport.js.map +1 -0
  176. package/dist/realtime/realtime-client.d.ts +31 -0
  177. package/dist/realtime/realtime-client.d.ts.map +1 -0
  178. package/dist/realtime/realtime-client.js +103 -0
  179. package/dist/realtime/realtime-client.js.map +1 -0
  180. package/dist/sbp/codec.d.ts +33 -0
  181. package/dist/sbp/codec.d.ts.map +1 -0
  182. package/dist/sbp/codec.js +93 -0
  183. package/dist/sbp/codec.js.map +1 -0
  184. package/dist/sbp/command-transport.d.ts +9 -0
  185. package/dist/sbp/command-transport.d.ts.map +1 -0
  186. package/dist/sbp/command-transport.js +2 -0
  187. package/dist/sbp/command-transport.js.map +1 -0
  188. package/dist/sbp/frame.d.ts +34 -0
  189. package/dist/sbp/frame.d.ts.map +1 -0
  190. package/dist/sbp/frame.js +95 -0
  191. package/dist/sbp/frame.js.map +1 -0
  192. package/dist/sbp/records.d.ts +32 -0
  193. package/dist/sbp/records.d.ts.map +1 -0
  194. package/dist/sbp/records.js +527 -0
  195. package/dist/sbp/records.js.map +1 -0
  196. package/dist/sbp/session.d.ts +110 -0
  197. package/dist/sbp/session.d.ts.map +1 -0
  198. package/dist/sbp/session.js +349 -0
  199. package/dist/sbp/session.js.map +1 -0
  200. package/dist/sbp/value.d.ts +13 -0
  201. package/dist/sbp/value.d.ts.map +1 -0
  202. package/dist/sbp/value.js +58 -0
  203. package/dist/sbp/value.js.map +1 -0
  204. package/dist/social/social-client.d.ts +38 -0
  205. package/dist/social/social-client.d.ts.map +1 -0
  206. package/dist/social/social-client.js +110 -0
  207. package/dist/social/social-client.js.map +1 -0
  208. package/dist/transports/media-server-identity.d.ts +8 -0
  209. package/dist/transports/media-server-identity.d.ts.map +1 -0
  210. package/dist/transports/media-server-identity.js +22 -0
  211. package/dist/transports/media-server-identity.js.map +1 -0
  212. package/dist/workspace/index.d.ts +2 -0
  213. package/dist/workspace/index.d.ts.map +1 -0
  214. package/dist/workspace/index.js +2 -0
  215. package/dist/workspace/index.js.map +1 -0
  216. package/dist/workspace/workspace-controller.d.ts +39 -0
  217. package/dist/workspace/workspace-controller.d.ts.map +1 -0
  218. package/dist/workspace/workspace-controller.js +188 -0
  219. package/dist/workspace/workspace-controller.js.map +1 -0
  220. package/dist/workspace/workspace-selectors.d.ts +49 -0
  221. package/dist/workspace/workspace-selectors.d.ts.map +1 -0
  222. package/dist/workspace/workspace-selectors.js +110 -0
  223. package/dist/workspace/workspace-selectors.js.map +1 -0
  224. package/package.json +88 -4
@@ -0,0 +1,27 @@
1
+ import { decodeEntityRef, entityRef, wireMap } from "../sbp/codec.js";
2
+ import { decodeDevice } from "../sbp/records.js";
3
+ import { arrayValue, mapValue, required } from "../sbp/value.js";
4
+ export class SbpDevicesClient {
5
+ transport;
6
+ constructor(transport) {
7
+ this.transport = transport;
8
+ }
9
+ async list() {
10
+ const response = mapValue(await this.transport.command(2, wireMap([])));
11
+ return arrayValue(required(response, 0)).map(decodeDevice);
12
+ }
13
+ async revoke(deviceId, revision) {
14
+ const response = mapValue(await this.transport.command(3, wireMap([
15
+ [0, entityRef("device", deviceId)],
16
+ [1, revision],
17
+ ])));
18
+ return decodeEntityRef(required(response, 0), "device");
19
+ }
20
+ async revokeAll() {
21
+ await this.transport.command(4, wireMap([]));
22
+ }
23
+ async revokeCurrent() {
24
+ await this.transport.command(5, wireMap([]));
25
+ }
26
+ }
27
+ //# sourceMappingURL=device-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-client.js","sourceRoot":"","sources":["../../src/devices/device-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEjE,MAAM,OAAO,gBAAgB;IACE;IAA7B,YAA6B,SAA8B;QAA9B,cAAS,GAAT,SAAS,CAAqB;IAAG,CAAC;IAE/D,KAAK,CAAC,IAAI;QACR,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,OAAO,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAkB,EAAE,QAAgB;QAC/C,MAAM,QAAQ,GAAG,QAAQ,CACvB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAC1B,CAAC,EACD,OAAO,CAAC;YACN,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAClC,CAAC,CAAC,EAAE,QAAQ,CAAC;SACd,CAAC,CACH,CACF,CAAC;QACF,OAAO,eAAe,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;CACF"}
@@ -0,0 +1,528 @@
1
+ import type { AttachmentId, ActivityId, BlockId, CallId, ChannelId, CommunityId, ConversationId, DeviceId, EventId, FriendshipId, InvitationId, MessageId, NotificationId, PrivateConversationId, PrivateMessageId, PrivateTransferId, RoleId, UserId } from "./entity-id.js";
2
+ export type ChatState = "active" | "composing" | "paused" | "inactive" | "gone";
3
+ export type PresenceMode = "online" | "idle" | "dnd" | "invisible";
4
+ export type ContactPresence = Exclude<PresenceMode, "invisible"> | "offline";
5
+ export type UserBadge = "early-adopter" | "supporter" | "developer";
6
+ export type HistoryDirection = "before" | "after";
7
+ export type Mention = {
8
+ begin: number;
9
+ end: number;
10
+ userId: UserId;
11
+ };
12
+ export type AttachmentMetadata = {
13
+ id: AttachmentId;
14
+ filename: string;
15
+ mediaType: string;
16
+ byteSize: number;
17
+ sha256: Uint8Array;
18
+ width?: number;
19
+ height?: number;
20
+ blurhash?: string;
21
+ revision: number;
22
+ };
23
+ export type AttachmentUploadTarget = {
24
+ attachmentId: AttachmentId;
25
+ url: string;
26
+ expiresAt: string;
27
+ method: "PUT" | "POST";
28
+ headers: Record<string, string>;
29
+ };
30
+ export type AttachmentGrant = {
31
+ url: string;
32
+ expiresAt: string;
33
+ };
34
+ export type GifResult = {
35
+ id: string;
36
+ title: string;
37
+ previewUrl: string;
38
+ url: string;
39
+ previewWidth: number;
40
+ previewHeight: number;
41
+ blurhash?: string;
42
+ width: number;
43
+ height: number;
44
+ selectionToken: string;
45
+ };
46
+ export type ReactionSummary = {
47
+ emoji: string;
48
+ count: number;
49
+ own: boolean;
50
+ };
51
+ export type ReactionDetailsPage = {
52
+ users: UserSummary[];
53
+ nextOffset?: number;
54
+ };
55
+ export type ChatMessage = {
56
+ id: MessageId;
57
+ conversationId: ConversationId;
58
+ authorId?: UserId;
59
+ author?: UserSummary;
60
+ kind: "user" | "system" | "call" | "invitation";
61
+ authorName?: string;
62
+ body: string;
63
+ mentions?: Mention[];
64
+ gif?: {
65
+ url: string;
66
+ title?: string;
67
+ width?: number;
68
+ height?: number;
69
+ thumbnailUrl?: string;
70
+ thumbnailWidth?: number;
71
+ thumbnailHeight?: number;
72
+ blurhash?: string;
73
+ };
74
+ attachments?: AttachmentMetadata[];
75
+ communityInvite?: {
76
+ url: string;
77
+ communityName: string;
78
+ communityId?: CommunityId;
79
+ };
80
+ communityEvent?: {
81
+ id: MessageId;
82
+ type: "member-joined" | "member-left";
83
+ communityId: CommunityId;
84
+ userId: UserId;
85
+ };
86
+ outgoing: boolean;
87
+ timestamp: string;
88
+ editedAt?: string;
89
+ deletedAt?: string;
90
+ revision: number;
91
+ system?: unknown;
92
+ replaces?: MessageId;
93
+ retracts?: MessageId;
94
+ reply?: {
95
+ id: MessageId;
96
+ authorId?: UserId;
97
+ };
98
+ replyPreview?: {
99
+ messageId: MessageId;
100
+ authorId?: UserId;
101
+ author?: UserSummary;
102
+ text: string;
103
+ unavailable: boolean;
104
+ };
105
+ edited?: boolean;
106
+ reactions?: ReactionSummary[];
107
+ reactionUpdate?: {
108
+ targetId: MessageId;
109
+ senderId: UserId;
110
+ emojis: string[];
111
+ };
112
+ callEvent?: {
113
+ type: "missed" | "completed";
114
+ callId: CallId;
115
+ duration: number;
116
+ initiatedByMe?: boolean;
117
+ initiatorId?: UserId;
118
+ group?: boolean;
119
+ };
120
+ privateEvent?: {
121
+ type: "missed" | "completed";
122
+ sessionId: PrivateConversationId;
123
+ duration: number;
124
+ initiatorId?: UserId;
125
+ initiatedByMe?: boolean;
126
+ };
127
+ pending?: {
128
+ requestId: string;
129
+ state: "sending" | "failed";
130
+ error?: string;
131
+ };
132
+ confirmationTransition?: {
133
+ requestId: string;
134
+ };
135
+ pendingMutation?: {
136
+ requestId: string;
137
+ kind: "edit" | "reaction";
138
+ };
139
+ };
140
+ export type HistoryPage = {
141
+ conversationId: ConversationId;
142
+ messages: ChatMessage[];
143
+ profiles: UserSummary[];
144
+ reachedBeginning: boolean;
145
+ reachedPresent: boolean;
146
+ olderBefore?: MessageId;
147
+ newerAfter?: MessageId;
148
+ };
149
+ export type ContextHistoryPage = HistoryPage;
150
+ export type ConversationSummary = {
151
+ id: ConversationId;
152
+ kind: "direct" | "group" | "community-channel";
153
+ name?: string;
154
+ avatarId?: AttachmentId;
155
+ participantIds: UserId[];
156
+ channelId?: ChannelId;
157
+ newestEventId?: EventId;
158
+ readThroughMessageId?: MessageId;
159
+ ownerId?: UserId;
160
+ createdAt?: string;
161
+ revision: number;
162
+ };
163
+ export type CommunityChannel = {
164
+ id: ChannelId;
165
+ communityId: CommunityId;
166
+ name: string;
167
+ kind: "text" | "voice";
168
+ conversationId?: ConversationId;
169
+ position: number;
170
+ permissionOverrides: CommunityPermissionOverride[];
171
+ revision: number;
172
+ members?: CommunityMember[];
173
+ memberCount?: number;
174
+ membersComplete?: boolean;
175
+ membersNextCursor?: string;
176
+ onlineMembers?: CommunityMember[];
177
+ onlineMembersComplete?: boolean;
178
+ onlineMembersNextCursor?: string;
179
+ onlineMemberCount?: number;
180
+ };
181
+ export type Community = {
182
+ id: CommunityId;
183
+ name: string;
184
+ kind: "community" | "group_dm";
185
+ avatarId?: AttachmentId;
186
+ ownerId: UserId;
187
+ createdAt?: string;
188
+ members: CommunityMember[];
189
+ membersComplete?: boolean;
190
+ membersNextAfter?: UserId;
191
+ onlineMembers?: CommunityMember[];
192
+ onlineMembersComplete?: boolean;
193
+ onlineMembersNextAfter?: UserId;
194
+ onlineMemberCount?: number;
195
+ channels: CommunityChannel[];
196
+ roles: CommunityRole[];
197
+ revision: number;
198
+ };
199
+ export type CommunityMemberPage = {
200
+ communityId: CommunityId;
201
+ channelId?: ChannelId;
202
+ members: CommunityMember[];
203
+ profiles: UserSummary[];
204
+ nextAfter?: UserId;
205
+ nextCursor?: string;
206
+ complete: boolean;
207
+ total: number;
208
+ online: boolean;
209
+ };
210
+ export type CommunityInvitation = {
211
+ id: InvitationId;
212
+ communityId: CommunityId;
213
+ token?: string;
214
+ createdAt: string;
215
+ expiresAt?: string;
216
+ url: string;
217
+ reusable: boolean;
218
+ maximumUses?: number;
219
+ uses: number;
220
+ revoked: boolean;
221
+ revision: number;
222
+ };
223
+ export type CommunityParticipant = {
224
+ userId: UserId;
225
+ nick: string;
226
+ profile?: UserSummary;
227
+ };
228
+ export type CommunityMember = {
229
+ userId: UserId;
230
+ profile?: UserSummary;
231
+ joinedAt: string;
232
+ roleIds: RoleId[];
233
+ permissions: CommunityPermission[];
234
+ revision: number;
235
+ };
236
+ export type CommunityRole = {
237
+ id: RoleId;
238
+ communityId: CommunityId;
239
+ name: string;
240
+ position: number;
241
+ permissions: CommunityPermission[];
242
+ managed: boolean;
243
+ revision: number;
244
+ };
245
+ export type CommunityPermission = "view-channels" | "manage-community" | "manage-channels" | "manage-roles" | "manage-members" | "create-invitations" | "send-messages" | "join-voice" | "manage-messages";
246
+ export type CommunityPermissionOverride = {
247
+ subject: {
248
+ kind: "everyone";
249
+ } | {
250
+ kind: "role";
251
+ roleId: RoleId;
252
+ } | {
253
+ kind: "user";
254
+ userId: UserId;
255
+ };
256
+ allow: CommunityPermission[];
257
+ deny: CommunityPermission[];
258
+ };
259
+ export type ResolvedCommunityChannel = CommunityChannel;
260
+ export type ResolvedCommunity = Community;
261
+ export type ResolvedCommunityParticipant = CommunityParticipant;
262
+ export type RosterContact = {
263
+ friendshipId: FriendshipId;
264
+ userId: UserId;
265
+ name: string;
266
+ state: "pending" | "accepted" | "declined" | "cancelled" | "removed";
267
+ requesterId: UserId;
268
+ createdAt: string;
269
+ acceptedAt?: string;
270
+ revision: number;
271
+ };
272
+ export type UserSummary = {
273
+ id: UserId;
274
+ username: string;
275
+ displayName: string;
276
+ avatarId?: AttachmentId;
277
+ revision: number;
278
+ };
279
+ export type UserProfile = UserSummary & {
280
+ bio: string;
281
+ createdAt: string;
282
+ badges?: UserBadge[];
283
+ badgeAssertion?: string;
284
+ };
285
+ export type Block = {
286
+ id: BlockId;
287
+ userId: UserId;
288
+ createdAt: string;
289
+ revision: number;
290
+ };
291
+ export type InboxEntry = {
292
+ id: NotificationId;
293
+ kind: "unread" | "mention";
294
+ conversationId: ConversationId;
295
+ messageId?: MessageId;
296
+ senderId?: UserId;
297
+ preview?: string;
298
+ createdAt: string;
299
+ read: boolean;
300
+ unreadCount?: number;
301
+ };
302
+ export type NotificationSettings = {
303
+ scope: {
304
+ kind: "account";
305
+ } | {
306
+ kind: "conversation";
307
+ conversationId: ConversationId;
308
+ } | {
309
+ kind: "community";
310
+ communityId: CommunityId;
311
+ };
312
+ level: "all" | "mentions" | "none";
313
+ suppressMassMentions: boolean;
314
+ revision: number;
315
+ };
316
+ export type RealtimeSettings = {
317
+ presenceVisibility: "nobody" | "friends" | "shared-context";
318
+ activityVisibility: "nobody" | "friends" | "shared-context";
319
+ activitySharingEnabled: boolean;
320
+ customStatus?: {
321
+ text?: string;
322
+ emoji?: string;
323
+ expiresAt?: string;
324
+ };
325
+ revision: number;
326
+ };
327
+ export type CustomStatus = {
328
+ text?: string;
329
+ emoji?: string;
330
+ expiresAt?: string;
331
+ };
332
+ export type PresenceView = {
333
+ userId: UserId;
334
+ availability: "offline" | "online" | "idle" | "dnd";
335
+ customStatus?: CustomStatus;
336
+ observedAt: string;
337
+ idleSince?: string;
338
+ };
339
+ export type ActivityArtwork = {
340
+ kind: "attachment";
341
+ attachmentId: AttachmentId;
342
+ } | {
343
+ kind: "url";
344
+ url: string;
345
+ };
346
+ export type UserActivity = {
347
+ id: ActivityId;
348
+ kind: "music" | "game" | "custom";
349
+ startedAt: string;
350
+ updatedAt: string;
351
+ expiresAt: string;
352
+ payload: unknown;
353
+ };
354
+ export type ActivityView = {
355
+ userId: UserId;
356
+ deviceId: DeviceId;
357
+ activity: UserActivity;
358
+ };
359
+ export type ClientDevice = {
360
+ id: DeviceId;
361
+ name?: string;
362
+ platform?: string;
363
+ clientVersion?: string;
364
+ createdAt: string;
365
+ lastSeenAt: string;
366
+ lastIp?: string;
367
+ current: boolean;
368
+ revision: number;
369
+ };
370
+ export type AccountSnapshot = {
371
+ schemaVersion: number;
372
+ ownUser: UserProfile;
373
+ users: UserSummary[];
374
+ friendships: RosterContact[];
375
+ conversations: ConversationSummary[];
376
+ communities: Community[];
377
+ realtimeSettings: RealtimeSettings;
378
+ inbox: InboxEntry[];
379
+ blocks: Block[];
380
+ notificationSettings: NotificationSettings[];
381
+ devices: ClientDevice[];
382
+ };
383
+ export type ConversationSnapshot = {
384
+ schemaVersion: number;
385
+ conversation: ConversationSummary;
386
+ messages: ChatMessage[];
387
+ profiles: UserSummary[];
388
+ reachedBeginning: boolean;
389
+ };
390
+ export type UserTune = {
391
+ title?: string;
392
+ artist?: string;
393
+ album?: string;
394
+ durationMs?: number;
395
+ positionMs?: number;
396
+ playbackState?: "playing" | "paused" | "stopped" | "unknown";
397
+ applicationId?: string;
398
+ applicationName?: string;
399
+ trackId?: string;
400
+ trackUri?: string;
401
+ };
402
+ export type IncomingCall = {
403
+ id: CallId;
404
+ initiatorId: UserId;
405
+ kind?: "direct" | "group_dm";
406
+ conversationId?: ConversationId;
407
+ channelId?: ChannelId;
408
+ startedAt?: number;
409
+ phase?: "proposal" | "session";
410
+ direction?: "incoming" | "outgoing";
411
+ };
412
+ export type CallTarget = {
413
+ kind: "user";
414
+ userId: UserId;
415
+ } | {
416
+ kind: "conversation";
417
+ conversationId: ConversationId;
418
+ } | {
419
+ kind: "channel";
420
+ channelId: ChannelId;
421
+ };
422
+ export type CallParticipant = {
423
+ userId: UserId;
424
+ state: "invited" | "ringing" | "joining" | "active" | "declined" | "left";
425
+ changedAt?: string;
426
+ };
427
+ export type CallSession = {
428
+ id: CallId;
429
+ target: CallTarget;
430
+ originatorId: UserId;
431
+ media: "voice" | "video";
432
+ state: "ringing" | "connecting" | "active" | "ended" | "declined" | "expired";
433
+ startedAt: string;
434
+ endedAt?: string;
435
+ participants: CallParticipant[];
436
+ emptyRoomExpiresAt?: string;
437
+ };
438
+ export type MediaAdmission = {
439
+ credential: Uint8Array;
440
+ expiresAt: string;
441
+ room: string;
442
+ };
443
+ export type SessionEvent = {
444
+ kind: "call" | "private";
445
+ type: "missed" | "completed";
446
+ sessionId: CallId | PrivateConversationId;
447
+ duration: number;
448
+ initiatorId: UserId;
449
+ };
450
+ export type PrivateConversationSignal = {
451
+ fromUserId: UserId;
452
+ sessionId: PrivateConversationId;
453
+ action: "invite" | "accept" | "decline" | "encrypted" | "end" | "delivery-error";
454
+ payload?: string;
455
+ };
456
+ export type PrivateConversationSession = {
457
+ id: PrivateConversationId;
458
+ initiatorId: UserId;
459
+ peerId: UserId;
460
+ state: "ringing" | "negotiating" | "active" | "reconnecting" | "ended";
461
+ startedAt: string;
462
+ reconnectExpiresAt?: string;
463
+ encryptedInvitation?: Uint8Array;
464
+ };
465
+ export type PrivateConversationMessage = {
466
+ id: PrivateMessageId;
467
+ privateConversationId: PrivateConversationId;
468
+ senderId: UserId;
469
+ body: string;
470
+ timestamp: string;
471
+ attachments?: PrivateConversationAttachment[];
472
+ transferIds?: PrivateTransferId[];
473
+ };
474
+ export type PrivateConversationAttachment = {
475
+ transferId: PrivateTransferId;
476
+ filename: string;
477
+ mediaType: string;
478
+ byteSize: number;
479
+ sha256: Uint8Array;
480
+ width?: number;
481
+ height?: number;
482
+ state: "offered" | "waiting" | "transferring" | "completed" | "declined" | "canceled" | "failed";
483
+ progress: number;
484
+ };
485
+ export type PrivateConversationView = {
486
+ session?: PrivateConversationSession;
487
+ status: "idle" | "incoming" | "outgoing" | "connecting" | "active";
488
+ messages: PrivateConversationMessage[];
489
+ };
490
+ export type PrivateConversationRealtimeEvent = {
491
+ privateConversationId: PrivateConversationId;
492
+ senderId: UserId;
493
+ action: "invite" | "accept" | "decline" | "signal" | "end" | "reconnect" | "state";
494
+ payload: Uint8Array;
495
+ state: PrivateConversationSession["state"];
496
+ receivedAt: string;
497
+ };
498
+ export type PrivateTransfer = {
499
+ id: PrivateTransferId;
500
+ privateConversationId: PrivateConversationId;
501
+ senderId: UserId;
502
+ filename?: string;
503
+ mediaType?: string;
504
+ byteSize: number;
505
+ sha256?: Uint8Array;
506
+ state: "offered" | "accepted" | "transferring" | "completed" | "declined" | "canceled";
507
+ };
508
+ export type PrivateTransferAdmission = {
509
+ credential: Uint8Array;
510
+ expiresAt: string;
511
+ room: string;
512
+ };
513
+ export type MentionNotification = {
514
+ id: NotificationId;
515
+ kind: "dm" | "channel";
516
+ conversationId: ConversationId;
517
+ senderId: UserId;
518
+ messageId: MessageId;
519
+ body: string;
520
+ timestamp: string;
521
+ };
522
+ export declare const PROFILE_LIMITS: {
523
+ readonly displayName: 32;
524
+ readonly bio: 300;
525
+ };
526
+ export declare function profileCharacterCount(value: string): number;
527
+ export declare function limitProfileCharacters(value: string, limit: number): string;
528
+ //# sourceMappingURL=domain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../src/domain.ts"],"names":[],"mappings":"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"}
package/dist/domain.js ADDED
@@ -0,0 +1,13 @@
1
+ export const PROFILE_LIMITS = { displayName: 32, bio: 300 };
2
+ const profileCharacterSegmenter = new Intl.Segmenter(undefined, {
3
+ granularity: "grapheme",
4
+ });
5
+ export function profileCharacterCount(value) {
6
+ return Array.from(profileCharacterSegmenter.segment(value)).length;
7
+ }
8
+ export function limitProfileCharacters(value, limit) {
9
+ return Array.from(profileCharacterSegmenter.segment(value), ({ segment }) => segment)
10
+ .slice(0, limit)
11
+ .join("");
12
+ }
13
+ //# sourceMappingURL=domain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.js","sourceRoot":"","sources":["../src/domain.ts"],"names":[],"mappings":"AA2hBA,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAW,CAAC;AACrE,MAAM,yBAAyB,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;IAC9D,WAAW,EAAE,UAAU;CACxB,CAAC,CAAC;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,OAAO,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AACrE,CAAC;AACD,MAAM,UAAU,sBAAsB,CAAC,KAAa,EAAE,KAAa;IACjE,OAAO,KAAK,CAAC,IAAI,CACf,yBAAyB,CAAC,OAAO,CAAC,KAAK,CAAC,EACxC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CACzB;SACE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;SACf,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC"}
@@ -0,0 +1,32 @@
1
+ declare const entityIdBrand: unique symbol;
2
+ declare const orderedIdBrand: unique symbol;
3
+ export type EntityId<Kind extends string> = string & {
4
+ readonly [entityIdBrand]: Kind;
5
+ };
6
+ export type UserId = EntityId<"user">;
7
+ export type DeviceId = EntityId<"device">;
8
+ export type ConversationId = EntityId<"conversation">;
9
+ export type CommunityId = EntityId<"community">;
10
+ export type ChannelId = EntityId<"channel">;
11
+ export type AttachmentId = EntityId<"attachment">;
12
+ export type RoleId = EntityId<"role">;
13
+ export type FriendshipId = EntityId<"friendship">;
14
+ export type CallId = EntityId<"call">;
15
+ export type PrivateConversationId = EntityId<"private-conversation">;
16
+ export type PrivateMessageId = EntityId<"private-message">;
17
+ export type InvitationId = EntityId<"invitation">;
18
+ export type BlockId = EntityId<"block">;
19
+ export type PrivateTransferId = EntityId<"private-transfer">;
20
+ export type ActivityId = EntityId<"activity">;
21
+ export type RequestId = EntityId<"request">;
22
+ export type OrderedId<Kind extends string> = bigint & {
23
+ readonly [orderedIdBrand]: Kind;
24
+ };
25
+ export type MessageId = OrderedId<"message">;
26
+ export type EventId = OrderedId<"event">;
27
+ export type NotificationId = OrderedId<"notification">;
28
+ export declare function entityId<Kind extends string>(value: string): EntityId<Kind>;
29
+ export declare function orderedId<Kind extends string>(value: bigint | number | string): OrderedId<Kind>;
30
+ export declare function idKey(id: string | bigint): string;
31
+ export {};
32
+ //# sourceMappingURL=entity-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-id.d.ts","sourceRoot":"","sources":["../src/entity-id.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,aAAa,EAAE,OAAO,MAAM,CAAC;AAC3C,OAAO,CAAC,MAAM,cAAc,EAAE,OAAO,MAAM,CAAC;AAE5C,MAAM,MAAM,QAAQ,CAAC,IAAI,SAAS,MAAM,IAAI,MAAM,GAAG;IACnD,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtC,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC1C,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;AAChD,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtC,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtC,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AACrE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAC3D,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;AACxC,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAC7D,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AAE5C,MAAM,MAAM,SAAS,CAAC,IAAI,SAAS,MAAM,IAAI,MAAM,GAAG;IACpD,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;AAC7C,MAAM,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;AACzC,MAAM,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;AAEvD,wBAAgB,QAAQ,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAI3E;AAED,wBAAgB,SAAS,CAAC,IAAI,SAAS,MAAM,EAC3C,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAC9B,SAAS,CAAC,IAAI,CAAC,CAKjB;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEjD"}
@@ -0,0 +1,17 @@
1
+ const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
2
+ export function entityId(value) {
3
+ const normalized = value.trim().toLowerCase();
4
+ if (!UUID_PATTERN.test(normalized))
5
+ throw new TypeError("Invalid entity ID");
6
+ return normalized;
7
+ }
8
+ export function orderedId(value) {
9
+ const parsed = typeof value === "bigint" ? value : BigInt(value);
10
+ if (parsed < 0n || parsed > 9223372036854775807n)
11
+ throw new TypeError("Invalid ordered ID");
12
+ return parsed;
13
+ }
14
+ export function idKey(id) {
15
+ return id.toString();
16
+ }
17
+ //# sourceMappingURL=entity-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-id.js","sourceRoot":"","sources":["../src/entity-id.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAChB,4EAA4E,CAAC;AAkC/E,MAAM,UAAU,QAAQ,CAAsB,KAAa;IACzD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAC7E,OAAO,UAA4B,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,KAA+B;IAE/B,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjE,IAAI,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,oBAA0B;QACpD,MAAM,IAAI,SAAS,CAAC,oBAAoB,CAAC,CAAC;IAC5C,OAAO,MAAyB,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAmB;IACvC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;AACvB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export * from "./model/index.js";
2
+ export * from "./instance/index.js";
3
+ export * from "./client/index.js";
4
+ export * from "./auth/index.js";
5
+ export * from "./workspace/index.js";
6
+ export type { DraftAttachment } from "./attachments/draft-attachment.js";
7
+ export { PRIVATE_TRANSFER_LIMITS } from "./private-conversation/private-transfer-limits.js";
8
+ export * from "./conversations/index.js";
9
+ export * from "./calls/index.js";
10
+ export * from "./activity/index.js";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,YAAY,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAC5F,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}