@nocobase/plugin-workflow-mailer 2.4.0-alpha.1 → 2.4.0-alpha.11

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 (187) hide show
  1. package/dist/externalVersion.js +6 -6
  2. package/dist/node_modules/joi/dist/joi-browser.min.js +1 -1
  3. package/dist/node_modules/joi/lib/index.js +1 -1
  4. package/dist/node_modules/joi/lib/messages.js +35 -6
  5. package/dist/node_modules/joi/lib/types/keys.js +18 -1
  6. package/dist/node_modules/joi/lib/types/link.js +18 -2
  7. package/dist/node_modules/joi/lib/types/string.js +2 -2
  8. package/dist/node_modules/joi/package.json +1 -1
  9. package/dist/node_modules/nodemailer/dist/cjs/addressparser/index.d.ts +59 -0
  10. package/dist/node_modules/nodemailer/dist/cjs/addressparser/index.js +790 -0
  11. package/dist/node_modules/nodemailer/dist/cjs/base64/index.d.ts +36 -0
  12. package/dist/node_modules/nodemailer/dist/cjs/base64/index.js +119 -0
  13. package/dist/node_modules/nodemailer/dist/cjs/dkim/index.d.ts +52 -0
  14. package/dist/node_modules/nodemailer/dist/cjs/dkim/index.js +228 -0
  15. package/dist/node_modules/nodemailer/dist/cjs/dkim/message-parser.d.ts +48 -0
  16. package/dist/node_modules/nodemailer/dist/cjs/dkim/message-parser.js +180 -0
  17. package/dist/node_modules/nodemailer/dist/cjs/dkim/relaxed-body.d.ts +36 -0
  18. package/dist/node_modules/nodemailer/dist/cjs/dkim/relaxed-body.js +148 -0
  19. package/dist/node_modules/nodemailer/dist/cjs/dkim/sign.d.ts +52 -0
  20. package/dist/node_modules/nodemailer/dist/cjs/dkim/sign.js +165 -0
  21. package/dist/node_modules/nodemailer/dist/cjs/errors.d.ts +96 -0
  22. package/dist/node_modules/nodemailer/dist/cjs/errors.js +70 -0
  23. package/dist/node_modules/nodemailer/dist/cjs/fetch/cookies.d.ts +107 -0
  24. package/dist/node_modules/nodemailer/dist/cjs/fetch/cookies.js +282 -0
  25. package/dist/node_modules/nodemailer/dist/cjs/fetch/index.d.ts +65 -0
  26. package/dist/node_modules/nodemailer/dist/cjs/fetch/index.js +384 -0
  27. package/dist/node_modules/nodemailer/dist/cjs/json-transport/index.d.ts +64 -0
  28. package/dist/node_modules/nodemailer/dist/cjs/json-transport/index.js +99 -0
  29. package/dist/node_modules/nodemailer/dist/cjs/mail-composer/index.d.ts +174 -0
  30. package/dist/node_modules/nodemailer/dist/cjs/mail-composer/index.js +613 -0
  31. package/dist/node_modules/nodemailer/dist/cjs/mailer/index.d.ts +237 -0
  32. package/dist/node_modules/nodemailer/dist/cjs/mailer/index.js +415 -0
  33. package/dist/node_modules/nodemailer/dist/cjs/mailer/mail-message.d.ts +97 -0
  34. package/dist/node_modules/nodemailer/dist/cjs/mailer/mail-message.js +342 -0
  35. package/dist/node_modules/nodemailer/dist/cjs/mime-funcs/index.d.ts +161 -0
  36. package/dist/node_modules/nodemailer/dist/cjs/mime-funcs/index.js +787 -0
  37. package/dist/node_modules/nodemailer/dist/cjs/mime-funcs/mime-types.d.ts +2 -0
  38. package/dist/node_modules/nodemailer/dist/cjs/mime-funcs/mime-types.js +2103 -0
  39. package/dist/node_modules/nodemailer/dist/cjs/mime-node/index.d.ts +333 -0
  40. package/dist/node_modules/nodemailer/dist/cjs/mime-node/index.js +1493 -0
  41. package/dist/node_modules/nodemailer/dist/cjs/mime-node/last-newline.d.ts +5 -0
  42. package/dist/node_modules/nodemailer/dist/cjs/mime-node/last-newline.js +32 -0
  43. package/dist/node_modules/nodemailer/dist/cjs/mime-node/le-unix.d.ts +9 -0
  44. package/dist/node_modules/nodemailer/dist/cjs/mime-node/le-unix.js +40 -0
  45. package/dist/node_modules/nodemailer/dist/cjs/mime-node/le-windows.d.ts +10 -0
  46. package/dist/node_modules/nodemailer/dist/cjs/mime-node/le-windows.js +47 -0
  47. package/dist/node_modules/nodemailer/dist/cjs/nodemailer.d.ts +124 -0
  48. package/dist/node_modules/nodemailer/dist/cjs/nodemailer.js +1 -0
  49. package/dist/node_modules/nodemailer/dist/cjs/package-info.d.ts +3 -0
  50. package/dist/node_modules/nodemailer/dist/cjs/package-info.js +7 -0
  51. package/dist/node_modules/nodemailer/dist/cjs/package.json +3 -0
  52. package/dist/node_modules/nodemailer/dist/cjs/punycode/index.d.ts +73 -0
  53. package/dist/node_modules/nodemailer/{lib → dist/cjs}/punycode/index.js +63 -112
  54. package/dist/node_modules/nodemailer/dist/cjs/qp/index.d.ts +32 -0
  55. package/dist/node_modules/nodemailer/dist/cjs/qp/index.js +207 -0
  56. package/dist/node_modules/nodemailer/dist/cjs/sendmail-transport/index.d.ts +69 -0
  57. package/dist/node_modules/nodemailer/dist/cjs/sendmail-transport/index.js +210 -0
  58. package/dist/node_modules/nodemailer/dist/cjs/ses-transport/index.d.ts +112 -0
  59. package/dist/node_modules/nodemailer/dist/cjs/ses-transport/index.js +252 -0
  60. package/dist/node_modules/nodemailer/dist/cjs/shared/index.d.ts +260 -0
  61. package/dist/node_modules/nodemailer/dist/cjs/shared/index.js +680 -0
  62. package/dist/node_modules/nodemailer/dist/cjs/shared/objects.d.ts +23 -0
  63. package/dist/node_modules/nodemailer/dist/cjs/shared/objects.js +43 -0
  64. package/dist/node_modules/nodemailer/dist/cjs/shared/url.d.ts +21 -0
  65. package/dist/node_modules/nodemailer/dist/cjs/shared/url.js +255 -0
  66. package/dist/node_modules/nodemailer/dist/cjs/smtp-connection/data-stream.d.ts +15 -0
  67. package/dist/node_modules/nodemailer/dist/cjs/smtp-connection/data-stream.js +108 -0
  68. package/dist/node_modules/nodemailer/dist/cjs/smtp-connection/http-proxy-client.d.ts +47 -0
  69. package/dist/node_modules/nodemailer/dist/cjs/smtp-connection/http-proxy-client.js +189 -0
  70. package/dist/node_modules/nodemailer/dist/cjs/smtp-connection/index.d.ts +416 -0
  71. package/dist/node_modules/nodemailer/dist/cjs/smtp-connection/index.js +1837 -0
  72. package/dist/node_modules/nodemailer/dist/cjs/smtp-pool/index.d.ts +133 -0
  73. package/dist/node_modules/nodemailer/dist/cjs/smtp-pool/index.js +569 -0
  74. package/dist/node_modules/nodemailer/dist/cjs/smtp-pool/pool-resource.d.ts +62 -0
  75. package/dist/node_modules/nodemailer/dist/cjs/smtp-pool/pool-resource.js +257 -0
  76. package/dist/node_modules/nodemailer/dist/cjs/smtp-transport/index.d.ts +156 -0
  77. package/dist/node_modules/nodemailer/dist/cjs/smtp-transport/index.js +371 -0
  78. package/dist/node_modules/nodemailer/dist/cjs/stream-transport/index.d.ts +65 -0
  79. package/dist/node_modules/nodemailer/dist/cjs/stream-transport/index.js +146 -0
  80. package/dist/node_modules/nodemailer/dist/cjs/well-known/index.d.ts +35 -0
  81. package/dist/node_modules/nodemailer/dist/cjs/well-known/index.js +41 -0
  82. package/dist/node_modules/nodemailer/dist/cjs/well-known/services.d.ts +2 -0
  83. package/dist/node_modules/nodemailer/dist/cjs/well-known/services.js +674 -0
  84. package/dist/node_modules/nodemailer/dist/cjs/xoauth2/index.d.ts +201 -0
  85. package/dist/node_modules/nodemailer/dist/cjs/xoauth2/index.js +426 -0
  86. package/dist/node_modules/nodemailer/dist/esm/addressparser/index.d.ts +59 -0
  87. package/dist/node_modules/nodemailer/dist/esm/addressparser/index.js +786 -0
  88. package/dist/node_modules/nodemailer/dist/esm/base64/index.d.ts +36 -0
  89. package/dist/node_modules/nodemailer/{lib → dist/esm}/base64/index.js +39 -68
  90. package/dist/node_modules/nodemailer/dist/esm/dkim/index.d.ts +52 -0
  91. package/dist/node_modules/nodemailer/{lib → dist/esm}/dkim/index.js +62 -92
  92. package/dist/node_modules/nodemailer/dist/esm/dkim/message-parser.d.ts +48 -0
  93. package/dist/node_modules/nodemailer/dist/esm/dkim/message-parser.js +176 -0
  94. package/dist/node_modules/nodemailer/dist/esm/dkim/relaxed-body.d.ts +36 -0
  95. package/dist/node_modules/nodemailer/dist/esm/dkim/relaxed-body.js +141 -0
  96. package/dist/node_modules/nodemailer/dist/esm/dkim/sign.d.ts +52 -0
  97. package/dist/node_modules/nodemailer/dist/esm/dkim/sign.js +125 -0
  98. package/dist/node_modules/nodemailer/dist/esm/errors.d.ts +96 -0
  99. package/dist/node_modules/nodemailer/dist/esm/errors.js +67 -0
  100. package/dist/node_modules/nodemailer/dist/esm/fetch/cookies.d.ts +107 -0
  101. package/dist/node_modules/nodemailer/dist/esm/fetch/cookies.js +242 -0
  102. package/dist/node_modules/nodemailer/dist/esm/fetch/index.d.ts +65 -0
  103. package/dist/node_modules/nodemailer/dist/esm/fetch/index.js +344 -0
  104. package/dist/node_modules/nodemailer/dist/esm/json-transport/index.d.ts +64 -0
  105. package/dist/node_modules/nodemailer/dist/esm/json-transport/index.js +62 -0
  106. package/dist/node_modules/nodemailer/dist/esm/mail-composer/index.d.ts +174 -0
  107. package/dist/node_modules/nodemailer/{lib → dist/esm}/mail-composer/index.js +283 -275
  108. package/dist/node_modules/nodemailer/dist/esm/mailer/index.d.ts +237 -0
  109. package/dist/node_modules/nodemailer/{lib → dist/esm}/mailer/index.js +151 -205
  110. package/dist/node_modules/nodemailer/dist/esm/mailer/mail-message.d.ts +97 -0
  111. package/dist/node_modules/nodemailer/{lib → dist/esm}/mailer/mail-message.js +111 -125
  112. package/dist/node_modules/nodemailer/dist/esm/mime-funcs/index.d.ts +161 -0
  113. package/dist/node_modules/nodemailer/dist/esm/mime-funcs/index.js +738 -0
  114. package/dist/node_modules/nodemailer/dist/esm/mime-funcs/mime-types.d.ts +2 -0
  115. package/dist/node_modules/nodemailer/{lib → dist/esm}/mime-funcs/mime-types.js +43 -49
  116. package/dist/node_modules/nodemailer/dist/esm/mime-node/index.d.ts +333 -0
  117. package/dist/node_modules/nodemailer/{lib → dist/esm}/mime-node/index.js +576 -437
  118. package/dist/node_modules/nodemailer/dist/esm/mime-node/last-newline.d.ts +5 -0
  119. package/dist/node_modules/nodemailer/{lib → dist/esm}/mime-node/last-newline.js +4 -10
  120. package/dist/node_modules/nodemailer/dist/esm/mime-node/le-unix.d.ts +9 -0
  121. package/dist/node_modules/nodemailer/{lib → dist/esm}/mime-node/le-unix.js +7 -15
  122. package/dist/node_modules/nodemailer/dist/esm/mime-node/le-windows.d.ts +10 -0
  123. package/dist/node_modules/nodemailer/{lib → dist/esm}/mime-node/le-windows.js +6 -16
  124. package/dist/node_modules/nodemailer/dist/esm/nodemailer.d.ts +124 -0
  125. package/dist/node_modules/nodemailer/dist/esm/nodemailer.js +166 -0
  126. package/dist/node_modules/nodemailer/dist/esm/package-info.d.ts +3 -0
  127. package/dist/node_modules/nodemailer/dist/esm/package-info.js +4 -0
  128. package/dist/node_modules/nodemailer/dist/esm/package.json +3 -0
  129. package/dist/node_modules/nodemailer/dist/esm/punycode/index.d.ts +73 -0
  130. package/dist/node_modules/nodemailer/dist/esm/punycode/index.js +405 -0
  131. package/dist/node_modules/nodemailer/dist/esm/qp/index.d.ts +32 -0
  132. package/dist/node_modules/nodemailer/{lib → dist/esm}/qp/index.js +59 -77
  133. package/dist/node_modules/nodemailer/dist/esm/sendmail-transport/index.d.ts +69 -0
  134. package/dist/node_modules/nodemailer/dist/esm/sendmail-transport/index.js +170 -0
  135. package/dist/node_modules/nodemailer/dist/esm/ses-transport/index.d.ts +112 -0
  136. package/dist/node_modules/nodemailer/dist/esm/ses-transport/index.js +212 -0
  137. package/dist/node_modules/nodemailer/dist/esm/shared/index.d.ts +260 -0
  138. package/dist/node_modules/nodemailer/dist/esm/shared/index.js +631 -0
  139. package/dist/node_modules/nodemailer/dist/esm/shared/objects.d.ts +23 -0
  140. package/dist/node_modules/nodemailer/dist/esm/shared/objects.js +38 -0
  141. package/dist/node_modules/nodemailer/dist/esm/shared/url.d.ts +21 -0
  142. package/dist/node_modules/nodemailer/dist/esm/shared/url.js +214 -0
  143. package/dist/node_modules/nodemailer/dist/esm/smtp-connection/data-stream.d.ts +15 -0
  144. package/dist/node_modules/nodemailer/dist/esm/smtp-connection/data-stream.js +103 -0
  145. package/dist/node_modules/nodemailer/dist/esm/smtp-connection/http-proxy-client.d.ts +47 -0
  146. package/dist/node_modules/nodemailer/dist/esm/smtp-connection/http-proxy-client.js +149 -0
  147. package/dist/node_modules/nodemailer/dist/esm/smtp-connection/index.d.ts +416 -0
  148. package/dist/node_modules/nodemailer/dist/esm/smtp-connection/index.js +1797 -0
  149. package/dist/node_modules/nodemailer/dist/esm/smtp-pool/index.d.ts +133 -0
  150. package/dist/node_modules/nodemailer/{lib → dist/esm}/smtp-pool/index.js +195 -314
  151. package/dist/node_modules/nodemailer/dist/esm/smtp-pool/pool-resource.d.ts +62 -0
  152. package/dist/node_modules/nodemailer/{lib → dist/esm}/smtp-pool/pool-resource.js +70 -107
  153. package/dist/node_modules/nodemailer/dist/esm/smtp-transport/index.d.ts +156 -0
  154. package/dist/node_modules/nodemailer/dist/esm/smtp-transport/index.js +331 -0
  155. package/dist/node_modules/nodemailer/dist/esm/stream-transport/index.d.ts +65 -0
  156. package/dist/node_modules/nodemailer/dist/esm/stream-transport/index.js +106 -0
  157. package/dist/node_modules/nodemailer/dist/esm/well-known/index.d.ts +35 -0
  158. package/dist/node_modules/nodemailer/{lib → dist/esm}/well-known/index.js +12 -23
  159. package/dist/node_modules/nodemailer/dist/esm/well-known/services.d.ts +2 -0
  160. package/dist/node_modules/nodemailer/dist/esm/well-known/services.js +671 -0
  161. package/dist/node_modules/nodemailer/dist/esm/xoauth2/index.d.ts +201 -0
  162. package/dist/node_modules/nodemailer/dist/esm/xoauth2/index.js +386 -0
  163. package/dist/node_modules/nodemailer/dist/well-known/services.json +640 -0
  164. package/dist/node_modules/nodemailer/package.json +1 -1
  165. package/package.json +4 -4
  166. package/dist/node_modules/nodemailer/.gitattributes +0 -6
  167. package/dist/node_modules/nodemailer/.ncurc.js +0 -7
  168. package/dist/node_modules/nodemailer/.prettierrc.js +0 -8
  169. package/dist/node_modules/nodemailer/lib/addressparser/index.js +0 -313
  170. package/dist/node_modules/nodemailer/lib/dkim/message-parser.js +0 -155
  171. package/dist/node_modules/nodemailer/lib/dkim/relaxed-body.js +0 -154
  172. package/dist/node_modules/nodemailer/lib/dkim/sign.js +0 -117
  173. package/dist/node_modules/nodemailer/lib/fetch/cookies.js +0 -281
  174. package/dist/node_modules/nodemailer/lib/fetch/index.js +0 -274
  175. package/dist/node_modules/nodemailer/lib/json-transport/index.js +0 -82
  176. package/dist/node_modules/nodemailer/lib/mime-funcs/index.js +0 -625
  177. package/dist/node_modules/nodemailer/lib/nodemailer.js +0 -1
  178. package/dist/node_modules/nodemailer/lib/sendmail-transport/index.js +0 -210
  179. package/dist/node_modules/nodemailer/lib/ses-transport/index.js +0 -349
  180. package/dist/node_modules/nodemailer/lib/shared/index.js +0 -688
  181. package/dist/node_modules/nodemailer/lib/smtp-connection/data-stream.js +0 -108
  182. package/dist/node_modules/nodemailer/lib/smtp-connection/http-proxy-client.js +0 -143
  183. package/dist/node_modules/nodemailer/lib/smtp-connection/index.js +0 -1825
  184. package/dist/node_modules/nodemailer/lib/smtp-transport/index.js +0 -416
  185. package/dist/node_modules/nodemailer/lib/stream-transport/index.js +0 -135
  186. package/dist/node_modules/nodemailer/lib/well-known/services.json +0 -343
  187. package/dist/node_modules/nodemailer/lib/xoauth2/index.js +0 -376
