@n8n/imap 0.25.0 → 0.26.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.
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.attachmentParts = exports.bodyPart = void 0;
4
+ exports.getParts = getParts;
5
+ function getParts(struct, parts = []) {
6
+ if (!Array.isArray(struct))
7
+ return parts;
8
+ for (const entry of struct) {
9
+ if (Array.isArray(entry))
10
+ getParts(entry, parts);
11
+ else if (entry !== null && typeof entry === 'object' && 'partID' in entry) {
12
+ parts.push(entry);
13
+ }
14
+ }
15
+ return parts;
16
+ }
17
+ const bodyPart = (parts, subtype) => parts.find((part) => part.type?.toUpperCase() === 'TEXT' && part.subtype?.toUpperCase() === subtype.toUpperCase());
18
+ exports.bodyPart = bodyPart;
19
+ const attachmentParts = (parts) => parts.filter((part) => part.disposition?.type?.toUpperCase() === 'ATTACHMENT');
20
+ exports.attachmentParts = attachmentParts;
21
+ //# sourceMappingURL=message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":";;;;AAGA,kBAAyB,MAAe,EAAE,KAAK,GAAkB,EAAE;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAEzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC3E,KAAK,CAAC,IAAI,CAAC,KAAoB,CAAC,CAAC;QAClC,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAEM,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAE,OAAe,EAA2B,EAAE,CAC1F,KAAK,CAAC,IAAI,CACT,CAAC,IAAI,EAAE,EAAE,CACR,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CAC7F,CAAC;AAJU,QAAA,QAAQ,GAAR,QAAQ,CAIlB;AAEI,MAAM,eAAe,GAAG,CAAC,KAAoB,EAAiB,EAAE,CACtE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,YAAY,CAAC,CAAC;AADnE,QAAA,eAAe,GAAf,eAAe,CACoD"}
package/dist/part-data.js CHANGED
@@ -38,6 +38,14 @@ const iconvlite = __importStar(require("iconv-lite"));
38
38
  const qp = __importStar(require("quoted-printable"));
39
39
  const utf8 = __importStar(require("utf8"));
40
40
  const uudecode_1 = require("./uudecode");
