@novu/framework 2.10.1-alpha.3 → 2.10.1-alpha.5

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 (41) hide show
  1. package/dist/cjs/{index-C5CigDlK.d.cts → index-B4t9LyOV.d.cts} +30 -15
  2. package/dist/cjs/index.cjs +58 -58
  3. package/dist/cjs/index.d.cts +1 -1
  4. package/dist/cjs/servers/express.cjs +58 -58
  5. package/dist/cjs/servers/express.d.cts +2 -2
  6. package/dist/cjs/servers/h3.cjs +58 -58
  7. package/dist/cjs/servers/h3.d.cts +2 -2
  8. package/dist/cjs/servers/lambda.cjs +58 -58
  9. package/dist/cjs/servers/lambda.d.cts +2 -2
  10. package/dist/cjs/servers/nest.cjs +71 -71
  11. package/dist/cjs/servers/nest.d.cts +2 -2
  12. package/dist/cjs/servers/next.cjs +58 -58
  13. package/dist/cjs/servers/next.d.cts +2 -2
  14. package/dist/cjs/servers/nuxt.cjs +58 -58
  15. package/dist/cjs/servers/nuxt.d.cts +2 -2
  16. package/dist/cjs/servers/remix.cjs +58 -58
  17. package/dist/cjs/servers/remix.d.cts +2 -2
  18. package/dist/cjs/servers/sveltekit.cjs +71 -71
  19. package/dist/cjs/servers/sveltekit.d.cts +2 -2
  20. package/dist/esm/chunk-TJFK73XZ.js +130 -0
  21. package/dist/esm/{index-DCSlowxV.d.ts → index-BCzJp-zE.d.ts} +30 -15
  22. package/dist/esm/index.d.ts +1 -1
  23. package/dist/esm/index.js +1 -1
  24. package/dist/esm/servers/express.d.ts +2 -2
  25. package/dist/esm/servers/express.js +1 -1
  26. package/dist/esm/servers/h3.d.ts +2 -2
  27. package/dist/esm/servers/h3.js +1 -1
  28. package/dist/esm/servers/lambda.d.ts +2 -2
  29. package/dist/esm/servers/lambda.js +1 -1
  30. package/dist/esm/servers/nest.d.ts +2 -2
  31. package/dist/esm/servers/nest.js +1 -1
  32. package/dist/esm/servers/next.d.ts +2 -2
  33. package/dist/esm/servers/next.js +1 -1
  34. package/dist/esm/servers/nuxt.d.ts +2 -2
  35. package/dist/esm/servers/nuxt.js +1 -1
  36. package/dist/esm/servers/remix.d.ts +2 -2
  37. package/dist/esm/servers/remix.js +1 -1
  38. package/dist/esm/servers/sveltekit.d.ts +2 -2
  39. package/dist/esm/servers/sveltekit.js +1 -1
  40. package/package.json +1 -1
  41. package/dist/esm/chunk-CBVFNQC3.js +0 -130
@@ -68,23 +68,29 @@ interface AgentPlatformContext {
68
68
  interface FileRef {
69
69
  filename: string;
70
70
  mimeType?: string;
71
- /** Base64-encoded file data (< 1 MB decoded) */
72
- data?: string;
73
- /** Publicly-accessible HTTPS URL */
71
+ /**
72
+ * Inline file data. Binary values are encoded to base64 before being sent to Novu.
73
+ * Node Buffers are supported because Buffer extends Uint8Array.
74
+ *
75
+ * Limit: <= 5 MB decoded. Use `url` for larger files.
76
+ */
77
+ data?: string | Uint8Array | ArrayBuffer | Blob;
78
+ /**
79
+ * Publicly-accessible HTTP(S) URL. Recommended for larger files.
80
+ *
81
+ * Server-side limits: 25 MB per file, 15 files per message, 50 MB aggregate.
82
+ */
74
83
  url?: string;
75
84
  }
76
85
  /**
77
86
  * Content accepted by ctx.reply() and handle.edit().
78
87
  *
79
88
  * - `string` — plain text or markdown; converted to platform format by the chat SDK
80
- * - `{ markdown, files? }` — markdown with optional file attachments
81
89
  * - `ChatElement` — interactive card built with Card(), Button(), etc.
82
- * (must be a CardElement at runtime; validated by serializeContent)
90
+ *
91
+ * For file attachments, pass a `files` array as the second argument to reply()/edit().
83
92
  */
84
- type MessageContent = string | {
85
- markdown: string;
86
- files?: FileRef[];
87
- } | ChatElement;
93
+ type MessageContent = string | ChatElement;
88
94
  /** Normalized content shape sent over HTTP to the reply endpoint. */
89
95
  interface ReplyContent {
90
96
  markdown?: string;
@@ -114,7 +120,9 @@ interface ReplyHandle {
114
120
  /** Platform-native thread id this message lives in. */
115
121
  readonly platformThreadId: string;
116
122
  /** Edit this message in place with new content. Returns the same handle for chaining. */
117
- edit(content: MessageContent): Promise<ReplyHandle>;
123
+ edit(content: MessageContent, options?: {
124
+ files?: FileRef[];
125
+ }): Promise<ReplyHandle>;
118
126
  }
119
127
  interface AgentContext {
120
128
  readonly event: string;
@@ -132,10 +140,16 @@ interface AgentContext {
132
140
  *
133
141
  * @example
134
142
  * const msg = await ctx.reply('Thinking…');
135
- * // ... do work ...
136
143
  * await msg.edit('Here is the answer');
144
+ *
145
+ * @example with file attachment
146
+ * await ctx.reply('Here is your report', {
147
+ * files: [{ filename: 'report.pdf', url: 'https://...' }],
148
+ * });
137
149
  */
138
- reply(content: MessageContent): Promise<ReplyHandle>;
150
+ reply(content: MessageContent, options?: {
151
+ files?: FileRef[];
152
+ }): Promise<ReplyHandle>;
139
153
  resolve(summary?: string): void;
140
154
  metadata: {
141
155
  set(key: string, value: unknown): void;
@@ -259,7 +273,8 @@ interface SentMessageInfo {
259
273
  * fails — e.g. the configured email provider returns 401, Slack rejects the token,
260
274
  * or Teams rejects the request.
261
275
  *
262
- * The `message` property contains the original provider error text
276
+ * `message` is always a short, human-readable summary.
277
+ * `responseBody` preserves the raw upstream body for debugging.
263
278
  *
264
279
  * @example
265
280
  * ```ts
@@ -269,7 +284,6 @@ interface SentMessageInfo {
269
284
  * await ctx.reply('Hello!');
270
285
  * } catch (err) {
271
286
  * if (err instanceof AgentDeliveryError) {
272
- * // Delivery failed (misconfigured provider, rate limit, etc.)
273
287
  * console.error('Delivery failed:', err.message);
274
288
  * return;
275
289
  * }
@@ -279,7 +293,8 @@ interface SentMessageInfo {
279
293
  */
280
294
  declare class AgentDeliveryError extends Error {
281
295
  readonly statusCode: number;
282
- constructor(statusCode: number, message: string);
296
+ readonly responseBody: string;
297
+ constructor(statusCode: number, responseBody: string);
283
298
  }
284
299
 
285
300
  /**