@massalabs/gossip-sdk 0.0.2-dev.20260220142001 → 0.0.2-dev.20260223065033

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 (73) hide show
  1. package/README.md +26 -3
  2. package/dist/core/SdkEventEmitter.d.ts +2 -0
  3. package/dist/core/SdkEventEmitter.js +2 -0
  4. package/dist/{db.d.ts → db/db.d.ts} +14 -3
  5. package/dist/{db.js → db/db.js} +17 -8
  6. package/dist/db/exec-utils.d.ts +19 -0
  7. package/dist/db/exec-utils.js +48 -0
  8. package/dist/db/generated-ddl.d.ts +1 -0
  9. package/dist/db/generated-ddl.js +31 -0
  10. package/dist/db/index.d.ts +3 -0
  11. package/dist/db/index.js +3 -0
  12. package/dist/db/queries/activeSeekers.d.ts +1 -0
  13. package/dist/{queries → db/queries}/activeSeekers.js +0 -5
  14. package/dist/{queries → db/queries}/messages.d.ts +2 -2
  15. package/dist/{queries → db/queries}/messages.js +3 -3
  16. package/dist/{queries → db/queries}/userProfile.d.ts +1 -1
  17. package/dist/{queries → db/queries}/userProfile.js +1 -1
  18. package/dist/db/schema/_helpers.d.ts +26 -0
  19. package/dist/db/schema/_helpers.js +15 -0
  20. package/dist/db/schema/activeSeekers.d.ts +43 -0
  21. package/dist/db/schema/activeSeekers.js +6 -0
  22. package/dist/db/schema/announcementCursors.d.ts +45 -0
  23. package/dist/db/schema/announcementCursors.js +5 -0
  24. package/dist/db/schema/contacts.d.ts +170 -0
  25. package/dist/db/schema/contacts.js +16 -0
  26. package/dist/db/schema/discussions.d.ts +336 -0
  27. package/dist/db/schema/discussions.js +31 -0
  28. package/dist/db/schema/index.d.ts +8 -0
  29. package/dist/db/schema/index.js +8 -0
  30. package/dist/db/schema/messages.d.ts +309 -0
  31. package/dist/db/schema/messages.js +29 -0
  32. package/dist/db/schema/pendingAnnouncements.d.ts +79 -0
  33. package/dist/db/schema/pendingAnnouncements.js +11 -0
  34. package/dist/db/schema/pendingEncryptedMessages.d.ts +79 -0
  35. package/dist/db/schema/pendingEncryptedMessages.js +11 -0
  36. package/dist/db/schema/userProfile.d.ts +208 -0
  37. package/dist/db/schema/userProfile.js +20 -0
  38. package/dist/{sqlite-worker.js → db/sqlite-worker.js} +2 -30
  39. package/dist/db/sqlite.d.ts +77 -0
  40. package/dist/db/sqlite.js +254 -0
  41. package/dist/gossip.d.ts +1 -41
  42. package/dist/gossip.js +8 -10
  43. package/dist/index.d.ts +3 -3
  44. package/dist/index.js +3 -3
  45. package/dist/services/announcement.js +1 -1
  46. package/dist/services/discussion.js +1 -1
  47. package/dist/services/message.d.ts +1 -1
  48. package/dist/services/message.js +2 -3
  49. package/dist/services/refresh.js +1 -1
  50. package/dist/utils/contacts.d.ts +11 -0
  51. package/dist/utils/contacts.js +30 -2
  52. package/dist/utils/discussions.d.ts +1 -1
  53. package/dist/utils/discussions.js +1 -1
  54. package/dist/utils/validation.js +1 -1
  55. package/package.json +2 -1
  56. package/dist/contacts.d.ts +0 -120
  57. package/dist/contacts.js +0 -160
  58. package/dist/queries/activeSeekers.d.ts +0 -2
  59. package/dist/schema.d.ts +0 -1280
  60. package/dist/schema.js +0 -164
  61. package/dist/sqlite.d.ts +0 -79
  62. package/dist/sqlite.js +0 -448
  63. /package/dist/{queries → db/queries}/announcementCursors.d.ts +0 -0
  64. /package/dist/{queries → db/queries}/announcementCursors.js +0 -0
  65. /package/dist/{queries → db/queries}/contacts.d.ts +0 -0
  66. /package/dist/{queries → db/queries}/contacts.js +0 -0
  67. /package/dist/{queries → db/queries}/discussions.d.ts +0 -0
  68. /package/dist/{queries → db/queries}/discussions.js +0 -0
  69. /package/dist/{queries → db/queries}/index.d.ts +0 -0
  70. /package/dist/{queries → db/queries}/index.js +0 -0
  71. /package/dist/{queries → db/queries}/pendingAnnouncements.d.ts +0 -0
  72. /package/dist/{queries → db/queries}/pendingAnnouncements.js +0 -0
  73. /package/dist/{sqlite-worker.d.ts → db/sqlite-worker.d.ts} +0 -0
