@invoiceleaf/integration-smtp-mail 1.0.1 → 1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"sendEmail.d.ts","sourceRoot":"","sources":["../../src/handlers/sendEmail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGjF,eAAO,MAAM,SAAS,EAAE,kBAAkB,CAAC,cAAc,EAAE,aAAa,EAAE,cAAc,CA2CvF,CAAC"}
1
+ {"version":3,"file":"sendEmail.d.ts","sourceRoot":"","sources":["../../src/handlers/sendEmail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGjF,eAAO,MAAM,SAAS,EAAE,kBAAkB,CAAC,cAAc,EAAE,aAAa,EAAE,cAAc,CA4DvF,CAAC"}
@@ -7,6 +7,19 @@ export const sendEmail = async (input, context) => {
7
7
  error: 'subject and at least one body field (text or html) are required',
8
8
  };
9
9
  }
10
+ const combinedAttachments = [...(input.attachments || [])];
11
+ const requestedDocumentIds = Array.from(new Set([
12
+ ...(input.documentId ? [input.documentId] : []),
13
+ ...((input.documentIds || []).filter(Boolean)),
14
+ ]));
15
+ for (const documentId of requestedDocumentIds) {
16
+ const file = await context.data.getDocumentFile(documentId);
17
+ combinedAttachments.push({
18
+ fileName: file.fileName || `document-${documentId}.bin`,
19
+ contentType: file.contentType,
20
+ contentBase64: file.contentBase64,
21
+ });
22
+ }
10
23
  const result = await context.email.sendSmtpEmail({
11
24
  smtpHost: context.config.smtpHost,
12
25
  smtpPort: context.config.smtpPort,
@@ -21,7 +34,7 @@ export const sendEmail = async (input, context) => {
21
34
  subject: input.subject,
22
35
  text: input.text,
23
36
  html: input.html,
24
- attachments: input.attachments,
37
+ attachments: combinedAttachments.length > 0 ? combinedAttachments : undefined,
25
38
  });
26
39
  context.logger.info('SMTP sendEmail succeeded', { messageId: result.messageId });
27
40
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"sendEmail.js","sourceRoot":"","sources":["../../src/handlers/sendEmail.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAC,MAAM,SAAS,GAAsE,KAAK,EAC/F,KAAK,EACL,OAA2C,EACnB,EAAE;IAC1B,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,iEAAiE;aACzE,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;YAC/C,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ;YACjC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ;YACjC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU;YACrC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY;YACzC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY;YACzC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW;YACvC,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC;YAC7B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAEjF,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;SACzC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACnF,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,yBAA0B,KAAe,CAAC,OAAO,EAAE;SAC3D,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"sendEmail.js","sourceRoot":"","sources":["../../src/handlers/sendEmail.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAC,MAAM,SAAS,GAAsE,KAAK,EAC/F,KAAK,EACL,OAA2C,EACnB,EAAE;IAC1B,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,iEAAiE;aACzE,CAAC;QACJ,CAAC;QAED,MAAM,mBAAmB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3D,MAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CACrC,IAAI,GAAG,CAAC;YACN,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAC/C,CAAC,CACH,CAAC;QAEF,KAAK,MAAM,UAAU,IAAI,oBAAoB,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAC5D,mBAAmB,CAAC,IAAI,CAAC;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,YAAY,UAAU,MAAM;gBACvD,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;aAClC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;YAC/C,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ;YACjC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ;YACjC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU;YACrC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY;YACzC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY;YACzC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW;YACvC,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC;YAC7B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,WAAW,EAAE,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;SAC9E,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAEjF,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;SACzC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACnF,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,yBAA0B,KAAe,CAAC,OAAO,EAAE;SAC3D,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -33,6 +33,8 @@ export interface SendEmailInput {
33
33
  html?: string;
34
34
  replyTo?: string;
35
35
  attachments?: SendEmailAttachmentInput[];
36
+ documentId?: string;
37
+ documentIds?: string[];
36
38
  }
37
39
  export interface HandlerResult {
38
40
  success: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IAEpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IAEpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB"}
package/manifest.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "id": "integration-smtp-mail",
3
3
  "name": "SMTP Mail",
4
4
  "description": "Send email through SMTP and crawl IMAP inboxes for PDF attachments to import into InvoiceLeaf.",
5
- "version": "1.0.0",
5
+ "version": "1.1.0",
6
6
  "author": {
7
7
  "name": "InvoiceLeaf",
8
8
  "email": "support@invoiceleaf.com",
@@ -30,7 +30,62 @@
30
30
  "name": "Send Email",
31
31
  "description": "Send an email through SMTP",
32
32
  "handler": "sendEmail",
33
- "icon": "send"
33
+ "icon": "send",
34
+ "inputSchema": {
35
+ "type": "object",
36
+ "properties": {
37
+ "to": {
38
+ "oneOf": [
39
+ { "type": "string", "format": "email" },
40
+ {
41
+ "type": "array",
42
+ "items": { "type": "string", "format": "email" },
43
+ "minItems": 1
44
+ }
45
+ ]
46
+ },
47
+ "cc": {
48
+ "oneOf": [
49
+ { "type": "string", "format": "email" },
50
+ {
51
+ "type": "array",
52
+ "items": { "type": "string", "format": "email" }
53
+ }
54
+ ]
55
+ },
56
+ "bcc": {
57
+ "oneOf": [
58
+ { "type": "string", "format": "email" },
59
+ {
60
+ "type": "array",
61
+ "items": { "type": "string", "format": "email" }
62
+ }
63
+ ]
64
+ },
65
+ "replyTo": { "type": "string", "format": "email" },
66
+ "subject": { "type": "string", "minLength": 1 },
67
+ "text": { "type": "string" },
68
+ "html": { "type": "string" },
69
+ "documentId": { "type": "string" },
70
+ "documentIds": {
71
+ "type": "array",
72
+ "items": { "type": "string" }
73
+ },
74
+ "attachments": {
75
+ "type": "array",
76
+ "items": {
77
+ "type": "object",
78
+ "properties": {
79
+ "fileName": { "type": "string" },
80
+ "contentType": { "type": "string" },
81
+ "contentBase64": { "type": "string" }
82
+ },
83
+ "required": ["fileName", "contentBase64"]
84
+ }
85
+ }
86
+ },
87
+ "required": ["to", "subject"]
88
+ }
34
89
  },
35
90
  {
36
91
  "id": "test-connection",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@invoiceleaf/integration-smtp-mail",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "SMTP + IMAP integration for InvoiceLeaf: send emails and crawl PDF attachments for import",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -22,9 +22,8 @@
22
22
  "author": "InvoiceLeaf <support@invoiceleaf.com>",
23
23
  "license": "MIT",
24
24
  "peerDependencies": {
25
- "@invoiceleaf/integration-sdk": "^1.5.0"
25
+ "@invoiceleaf/integration-sdk": "^1.6.0"
26
26
  },
27
- "dependencies": {},
28
27
  "devDependencies": {
29
28
  "@invoiceleaf/integration-sdk": "file:../../integration-sdk",
30
29
  "@types/node": "^22.10.0",