@@ -0,0 +1,333 @@
1
+ import { type Duplex, type Readable, type TransformOptions, type Writable } from 'node:stream';
2
+ import type { NodemailerError } from '../errors.js';
3
+ import type { OutgoingHttpHeaders } from 'node:http';
4
+ /**
5
+ * Options for a MimeNode
6
+ */
7
+ export interface MimeNodeOptions {
8
+ /** root node for this tree */
9
+ rootNode?: MimeNode | undefined;
10
+ /** immediate parent for this node */
11
+ parentNode?: MimeNode | undefined;
12
+ /** filename for an attachment node */
13
+ filename?: string | undefined;
14
+ /** shared part of the unique multipart boundary */
15
+ baseBoundary?: string | undefined;
16
+ /** prefix for the generated multipart boundaries, defaults to '--_NmP' */
17
+ boundaryPrefix?: string | undefined;
18
+ /** If true, do not exclude Bcc from the generated headers */
19
+ keepBcc?: boolean | undefined;
20
+ /** method to normalize header keys for custom caseing */
21
+ normalizeHeaderKey?: ((key: string, value: string) => string) | undefined;
22
+ /** either 'Q' (the default) or 'B' */
23
+ textEncoding?: string | undefined;
24
+ /** Hostname for default message-id values */
25
+ hostname?: string | undefined;
26
+ /** If set to 'win' then uses \r\n, if 'linux' then \n. If not set (or `raw` is used) then newlines are kept as is */
27
+ newline?: string | undefined;
28
+ /** Reject content that points to a file path, for this node and every node below it */
29
+ disableFileAccess?: boolean | undefined;
30
+ /** Reject content that points to a URL, for this node and every node below it */
31
+ disableUrlAccess?: boolean | undefined;
32
+ }
33
+ /**
34
+ * An address object as accepted in address headers and produced by getAddresses. Either a
35
+ * mailbox with an address or a group holding a list of addresses
36
+ */
37
+ export interface MimeNodeAddress {
38
+ name?: string | undefined;
39
+ address?: string | undefined;
40
+ group?: MimeNodeAddress[] | undefined;
41
+ }
42
+ /**
43
+ * Addresses as accepted by address headers and envelope fields: an address string, an
44
+ * address object, or an array of these, nested arrays included
45
+ */
46
+ export type MimeNodeAddressInput = string | MimeNodeAddress | MimeNodeAddressInput[];
47
+ /**
48
+ * A header value object. When `prepared` is set the value is emitted as is, without
49
+ * encoding, and folded only if `foldLines` is set as well
50
+ */
51
+ export interface MimeNodePreparedHeaderValue {
52
+ value?: unknown;
53
+ prepared?: boolean | undefined;
54
+ foldLines?: boolean | undefined;
55
+ }
56
+ /**
57
+ * The values a header can hold: a string, a number, a Date (for the Date header), address
58
+ * objects (for the address headers), a prepared value object, or a list of these
59
+ */
60
+ export type MimeNodeHeaderValue = string | number | boolean | Date | MimeNodeAddress | MimeNodePreparedHeaderValue | MimeNodeHeaderValue[] | null | undefined;
61
+ /**
62
+ * A single header, the shape the headers are stored in and one of the list forms
63
+ * setHeader and addHeader accept
64
+ */
65
+ export interface MimeNodeHeader {
66
+ key: string;
67
+ value: MimeNodeHeaderValue;
68
+ }
69
+ /**
70
+ * Several headers keyed by header name
71
+ */
72
+ export interface MimeNodeHeaderMap {
73
+ [key: string]: MimeNodeHeaderValue;
74
+ }
75
+ /**
76
+ * Several headers at once, as accepted by setHeader and addHeader: a single {key, value}
77
+ * pair, a list of them, or an object keyed by header name
78
+ */
79
+ export type MimeNodeHeaders = MimeNodeHeader | MimeNodeHeader[] | MimeNodeHeaderMap;
80
+ /**
81
+ * A content descriptor object, see setContent. Points to the content instead of carrying it
82
+ */
83
+ export interface MimeNodeContentObject {
84
+ /** File path to read the content from */
85
+ path?: string | undefined;
86
+ /** URL to fetch the content from */
87
+ href?: string | undefined;
88
+ /** Request headers for a URL fetch */
89
+ httpHeaders?: OutgoingHttpHeaders | undefined;
90
+ /** TLS settings for a URL fetch, see nmfetch */
91
+ tls?: {
92
+ [key: string]: any;
93
+ } | undefined;
94
+ }
95
+ /**
96
+ * Body content as accepted by setContent and setRaw: a string, a Buffer, a readable stream
97
+ * or an object pointing to the content
98
+ */
99
+ export type MimeNodeContent = string | Buffer | Readable | MimeNodeContentObject;
100
+ /**
101
+ * SMTP envelope as returned by getEnvelope. Custom fields of an envelope set with
102
+ * setEnvelope are carried along
103
+ */
104
+ export interface MimeNodeEnvelope {
105
+ from: string | false;
106
+ to: string[];
107
+ [key: string]: unknown;
108
+ }
109
+ /**
110
+ * Envelope as accepted by setEnvelope. Recipients are collected from to, cc and bcc, any
111
+ * other field is copied to the envelope as is. A `from` of false is the null sender of a
112
+ * bounce message, it is sent as MAIL FROM:<>
113
+ */
114
+ export interface MimeNodeEnvelopeInput {
115
+ from?: MimeNodeAddressInput | false | undefined;
116
+ to?: MimeNodeAddressInput | undefined;
117
+ cc?: MimeNodeAddressInput | undefined;
118
+ bcc?: MimeNodeAddressInput | undefined;
119
+ [key: string]: unknown;
120
+ }
121
+ /**
122
+ * Parsed address headers as returned by getAddresses, keyed by lowercase header name
123
+ */
124
+ export interface MimeNodeAddresses {
125
+ from?: MimeNodeAddress[] | undefined;
126
+ sender?: MimeNodeAddress[] | undefined;
127
+ 'reply-to'?: MimeNodeAddress[] | undefined;
128
+ to?: MimeNodeAddress[] | undefined;
129
+ cc?: MimeNodeAddress[] | undefined;
130
+ bcc?: MimeNodeAddress[] | undefined;
131
+ }
132
+ /**
133
+ * Options for createReadStream. Handed to the PassThrough the message is written to and to
134
+ * the base64 / quoted-printable encoders, which read `lineLength` from it
135
+ */
136
+ export interface MimeNodeStreamOptions extends TransformOptions {
137
+ /** Maximum line length for base64 and quoted-printable bodies, false disables wrapping */
138
+ lineLength?: number | false | undefined;
139
+ }
140
+ /**
141
+ * A transform stream the message is piped through, or a function returning one
142
+ */
143
+ export type MimeNodeTransform = Duplex | (() => Duplex);
144
+ /**
145
+ * A post process function, takes the message stream and returns the stream to expose instead
146
+ */
147
+ export type MimeNodeProcessFunc = (input: Readable) => Readable;
148
+ /**
149
+ * Callback for build
150
+ */
151
+ export type MimeNodeBuildCallback = (err: NodemailerError | null, message: Buffer) => void;
152
+ /**
153
+ * Creates a new mime tree node. Assumes 'multipart/*' as the content type
154
+ * if it is a branch, anything else counts as leaf. If rootNode is missing from
155
+ * the options, assumes this is the root.
156
+ *
157
+ * @param contentType Define the content type for the node. Can be left blank for attachments (derived from filename)
158
+ * @param [options] optional options
159
+ * @param [options.rootNode] root node for this tree
160
+ * @param [options.parentNode] immediate parent for this node
161
+ * @param [options.filename] filename for an attachment node
162
+ * @param [options.baseBoundary] shared part of the unique multipart boundary
163
+ * @param [options.keepBcc] If true, do not exclude Bcc from the generated headers
164
+ * @param [options.normalizeHeaderKey] method to normalize header keys for custom caseing
165
+ * @param [options.textEncoding] either 'Q' (the default) or 'B'
166
+ */
167
+ declare class MimeNode {
168
+ nodeCounter: number;
169
+ baseBoundary: string;
170
+ boundaryPrefix: string;
171
+ disableFileAccess: boolean;
172
+ disableUrlAccess: boolean;
173
+ normalizeHeaderKey: MimeNodeOptions['normalizeHeaderKey'];
174
+ date: Date | null;
175
+ rootNode: MimeNode;
176
+ keepBcc: boolean;
177
+ textEncoding: string;
178
+ parentNode: MimeNode | undefined;
179
+ hostname: string | undefined;
180
+ newline: string | undefined;
181
+ childNodes: MimeNode[];
182
+ /** Filename for this node. Useful with attachments */
183
+ filename?: string | undefined;
184
+ /** Body content, or the error a content stream emitted before it was read */
185
+ content?: MimeNodeContent | Error | undefined;
186
+ /** Lowercase content type, set when the headers are built */
187
+ contentType?: string | undefined;
188
+ /** Multipart subtype, false for a non-multipart node, set when the headers are built */
189
+ multipart?: string | false | undefined;
190
+ /** Multipart boundary, false for a non-multipart node, set when the headers are built */
191
+ boundary?: string | false | undefined;
192
+ constructor(contentType?: string | false, options?: MimeNodeOptions);
193
+ /**
194
+ * Creates and appends a child node.Arguments provided are passed to MimeNode constructor
195
+ *
196
+ * @param [contentType] Optional content type
197
+ * @param [options] Optional options object
198
+ * @return Created node object
199
+ */
200
+ createChild(contentType?: string | false | MimeNodeOptions, options?: MimeNodeOptions): MimeNode;
201
+ /**
202
+ * Appends an existing node to the mime tree. Removes the node from an existing
203
+ * tree if needed
204
+ *
205
+ * @param childNode node to be appended
206
+ * @return Appended node object
207
+ */
208
+ appendChild(childNode: MimeNode): MimeNode;
209
+ /**
210
+ * Replaces current node with another node
211
+ *
212
+ * @param node Replacement node
213
+ * @return Replacement node
214
+ */
215
+ replace(node: MimeNode): MimeNode;
216
+ /**
217
+ * Removes current node from the mime tree
218
+ *
219
+ * @return removed node
220
+ */
221
+ remove(): MimeNode | undefined;
222
+ /**
223
+ * Sets a header value. If the value for selected key exists, it is overwritten.
224
+ * You can set multiple values as well by using [{key:'', value:''}] or
225
+ * {key: 'value'} as the first argument.
226
+ *
227
+ * @param key Header key or a list of key value pairs
228
+ * @param value Header value
229
+ * @return current node
230
+ */
231
+ setHeader(key: string | MimeNodeHeaders, value?: MimeNodeHeaderValue): this;
232
+ /**
233
+ * Adds a header value. If the value for selected key exists, the value is appended
234
+ * as a new field and old one is not touched.
235
+ * You can set multiple values as well by using [{key:'', value:''}] or
236
+ * {key: 'value'} as the first argument.
237
+ *
238
+ * @param key Header key or a list of key value pairs
239
+ * @param value Header value
240
+ * @return current node
241
+ */
242
+ addHeader(key: string | MimeNodeHeaders, value?: MimeNodeHeaderValue): this;
243
+ /**
244
+ * Retrieves the first mathcing value of a selected key
245
+ *
246
+ * @param key Key to search for
247
+ * @retun Value for the key
248
+ */
249
+ getHeader(key: string): MimeNodeHeaderValue;
250
+ /**
251
+ * Sets body content for current node. If the value is a string, charset is added automatically
252
+ * to Content-Type (if it is text/*). If the value is a Buffer, you need to specify
253
+ * the charset yourself
254
+ *
255
+ * @param content Body content
256
+ * @return current node
257
+ */
258
+ setContent(content: MimeNodeContent): this;
259
+ build(): Promise<Buffer>;
260
+ build(callback: MimeNodeBuildCallback): void;
261
+ getTransferEncoding(): string | false;
262
+ /**
263
+ * Builds the header block for the mime node. Append \r\n\r\n before writing the content
264
+ *
265
+ * @returns Headers
266
+ */
267
+ buildHeaders(): string;
268
+ /**
269
+ * Streams the rfc2822 message from the current node. If this is a root node,
270
+ * mandatory header fields are set if missing (Date, Message-Id, MIME-Version)
271
+ *
272
+ * @return Compiled message
273
+ */
274
+ createReadStream(options?: MimeNodeStreamOptions): Readable;
275
+ /**
276
+ * Appends a transform stream object to the transforms list. Final output
277
+ * is passed through this stream before exposing
278
+ *
279
+ * @param transform Read-Write stream
280
+ */
281
+ transform(transform: MimeNodeTransform): void;
282
+ /**
283
+ * Appends a post process function. The functon is run after transforms and
284
+ * uses the following syntax
285
+ *
286
+ * processFunc(input) -> outputStream
287
+ *
288
+ * @param processFunc Read-Write stream
289
+ */
290
+ processFunc(processFunc: MimeNodeProcessFunc): void;
291
+ stream(outputStream: Writable, options: MimeNodeStreamOptions, done: (err?: Error | null) => void): void;
292
+ /**
293
+ * Sets envelope to be used instead of the generated one
294
+ *
295
+ * @return SMTP envelope in the form of {from: 'from@example.com', to: ['to@example.com']}
296
+ */
297
+ setEnvelope(envelope: MimeNodeEnvelopeInput): this;
298
+ /**
299
+ * Generates and returns an object with parsed address fields
300
+ *
301
+ * @return Address object
302
+ */
303
+ getAddresses(): MimeNodeAddresses;
304
+ /**
305
+ * Generates and returns SMTP envelope with the sender address and a list of recipients addresses
306
+ *
307
+ * @return SMTP envelope in the form of {from: 'from@example.com', to: ['to@example.com']}
308
+ */
309
+ getEnvelope(): MimeNodeEnvelope;
310
+ /**
311
+ * Returns Message-Id value. If it does not exist, then creates one
312
+ *
313
+ * @return Message-Id value
314
+ */
315
+ messageId(): string;
316
+ /**
317
+ * Sets pregenerated content that will be used as the output of this node
318
+ *
319
+ * @param raw Raw MIME contents
320
+ */
321
+ setRaw(raw: MimeNodeContent): this;
322
+ }
323
+ /**
324
+ * Type aliases in the layout of @types/nodemailer, so `MimeNode.Options` style references keep working
325
+ */
326
+ declare namespace MimeNode {
327
+ type Options = MimeNodeOptions;
328
+ type Addresses = MimeNodeAddresses;
329
+ type Envelope = MimeNodeEnvelope;
330
+ }
331
+ /** The same aliases as module level exports, for `import * as MimeNode` and `import MimeNode = require()` */
332
+ export type { MimeNodeOptions as Options, MimeNodeAddresses as Addresses, MimeNodeEnvelope as Envelope };
333
+ export default MimeNode;