41
+ const asUtf8 = (decoded) => {
42
+ try {
43
+ return utf8.decode(decoded);
44
+ }
45
+ catch {
46
+ return decoded;
47
+ }
48
+ };
41
49
  class PartData {
42
50
  constructor(buffer) {
43
51
  this.buffer = buffer;
@@ -73,8 +81,8 @@ class Base64PartData extends PartData {
73
81
  exports.Base64PartData = Base64PartData;
74
82
  class QuotedPrintablePartData extends PartData {
75
83
  constructor(data, charset) {
76
- const decoded = charset?.toUpperCase() === 'UTF-8' ? utf8.decode(qp.decode(data)) : qp.decode(data);
77
- super(Buffer.from(decoded));
84
+ const decoded = qp.decode(data);
85
+ super(Buffer.from(charset?.toUpperCase() === 'UTF-8' ? asUtf8(decoded) : decoded));
78
86
  }
79
87
  }
80
88
  exports.QuotedPrintablePartData = QuotedPrintablePartData;
@@ -90,7 +98,7 @@ exports.SevenBitPartData = SevenBitPartData;
90
98
  class BinaryPartData extends PartData {
91
99
  constructor(data, charset = 'utf-8') {
92
100
  super(Buffer.from(data));
93
- this.charset = charset;
101
+ this.charset = iconvlite.encodingExists(charset) ? charset : 'utf-8';
94
102
  }
95
103
  toString() {
96
104
  return iconvlite.decode(this.buffer, this.charset);
@@ -1 +1 @@
1
- {"version":3,"file":"part-data.js","sourceRoot":"","sources":["../src/part-data.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAY,SAAS,uCAAmB;AACxC,MAAY,EAAE,6CAAyB;AACvC,MAAY,IAAI,iCAAa;AAE7B,yCAAsC;AAEtC;IACC,YAAqB,MAAc;sBAAd,MAAM;IAAW,CAAC;IAEvC,QAAQ;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAY,EAAE,QAAgB,EAAE,OAAgB;QAC/D,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;YACrC,OAAO,IAAI,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACzB,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClD,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC7B,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAGD,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,QAAQ,CAAC,CAAC;IACjD,CAAC;CACD;;AAED,oBAA4B,SAAQ,QAAQ;IAC3C,YAAY,IAAY;QACvB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACpC,CAAC;CACD;;AAED,6BAAqC,SAAQ,QAAQ;IACpD,YAAY,IAAY,EAAE,OAAgB;QACzC,MAAM,OAAO,GACZ,OAAO,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrF,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7B,CAAC;CACD;;AAED,sBAA8B,SAAQ,QAAQ;IAC7C,YAAY,IAAY;QACvB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,QAAQ;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;CACD;;AAED,oBAA4B,SAAQ,QAAQ;IAC3C,YACC,IAAY,EACH,OAAO,GAAW,OAAO;QAElC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;uBAFhB,OAAO;IAGjB,CAAC;IAED,QAAQ;QACP,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;CACD;;AAED,uBAA+B,SAAQ,QAAQ;IAC9C,YAAY,IAAY;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAA,mBAAQ,EAAC,MAAM,CAAC,CAAC,CAAC;IACzB,CAAC;CACD"}
1
+ {"version":3,"file":"part-data.js","sourceRoot":"","sources":["../src/part-data.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,13 +1,4 @@
1
- import type { Config, ImapMessageBodyInfo, ImapMessageAttributes } from 'imap';
2
- export interface ImapSimpleOptions {
3
- imap: Config;
4
- onMail?: ((numNewMail: number) => void) | undefined;
5
- onExpunge?: ((seqNo: number) => void) | undefined;
6
- onUpdate?: ((seqNo: number, info: {
7
- num: number | undefined;
8
- text: unknown;
9
- }) => void) | undefined;
10
- }
1
+ import type { ImapMessageBodyInfo, ImapMessageAttributes } from 'imap';
11
2
  export interface MessagePart {
12
3
  partID: string;
13
4
  encoding: 'BASE64' | 'QUOTED-PRINTABLE' | '7BIT' | '8BIT' | 'BINARY' | 'UUENCODE' | null;
@@ -18,6 +9,9 @@ export interface MessagePart {
18
9
  };
19
10
  disposition?: {
20
11
  type: string;
12
+ params?: {
13
+ filename?: string;
14
+ };
21
15
  };
22
16
  }
23
17
  export interface MessageBodyPart extends ImapMessageBodyInfo {
package/package.json CHANGED
@@ -1,30 +1,31 @@
1
1
  {
2
2
  "name": "@n8n/imap",
3
- "version": "0.25.0",
3
+ "version": "0.26.0",
4
4
  "main": "dist/index.js",
5
5
  "module": "src/index.ts",
6
6
  "types": "dist/index.d.ts",
7
7
  "files": [
8
8
  "dist/**/*",
9
- "LICENSE_EE.md",
10
- "LICENSE.md"
9
+ "LICENSE.md",
10
+ "LICENSE_EE.md"
11
11
  ],
12
12
  "dependencies": {
13
+ "@n8n/utils": "1.48.0",
13
14
  "iconv-lite": "0.6.3",
14
15
  "imap": "0.8.19",
15
16
  "quoted-printable": "1.0.1",
16
17
  "utf8": "3.0.0"
17
18
  },
18
19
  "devDependencies": {
20
+ "@n8n/typescript-config": "1.12.0",
21
+ "@n8n/vitest-config": "1.22.0",
19
22
  "@types/imap": "^0.8.40",
20
23
  "@types/quoted-printable": "^1.0.2",
21
24
  "@types/utf8": "^3.0.3",
22
25
  "typescript": "7.0.2",
23
26
  "vite": "^8.0.2",
24
27
  "vitest": "^4.1.9",
25
- "vitest-mock-extended": "^3.1.0",
26
- "@n8n/typescript-config": "1.9.0",
27
- "@n8n/vitest-config": "1.19.0"
28
+ "vitest-mock-extended": "^3.1.0"
28
29
  },
29
30
  "license": "SEE LICENSE IN LICENSE.md",
30
31
  "homepage": "https://n8n.io",