@@ -0,0 +1,170 @@
1
+ export declare const contacts: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
2
+ name: "contacts";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
6
+ name: "id";
7
+ tableName: "contacts";
8
+ dataType: "number";
9
+ columnType: "SQLiteInteger";
10
+ data: number;
11
+ driverParam: number;
12
+ notNull: true;
13
+ hasDefault: true;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: undefined;
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {}>;
22
+ ownerUserId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
23
+ name: "ownerUserId";
24
+ tableName: "contacts";
25
+ dataType: "string";
26
+ columnType: "SQLiteText";
27
+ data: string;
28
+ driverParam: string;
29
+ notNull: true;
30
+ hasDefault: false;
31
+ isPrimaryKey: false;
32
+ isAutoincrement: false;
33
+ hasRuntimeDefault: false;
34
+ enumValues: [string, ...string[]];
35
+ baseColumn: never;
36
+ identity: undefined;
37
+ generated: undefined;
38
+ }, {}, {
39
+ length: number | undefined;
40
+ }>;
41
+ userId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
42
+ name: "userId";
43
+ tableName: "contacts";
44
+ dataType: "string";
45
+ columnType: "SQLiteText";
46
+ data: string;
47
+ driverParam: string;
48
+ notNull: true;
49
+ hasDefault: false;
50
+ isPrimaryKey: false;
51
+ isAutoincrement: false;
52
+ hasRuntimeDefault: false;
53
+ enumValues: [string, ...string[]];
54
+ baseColumn: never;
55
+ identity: undefined;
56
+ generated: undefined;
57
+ }, {}, {
58
+ length: number | undefined;
59
+ }>;
60
+ name: import("drizzle-orm/sqlite-core").SQLiteColumn<{
61
+ name: "name";
62
+ tableName: "contacts";
63
+ dataType: "string";
64
+ columnType: "SQLiteText";
65
+ data: string;
66
+ driverParam: string;
67
+ notNull: true;
68
+ hasDefault: false;
69
+ isPrimaryKey: false;
70
+ isAutoincrement: false;
71
+ hasRuntimeDefault: false;
72
+ enumValues: [string, ...string[]];
73
+ baseColumn: never;
74
+ identity: undefined;
75
+ generated: undefined;
76
+ }, {}, {
77
+ length: number | undefined;
78
+ }>;
79
+ avatar: import("drizzle-orm/sqlite-core").SQLiteColumn<{
80
+ name: "avatar";
81
+ tableName: "contacts";
82
+ dataType: "string";
83
+ columnType: "SQLiteText";
84
+ data: string;
85
+ driverParam: string;
86
+ notNull: false;
87
+ hasDefault: false;
88
+ isPrimaryKey: false;
89
+ isAutoincrement: false;
90
+ hasRuntimeDefault: false;
91
+ enumValues: [string, ...string[]];
92
+ baseColumn: never;
93
+ identity: undefined;
94
+ generated: undefined;
95
+ }, {}, {
96
+ length: number | undefined;
97
+ }>;
98
+ publicKeys: import("drizzle-orm/sqlite-core").SQLiteColumn<{
99
+ name: "publicKeys";
100
+ tableName: "contacts";
101
+ dataType: "custom";
102
+ columnType: "SQLiteCustomColumn";
103
+ data: Uint8Array<ArrayBufferLike>;
104
+ driverParam: Uint8Array<ArrayBufferLike>;
105
+ notNull: true;
106
+ hasDefault: false;
107
+ isPrimaryKey: false;
108
+ isAutoincrement: false;
109
+ hasRuntimeDefault: false;
110
+ enumValues: undefined;
111
+ baseColumn: never;
112
+ identity: undefined;
113
+ generated: undefined;
114
+ }, {}, {
115
+ sqliteColumnBuilderBrand: "SQLiteCustomColumnBuilderBrand";
116
+ }>;
117
+ isOnline: import("drizzle-orm/sqlite-core").SQLiteColumn<{
118
+ name: "isOnline";
119
+ tableName: "contacts";
120
+ dataType: "boolean";
121
+ columnType: "SQLiteBoolean";
122
+ data: boolean;
123
+ driverParam: number;
124
+ notNull: true;
125
+ hasDefault: false;
126
+ isPrimaryKey: false;
127
+ isAutoincrement: false;
128
+ hasRuntimeDefault: false;
129
+ enumValues: undefined;
130
+ baseColumn: never;
131
+ identity: undefined;
132
+ generated: undefined;
133
+ }, {}, {}>;
134
+ lastSeen: import("drizzle-orm/sqlite-core").SQLiteColumn<{
135
+ name: "lastSeen";
136
+ tableName: "contacts";
137
+ dataType: "date";
138
+ columnType: "SQLiteTimestamp";
139
+ data: Date;
140
+ driverParam: number;
141
+ notNull: true;
142
+ hasDefault: false;
143
+ isPrimaryKey: false;
144
+ isAutoincrement: false;
145
+ hasRuntimeDefault: false;
146
+ enumValues: undefined;
147
+ baseColumn: never;
148
+ identity: undefined;
149
+ generated: undefined;
150
+ }, {}, {}>;
151
+ createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
152
+ name: "createdAt";
153
+ tableName: "contacts";
154
+ dataType: "date";
155
+ columnType: "SQLiteTimestamp";
156
+ data: Date;
157
+ driverParam: number;
158
+ notNull: true;
159
+ hasDefault: false;
160
+ isPrimaryKey: false;
161
+ isAutoincrement: false;
162
+ hasRuntimeDefault: false;
163
+ enumValues: undefined;
164
+ baseColumn: never;
165
+ identity: undefined;
166
+ generated: undefined;
167
+ }, {}, {}>;
168
+ };
169
+ dialect: "sqlite";
170
+ }>;
@@ -0,0 +1,16 @@
1
+ import { sqliteTable, text, integer, index } from 'drizzle-orm/sqlite-core';
2
+ import { bytes } from './_helpers';
3
+ export const contacts = sqliteTable('contacts', {
4
+ id: integer('id').primaryKey({ autoIncrement: true }),
5
+ ownerUserId: text('ownerUserId').notNull(),
6
+ userId: text('userId').notNull(),
7
+ name: text('name').notNull(),
8
+ avatar: text('avatar'),
9
+ publicKeys: bytes('publicKeys').notNull(),
10
+ isOnline: integer('isOnline', { mode: 'boolean' }).notNull(),
11
+ lastSeen: integer('lastSeen', { mode: 'timestamp_ms' }).notNull(),
12
+ createdAt: integer('createdAt', { mode: 'timestamp_ms' }).notNull(),
13
+ }, table => [
14
+ index('contacts_owner_user_idx').on(table.ownerUserId, table.userId),
15
+ index('contacts_owner_name_idx').on(table.ownerUserId, table.name),
16
+ ]);
@@ -0,0 +1,336 @@
1
+ import type { DiscussionDirection, DiscussionStatus } from '../db';
2
+ export declare const discussions: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
3
+ name: "discussions";
4
+ schema: undefined;
5
+ columns: {
6
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
7
+ name: "id";
8
+ tableName: "discussions";
9
+ dataType: "number";
10
+ columnType: "SQLiteInteger";
11
+ data: number;
12
+ driverParam: number;
13
+ notNull: true;
14
+ hasDefault: true;
15
+ isPrimaryKey: true;
16
+ isAutoincrement: false;
17
+ hasRuntimeDefault: false;
18
+ enumValues: undefined;
19
+ baseColumn: never;
20
+ identity: undefined;
21
+ generated: undefined;
22
+ }, {}, {}>;
23
+ ownerUserId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
24
+ name: "ownerUserId";
25
+ tableName: "discussions";
26
+ dataType: "string";
27
+ columnType: "SQLiteText";
28
+ data: string;
29
+ driverParam: string;
30
+ notNull: true;
31
+ hasDefault: false;
32
+ isPrimaryKey: false;
33
+ isAutoincrement: false;
34
+ hasRuntimeDefault: false;
35
+ enumValues: [string, ...string[]];
36
+ baseColumn: never;
37
+ identity: undefined;
38
+ generated: undefined;
39
+ }, {}, {
40
+ length: number | undefined;
41
+ }>;
42
+ contactUserId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
43
+ name: "contactUserId";
44
+ tableName: "discussions";
45
+ dataType: "string";
46
+ columnType: "SQLiteText";
47
+ data: string;
48
+ driverParam: string;
49
+ notNull: true;
50
+ hasDefault: false;
51
+ isPrimaryKey: false;
52
+ isAutoincrement: false;
53
+ hasRuntimeDefault: false;
54
+ enumValues: [string, ...string[]];
55
+ baseColumn: never;
56
+ identity: undefined;
57
+ generated: undefined;
58
+ }, {}, {
59
+ length: number | undefined;
60
+ }>;
61
+ weAccepted: import("drizzle-orm/sqlite-core").SQLiteColumn<{
62
+ name: "weAccepted";
63
+ tableName: "discussions";
64
+ dataType: "boolean";
65
+ columnType: "SQLiteBoolean";
66
+ data: boolean;
67
+ driverParam: number;
68
+ notNull: true;
69
+ hasDefault: true;
70
+ isPrimaryKey: false;
71
+ isAutoincrement: false;
72
+ hasRuntimeDefault: false;
73
+ enumValues: undefined;
74
+ baseColumn: never;
75
+ identity: undefined;
76
+ generated: undefined;
77
+ }, {}, {}>;
78
+ sendAnnouncement: import("drizzle-orm/sqlite-core").SQLiteColumn<{
79
+ name: "sendAnnouncement";
80
+ tableName: "discussions";
81
+ dataType: "string";
82
+ columnType: "SQLiteText";
83
+ data: string;
84
+ driverParam: string;
85
+ notNull: false;
86
+ hasDefault: false;
87
+ isPrimaryKey: false;
88
+ isAutoincrement: false;
89
+ hasRuntimeDefault: false;
90
+ enumValues: [string, ...string[]];
91
+ baseColumn: never;
92
+ identity: undefined;
93
+ generated: undefined;
94
+ }, {}, {
95
+ length: number | undefined;
96
+ }>;
97
+ direction: import("drizzle-orm/sqlite-core").SQLiteColumn<{
98
+ name: "direction";
99
+ tableName: "discussions";
100
+ dataType: "string";
101
+ columnType: "SQLiteText";
102
+ data: DiscussionDirection;
103
+ driverParam: string;
104
+ notNull: true;
105
+ hasDefault: false;
106
+ isPrimaryKey: false;
107
+ isAutoincrement: false;
108
+ hasRuntimeDefault: false;
109
+ enumValues: [string, ...string[]];
110
+ baseColumn: never;
111
+ identity: undefined;
112
+ generated: undefined;
113
+ }, {}, {
114
+ length: number | undefined;
115
+ $type: DiscussionDirection;
116
+ }>;
117
+ status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
118
+ name: "status";
119
+ tableName: "discussions";
120
+ dataType: "string";
121
+ columnType: "SQLiteText";
122
+ data: DiscussionStatus;
123
+ driverParam: string;
124
+ notNull: true;
125
+ hasDefault: false;
126
+ isPrimaryKey: false;
127
+ isAutoincrement: false;
128
+ hasRuntimeDefault: false;
129
+ enumValues: [string, ...string[]];
130
+ baseColumn: never;
131
+ identity: undefined;
132
+ generated: undefined;
133
+ }, {}, {
134
+ length: number | undefined;
135
+ $type: DiscussionStatus;
136
+ }>;
137
+ nextSeeker: import("drizzle-orm/sqlite-core").SQLiteColumn<{
138
+ name: "nextSeeker";
139
+ tableName: "discussions";
140
+ dataType: "custom";
141
+ columnType: "SQLiteCustomColumn";
142
+ data: Uint8Array<ArrayBufferLike>;
143
+ driverParam: Uint8Array<ArrayBufferLike>;
144
+ notNull: false;
145
+ hasDefault: false;
146
+ isPrimaryKey: false;
147
+ isAutoincrement: false;
148
+ hasRuntimeDefault: false;
149
+ enumValues: undefined;
150
+ baseColumn: never;
151
+ identity: undefined;
152
+ generated: undefined;
153
+ }, {}, {
154
+ sqliteColumnBuilderBrand: "SQLiteCustomColumnBuilderBrand";
155
+ }>;
156
+ initiationAnnouncement: import("drizzle-orm/sqlite-core").SQLiteColumn<{
157
+ name: "initiationAnnouncement";
158
+ tableName: "discussions";
159
+ dataType: "custom";
160
+ columnType: "SQLiteCustomColumn";
161
+ data: Uint8Array<ArrayBufferLike>;
162
+ driverParam: Uint8Array<ArrayBufferLike>;
163
+ notNull: false;
164
+ hasDefault: false;
165
+ isPrimaryKey: false;
166
+ isAutoincrement: false;
167
+ hasRuntimeDefault: false;
168
+ enumValues: undefined;
169
+ baseColumn: never;
170
+ identity: undefined;
171
+ generated: undefined;
172
+ }, {}, {
173
+ sqliteColumnBuilderBrand: "SQLiteCustomColumnBuilderBrand";
174
+ }>;
175
+ announcementMessage: import("drizzle-orm/sqlite-core").SQLiteColumn<{
176
+ name: "announcementMessage";
177
+ tableName: "discussions";
178
+ dataType: "string";
179
+ columnType: "SQLiteText";
180
+ data: string;
181
+ driverParam: string;
182
+ notNull: false;
183
+ hasDefault: false;
184
+ isPrimaryKey: false;
185
+ isAutoincrement: false;
186
+ hasRuntimeDefault: false;
187
+ enumValues: [string, ...string[]];
188
+ baseColumn: never;
189
+ identity: undefined;
190
+ generated: undefined;
191
+ }, {}, {
192
+ length: number | undefined;
193
+ }>;
194
+ lastSyncTimestamp: import("drizzle-orm/sqlite-core").SQLiteColumn<{
195
+ name: "lastSyncTimestamp";
196
+ tableName: "discussions";
197
+ dataType: "date";
198
+ columnType: "SQLiteTimestamp";
199
+ data: Date;
200
+ driverParam: number;
201
+ notNull: false;
202
+ hasDefault: false;
203
+ isPrimaryKey: false;
204
+ isAutoincrement: false;
205
+ hasRuntimeDefault: false;
206
+ enumValues: undefined;
207
+ baseColumn: never;
208
+ identity: undefined;
209
+ generated: undefined;
210
+ }, {}, {}>;
211
+ customName: import("drizzle-orm/sqlite-core").SQLiteColumn<{
212
+ name: "customName";
213
+ tableName: "discussions";
214
+ dataType: "string";
215
+ columnType: "SQLiteText";
216
+ data: string;
217
+ driverParam: string;
218
+ notNull: false;
219
+ hasDefault: false;
220
+ isPrimaryKey: false;
221
+ isAutoincrement: false;
222
+ hasRuntimeDefault: false;
223
+ enumValues: [string, ...string[]];
224
+ baseColumn: never;
225
+ identity: undefined;
226
+ generated: undefined;
227
+ }, {}, {
228
+ length: number | undefined;
229
+ }>;
230
+ lastMessageId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
231
+ name: "lastMessageId";
232
+ tableName: "discussions";
233
+ dataType: "number";
234
+ columnType: "SQLiteInteger";
235
+ data: number;
236
+ driverParam: number;
237
+ notNull: false;
238
+ hasDefault: false;
239
+ isPrimaryKey: false;
240
+ isAutoincrement: false;
241
+ hasRuntimeDefault: false;
242
+ enumValues: undefined;
243
+ baseColumn: never;
244
+ identity: undefined;
245
+ generated: undefined;
246
+ }, {}, {}>;
247
+ lastMessageContent: import("drizzle-orm/sqlite-core").SQLiteColumn<{
248
+ name: "lastMessageContent";
249
+ tableName: "discussions";
250
+ dataType: "string";
251
+ columnType: "SQLiteText";
252
+ data: string;
253
+ driverParam: string;
254
+ notNull: false;
255
+ hasDefault: false;
256
+ isPrimaryKey: false;
257
+ isAutoincrement: false;
258
+ hasRuntimeDefault: false;
259
+ enumValues: [string, ...string[]];
260
+ baseColumn: never;
261
+ identity: undefined;
262
+ generated: undefined;
263
+ }, {}, {
264
+ length: number | undefined;
265
+ }>;
266
+ lastMessageTimestamp: import("drizzle-orm/sqlite-core").SQLiteColumn<{
267
+ name: "lastMessageTimestamp";
268
+ tableName: "discussions";
269
+ dataType: "date";
270
+ columnType: "SQLiteTimestamp";
271
+ data: Date;
272
+ driverParam: number;
273
+ notNull: false;
274
+ hasDefault: false;
275
+ isPrimaryKey: false;
276
+ isAutoincrement: false;
277
+ hasRuntimeDefault: false;
278
+ enumValues: undefined;
279
+ baseColumn: never;
280
+ identity: undefined;
281
+ generated: undefined;
282
+ }, {}, {}>;
283
+ unreadCount: import("drizzle-orm/sqlite-core").SQLiteColumn<{
284
+ name: "unreadCount";
285
+ tableName: "discussions";
286
+ dataType: "number";
287
+ columnType: "SQLiteInteger";
288
+ data: number;
289
+ driverParam: number;
290
+ notNull: true;
291
+ hasDefault: true;
292
+ isPrimaryKey: false;
293
+ isAutoincrement: false;
294
+ hasRuntimeDefault: false;
295
+ enumValues: undefined;
296
+ baseColumn: never;
297
+ identity: undefined;
298
+ generated: undefined;
299
+ }, {}, {}>;
300
+ createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
301
+ name: "createdAt";
302
+ tableName: "discussions";
303
+ dataType: "date";
304
+ columnType: "SQLiteTimestamp";
305
+ data: Date;
306
+ driverParam: number;
307
+ notNull: true;
308
+ hasDefault: false;
309
+ isPrimaryKey: false;
310
+ isAutoincrement: false;
311
+ hasRuntimeDefault: false;
312
+ enumValues: undefined;
313
+ baseColumn: never;
314
+ identity: undefined;
315
+ generated: undefined;
316
+ }, {}, {}>;
317
+ updatedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
318
+ name: "updatedAt";
319
+ tableName: "discussions";
320
+ dataType: "date";
321
+ columnType: "SQLiteTimestamp";
322
+ data: Date;
323
+ driverParam: number;
324
+ notNull: true;
325
+ hasDefault: false;
326
+ isPrimaryKey: false;
327
+ isAutoincrement: false;
328
+ hasRuntimeDefault: false;
329
+ enumValues: undefined;
330
+ baseColumn: never;
331
+ identity: undefined;
332
+ generated: undefined;
333
+ }, {}, {}>;
334
+ };
335
+ dialect: "sqlite";
336
+ }>;
@@ -0,0 +1,31 @@
1
+ import { sqliteTable, text, integer, index, uniqueIndex, } from 'drizzle-orm/sqlite-core';
2
+ import { bytes } from './_helpers';
3
+ export const discussions = sqliteTable('discussions', {
4
+ id: integer('id').primaryKey({ autoIncrement: true }),
5
+ ownerUserId: text('ownerUserId').notNull(),
6
+ contactUserId: text('contactUserId').notNull(),
7
+ weAccepted: integer('weAccepted', { mode: 'boolean' })
8
+ .notNull()
9
+ .default(false),
10
+ sendAnnouncement: text('sendAnnouncement'),
11
+ direction: text('direction').$type().notNull(),
12
+ status: text('status').$type().notNull(),
13
+ nextSeeker: bytes('nextSeeker'),
14
+ initiationAnnouncement: bytes('initiationAnnouncement'),
15
+ announcementMessage: text('announcementMessage'),
16
+ lastSyncTimestamp: integer('lastSyncTimestamp', {
17
+ mode: 'timestamp_ms',
18
+ }),
19
+ customName: text('customName'),
20
+ lastMessageId: integer('lastMessageId'),
21
+ lastMessageContent: text('lastMessageContent'),
22
+ lastMessageTimestamp: integer('lastMessageTimestamp', {
23
+ mode: 'timestamp_ms',
24
+ }),
25
+ unreadCount: integer('unreadCount').notNull().default(0),
26
+ createdAt: integer('createdAt', { mode: 'timestamp_ms' }).notNull(),
27
+ updatedAt: integer('updatedAt', { mode: 'timestamp_ms' }).notNull(),
28
+ }, table => [
29
+ uniqueIndex('discussions_owner_contact_idx').on(table.ownerUserId, table.contactUserId),
30
+ index('discussions_owner_status_idx').on(table.ownerUserId, table.status),
31
+ ]);
@@ -0,0 +1,8 @@
1
+ export { contacts } from './contacts';
2
+ export { messages } from './messages';
3
+ export { userProfile } from './userProfile';
4
+ export { discussions } from './discussions';
5
+ export { pendingEncryptedMessages } from './pendingEncryptedMessages';
6
+ export { pendingAnnouncements } from './pendingAnnouncements';
7
+ export { activeSeekers } from './activeSeekers';
8
+ export { announcementCursors } from './announcementCursors';
@@ -0,0 +1,8 @@
1
+ export { contacts } from './contacts';
2
+ export { messages } from './messages';
3
+ export { userProfile } from './userProfile';
4
+ export { discussions } from './discussions';
5
+ export { pendingEncryptedMessages } from './pendingEncryptedMessages';
6
+ export { pendingAnnouncements } from './pendingAnnouncements';
7
+ export { activeSeekers } from './activeSeekers';
8
+ export { announcementCursors } from './announcementCursors';