@stoneforge/shared-routes 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 (59) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +69 -0
  3. package/dist/channels.d.ts +9 -0
  4. package/dist/channels.d.ts.map +1 -0
  5. package/dist/channels.js +413 -0
  6. package/dist/channels.js.map +1 -0
  7. package/dist/documents.d.ts +9 -0
  8. package/dist/documents.d.ts.map +1 -0
  9. package/dist/documents.js +1205 -0
  10. package/dist/documents.js.map +1 -0
  11. package/dist/elements.d.ts +9 -0
  12. package/dist/elements.d.ts.map +1 -0
  13. package/dist/elements.js +87 -0
  14. package/dist/elements.js.map +1 -0
  15. package/dist/entities.d.ts +9 -0
  16. package/dist/entities.d.ts.map +1 -0
  17. package/dist/entities.js +92 -0
  18. package/dist/entities.js.map +1 -0
  19. package/dist/inbox.d.ts +10 -0
  20. package/dist/inbox.d.ts.map +1 -0
  21. package/dist/inbox.js +538 -0
  22. package/dist/inbox.js.map +1 -0
  23. package/dist/index.d.ts +16 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +17 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/libraries.d.ts +9 -0
  28. package/dist/libraries.d.ts.map +1 -0
  29. package/dist/libraries.js +467 -0
  30. package/dist/libraries.js.map +1 -0
  31. package/dist/messages.d.ts +9 -0
  32. package/dist/messages.d.ts.map +1 -0
  33. package/dist/messages.js +338 -0
  34. package/dist/messages.js.map +1 -0
  35. package/dist/plans.d.ts +10 -0
  36. package/dist/plans.d.ts.map +1 -0
  37. package/dist/plans.js +495 -0
  38. package/dist/plans.js.map +1 -0
  39. package/dist/types.d.ts +128 -0
  40. package/dist/types.d.ts.map +1 -0
  41. package/dist/types.js +8 -0
  42. package/dist/types.js.map +1 -0
  43. package/dist/ws/broadcaster.d.ts +62 -0
  44. package/dist/ws/broadcaster.d.ts.map +1 -0
  45. package/dist/ws/broadcaster.js +146 -0
  46. package/dist/ws/broadcaster.js.map +1 -0
  47. package/dist/ws/handler.d.ts +11 -0
  48. package/dist/ws/handler.d.ts.map +1 -0
  49. package/dist/ws/handler.js +38 -0
  50. package/dist/ws/handler.js.map +1 -0
  51. package/dist/ws/index.d.ts +11 -0
  52. package/dist/ws/index.d.ts.map +1 -0
  53. package/dist/ws/index.js +11 -0
  54. package/dist/ws/index.js.map +1 -0
  55. package/dist/ws/types.d.ts +85 -0
  56. package/dist/ws/types.d.ts.map +1 -0
  57. package/dist/ws/types.js +63 -0
  58. package/dist/ws/types.js.map +1 -0
  59. package/package.json +40 -0
