@happyvertical/smrt-messages 0.30.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 (153) hide show
  1. package/AGENTS.md +31 -0
  2. package/CLAUDE.md +1 -0
  3. package/LICENSE +7 -0
  4. package/README.md +103 -0
  5. package/dist/__smrt-register__.d.ts +2 -0
  6. package/dist/__smrt-register__.d.ts.map +1 -0
  7. package/dist/collections/AccountCollection.d.ts +42 -0
  8. package/dist/collections/AccountCollection.d.ts.map +1 -0
  9. package/dist/collections/AttachmentCollection.d.ts +67 -0
  10. package/dist/collections/AttachmentCollection.d.ts.map +1 -0
  11. package/dist/collections/BlacklistCollection.d.ts +14 -0
  12. package/dist/collections/BlacklistCollection.d.ts.map +1 -0
  13. package/dist/collections/EmailAccountCollection.d.ts +74 -0
  14. package/dist/collections/EmailAccountCollection.d.ts.map +1 -0
  15. package/dist/collections/EmailAttachmentCollection.d.ts +38 -0
  16. package/dist/collections/EmailAttachmentCollection.d.ts.map +1 -0
  17. package/dist/collections/EmailCollection.d.ts +81 -0
  18. package/dist/collections/EmailCollection.d.ts.map +1 -0
  19. package/dist/collections/EmailFolderCollection.d.ts +85 -0
  20. package/dist/collections/EmailFolderCollection.d.ts.map +1 -0
  21. package/dist/collections/MessageCollection.d.ts +74 -0
  22. package/dist/collections/MessageCollection.d.ts.map +1 -0
  23. package/dist/collections/WhitelistCollection.d.ts +18 -0
  24. package/dist/collections/WhitelistCollection.d.ts.map +1 -0
  25. package/dist/index.d.ts +27 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +3068 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/manifest.json +10576 -0
  30. package/dist/models/Account.d.ts +47 -0
  31. package/dist/models/Account.d.ts.map +1 -0
  32. package/dist/models/Attachment.d.ts +48 -0
  33. package/dist/models/Attachment.d.ts.map +1 -0
  34. package/dist/models/Blacklist.d.ts +21 -0
  35. package/dist/models/Blacklist.d.ts.map +1 -0
  36. package/dist/models/Email.d.ts +98 -0
  37. package/dist/models/Email.d.ts.map +1 -0
  38. package/dist/models/EmailAccount.d.ts +65 -0
  39. package/dist/models/EmailAccount.d.ts.map +1 -0
  40. package/dist/models/EmailAttachment.d.ts +19 -0
  41. package/dist/models/EmailAttachment.d.ts.map +1 -0
  42. package/dist/models/EmailFolder.d.ts +65 -0
  43. package/dist/models/EmailFolder.d.ts.map +1 -0
  44. package/dist/models/Message.d.ts +105 -0
  45. package/dist/models/Message.d.ts.map +1 -0
  46. package/dist/models/SlackAccount.d.ts +13 -0
  47. package/dist/models/SlackAccount.d.ts.map +1 -0
  48. package/dist/models/SlackMessage.d.ts +34 -0
  49. package/dist/models/SlackMessage.d.ts.map +1 -0
  50. package/dist/models/Tweet.d.ts +31 -0
  51. package/dist/models/Tweet.d.ts.map +1 -0
  52. package/dist/models/TwitterAccount.d.ts +12 -0
  53. package/dist/models/TwitterAccount.d.ts.map +1 -0
  54. package/dist/models/Whitelist.d.ts +21 -0
  55. package/dist/models/Whitelist.d.ts.map +1 -0
  56. package/dist/playground.d.ts +2 -0
  57. package/dist/playground.d.ts.map +1 -0
  58. package/dist/playground.js +176 -0
  59. package/dist/playground.js.map +1 -0
  60. package/dist/senders/EmailSender.d.ts +13 -0
  61. package/dist/senders/EmailSender.d.ts.map +1 -0
  62. package/dist/senders/SlackSender.d.ts +11 -0
  63. package/dist/senders/SlackSender.d.ts.map +1 -0
  64. package/dist/senders/TweetSender.d.ts +11 -0
  65. package/dist/senders/TweetSender.d.ts.map +1 -0
  66. package/dist/smrt-knowledge.json +4234 -0
  67. package/dist/svelte/components/AccountAvatar.svelte +107 -0
  68. package/dist/svelte/components/AccountAvatar.svelte.d.ts +12 -0
  69. package/dist/svelte/components/AccountAvatar.svelte.d.ts.map +1 -0
  70. package/dist/svelte/components/AccountCard.svelte +173 -0
  71. package/dist/svelte/components/AccountCard.svelte.d.ts +12 -0
  72. package/dist/svelte/components/AccountCard.svelte.d.ts.map +1 -0
  73. package/dist/svelte/components/AccountList.svelte +90 -0
  74. package/dist/svelte/components/AccountList.svelte.d.ts +12 -0
  75. package/dist/svelte/components/AccountList.svelte.d.ts.map +1 -0
  76. package/dist/svelte/components/AttachmentChip.svelte +99 -0
  77. package/dist/svelte/components/AttachmentChip.svelte.d.ts +12 -0
  78. package/dist/svelte/components/AttachmentChip.svelte.d.ts.map +1 -0
  79. package/dist/svelte/components/AttachmentUpload.svelte +160 -0
  80. package/dist/svelte/components/AttachmentUpload.svelte.d.ts +11 -0
  81. package/dist/svelte/components/AttachmentUpload.svelte.d.ts.map +1 -0
  82. package/dist/svelte/components/ComposeForm.svelte +387 -0
  83. package/dist/svelte/components/ComposeForm.svelte.d.ts +13 -0
  84. package/dist/svelte/components/ComposeForm.svelte.d.ts.map +1 -0
  85. package/dist/svelte/components/EmailAccountManager.svelte +690 -0
  86. package/dist/svelte/components/EmailAccountManager.svelte.d.ts +15 -0
  87. package/dist/svelte/components/EmailAccountManager.svelte.d.ts.map +1 -0
  88. package/dist/svelte/components/EmailFilterManager.svelte +687 -0
  89. package/dist/svelte/components/EmailFilterManager.svelte.d.ts +14 -0
  90. package/dist/svelte/components/EmailFilterManager.svelte.d.ts.map +1 -0
  91. package/dist/svelte/components/FolderNav.svelte +171 -0
  92. package/dist/svelte/components/FolderNav.svelte.d.ts +11 -0
  93. package/dist/svelte/components/FolderNav.svelte.d.ts.map +1 -0
  94. package/dist/svelte/components/ForwardForm.svelte +166 -0
  95. package/dist/svelte/components/ForwardForm.svelte.d.ts +10 -0
  96. package/dist/svelte/components/ForwardForm.svelte.d.ts.map +1 -0
  97. package/dist/svelte/components/MessageCard.svelte +336 -0
  98. package/dist/svelte/components/MessageCard.svelte.d.ts +20 -0
  99. package/dist/svelte/components/MessageCard.svelte.d.ts.map +1 -0
  100. package/dist/svelte/components/MessageDetail.svelte +309 -0
  101. package/dist/svelte/components/MessageDetail.svelte.d.ts +18 -0
  102. package/dist/svelte/components/MessageDetail.svelte.d.ts.map +1 -0
  103. package/dist/svelte/components/MessageFilters.svelte +228 -0
  104. package/dist/svelte/components/MessageFilters.svelte.d.ts +13 -0
  105. package/dist/svelte/components/MessageFilters.svelte.d.ts.map +1 -0
  106. package/dist/svelte/components/MessageList.svelte +101 -0
  107. package/dist/svelte/components/MessageList.svelte.d.ts +23 -0
  108. package/dist/svelte/components/MessageList.svelte.d.ts.map +1 -0
  109. package/dist/svelte/components/MessageStatusIndicator.svelte +82 -0
  110. package/dist/svelte/components/MessageStatusIndicator.svelte.d.ts +11 -0
  111. package/dist/svelte/components/MessageStatusIndicator.svelte.d.ts.map +1 -0
  112. package/dist/svelte/components/MessageToolbar.svelte +131 -0
  113. package/dist/svelte/components/MessageToolbar.svelte.d.ts +14 -0
  114. package/dist/svelte/components/MessageToolbar.svelte.d.ts.map +1 -0
  115. package/dist/svelte/components/MessageTypeBadge.svelte +59 -0
  116. package/dist/svelte/components/MessageTypeBadge.svelte.d.ts +9 -0
  117. package/dist/svelte/components/MessageTypeBadge.svelte.d.ts.map +1 -0
  118. package/dist/svelte/components/RecipientInput.svelte +150 -0
  119. package/dist/svelte/components/RecipientInput.svelte.d.ts +11 -0
  120. package/dist/svelte/components/RecipientInput.svelte.d.ts.map +1 -0
  121. package/dist/svelte/components/ReplyForm.svelte +159 -0
  122. package/dist/svelte/components/ReplyForm.svelte.d.ts +11 -0
  123. package/dist/svelte/components/ReplyForm.svelte.d.ts.map +1 -0
  124. package/dist/svelte/components/SendStatusBadge.svelte +64 -0
  125. package/dist/svelte/components/SendStatusBadge.svelte.d.ts +8 -0
  126. package/dist/svelte/components/SendStatusBadge.svelte.d.ts.map +1 -0
  127. package/dist/svelte/components/ThreadView.svelte +240 -0
  128. package/dist/svelte/components/ThreadView.svelte.d.ts +12 -0
  129. package/dist/svelte/components/ThreadView.svelte.d.ts.map +1 -0
  130. package/dist/svelte/i18n.d.ts +42 -0
  131. package/dist/svelte/i18n.d.ts.map +1 -0
  132. package/dist/svelte/i18n.js +60 -0
  133. package/dist/svelte/i18n.messages.d.ts +32 -0
  134. package/dist/svelte/i18n.messages.d.ts.map +1 -0
  135. package/dist/svelte/i18n.messages.js +46 -0
  136. package/dist/svelte/index.d.ts +54 -0
  137. package/dist/svelte/index.d.ts.map +1 -0
  138. package/dist/svelte/index.js +44 -0
  139. package/dist/svelte/playground.d.ts +341 -0
  140. package/dist/svelte/playground.d.ts.map +1 -0
  141. package/dist/svelte/playground.js +171 -0
  142. package/dist/svelte/types.d.ts +195 -0
  143. package/dist/svelte/types.d.ts.map +1 -0
  144. package/dist/svelte/types.js +6 -0
  145. package/dist/types.d.ts +316 -0
  146. package/dist/types.d.ts.map +1 -0
  147. package/dist/types.js +2 -0
  148. package/dist/types.js.map +1 -0
  149. package/dist/ui.d.ts +4 -0
  150. package/dist/ui.d.ts.map +1 -0
  151. package/dist/ui.js +103 -0
  152. package/dist/ui.js.map +1 -0
  153. package/package.json +104 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/svelte/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Svelte component types for @happyvertical/smrt-messages