package/dist/inbox.js ADDED
@@ -0,0 +1,538 @@
1
+ /**
2
+ * Inbox Routes Factory
3
+ *
4
+ * Shared inbox endpoints for entities and agents.
5
+ * Used by both main server and orchestrator-server.
6
+ */
7
+ import { Hono } from 'hono';
8
+ export function createInboxRoutes(services) {
9
+ const { api, inboxService, storageBackend, broadcastInboxEvent } = services;
10
+ const app = new Hono();
11
+ /**
12
+ * GET /api/entities/:id/inbox
13
+ * Get entity's inbox with pagination and optional hydration.
14
+ *
15
+ * Query params:
16
+ * - limit: Max items to return (default: 25)
17
+ * - offset: Pagination offset
18
+ * - status: Filter by status (unread, read, archived, or comma-separated)
19
+ * - sourceType: Filter by source type (direct, mention)
20
+ * - hydrate: If 'true', hydrate message content, sender, channel, attachments
21
+ */
22
+ app.get('/api/entities/:id/inbox', async (c) => {
23
+ try {
24
+ const id = c.req.param('id');
25
+ const url = new URL(c.req.url);
26
+ // Parse pagination params
27
+ const limitParam = url.searchParams.get('limit');
28
+ const offsetParam = url.searchParams.get('offset');
29
+ const statusParam = url.searchParams.get('status');
30
+ const sourceTypeParam = url.searchParams.get('sourceType');
31
+ const hydrateParam = url.searchParams.get('hydrate');
32
+ // Verify entity exists
33
+ const entity = await api.get(id);
34
+ if (!entity || entity.type !== 'entity') {
35
+ return c.json({ error: { code: 'NOT_FOUND', message: 'Entity not found' } }, 404);
36
+ }
37
+ // Build filter
38
+ const filter = {
39
+ limit: limitParam ? parseInt(limitParam, 10) : 25,
40
+ offset: offsetParam ? parseInt(offsetParam, 10) : 0,
41
+ };
42
+ // Handle status filter (can be comma-separated)
43
+ if (statusParam) {
44
+ const statuses = statusParam.split(',').map((s) => s.trim());
45
+ filter.status = statuses.length === 1 ? statuses[0] : statuses;
46
+ }
47
+ if (sourceTypeParam) {
48
+ filter.sourceType = sourceTypeParam;
49
+ }
50
+ const result = inboxService.getInboxPaginated(id, filter);
51
+ let items = result.items;
52
+ // Optionally hydrate items with full data
53
+ if (hydrateParam === 'true') {
54
+ items = await Promise.all(items.map(async (item) => {
55
+ try {
56
+ // Hydrate message
57
+ const message = await api.get(item.messageId);
58
+ let messageData = null;
59
+ let fullContent = '';
60
+ let contentPreview = '';
61
+ let contentType = 'text';
62
+ let threadId = null;
63
+ if (message && message.type === 'message') {
64
+ const msgTyped = message;
65
+ threadId = msgTyped.threadId ?? null;
66
+ // Hydrate content
67
+ if (msgTyped.contentRef) {
68
+ const contentDoc = await api.get(msgTyped.contentRef);
69
+ if (contentDoc && contentDoc.type === 'document') {
70
+ const doc = contentDoc;
71
+ fullContent = doc.content ?? '';
72
+ contentPreview = fullContent.slice(0, 100);
73
+ contentType = doc.contentType ?? 'text';
74
+ }
75
+ }
76
+ messageData = {
77
+ id: msgTyped.id,
78
+ sender: msgTyped.sender,
79
+ contentRef: msgTyped.contentRef,
80
+ contentPreview,
81
+ fullContent,
82
+ contentType,
83
+ threadId,
84
+ createdAt: msgTyped.createdAt,
85
+ };
86
+ }
87
+ // Hydrate sender
88
+ let senderData = null;
89
+ if (messageData?.sender) {
90
+ const sender = await api.get(messageData.sender);
91
+ if (sender && sender.type === 'entity') {
92
+ const entityTyped = sender;
93
+ senderData = {
94
+ id: entityTyped.id,
95
+ type: 'entity',
96
+ name: entityTyped.name,
97
+ entityType: entityTyped.entityType,
98
+ tags: entityTyped.tags,
99
+ createdAt: entityTyped.createdAt,
100
+ updatedAt: entityTyped.updatedAt,
101
+ };
102
+ }
103
+ }
104
+ // Hydrate channel
105
+ let channelData = null;
106
+ const channel = await api.get(item.channelId);
107
+ if (channel && channel.type === 'channel') {
108
+ const channelTyped = channel;
109
+ channelData = {
110
+ id: channelTyped.id,
111
+ name: channelTyped.name,
112
+ channelType: channelTyped.channelType,
113
+ };
114
+ }
115
+ // Hydrate attachments (documents referenced by this message)
116
+ const attachments = [];
117
+ if (message) {
118
+ const deps = await api.getDependencies(message.id);
119
+ const refDeps = deps.filter((d) => d.type === 'references');
120
+ for (const dep of refDeps) {
121
+ const doc = await api.get(dep.blockerId);
122
+ if (doc && doc.type === 'document') {
123
+ const docTyped = doc;
124
+ const firstLine = (docTyped.content ?? '').split('\n')[0]?.slice(0, 50) || 'Untitled';
125
+ attachments.push({
126
+ id: docTyped.id,
127
+ title: firstLine,
128
+ content: docTyped.content?.slice(0, 500),
129
+ contentType: docTyped.contentType,
130
+ });
131
+ }
132
+ }
133
+ }
134
+ // Hydrate thread parent (if this is a reply)
135
+ let threadParent = null;
136
+ if (threadId) {
137
+ const parentMsg = await api.get(threadId);
138
+ if (parentMsg && parentMsg.type === 'message') {
139
+ const parentTyped = parentMsg;
140
+ let parentPreview = '';
141
+ if (parentTyped.contentRef) {
142
+ const parentContent = await api.get(parentTyped.contentRef);
143
+ if (parentContent && parentContent.type === 'document') {
144
+ parentPreview = (parentContent.content ?? '').slice(0, 100);
145
+ }
146
+ }
147
+ let parentSender = null;
148
+ const parentSenderEntity = await api.get(parentTyped.sender);
149
+ if (parentSenderEntity && parentSenderEntity.type === 'entity') {
150
+ const entityTyped = parentSenderEntity;
151
+ parentSender = {
152
+ id: entityTyped.id,
153
+ name: entityTyped.name,
154
+ entityType: entityTyped.entityType,
155
+ };
156
+ }
157
+ threadParent = {
158
+ id: parentTyped.id,
159
+ sender: parentSender,
160
+ contentPreview: parentPreview,
161
+ createdAt: parentTyped.createdAt,
162
+ };
163
+ }
164
+ }
165
+ return {
166
+ ...item,
167
+ message: messageData,
168
+ sender: senderData,
169
+ channel: channelData,
170
+ attachments: attachments.length > 0 ? attachments : undefined,
171
+ threadParent,
172
+ };
173
+ }
174
+ catch (err) {
175
+ console.warn(`[stoneforge] Failed to hydrate inbox item ${item.id}:`, err);
176
+ return item;
177
+ }
178
+ }));
179
+ }
180
+ return c.json({
181
+ items,
182
+ total: result.total,
183
+ offset: filter.offset ?? 0,
184
+ limit: filter.limit ?? 25,
185
+ hasMore: (filter.offset ?? 0) + result.items.length < result.total,
186
+ });
187
+ }
188
+ catch (error) {
189
+ console.error('[stoneforge] Failed to get entity inbox:', error);
190
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: 'Failed to get entity inbox' } }, 500);
191
+ }
192
+ });
193
+ /**
194
+ * GET /api/entities/:id/inbox/count
195
+ * Get unread inbox count for an entity.
196
+ */
197
+ app.get('/api/entities/:id/inbox/count', async (c) => {
198
+ try {
199
+ const id = c.req.param('id');
200
+ // Verify entity exists
201
+ const entity = await api.get(id);
202
+ if (!entity || entity.type !== 'entity') {
203
+ return c.json({ error: { code: 'NOT_FOUND', message: 'Entity not found' } }, 404);
204
+ }
205
+ const count = inboxService.getUnreadCount(id);
206
+ return c.json({ count });
207
+ }
208
+ catch (error) {
209
+ console.error('[stoneforge] Failed to get inbox count:', error);
210
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: 'Failed to get inbox count' } }, 500);
211
+ }
212
+ });
213
+ /**
214
+ * POST /api/entities/:id/inbox/mark-all-read
215
+ * Mark all inbox items as read for an entity.
216
+ */
217
+ app.post('/api/entities/:id/inbox/mark-all-read', async (c) => {
218
+ try {
219
+ const id = c.req.param('id');
220
+ // Verify entity exists
221
+ const entity = await api.get(id);
222
+ if (!entity || entity.type !== 'entity') {
223
+ return c.json({ error: { code: 'NOT_FOUND', message: 'Entity not found' } }, 404);
224
+ }
225
+ const count = inboxService.markAllAsRead(id);
226
+ // Broadcast bulk update event
227
+ if (count > 0 && broadcastInboxEvent) {
228
+ broadcastInboxEvent(`bulk-${id}`, id, 'updated', null, { bulkMarkRead: true, count }, id);
229
+ }
230
+ return c.json({ markedCount: count });
231
+ }
232
+ catch (error) {
233
+ console.error('[stoneforge] Failed to mark all as read:', error);
234
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: 'Failed to mark all as read' } }, 500);
235
+ }
236
+ });
237
+ /**
238
+ * GET /api/inbox/all
239
+ * Global inbox view across all entities.
240
+ * Supports filtering by entityId to show a specific user's inbox.
241
+ */
242
+ app.get('/api/inbox/all', async (c) => {
243
+ try {
244
+ const url = new URL(c.req.url);
245
+ const limitParam = url.searchParams.get('limit');
246
+ const offsetParam = url.searchParams.get('offset');
247
+ const statusParam = url.searchParams.get('status');
248
+ const hydrateParam = url.searchParams.get('hydrate');
249
+ const entityIdParam = url.searchParams.get('entityId');
250
+ const limit = limitParam ? parseInt(limitParam, 10) : 50;
251
+ const offset = offsetParam ? parseInt(offsetParam, 10) : 0;
252
+ // We need to use raw SQL for global inbox (no specific recipientId)
253
+ // Build WHERE conditions
254
+ const conditions = [];
255
+ const params = [];
256
+ if (statusParam) {
257
+ const statuses = statusParam.split(',').map((s) => s.trim());
258
+ if (statuses.length === 1) {
259
+ conditions.push('status = ?');
260
+ params.push(statuses[0]);
261
+ }
262
+ else {
263
+ conditions.push(`status IN (${statuses.map(() => '?').join(',')})`);
264
+ params.push(...statuses);
265
+ }
266
+ }
267
+ if (entityIdParam) {
268
+ conditions.push('recipient_id = ?');
269
+ params.push(entityIdParam);
270
+ }
271
+ const whereClause = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
272
+ // Get total count
273
+ const countResult = storageBackend.queryOne(`SELECT COUNT(*) as count FROM inbox_items ${whereClause}`, params);
274
+ const total = countResult?.count ?? 0;
275
+ // Get items
276
+ const rows = storageBackend.query(`SELECT id, recipient_id, message_id, channel_id, source_type, status, read_at, created_at
277
+ FROM inbox_items ${whereClause}
278
+ ORDER BY created_at DESC
279
+ LIMIT ? OFFSET ?`, [...params, limit, offset]);
280
+ let items = rows.map((row) => ({
281
+ id: row.id,
282
+ recipientId: row.recipient_id,
283
+ messageId: row.message_id,
284
+ channelId: row.channel_id,
285
+ sourceType: row.source_type,
286
+ status: row.status,
287
+ readAt: row.read_at,
288
+ createdAt: row.created_at,
289
+ }));
290
+ // Hydrate items if requested
291
+ if (hydrateParam === 'true') {
292
+ items = await Promise.all(items.map(async (item) => {
293
+ try {
294
+ // Hydrate message
295
+ const message = await api.get(item.messageId);
296
+ let messageData = null;
297
+ let fullContent = '';
298
+ let contentPreview = '';
299
+ let contentType = 'text';
300
+ let threadId = null;
301
+ if (message && message.type === 'message') {
302
+ const msgTyped = message;
303
+ threadId = msgTyped.threadId ?? null;
304
+ if (msgTyped.contentRef) {
305
+ const contentDoc = await api.get(msgTyped.contentRef);
306
+ if (contentDoc && contentDoc.type === 'document') {
307
+ const doc = contentDoc;
308
+ fullContent = doc.content ?? '';
309
+ contentPreview = fullContent.slice(0, 100);
310
+ contentType = doc.contentType ?? 'text';
311
+ }
312
+ }
313
+ messageData = {
314
+ id: msgTyped.id,
315
+ sender: msgTyped.sender,
316
+ contentRef: msgTyped.contentRef,
317
+ contentPreview,
318
+ fullContent,
319
+ contentType,
320
+ threadId,
321
+ createdAt: msgTyped.createdAt,
322
+ };
323
+ }
324
+ // Hydrate sender
325
+ let senderData = null;
326
+ if (messageData?.sender) {
327
+ const sender = await api.get(messageData.sender);
328
+ if (sender && sender.type === 'entity') {
329
+ const entityTyped = sender;
330
+ senderData = {
331
+ id: entityTyped.id,
332
+ type: 'entity',
333
+ name: entityTyped.name,
334
+ entityType: entityTyped.entityType,
335
+ tags: entityTyped.tags,
336
+ createdAt: entityTyped.createdAt,
337
+ updatedAt: entityTyped.updatedAt,
338
+ };
339
+ }
340
+ }
341
+ // Hydrate recipient
342
+ let recipientData = null;
343
+ const recipient = await api.get(item.recipientId);
344
+ if (recipient && recipient.type === 'entity') {
345
+ const entityTyped = recipient;
346
+ recipientData = {
347
+ id: entityTyped.id,
348
+ type: 'entity',
349
+ name: entityTyped.name,
350
+ entityType: entityTyped.entityType,
351
+ };
352
+ }
353
+ // Hydrate channel
354
+ let channelData = null;
355
+ const channel = await api.get(item.channelId);
356
+ if (channel && channel.type === 'channel') {
357
+ const channelTyped = channel;
358
+ channelData = {
359
+ id: channelTyped.id,
360
+ name: channelTyped.name,
361
+ channelType: channelTyped.channelType,
362
+ };
363
+ }
364
+ // Hydrate attachments
365
+ const attachments = [];
366
+ if (message) {
367
+ const deps = await api.getDependencies(message.id);
368
+ const refDeps = deps.filter((d) => d.type === 'references');
369
+ for (const dep of refDeps) {
370
+ const doc = await api.get(dep.blockerId);
371
+ if (doc && doc.type === 'document') {
372
+ const docTyped = doc;
373
+ const firstLine = (docTyped.content ?? '').split('\n')[0]?.slice(0, 50) || 'Untitled';
374
+ attachments.push({
375
+ id: docTyped.id,
376
+ title: firstLine,
377
+ content: docTyped.content?.slice(0, 500),
378
+ contentType: docTyped.contentType,
379
+ });
380
+ }
381
+ }
382
+ }
383
+ // Hydrate thread parent
384
+ let threadParent = null;
385
+ if (threadId) {
386
+ const parentMsg = await api.get(threadId);
387
+ if (parentMsg && parentMsg.type === 'message') {
388
+ const parentTyped = parentMsg;
389
+ let parentPreview = '';
390
+ if (parentTyped.contentRef) {
391
+ const parentContent = await api.get(parentTyped.contentRef);
392
+ if (parentContent && parentContent.type === 'document') {
393
+ parentPreview = (parentContent.content ?? '').slice(0, 100);
394
+ }
395
+ }
396
+ let parentSender = null;
397
+ const parentSenderEntity = await api.get(parentTyped.sender);
398
+ if (parentSenderEntity && parentSenderEntity.type === 'entity') {
399
+ const entityTyped = parentSenderEntity;
400
+ parentSender = {
401
+ id: entityTyped.id,
402
+ name: entityTyped.name,
403
+ entityType: entityTyped.entityType,
404
+ };
405
+ }
406
+ threadParent = {
407
+ id: parentTyped.id,
408
+ sender: parentSender,
409
+ contentPreview: parentPreview,
410
+ createdAt: parentTyped.createdAt,
411
+ };
412
+ }
413
+ }
414
+ return {
415
+ ...item,
416
+ message: messageData,
417
+ sender: senderData,
418
+ recipient: recipientData,
419
+ channel: channelData,
420
+ attachments: attachments.length > 0 ? attachments : undefined,
421
+ threadParent,
422
+ };
423
+ }
424
+ catch (err) {
425
+ console.warn(`[stoneforge] Failed to hydrate inbox item ${item.id}:`, err);
426
+ return item;
427
+ }
428
+ }));
429
+ }
430
+ return c.json({
431
+ items,
432
+ total,
433
+ offset,
434
+ limit,
435
+ hasMore: offset + items.length < total,
436
+ });
437
+ }
438
+ catch (error) {
439
+ console.error('[stoneforge] Failed to get global inbox:', error);
440
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: 'Failed to get global inbox' } }, 500);
441
+ }
442
+ });
443
+ /**
444
+ * GET /api/inbox/count
445
+ * Global inbox unread count.
446
+ * Supports filtering by entityId to get count for a specific user.
447
+ */
448
+ app.get('/api/inbox/count', async (c) => {
449
+ try {
450
+ const url = new URL(c.req.url);
451
+ const statusParam = url.searchParams.get('status');
452
+ const entityIdParam = url.searchParams.get('entityId');
453
+ // Build WHERE conditions
454
+ const conditions = [];
455
+ if (statusParam) {
456
+ conditions.push(`status = '${statusParam}'`);
457
+ }
458
+ else {
459
+ conditions.push(`status = 'unread'`);
460
+ }
461
+ if (entityIdParam) {
462
+ conditions.push(`recipient_id = '${entityIdParam}'`);
463
+ }
464
+ const whereClause = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
465
+ const countResult = storageBackend.queryOne(`SELECT COUNT(*) as count FROM inbox_items ${whereClause}`, []);
466
+ return c.json({ count: countResult?.count ?? 0 });
467
+ }
468
+ catch (error) {
469
+ console.error('[stoneforge] Failed to get global inbox count:', error);
470
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: 'Failed to get global inbox count' } }, 500);
471
+ }
472
+ });
473
+ /**
474
+ * GET /api/inbox/:itemId
475
+ * Get single inbox item.
476
+ */
477
+ app.get('/api/inbox/:itemId', async (c) => {
478
+ try {
479
+ const itemId = c.req.param('itemId');
480
+ const item = inboxService.getInboxItem(itemId);
481
+ if (!item) {
482
+ return c.json({ error: { code: 'NOT_FOUND', message: 'Inbox item not found' } }, 404);
483
+ }
484
+ return c.json(item);
485
+ }
486
+ catch (error) {
487
+ console.error('[stoneforge] Failed to get inbox item:', error);
488
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: 'Failed to get inbox item' } }, 500);
489
+ }
490
+ });
491
+ /**
492
+ * PATCH /api/inbox/:itemId
493
+ * Update inbox item status.
494
+ */
495
+ app.patch('/api/inbox/:itemId', async (c) => {
496
+ try {
497
+ const itemId = c.req.param('itemId');
498
+ const body = await c.req.json();
499
+ if (!body.status) {
500
+ return c.json({ error: { code: 'VALIDATION_ERROR', message: 'status is required' } }, 400);
501
+ }
502
+ // Get old item state for event broadcasting
503
+ const oldItem = inboxService.getInboxItem(itemId);
504
+ if (!oldItem) {
505
+ return c.json({ error: { code: 'NOT_FOUND', message: 'Inbox item not found' } }, 404);
506
+ }
507
+ let item;
508
+ switch (body.status) {
509
+ case 'read':
510
+ item = inboxService.markAsRead(itemId);
511
+ break;
512
+ case 'unread':
513
+ item = inboxService.markAsUnread(itemId);
514
+ break;
515
+ case 'archived':
516
+ item = inboxService.archive(itemId);
517
+ break;
518
+ default:
519
+ return c.json({ error: { code: 'VALIDATION_ERROR', message: 'Invalid status' } }, 400);
520
+ }
521
+ // Broadcast inbox event for real-time updates
522
+ if (broadcastInboxEvent) {
523
+ broadcastInboxEvent(itemId, item.recipientId, 'updated', { status: oldItem.status, readAt: oldItem.readAt }, { status: item.status, readAt: item.readAt }, item.recipientId);
524
+ }
525
+ return c.json(item);
526
+ }
527
+ catch (error) {
528
+ const errorObj = error;
529
+ if (errorObj.code === 'NOT_FOUND') {
530
+ return c.json({ error: { code: 'NOT_FOUND', message: 'Inbox item not found' } }, 404);
531
+ }
532
+ console.error('[stoneforge] Failed to update inbox item:', error);
533
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: 'Failed to update inbox item' } }, 500);
534
+ }
535
+ });
536
+ return app;
537
+ }
538
+ //# sourceMappingURL=inbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK5B,MAAM,UAAU,iBAAiB,CAAC,QAA0C;IAC1E,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,GAAG,QAAQ,CAAC;IAC5E,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB;;;;;;;;;;OAUG;IACH,GAAG,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7C,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAa,CAAC;YACzC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAE/B,0BAA0B;YAC1B,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,eAAe,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC3D,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAErD,uBAAuB;YACvB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAA0B,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACpF,CAAC;YAED,eAAe;YACf,MAAM,MAAM,GAAgB;gBAC1B,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;gBACjD,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aACpD,CAAC;YAEF,gDAAgD;YAChD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAkB,CAAC;gBAC9E,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACjE,CAAC;YAED,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,CAAC,UAAU,GAAG,eAAuC,CAAC;YAC9D,CAAC;YAED,MAAM,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC1D,IAAI,KAAK,GAA6D,MAAM,CAAC,KAAK,CAAC;YAEnF,0CAA0C;YAC1C,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;gBAC5B,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAe,EAAE,EAAE;oBAC5D,IAAI,CAAC;wBACH,kBAAkB;wBAClB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAiC,CAAC,CAAC;wBACtE,IAAI,WAAW,GAAG,IAAI,CAAC;wBACvB,IAAI,WAAW,GAAG,EAAE,CAAC;wBACrB,IAAI,cAAc,GAAG,EAAE,CAAC;wBACxB,IAAI,WAAW,GAAG,MAAM,CAAC;wBACzB,IAAI,QAAQ,GAAkB,IAAI,CAAC;wBAEnC,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;4BAC1C,MAAM,QAAQ,GAAG,OAAkB,CAAC;4BACpC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC;4BAErC,kBAAkB;4BAClB,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gCACxB,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAkC,CAAC,CAAC;gCAC9E,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oCACjD,MAAM,GAAG,GAAG,UAAsB,CAAC;oCACnC,WAAW,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;oCAChC,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oCAC3C,WAAW,GAAG,GAAG,CAAC,WAAW,IAAI,MAAM,CAAC;gCAC1C,CAAC;4BACH,CAAC;4BAED,WAAW,GAAG;gCACZ,EAAE,EAAE,QAAQ,CAAC,EAAE;gCACf,MAAM,EAAE,QAAQ,CAAC,MAAM;gCACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;gCAC/B,cAAc;gCACd,WAAW;gCACX,WAAW;gCACX,QAAQ;gCACR,SAAS,EAAE,QAAQ,CAAC,SAAS;6BAC9B,CAAC;wBACJ,CAAC;wBAED,iBAAiB;wBACjB,IAAI,UAAU,GAAG,IAAI,CAAC;wBACtB,IAAI,WAAW,EAAE,MAAM,EAAE,CAAC;4BACxB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,MAA8B,CAAC,CAAC;4BACzE,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gCACvC,MAAM,WAAW,GAAG,MAAgB,CAAC;gCACrC,UAAU,GAAG;oCACX,EAAE,EAAE,WAAW,CAAC,EAAE;oCAClB,IAAI,EAAE,QAAQ;oCACd,IAAI,EAAE,WAAW,CAAC,IAAI;oCACtB,UAAU,EAAE,WAAW,CAAC,UAAU;oCAClC,IAAI,EAAE,WAAW,CAAC,IAAI;oCACtB,SAAS,EAAE,WAAW,CAAC,SAAS;oCAChC,SAAS,EAAE,WAAW,CAAC,SAAS;iCACjC,CAAC;4BACJ,CAAC;wBACH,CAAC;wBAED,kBAAkB;wBAClB,IAAI,WAAW,GAAG,IAAI,CAAC;wBACvB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAiC,CAAC,CAAC;wBACtE,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;4BAC1C,MAAM,YAAY,GAAG,OAAkB,CAAC;4BACxC,WAAW,GAAG;gCACZ,EAAE,EAAE,YAAY,CAAC,EAAE;gCACnB,IAAI,EAAE,YAAY,CAAC,IAAI;gCACvB,WAAW,EAAE,YAAY,CAAC,WAAW;6BACtC,CAAC;wBACJ,CAAC;wBAED,6DAA6D;wBAC7D,MAAM,WAAW,GAAiF,EAAE,CAAC;wBACrG,IAAI,OAAO,EAAE,CAAC;4BACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,EAAe,CAAC,CAAC;4BAChE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;4BAC5D,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gCAC1B,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,SAAsB,CAAC,CAAC;gCACtD,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oCACnC,MAAM,QAAQ,GAAG,GAAe,CAAC;oCACjC,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC;oCACtF,WAAW,CAAC,IAAI,CAAC;wCACf,EAAE,EAAE,QAAQ,CAAC,EAAE;wCACf,KAAK,EAAE,SAAS;wCAChB,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;wCACxC,WAAW,EAAE,QAAQ,CAAC,WAAW;qCAClC,CAAC,CAAC;gCACL,CAAC;4BACH,CAAC;wBACH,CAAC;wBAED,6CAA6C;wBAC7C,IAAI,YAAY,GAAG,IAAI,CAAC;wBACxB,IAAI,QAAQ,EAAE,CAAC;4BACb,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,QAAgC,CAAC,CAAC;4BAClE,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gCAC9C,MAAM,WAAW,GAAG,SAAoB,CAAC;gCACzC,IAAI,aAAa,GAAG,EAAE,CAAC;gCACvB,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;oCAC3B,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,UAAkC,CAAC,CAAC;oCACpF,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wCACvD,aAAa,GAAG,CAAE,aAA0B,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oCAC5E,CAAC;gCACH,CAAC;gCACD,IAAI,YAAY,GAAG,IAAI,CAAC;gCACxB,MAAM,kBAAkB,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,MAA8B,CAAC,CAAC;gCACrF,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oCAC/D,MAAM,WAAW,GAAG,kBAA4B,CAAC;oCACjD,YAAY,GAAG;wCACb,EAAE,EAAE,WAAW,CAAC,EAAE;wCAClB,IAAI,EAAE,WAAW,CAAC,IAAI;wCACtB,UAAU,EAAE,WAAW,CAAC,UAAU;qCACnC,CAAC;gCACJ,CAAC;gCACD,YAAY,GAAG;oCACb,EAAE,EAAE,WAAW,CAAC,EAAE;oCAClB,MAAM,EAAE,YAAY;oCACpB,cAAc,EAAE,aAAa;oCAC7B,SAAS,EAAE,WAAW,CAAC,SAAS;iCACjC,CAAC;4BACJ,CAAC;wBACH,CAAC;wBAED,OAAO;4BACL,GAAG,IAAI;4BACP,OAAO,EAAE,WAAW;4BACpB,MAAM,EAAE,UAAU;4BAClB,OAAO,EAAE,WAAW;4BACpB,WAAW,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;4BAC7D,YAAY;yBACb,CAAC;oBACJ,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,OAAO,CAAC,IAAI,CAAC,6CAA6C,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;wBAC3E,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC,CAAC,CAAC,CAAC;YACN,CAAC;YAED,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,KAAK;gBACL,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;gBAC1B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;gBACzB,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK;aACnE,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;YACjE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,4BAA4B,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACnG,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,+BAA+B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACnD,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAa,CAAC;YAEzC,uBAAuB;YACvB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAA0B,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACpF,CAAC;YAED,MAAM,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAC9C,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;YAChE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,2BAA2B,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAClG,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,GAAG,CAAC,IAAI,CAAC,uCAAuC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5D,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAa,CAAC;YAEzC,uBAAuB;YACvB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAA0B,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACpF,CAAC;YAED,MAAM,KAAK,GAAG,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAE7C,8BAA8B;YAC9B,IAAI,KAAK,GAAG,CAAC,IAAI,mBAAmB,EAAE,CAAC;gBACrC,mBAAmB,CACjB,QAAQ,EAAE,EAAE,EACZ,EAAE,EACF,SAAS,EACT,IAAI,EACJ,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,EAC7B,EAAE,CACH,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;YACjE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,4BAA4B,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACnG,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;;;OAIG;IACH,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAE/B,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACrD,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAEvD,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAE3D,oEAAoE;YACpE,yBAAyB;YACzB,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,MAAM,MAAM,GAAc,EAAE,CAAC;YAE7B,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1B,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC9B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACpE,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;YAED,IAAI,aAAa,EAAE,CAAC;gBAClB,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7B,CAAC;YAED,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAErF,kBAAkB;YAClB,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CACzC,6CAA6C,WAAW,EAAE,EAC1D,MAAM,CACP,CAAC;YACF,MAAM,KAAK,GAAG,WAAW,EAAE,KAAK,IAAI,CAAC,CAAC;YAEtC,YAAY;YACZ,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAU/B;4BACoB,WAAW;;0BAEb,EAClB,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAC3B,CAAC;YAEF,IAAI,KAAK,GAA+C,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACzE,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,WAAW,EAAE,GAAG,CAAC,YAAwB;gBACzC,SAAS,EAAE,GAAG,CAAC,UAAuB;gBACtC,SAAS,EAAE,GAAG,CAAC,UAAuB;gBACtC,UAAU,EAAE,GAAG,CAAC,WAAmC;gBACnD,MAAM,EAAE,GAAG,CAAC,MAAqB;gBACjC,MAAM,EAAE,GAAG,CAAC,OAAO;gBACnB,SAAS,EAAE,GAAG,CAAC,UAAU;aAC1B,CAAC,CAAC,CAAC;YAEJ,6BAA6B;YAC7B,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;gBAC5B,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;oBACjD,IAAI,CAAC;wBACH,kBAAkB;wBAClB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAiC,CAAC,CAAC;wBACtE,IAAI,WAAW,GAAG,IAAI,CAAC;wBACvB,IAAI,WAAW,GAAG,EAAE,CAAC;wBACrB,IAAI,cAAc,GAAG,EAAE,CAAC;wBACxB,IAAI,WAAW,GAAG,MAAM,CAAC;wBACzB,IAAI,QAAQ,GAAkB,IAAI,CAAC;wBAEnC,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;4BAC1C,MAAM,QAAQ,GAAG,OAAkB,CAAC;4BACpC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC;4BAErC,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gCACxB,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAkC,CAAC,CAAC;gCAC9E,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oCACjD,MAAM,GAAG,GAAG,UAAsB,CAAC;oCACnC,WAAW,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;oCAChC,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oCAC3C,WAAW,GAAG,GAAG,CAAC,WAAW,IAAI,MAAM,CAAC;gCAC1C,CAAC;4BACH,CAAC;4BAED,WAAW,GAAG;gCACZ,EAAE,EAAE,QAAQ,CAAC,EAAE;gCACf,MAAM,EAAE,QAAQ,CAAC,MAAM;gCACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;gCAC/B,cAAc;gCACd,WAAW;gCACX,WAAW;gCACX,QAAQ;gCACR,SAAS,EAAE,QAAQ,CAAC,SAAS;6BAC9B,CAAC;wBACJ,CAAC;wBAED,iBAAiB;wBACjB,IAAI,UAAU,GAAG,IAAI,CAAC;wBACtB,IAAI,WAAW,EAAE,MAAM,EAAE,CAAC;4BACxB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,MAA8B,CAAC,CAAC;4BACzE,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gCACvC,MAAM,WAAW,GAAG,MAAgB,CAAC;gCACrC,UAAU,GAAG;oCACX,EAAE,EAAE,WAAW,CAAC,EAAE;oCAClB,IAAI,EAAE,QAAQ;oCACd,IAAI,EAAE,WAAW,CAAC,IAAI;oCACtB,UAAU,EAAE,WAAW,CAAC,UAAU;oCAClC,IAAI,EAAE,WAAW,CAAC,IAAI;oCACtB,SAAS,EAAE,WAAW,CAAC,SAAS;oCAChC,SAAS,EAAE,WAAW,CAAC,SAAS;iCACjC,CAAC;4BACJ,CAAC;wBACH,CAAC;wBAED,oBAAoB;wBACpB,IAAI,aAAa,GAAG,IAAI,CAAC;wBACzB,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAmC,CAAC,CAAC;wBAC1E,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;4BAC7C,MAAM,WAAW,GAAG,SAAmB,CAAC;4BACxC,aAAa,GAAG;gCACd,EAAE,EAAE,WAAW,CAAC,EAAE;gCAClB,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,WAAW,CAAC,IAAI;gCACtB,UAAU,EAAE,WAAW,CAAC,UAAU;6BACnC,CAAC;wBACJ,CAAC;wBAED,kBAAkB;wBAClB,IAAI,WAAW,GAAG,IAAI,CAAC;wBACvB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAiC,CAAC,CAAC;wBACtE,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;4BAC1C,MAAM,YAAY,GAAG,OAAkB,CAAC;4BACxC,WAAW,GAAG;gCACZ,EAAE,EAAE,YAAY,CAAC,EAAE;gCACnB,IAAI,EAAE,YAAY,CAAC,IAAI;gCACvB,WAAW,EAAE,YAAY,CAAC,WAAW;6BACtC,CAAC;wBACJ,CAAC;wBAED,sBAAsB;wBACtB,MAAM,WAAW,GAAiF,EAAE,CAAC;wBACrG,IAAI,OAAO,EAAE,CAAC;4BACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,EAAe,CAAC,CAAC;4BAChE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;4BAC5D,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gCAC1B,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,SAAsB,CAAC,CAAC;gCACtD,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oCACnC,MAAM,QAAQ,GAAG,GAAe,CAAC;oCACjC,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC;oCACtF,WAAW,CAAC,IAAI,CAAC;wCACf,EAAE,EAAE,QAAQ,CAAC,EAAE;wCACf,KAAK,EAAE,SAAS;wCAChB,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;wCACxC,WAAW,EAAE,QAAQ,CAAC,WAAW;qCAClC,CAAC,CAAC;gCACL,CAAC;4BACH,CAAC;wBACH,CAAC;wBAED,wBAAwB;wBACxB,IAAI,YAAY,GAAG,IAAI,CAAC;wBACxB,IAAI,QAAQ,EAAE,CAAC;4BACb,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,QAAgC,CAAC,CAAC;4BAClE,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gCAC9C,MAAM,WAAW,GAAG,SAAoB,CAAC;gCACzC,IAAI,aAAa,GAAG,EAAE,CAAC;gCACvB,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;oCAC3B,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,UAAkC,CAAC,CAAC;oCACpF,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wCACvD,aAAa,GAAG,CAAE,aAA0B,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oCAC5E,CAAC;gCACH,CAAC;gCACD,IAAI,YAAY,GAAG,IAAI,CAAC;gCACxB,MAAM,kBAAkB,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,MAA8B,CAAC,CAAC;gCACrF,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oCAC/D,MAAM,WAAW,GAAG,kBAA4B,CAAC;oCACjD,YAAY,GAAG;wCACb,EAAE,EAAE,WAAW,CAAC,EAAE;wCAClB,IAAI,EAAE,WAAW,CAAC,IAAI;wCACtB,UAAU,EAAE,WAAW,CAAC,UAAU;qCACnC,CAAC;gCACJ,CAAC;gCACD,YAAY,GAAG;oCACb,EAAE,EAAE,WAAW,CAAC,EAAE;oCAClB,MAAM,EAAE,YAAY;oCACpB,cAAc,EAAE,aAAa;oCAC7B,SAAS,EAAE,WAAW,CAAC,SAAS;iCACjC,CAAC;4BACJ,CAAC;wBACH,CAAC;wBAED,OAAO;4BACL,GAAG,IAAI;4BACP,OAAO,EAAE,WAAW;4BACpB,MAAM,EAAE,UAAU;4BAClB,SAAS,EAAE,aAAa;4BACxB,OAAO,EAAE,WAAW;4BACpB,WAAW,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;4BAC7D,YAAY;yBACb,CAAC;oBACJ,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,OAAO,CAAC,IAAI,CAAC,6CAA6C,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;wBAC3E,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC,CAAC,CAAC,CAAC;YACN,CAAC;YAED,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,KAAK;gBACL,KAAK;gBACL,MAAM;gBACN,KAAK;gBACL,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK;aACvC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;YACjE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,4BAA4B,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACnG,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;;;OAIG;IACH,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACtC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAEvD,yBAAyB;YACzB,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,IAAI,WAAW,EAAE,CAAC;gBAChB,UAAU,CAAC,IAAI,CAAC,aAAa,WAAW,GAAG,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,aAAa,EAAE,CAAC;gBAClB,UAAU,CAAC,IAAI,CAAC,mBAAmB,aAAa,GAAG,CAAC,CAAC;YACvD,CAAC;YAED,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAErF,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CACzC,6CAA6C,WAAW,EAAE,EAC1D,EAAE,CACH,CAAC;YAEF,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAC;YACvE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,kCAAkC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACzG,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACxC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAE/C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,sBAAsB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACxF,CAAC;YAED,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;YAC/D,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,0BAA0B,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACjG,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAEzB,CAAC;YAEL,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,oBAAoB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAC7F,CAAC;YAED,4CAA4C;YAC5C,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,sBAAsB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACxF,CAAC;YAED,IAAI,IAAI,CAAC;YACT,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpB,KAAK,MAAM;oBACT,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBACvC,MAAM;gBACR,KAAK,QAAQ;oBACX,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;oBACzC,MAAM;gBACR,KAAK,UAAU;oBACb,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACpC,MAAM;gBACR;oBACE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAC3F,CAAC;YAED,8CAA8C;YAC9C,IAAI,mBAAmB,EAAE,CAAC;gBACxB,mBAAmB,CACjB,MAAM,EACN,IAAI,CAAC,WAAW,EAChB,SAAS,EACT,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAClD,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAC5C,IAAI,CAAC,WAAW,CACjB,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,KAA0B,CAAC;YAC5C,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAClC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,sBAAsB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACxF,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YAClE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,6BAA6B,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACpG,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Shared Routes Package
3
+ *
4
+ * Route factories for collaborate features that can be used by multiple servers.
5
+ */
6
+ export type { CollaborateServices, CollaborateServicesWithBroadcast, BroadcastInboxEventFn, QuarryLikeAPI, InboxLikeService } from './types.js';
7
+ export { createElementsRoutes } from './elements.js';
8
+ export { createEntityRoutes } from './entities.js';
9
+ export { createChannelRoutes } from './channels.js';
10
+ export { createMessageRoutes } from './messages.js';
11
+ export { createLibraryRoutes } from './libraries.js';
12
+ export { createDocumentRoutes } from './documents.js';
13
+ export { createInboxRoutes } from './inbox.js';
14
+ export { createPlanRoutes } from './plans.js';
15
+ export * from './ws/index.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,mBAAmB,EAAE,gCAAgC,EAAE,qBAAqB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGhJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,cAAc,eAAe,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Shared Routes Package
3
+ *
4
+ * Route factories for collaborate features that can be used by multiple servers.
5
+ */
6
+ // Route factories
7
+ export { createElementsRoutes } from './elements.js';
8
+ export { createEntityRoutes } from './entities.js';
9
+ export { createChannelRoutes } from './channels.js';
10
+ export { createMessageRoutes } from './messages.js';
11
+ export { createLibraryRoutes } from './libraries.js';
12
+ export { createDocumentRoutes } from './documents.js';
13
+ export { createInboxRoutes } from './inbox.js';
14
+ export { createPlanRoutes } from './plans.js';
15
+ // WebSocket types, broadcaster, and handler utilities
16
+ export * from './ws/index.js';
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,kBAAkB;AAClB,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,sDAAsD;AACtD,cAAc,eAAe,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Library Routes Factory
3
+ *
4
+ * CRUD operations for document libraries.
5
+ */
6
+ import { Hono } from 'hono';
7
+ import type { CollaborateServices } from './types.js';
8
+ export declare function createLibraryRoutes(services: CollaborateServices): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
9
+ //# sourceMappingURL=libraries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libraries.d.ts","sourceRoot":"","sources":["../src/libraries.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,8EA2gBhE"}