3
+ *
4
+ * UI data interfaces decoupled from ORM models.
5
+ */
6
+ export {};
@@ -0,0 +1,316 @@
1
+ import { SmrtObjectOptions } from '@happyvertical/smrt-core';
2
+ /**
3
+ * Status of a message in the send lifecycle
4
+ */
5
+ export type SendStatus = 'draft' | 'pending' | 'sending' | 'sent' | 'failed' | 'scheduled';
6
+ /**
7
+ * Interface for channel-specific message senders
8
+ */
9
+ export interface MessageSenderInterface {
10
+ send(message: any, options?: SendMessageOptions): Promise<MessageSendResult>;
11
+ isReady(): boolean;
12
+ readonly providerType: string;
13
+ }
14
+ /**
15
+ * Base send options
16
+ */
17
+ export interface SendMessageOptions {
18
+ trackSend?: boolean;
19
+ retry?: {
20
+ maxRetries?: number;
21
+ backoffMs?: number;
22
+ };
23
+ scheduledAt?: Date;
24
+ }
25
+ /**
26
+ * Email-specific send options
27
+ */
28
+ export interface SendEmailOptions extends SendMessageOptions {
29
+ saveToCopy?: boolean;
30
+ sentFolder?: string;
31
+ }
32
+ /**
33
+ * Slack-specific send options
34
+ */
35
+ export interface SendSlackOptions extends SendMessageOptions {
36
+ unfurlLinks?: boolean;
37
+ unfurlMedia?: boolean;
38
+ }
39
+ /**
40
+ * Tweet-specific send options
41
+ */
42
+ export interface SendTweetOptions extends SendMessageOptions {
43
+ quoteTweetId?: string;
44
+ }
45
+ /**
46
+ * Result of sending a message
47
+ */
48
+ export interface MessageSendResult {
49
+ success: boolean;
50
+ providerMessageId?: string;
51
+ accepted?: string[];
52
+ rejected?: string[];
53
+ error?: string;
54
+ providerResponse?: Record<string, any>;
55
+ sentAt: Date;
56
+ }
57
+ /**
58
+ * Known message types (STI discriminator values)
59
+ */
60
+ export type MessageType = 'Email' | 'Tweet' | 'SlackMessage';
61
+ /**
62
+ * Known account types (STI discriminator values)
63
+ */
64
+ export type AccountType = 'EmailAccount' | 'SlackAccount' | 'TwitterAccount';
65
+ /**
66
+ * Email provider type
67
+ */
68
+ export type ProviderType = 'smtp' | 'imap' | 'pop3' | 'gmail';
69
+ /**
70
+ * Options for creating Message (base)
71
+ */
72
+ export interface MessageOptions extends SmrtObjectOptions {
73
+ id?: string;
74
+ tenantId?: string | null;
75
+ accountId?: string;
76
+ threadId?: string;
77
+ subject?: string;
78
+ body?: string;
79
+ fromAddress?: string;
80
+ fromName?: string;
81
+ toAddresses?: string;
82
+ date?: Date | null;
83
+ isRead?: boolean;
84
+ isFlagged?: boolean;
85
+ hasAttachments?: boolean;
86
+ size?: number;
87
+ metadata?: string;
88
+ createdAt?: Date;
89
+ updatedAt?: Date;
90
+ sendStatus?: SendStatus;
91
+ sentAt?: Date | null;
92
+ sendError?: string;
93
+ retryCount?: number;
94
+ maxRetries?: number;
95
+ scheduledSendAt?: Date | null;
96
+ inReplyToMessageId?: string;
97
+ }
98
+ /**
99
+ * Options for creating Account (base)
100
+ */
101
+ export interface AccountOptions extends SmrtObjectOptions {
102
+ id?: string;
103
+ tenantId?: string | null;
104
+ name?: string;
105
+ providerType?: string;
106
+ credentialSecretId?: string | null;
107
+ isActive?: boolean;
108
+ lastSyncAt?: Date | null;
109
+ settings?: string;
110
+ createdAt?: Date;
111
+ updatedAt?: Date;
112
+ }
113
+ /**
114
+ * Options for creating Attachment
115
+ */
116
+ export interface AttachmentOptions extends SmrtObjectOptions {
117
+ id?: string;
118
+ tenantId?: string | null;
119
+ messageId?: string;
120
+ filename?: string;
121
+ contentType?: string;
122
+ size?: number;
123
+ contentId?: string;
124
+ contentDisposition?: 'attachment' | 'inline';
125
+ filePath?: string;
126
+ sourceUrl?: string;
127
+ createdAt?: Date;
128
+ }
129
+ /**
130
+ * Options for creating Email
131
+ */
132
+ export interface EmailOptions extends MessageOptions {
133
+ messageId?: string;
134
+ inReplyTo?: string;
135
+ ccAddresses?: string;
136
+ bccAddresses?: string;
137
+ replyToAddress?: string;
138
+ replyToName?: string;
139
+ textBody?: string;
140
+ htmlBody?: string;
141
+ folderId?: string;
142
+ folderPath?: string;
143
+ labels?: string;
144
+ flags?: string;
145
+ isAnswered?: boolean;
146
+ isDraft?: boolean;
147
+ rawMessage?: string;
148
+ headers?: string;
149
+ }
150
+ /**
151
+ * Options for creating EmailAccount
152
+ */
153
+ export interface EmailAccountOptions extends AccountOptions {
154
+ email?: string;
155
+ providerType?: ProviderType;
156
+ syncIntervalMinutes?: number;
157
+ }
158
+ /**
159
+ * Options for creating EmailFolder
160
+ */
161
+ export interface EmailFolderOptions extends SmrtObjectOptions {
162
+ id?: string;
163
+ tenantId?: string | null;
164
+ accountId?: string;
165
+ name?: string;
166
+ path?: string;
167
+ delimiter?: string;
168
+ specialUse?: string;
169
+ messageCount?: number;
170
+ unreadCount?: number;
171
+ subscribed?: boolean;
172
+ createdAt?: Date;
173
+ updatedAt?: Date;
174
+ }
175
+ /**
176
+ * Options for creating EmailAttachment
177
+ * @deprecated Use AttachmentOptions instead
178
+ */
179
+ export interface EmailAttachmentOptions extends AttachmentOptions {
180
+ emailId?: string;
181
+ }
182
+ /**
183
+ * Options for creating Tweet
184
+ */
185
+ export interface TweetOptions extends MessageOptions {
186
+ tweetId?: string;
187
+ retweetCount?: number;
188
+ likeCount?: number;
189
+ replyCount?: number;
190
+ isRetweet?: boolean;
191
+ isReply?: boolean;
192
+ mediaUrls?: string;
193
+ hashtags?: string;
194
+ mentions?: string;
195
+ }
196
+ /**
197
+ * Options for creating SlackMessage
198
+ */
199
+ export interface SlackMessageOptions extends MessageOptions {
200
+ channelId?: string;
201
+ channelName?: string;
202
+ slackTs?: string;
203
+ slackThreadTs?: string;
204
+ reactions?: string;
205
+ isEdited?: boolean;
206
+ messageType?: string;
207
+ blocks?: string;
208
+ }
209
+ /**
210
+ * Options for creating SlackAccount
211
+ */
212
+ export interface SlackAccountOptions extends AccountOptions {
213
+ workspaceId?: string;
214
+ workspaceName?: string;
215
+ botUserId?: string;
216
+ }
217
+ /**
218
+ * Options for creating TwitterAccount
219
+ */
220
+ export interface TwitterAccountOptions extends AccountOptions {
221
+ handle?: string;
222
+ twitterUserId?: string;
223
+ }
224
+ /**
225
+ * Search filters for messages (cross-type)
226
+ */
227
+ export interface MessageSearchFilters {
228
+ accountIds?: string[];
229
+ messageType?: string;
230
+ from?: string;
231
+ to?: string;
232
+ isRead?: boolean;
233
+ isFlagged?: boolean;
234
+ sinceDate?: Date;
235
+ beforeDate?: Date;
236
+ query?: string;
237
+ }
238
+ /**
239
+ * Search filters for accounts (cross-type)
240
+ */
241
+ export interface AccountSearchFilters {
242
+ providerType?: string;
243
+ isActive?: boolean;
244
+ accountType?: string;
245
+ }
246
+ /**
247
+ * Search filters for emails
248
+ */
249
+ export interface EmailSearchFilters {
250
+ accountId?: string;
251
+ folderId?: string;
252
+ threadId?: string;
253
+ from?: string;
254
+ to?: string;
255
+ subject?: string;
256
+ isRead?: boolean;
257
+ isFlagged?: boolean;
258
+ hasAttachments?: boolean;
259
+ sincDate?: Date;
260
+ beforeDate?: Date;
261
+ }
262
+ /**
263
+ * Search filters for email accounts
264
+ */
265
+ export interface EmailAccountSearchFilters {
266
+ providerType?: ProviderType;
267
+ email?: string;
268
+ isActive?: boolean;
269
+ }
270
+ /**
271
+ * Search filters for email folders
272
+ */
273
+ export interface EmailFolderSearchFilters {
274
+ accountId?: string;
275
+ specialUse?: string;
276
+ subscribed?: boolean;
277
+ }
278
+ /**
279
+ * Sync options for fetching emails from server
280
+ */
281
+ export interface SyncOptions {
282
+ folders?: string[];
283
+ since?: Date;
284
+ before?: Date;
285
+ fullSync?: boolean;
286
+ deleteRemoved?: boolean;
287
+ downloadAttachments?: boolean;
288
+ maxAttachmentSize?: number;
289
+ batchSize?: number;
290
+ maxConcurrency?: number;
291
+ onProgress?: (stats: SyncProgress) => void;
292
+ onError?: (error: Error, message?: unknown) => void;
293
+ }
294
+ /**
295
+ * Progress information during sync
296
+ */
297
+ export interface SyncProgress {
298
+ folder: string;
299
+ processed: number;
300
+ total: number;
301
+ downloaded: number;
302
+ skipped: number;
303
+ errors: number;
304
+ }
305
+ /**
306
+ * Result of a sync operation
307
+ */
308
+ export interface SyncResult {
309
+ folders: string[];
310
+ messagesProcessed: number;
311
+ messagesDownloaded: number;
312
+ messagesSkipped: number;
313
+ errors: Error[];
314
+ duration: number;
315
+ }
316
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/dist/ui.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ import { ModuleUISlot, SmrtModuleMeta } from '@happyvertical/smrt-types';
2
+ export declare const MESSAGES_UI_SLOTS: Record<string, ModuleUISlot>;
3
+ export declare const MESSAGES_MODULE_META: SmrtModuleMeta;
4
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE9E,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAyE1D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,cAwBlC,CAAC"}
package/dist/ui.js ADDED
@@ -0,0 +1,103 @@
1
+ const MESSAGES_UI_SLOTS = {
2
+ "message-card": {
3
+ id: "message-card",
4
+ label: "Message Card",
5
+ description: "Single message row with type-adaptive rendering",
6
+ icon: "mail",
7
+ category: "display",
8
+ order: 1,
9
+ propsInterface: "MessageCardProps"
10
+ },
11
+ "message-list": {
12
+ id: "message-list",
13
+ label: "Message List",
14
+ description: "Unified message list with selection and filtering",
15
+ icon: "list",
16
+ category: "list",
17
+ order: 2,
18
+ propsInterface: "MessageListProps"
19
+ },
20
+ "message-detail": {
21
+ id: "message-detail",
22
+ label: "Message Detail",
23
+ description: "Full message view with type-adaptive sections",
24
+ icon: "file-text",
25
+ category: "display",
26
+ order: 3,
27
+ propsInterface: "MessageDetailProps"
28
+ },
29
+ "message-filters": {
30
+ id: "message-filters",
31
+ label: "Message Filters",
32
+ description: "Filter and sort controls for message lists",
33
+ icon: "filter",
34
+ category: "action",
35
+ order: 4,
36
+ propsInterface: "MessageFiltersProps"
37
+ },
38
+ "account-list": {
39
+ id: "account-list",
40
+ label: "Account List",
41
+ description: "Account management list with sync status",
42
+ icon: "users",
43
+ category: "list",
44
+ order: 5,
45
+ propsInterface: "AccountListProps"
46
+ },
47
+ "thread-view": {
48
+ id: "thread-view",
49
+ label: "Thread View",
50
+ description: "Conversation thread with collapsible messages",
51
+ icon: "message-circle",
52
+ category: "display",
53
+ order: 6,
54
+ propsInterface: "ThreadViewProps"
55
+ },
56
+ "compose-form": {
57
+ id: "compose-form",
58
+ label: "Compose Form",
59
+ description: "Full message compose form with type-adaptive fields",
60
+ icon: "edit",
61
+ category: "action",
62
+ order: 7,
63
+ propsInterface: "ComposeFormProps"
64
+ },
65
+ "reply-form": {
66
+ id: "reply-form",
67
+ label: "Reply Form",
68
+ description: "Inline reply form with quoted original",
69
+ icon: "reply",
70
+ category: "action",
71
+ order: 8,
72
+ propsInterface: "ReplyFormProps"
73
+ }
74
+ };
75
+ const MESSAGES_MODULE_META = {
76
+ name: "@happyvertical/smrt-messages",
77
+ displayName: "Messages",
78
+ description: "Unified multi-channel messaging: email, Slack, Twitter, and more",
79
+ uiSlots: MESSAGES_UI_SLOTS,
80
+ models: [
81
+ "Message",
82
+ "Email",
83
+ "Tweet",
84
+ "SlackMessage",
85
+ "Account",
86
+ "EmailAccount",
87
+ "SlackAccount",
88
+ "TwitterAccount",
89
+ "Attachment"
90
+ ],
91
+ collections: [
92
+ "MessageCollection",
93
+ "EmailCollection",
94
+ "AccountCollection",
95
+ "EmailAccountCollection",
96
+ "AttachmentCollection"
97
+ ]
98
+ };
99
+ export {
100
+ MESSAGES_MODULE_META,
101
+ MESSAGES_UI_SLOTS
102
+ };
103
+ //# sourceMappingURL=ui.js.map
package/dist/ui.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.js","sources":["../src/ui.ts"],"sourcesContent":["/**\n * Messages Module UI Slot Declarations\n *\n * Defines UI extension points for the messages module.\n * UI components are implemented in the ./svelte subpath.\n */\n\nimport type { ModuleUISlot, SmrtModuleMeta } from '@happyvertical/smrt-types';\n\nexport const MESSAGES_UI_SLOTS: Record<string, ModuleUISlot> = {\n 'message-card': {\n id: 'message-card',\n label: 'Message Card',\n description: 'Single message row with type-adaptive rendering',\n icon: 'mail',\n category: 'display',\n order: 1,\n propsInterface: 'MessageCardProps',\n },\n 'message-list': {\n id: 'message-list',\n label: 'Message List',\n description: 'Unified message list with selection and filtering',\n icon: 'list',\n category: 'list',\n order: 2,\n propsInterface: 'MessageListProps',\n },\n 'message-detail': {\n id: 'message-detail',\n label: 'Message Detail',\n description: 'Full message view with type-adaptive sections',\n icon: 'file-text',\n category: 'display',\n order: 3,\n propsInterface: 'MessageDetailProps',\n },\n 'message-filters': {\n id: 'message-filters',\n label: 'Message Filters',\n description: 'Filter and sort controls for message lists',\n icon: 'filter',\n category: 'action',\n order: 4,\n propsInterface: 'MessageFiltersProps',\n },\n 'account-list': {\n id: 'account-list',\n label: 'Account List',\n description: 'Account management list with sync status',\n icon: 'users',\n category: 'list',\n order: 5,\n propsInterface: 'AccountListProps',\n },\n 'thread-view': {\n id: 'thread-view',\n label: 'Thread View',\n description: 'Conversation thread with collapsible messages',\n icon: 'message-circle',\n category: 'display',\n order: 6,\n propsInterface: 'ThreadViewProps',\n },\n 'compose-form': {\n id: 'compose-form',\n label: 'Compose Form',\n description: 'Full message compose form with type-adaptive fields',\n icon: 'edit',\n category: 'action',\n order: 7,\n propsInterface: 'ComposeFormProps',\n },\n 'reply-form': {\n id: 'reply-form',\n label: 'Reply Form',\n description: 'Inline reply form with quoted original',\n icon: 'reply',\n category: 'action',\n order: 8,\n propsInterface: 'ReplyFormProps',\n },\n};\n\nexport const MESSAGES_MODULE_META: SmrtModuleMeta = {\n name: '@happyvertical/smrt-messages',\n displayName: 'Messages',\n description:\n 'Unified multi-channel messaging: email, Slack, Twitter, and more',\n uiSlots: MESSAGES_UI_SLOTS,\n models: [\n 'Message',\n 'Email',\n 'Tweet',\n 'SlackMessage',\n 'Account',\n 'EmailAccount',\n 'SlackAccount',\n 'TwitterAccount',\n 'Attachment',\n ],\n collections: [\n 'MessageCollection',\n 'EmailCollection',\n 'AccountCollection',\n 'EmailAccountCollection',\n 'AttachmentCollection',\n ],\n};\n"],"names":[],"mappings":"AASO,MAAM,oBAAkD;AAAA,EAC7D,gBAAgB;AAAA,IACd,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAAA,EAElB,gBAAgB;AAAA,IACd,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAAA,EAElB,kBAAkB;AAAA,IAChB,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAAA,EAElB,mBAAmB;AAAA,IACjB,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAAA,EAElB,gBAAgB;AAAA,IACd,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAAA,EAElB,eAAe;AAAA,IACb,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAAA,EAElB,gBAAgB;AAAA,IACd,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAAA,EAElB,cAAc;AAAA,IACZ,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAEpB;AAEO,MAAM,uBAAuC;AAAA,EAClD,MAAM;AAAA,EACN,aAAa;AAAA,EACb,aACE;AAAA,EACF,SAAS;AAAA,EACT,QAAQ;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAAA,EAEF,aAAa;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}
package/package.json ADDED
@@ -0,0 +1,104 @@
1
+ {
2
+ "name": "@happyvertical/smrt-messages",
3
+ "version": "0.30.0",
4
+ "description": "Unified multi-channel messaging with STI-based hierarchies",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "files": [
9
+ "dist",
10
+ "CLAUDE.md",
11
+ "AGENTS.md"
12
+ ],
13
+ "exports": {
14
+ ".": {
15
+ "types": "./dist/index.d.ts",
16
+ "default": "./dist/index.js"
17
+ },
18
+ "./manifest": "./dist/manifest.json",
19
+ "./manifest.json": "./dist/manifest.json",
20
+ "./ui": {
21
+ "types": "./dist/ui.d.ts",
22
+ "import": "./dist/ui.js"
23
+ },
24
+ "./playground": {
25
+ "types": "./dist/playground.d.ts",
26
+ "import": "./dist/playground.js"
27
+ },
28
+ "./svelte": {
29
+ "types": "./dist/svelte/index.d.ts",
30
+ "svelte": "./dist/svelte/index.js",
31
+ "import": "./dist/svelte/index.js"
32
+ }
33
+ },
34
+ "dependencies": {
35
+ "@happyvertical/ai": "^0.74.7",
36
+ "@happyvertical/email": "^0.74.7",
37
+ "@happyvertical/files": "^0.74.7",
38
+ "@happyvertical/logger": "^0.74.7",
39
+ "@happyvertical/messages": "^0.74.7",
40
+ "@happyvertical/sql": "^0.74.7",
41
+ "@happyvertical/utils": "^0.74.7",
42
+ "@happyvertical/smrt-core": "0.30.0",
43
+ "@happyvertical/smrt-secrets": "0.30.0",
44
+ "@happyvertical/smrt-types": "0.30.0",
45
+ "@happyvertical/smrt-tenancy": "0.30.0",
46
+ "@happyvertical/smrt-ui": "0.30.0"
47
+ },
48
+ "peerDependencies": {
49
+ "@happyvertical/encryption": "*",
50
+ "svelte": "^5.18.0"
51
+ },
52
+ "peerDependenciesMeta": {
53
+ "@happyvertical/encryption": {
54
+ "optional": true
55
+ },
56
+ "svelte": {
57
+ "optional": true
58
+ }
59
+ },
60
+ "devDependencies": {
61
+ "@sveltejs/package": "^2.5.7",
62
+ "@sveltejs/vite-plugin-svelte": "^6.2.4",
63
+ "@types/node": "25.0.9",
64
+ "svelte": "^5.46.4",
65
+ "svelte-check": "^4.3.5",
66
+ "typescript": "^5.9.3",
67
+ "vite": "^7.3.1",
68
+ "vitest": "^4.0.17",
69
+ "@happyvertical/smrt-vitest": "0.30.0"
70
+ },
71
+ "keywords": [
72
+ "email",
73
+ "messages",
74
+ "slack",
75
+ "twitter",
76
+ "messaging",
77
+ "smrt",
78
+ "ai",
79
+ "typescript"
80
+ ],
81
+ "author": "HappyVertical",
82
+ "license": "MIT",
83
+ "repository": {
84
+ "type": "git",
85
+ "url": "https://github.com/happyvertical/smrt.git",
86
+ "directory": "packages/messages"
87
+ },
88
+ "publishConfig": {
89
+ "registry": "https://registry.npmjs.org",
90
+ "access": "public"
91
+ },
92
+ "scripts": {
93
+ "build": "vite build --mode library && svelte-package -i src/svelte -o dist/svelte --tsconfig tsconfig.svelte.json",
94
+ "build:watch": "vite build --mode library --watch",
95
+ "clean": "rm -rf dist",
96
+ "dev": "vite",
97
+ "check": "pnpm exec svelte-check --tsconfig ./tsconfig.svelte.json",
98
+ "pretest": "[ -f ../cli/dist/index.js ] && node ../cli/dist/index.js test --manifest-only || true",
99
+ "test": "vitest run",
100
+ "test:watch": "vitest",
101
+ "typecheck": "tsc --noEmit && node ../../scripts/svelte-check-a11y.mjs --tsconfig ./tsconfig.svelte.json",
102
+ "verify:pack": "node ../../scripts/verify-package-types-exports.js ."
103
+ }
104
+ }