apple-mail-mcp 2.17.8 → 2.17.9

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 (3) hide show
  1. package/build/cli.js +386 -173
  2. package/build/index.js +1000 -407
  3. package/package.json +1 -1
package/build/cli.js CHANGED
@@ -36,9 +36,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
36
36
  mod
37
37
  ));
38
38
 
39
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/punycode/index.js
39
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/punycode/index.js
40
40
  var require_punycode = __commonJS({
41
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/punycode/index.js"(exports, module) {
41
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/punycode/index.js"(exports, module) {
42
42
  "use strict";
43
43
  var maxInt = 2147483647;
44
44
  var base = 36;
@@ -278,9 +278,9 @@ var require_punycode = __commonJS({
278
278
  }
279
279
  });
280
280
 
281
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/shared/url.js
281
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/shared/url.js
282
282
  var require_url = __commonJS({
283
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/shared/url.js"(exports, module) {
283
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/shared/url.js"(exports, module) {
284
284
  "use strict";
285
285
  var urllib = __require("url");
286
286
  var punycode = require_punycode();
@@ -367,9 +367,9 @@ var require_url = __commonJS({
367
367
  }
368
368
  });
369
369
 
370
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/fetch/cookies.js
370
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/fetch/cookies.js
371
371
  var require_cookies = __commonJS({
372
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/fetch/cookies.js"(exports, module) {
372
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/fetch/cookies.js"(exports, module) {
373
373
  "use strict";
374
374
  var urllib = require_url();
375
375
  var SESSION_TIMEOUT = 1800;
@@ -575,12 +575,12 @@ var require_cookies = __commonJS({
575
575
  }
576
576
  });
577
577
 
578
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/package.json
578
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/package.json
579
579
  var require_package = __commonJS({
580
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/package.json"(exports, module) {
580
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/package.json"(exports, module) {
581
581
  module.exports = {
582
582
  name: "nodemailer",
583
- version: "9.0.5",
583
+ version: "9.1.1",
584
584
  description: "Easy as cake e-mail sending from your Node.js applications",
585
585
  main: "lib/nodemailer.js",
586
586
  scripts: {
@@ -607,19 +607,19 @@ var require_package = __commonJS({
607
607
  },
608
608
  homepage: "https://nodemailer.com/",
609
609
  devDependencies: {
610
- "@aws-sdk/client-sesv2": "3.1104.0",
610
+ "@aws-sdk/client-sesv2": "3.1121.0",
611
611
  bunyan: "1.8.15",
612
612
  c8: "12.0.0",
613
- eslint: "10.8.0",
613
+ eslint: "10.9.1",
614
614
  "eslint-config-prettier": "10.1.8",
615
- globals: "17.9.0",
615
+ globals: "17.11.0",
616
616
  libbase64: "1.3.0",
617
- libmime: "5.4.1",
617
+ libmime: "5.4.2",
618
618
  libqp: "2.1.1",
619
619
  prettier: "3.9.6",
620
620
  proxy: "1.0.2",
621
621
  "proxy-test-server": "1.0.0",
622
- "smtp-server": "3.19.2"
622
+ "smtp-server": "3.19.4"
623
623
  },
624
624
  engines: {
625
625
  node: ">=6.0.0"
@@ -628,9 +628,9 @@ var require_package = __commonJS({
628
628
  }
629
629
  });
630
630
 
631
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/errors.js
631
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/errors.js
632
632
  var require_errors = __commonJS({
633
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/errors.js"(exports, module) {
633
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/errors.js"(exports, module) {
634
634
  "use strict";
635
635
  var ERROR_CODES = {
636
636
  // Connection errors
@@ -652,6 +652,7 @@ var require_errors = __commonJS({
652
652
  EOAUTH2: "OAuth2 token generation or refresh error",
653
653
  // Resource errors
654
654
  EMAXLIMIT: "Pool resource limit reached (max messages per connection)",
655
+ EMAXRECIPIENTS: "Recipient count exceeds maxRecipients",
655
656
  // Transport-specific errors
656
657
  ESENDMAIL: "Sendmail command error",
657
658
  ESES: "AWS SES transport error",
@@ -669,9 +670,26 @@ var require_errors = __commonJS({
669
670
  }
670
671
  });
671
672
 
672
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/fetch/index.js
673
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/shared/objects.js
674
+ var require_objects = __commonJS({
675
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/shared/objects.js"(exports, module) {
676
+ "use strict";
677
+ module.exports.isProtoKey = (key) => key === "__proto__";
678
+ module.exports.copyOwnKeys = (target, source, skip) => {
679
+ Object.keys(source || {}).forEach((key) => {
680
+ if (module.exports.isProtoKey(key) || skip && skip(key)) {
681
+ return;
682
+ }
683
+ target[key] = source[key];
684
+ });
685
+ return target;
686
+ };
687
+ }
688
+ });
689
+
690
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/fetch/index.js
673
691
  var require_fetch = __commonJS({
674
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/fetch/index.js"(exports, module) {
692
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/fetch/index.js"(exports, module) {
675
693
  "use strict";
676
694
  var http = __require("http");
677
695
  var https = __require("https");
@@ -682,7 +700,43 @@ var require_fetch = __commonJS({
682
700
  var packageData = require_package();
683
701
  var net = __require("net");
684
702
  var errors = require_errors();
703
+ var { isProtoKey } = require_objects();
685
704
  var MAX_REDIRECTS = 5;
705
+ var TLS_OPTION_KEYS = [
706
+ "ALPNProtocols",
707
+ "ca",
708
+ "cert",
709
+ "checkServerIdentity",
710
+ "ciphers",
711
+ "crl",
712
+ "dhparam",
713
+ "ecdhCurve",
714
+ "honorCipherOrder",
715
+ "key",
716
+ "maxVersion",
717
+ "minVersion",
718
+ "passphrase",
719
+ "pfx",
720
+ "rejectUnauthorized",
721
+ "secureContext",
722
+ "secureOptions",
723
+ "secureProtocol",
724
+ "servername",
725
+ "sessionIdContext",
726
+ "sigalgs"
727
+ ];
728
+ function parseFetchUrl(url) {
729
+ let parsed;
730
+ try {
731
+ parsed = urllib.parse(url);
732
+ } catch (_err) {
733
+ return false;
734
+ }
735
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
736
+ return false;
737
+ }
738
+ return parsed;
739
+ }
686
740
  module.exports = function(url, options) {
687
741
  return nmfetch(url, options);
688
742
  };
@@ -693,14 +747,27 @@ var require_fetch = __commonJS({
693
747
  options.cookies = options.cookies || new Cookies();
694
748
  options.redirects = options.redirects || 0;
695
749
  options.maxRedirects = isNaN(options.maxRedirects) ? MAX_REDIRECTS : options.maxRedirects;
750
+ const fetchRes = options.fetchRes;
751
+ const parsed = parseFetchUrl(url);
752
+ if (!parsed) {
753
+ if (options.body && typeof options.body.destroy === "function") {
754
+ options.body.on("error", () => false);
755
+ options.body.destroy();
756
+ }
757
+ setImmediate(() => {
758
+ const err = new Error("Unsupported protocol for URL " + url);
759
+ err.code = errors.EFETCH;
760
+ err.sourceUrl = url;
761
+ fetchRes.emit("error", err);
762
+ });
763
+ return fetchRes;
764
+ }
696
765
  if (options.cookie) {
697
766
  [].concat(options.cookie || []).forEach((cookie) => {
698
767
  options.cookies.set(cookie, url);
699
768
  });
700
769
  options.cookie = false;
701
770
  }
702
- const fetchRes = options.fetchRes;
703
- const parsed = urllib.parse(url);
704
771
  let method = (options.method || "").toString().trim().toUpperCase() || "GET";
705
772
  let finished = false;
706
773
  let cookies;
@@ -711,6 +778,9 @@ var require_fetch = __commonJS({
711
778
  "user-agent": "nodemailer/" + packageData.version
712
779
  };
713
780
  Object.keys(options.headers || {}).forEach((key) => {
781
+ if (isProtoKey(key.toLowerCase().trim())) {
782
+ return;
783
+ }
714
784
  headers[key.toLowerCase().trim()] = options.headers[key];
715
785
  });
716
786
  if (options.userAgent) {
@@ -781,7 +851,11 @@ var require_fetch = __commonJS({
781
851
  agent: false
782
852
  };
783
853
  if (options.tls) {
784
- Object.assign(reqOptions, options.tls);
854
+ Object.keys(options.tls).forEach((key) => {
855
+ if (TLS_OPTION_KEYS.includes(key)) {
856
+ reqOptions[key] = options.tls[key];
857
+ }
858
+ });
785
859
  }
786
860
  if (parsed.protocol === "https:" && parsed.hostname && parsed.hostname !== reqOptions.host && !net.isIP(parsed.hostname) && !reqOptions.servername) {
787
861
  reqOptions.servername = parsed.hostname;
@@ -848,8 +922,22 @@ var require_fetch = __commonJS({
848
922
  }
849
923
  options.method = "GET";
850
924
  options.body = false;
851
- const redirectUrl = urllib.resolve(url, res.headers.location);
852
- const redirectParsed = urllib.parse(redirectUrl);
925
+ let redirectUrl;
926
+ try {
927
+ redirectUrl = urllib.resolve(url, res.headers.location);
928
+ } catch (_err) {
929
+ redirectUrl = res.headers.location;
930
+ }
931
+ const redirectParsed = parseFetchUrl(redirectUrl);
932
+ if (!redirectParsed) {
933
+ finished = true;
934
+ const err = new Error("Unsupported protocol for URL " + redirectUrl);
935
+ err.code = errors.EFETCH;
936
+ err.sourceUrl = redirectUrl;
937
+ fetchRes.emit("error", err);
938
+ req.abort();
939
+ return;
940
+ }
853
941
  const crossHost = redirectParsed.hostname !== parsed.hostname;
854
942
  const downgrade = parsed.protocol === "https:" && redirectParsed.protocol === "http:";
855
943
  if (options.headers && (crossHost || downgrade)) {
@@ -921,18 +1009,21 @@ var require_fetch = __commonJS({
921
1009
  }
922
1010
  });
923
1011
 
924
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/shared/index.js
1012
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/shared/index.js
925
1013
  var require_shared = __commonJS({
926
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/shared/index.js"(exports, module) {
1014
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/shared/index.js"(exports, module) {
927
1015
  "use strict";
928
1016
  var urllib = require_url();
929
1017
  var util = __require("util");
930
1018
  var fs = __require("fs");
931
1019
  var nmfetch = require_fetch();
932
1020
  var errors = require_errors();
1021
+ var objects = require_objects();
933
1022
  var dns = __require("dns");
934
1023
  var net = __require("net");
935
1024
  var os = __require("os");
1025
+ var isProtoKey = module.exports.isProtoKey = objects.isProtoKey;
1026
+ module.exports.copyOwnKeys = objects.copyOwnKeys;
936
1027
  var DNS_TTL = 5 * 60 * 1e3;
937
1028
  var CACHE_CLEANUP_INTERVAL = 30 * 1e3;
938
1029
  var MAX_CACHE_SIZE = 1e3;
@@ -1201,7 +1292,7 @@ var require_shared = __commonJS({
1201
1292
  } else if (key.indexOf(".") >= 0) {
1202
1293
  return;
1203
1294
  }
1204
- if (!(lKey in obj)) {
1295
+ if (!isProtoKey(lKey) && !(lKey in obj)) {
1205
1296
  obj[lKey] = value;
1206
1297
  }
1207
1298
  });
@@ -1275,7 +1366,7 @@ var require_shared = __commonJS({
1275
1366
  if (sepPos > 0) {
1276
1367
  const key = entry.substring(0, sepPos).trim();
1277
1368
  const value = entry.substring(sepPos + 1).trim();
1278
- if (key) {
1369
+ if (key && !isProtoKey(key)) {
1279
1370
  params[key] = value;
1280
1371
  }
1281
1372
  }
@@ -1335,18 +1426,19 @@ var require_shared = __commonJS({
1335
1426
  }
1336
1427
  callback(null, value);
1337
1428
  });
1338
- } else if (/^https?:\/\//i.test(content.path || content.href)) {
1429
+ } else if (/^data:/i.test(content.path || content.href)) {
1430
+ const parsedDataUri = module.exports.parseDataURI(content.path || content.href);
1431
+ return callback(null, parsedDataUri && parsedDataUri.data ? parsedDataUri.data : Buffer.alloc(0));
1432
+ } else if (content.href || /^https?:\/\//i.test(content.path)) {
1433
+ const url = content.href || content.path;
1339
1434
  if (options.disableUrlAccess) {
1340
1435
  return setImmediate(() => {
1341
- const err = new Error("Url access rejected for " + (content.path || content.href));
1436
+ const err = new Error("Url access rejected for " + url);
1342
1437
  err.code = errors.EURLACCESS;
1343
1438
  callback(err);
1344
1439
  });
1345
1440
  }
1346
- return resolveStream(nmfetch(content.path || content.href, { headers: content.httpHeaders, tls: content.tls }), callback);
1347
- } else if (/^data:/i.test(content.path || content.href)) {
1348
- const parsedDataUri = module.exports.parseDataURI(content.path || content.href);
1349
- return callback(null, parsedDataUri && parsedDataUri.data ? parsedDataUri.data : Buffer.alloc(0));
1441
+ return resolveStream(nmfetch(url, { headers: content.httpHeaders, tls: content.tls }), callback);
1350
1442
  } else if (content.path) {
1351
1443
  if (options.disableFileAccess) {
1352
1444
  return setImmediate(() => {
@@ -1368,8 +1460,11 @@ var require_shared = __commonJS({
1368
1460
  const target = args.shift() || {};
1369
1461
  args.forEach((source) => {
1370
1462
  Object.keys(source || {}).forEach((key) => {
1463
+ if (isProtoKey(key)) {
1464
+ return;
1465
+ }
1371
1466
  if (["tls", "auth"].includes(key) && source[key] && typeof source[key] === "object") {
1372
- target[key] = Object.assign(target[key] || {}, source[key]);
1467
+ target[key] = module.exports.copyOwnKeys(target[key] || {}, source[key]);
1373
1468
  } else {
1374
1469
  target[key] = source[key];
1375
1470
  }
@@ -1464,9 +1559,9 @@ var require_shared = __commonJS({
1464
1559
  }
1465
1560
  });
1466
1561
 
1467
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/mime-funcs/mime-types.js
1562
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/mime-funcs/mime-types.js
1468
1563
  var require_mime_types = __commonJS({
1469
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/mime-funcs/mime-types.js"(exports, module) {
1564
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/mime-funcs/mime-types.js"(exports, module) {
1470
1565
  "use strict";
1471
1566
  var path = __require("path");
1472
1567
  var defaultMimeType = "application/octet-stream";
@@ -3568,9 +3663,9 @@ var require_mime_types = __commonJS({
3568
3663
  }
3569
3664
  });
3570
3665
 
3571
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/base64/index.js
3666
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/base64/index.js
3572
3667
  var require_base64 = __commonJS({
3573
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/base64/index.js"(exports, module) {
3668
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/base64/index.js"(exports, module) {
3574
3669
  "use strict";
3575
3670
  var { Transform } = __require("stream");
3576
3671
  function encode(buffer) {
@@ -3667,9 +3762,9 @@ var require_base64 = __commonJS({
3667
3762
  }
3668
3763
  });
3669
3764
 
3670
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/qp/index.js
3765
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/qp/index.js
3671
3766
  var require_qp = __commonJS({
3672
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/qp/index.js"(exports, module) {
3767
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/qp/index.js"(exports, module) {
3673
3768
  "use strict";
3674
3769
  var { Transform } = __require("stream");
3675
3770
  var QP_RANGES = [
@@ -3831,13 +3926,14 @@ var require_qp = __commonJS({
3831
3926
  }
3832
3927
  });
3833
3928
 
3834
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/mime-funcs/index.js
3929
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/mime-funcs/index.js
3835
3930
  var require_mime_funcs = __commonJS({
3836
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/mime-funcs/index.js"(exports, module) {
3931
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/mime-funcs/index.js"(exports, module) {
3837
3932
  "use strict";
3838
3933
  var base64 = require_base64();
3839
3934
  var qp = require_qp();
3840
3935
  var mimeTypes = require_mime_types();
3936
+ var { isProtoKey } = require_objects();
3841
3937
  module.exports = {
3842
3938
  /**
3843
3939
  * Checks if a value is plaintext string (uses only printable 7bit chars)
@@ -4135,6 +4231,11 @@ var require_mime_funcs = __commonJS({
4135
4231
  value: false,
4136
4232
  params: {}
4137
4233
  };
4234
+ const setParam = (name, value2) => {
4235
+ if (!isProtoKey(name)) {
4236
+ response.params[name] = value2;
4237
+ }
4238
+ };
4138
4239
  let key = false;
4139
4240
  let value = "";
4140
4241
  let type = "value";
@@ -4165,7 +4266,7 @@ var require_mime_funcs = __commonJS({
4165
4266
  if (key === false) {
4166
4267
  response.value = value.trim();
4167
4268
  } else {
4168
- response.params[key] = value.trim();
4269
+ setParam(key, value.trim());
4169
4270
  }
4170
4271
  type = "key";
4171
4272
  value = "";
@@ -4179,16 +4280,20 @@ var require_mime_funcs = __commonJS({
4179
4280
  if (key === false) {
4180
4281
  response.value = value.trim();
4181
4282
  } else {
4182
- response.params[key] = value.trim();
4283
+ setParam(key, value.trim());
4183
4284
  }
4184
4285
  } else if (value.trim()) {
4185
- response.params[value.trim().toLowerCase()] = "";
4286
+ setParam(value.trim().toLowerCase(), "");
4186
4287
  }
4187
4288
  Object.keys(response.params).forEach((key2) => {
4188
4289
  let actualKey, nr, match, value2;
4189
4290
  if (match = key2.match(/(\*(\d+)|\*(\d+)\*|\*)$/)) {
4190
4291
  actualKey = key2.substr(0, match.index);
4191
4292
  nr = Number(match[2] || match[3]) || 0;
4293
+ if (isProtoKey(actualKey)) {
4294
+ delete response.params[key2];
4295
+ return;
4296
+ }
4192
4297
  if (!response.params[actualKey] || typeof response.params[actualKey] !== "object") {
4193
4298
  response.params[actualKey] = {
4194
4299
  charset: false,
@@ -4288,15 +4393,16 @@ var require_mime_funcs = __commonJS({
4288
4393
  */
4289
4394
  splitMimeEncodedString: (str, maxlen) => {
4290
4395
  const lines = [];
4291
- let curLine, match, chr, done;
4396
+ let curLine, fallbackLine, match, chr, done;
4292
4397
  maxlen = Math.max(maxlen || 0, 12);
4293
4398
  while (str.length) {
4294
4399
  curLine = str.substr(0, maxlen);
4295
4400
  if (match = curLine.match(/[=][0-9A-F]?$/i)) {
4296
4401
  curLine = curLine.substr(0, match.index);
4297
4402
  }
4403
+ fallbackLine = curLine.length ? curLine : str.substr(0, maxlen);
4298
4404
  done = false;
4299
- while (!done) {
4405
+ while (!done && curLine.length) {
4300
4406
  done = true;
4301
4407
  if (match = str.substr(curLine.length).match(/^[=]([0-9A-F]{2})/i)) {
4302
4408
  chr = parseInt(match[1], 16);
@@ -4306,9 +4412,10 @@ var require_mime_funcs = __commonJS({
4306
4412
  }
4307
4413
  }
4308
4414
  }
4309
- if (curLine.length) {
4310
- lines.push(curLine);
4415
+ if (!curLine.length) {
4416
+ curLine = fallbackLine;
4311
4417
  }
4418
+ lines.push(curLine);
4312
4419
  str = str.substr(curLine.length);
4313
4420
  }
4314
4421
  return lines;
@@ -4341,9 +4448,9 @@ var require_mime_funcs = __commonJS({
4341
4448
  }
4342
4449
  });
4343
4450
 
4344
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/addressparser/index.js
4451
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/addressparser/index.js
4345
4452
  var require_addressparser = __commonJS({
4346
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/addressparser/index.js"(exports, module) {
4453
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/addressparser/index.js"(exports, module) {
4347
4454
  "use strict";
4348
4455
  function _quoteLocalPart(address) {
4349
4456
  const lastAt = address.lastIndexOf("@");
@@ -4356,6 +4463,41 @@ var require_addressparser = __commonJS({
4356
4463
  }
4357
4464
  return '"' + user.replace(/["\\]/g, "\\$&") + '"@' + address.substr(lastAt + 1);
4358
4465
  }
4466
+ var HAS_WHITESPACE = /\s/;
4467
+ var QUOTED_LOCAL_ADDR = /^("(?:[^"\\]|\\[\s\S])*"@\S+)(?:\s+([\s\S]+))?$/;
4468
+ var ADDR_SPEC = /^[^@\s]+@[^@\s]+$/;
4469
+ var LOOSE_ADDR_SPEC = /^[^@\s]+@\S+$/;
4470
+ function _recoverAddrSpec(data) {
4471
+ if (!HAS_WHITESPACE.test(data.address)) {
4472
+ return;
4473
+ }
4474
+ let address;
4475
+ let rest;
4476
+ const quoted = data.address.match(QUOTED_LOCAL_ADDR);
4477
+ if (quoted) {
4478
+ if (!quoted[2]) {
4479
+ return;
4480
+ }
4481
+ address = quoted[1];
4482
+ rest = [quoted[2]];
4483
+ } else {
4484
+ if (data.address.indexOf('"') >= 0) {
4485
+ return;
4486
+ }
4487
+ const parts = data.address.split(/\s+/);
4488
+ let addrIndex = parts.findIndex((part) => ADDR_SPEC.test(part));
4489
+ if (addrIndex < 0) {
4490
+ addrIndex = parts.findIndex((part) => LOOSE_ADDR_SPEC.test(part));
4491
+ }
4492
+ if (addrIndex < 0) {
4493
+ return;
4494
+ }
4495
+ address = parts.splice(addrIndex, 1)[0];
4496
+ rest = parts;
4497
+ }
4498
+ data.address = address;
4499
+ data.text = [data.text].concat(rest).filter((part) => part).join(" ");
4500
+ }
4359
4501
  function _handleAddress(tokens, depth) {
4360
4502
  let isGroup = false;
4361
4503
  let state = "text";
@@ -4399,7 +4541,9 @@ var require_addressparser = __commonJS({
4399
4541
  if (state === "address") {
4400
4542
  token.value = token.value.replace(/^[^<]*<\s*/, "");
4401
4543
  }
4402
- if (prevToken && prevToken.noBreak && data[state].length) {
4544
+ const parts = data[state];
4545
+ const joins = prevToken && prevToken.noBreak && parts.length && (prevToken.value !== ")" || parts[parts.length - 1].slice(-1) === "@" || token.value.charAt(0) === "@");
4546
+ if (joins) {
4403
4547
  data[state][data[state].length - 1] += token.value;
4404
4548
  if (state === "text" && insideQuotes) {
4405
4549
  data.textWasQuoted[data.textWasQuoted.length - 1] = true;
@@ -4436,7 +4580,7 @@ var require_addressparser = __commonJS({
4436
4580
  } else {
4437
4581
  if (!data.address.length && data.text.length) {
4438
4582
  for (let i = data.text.length - 1; i >= 0; i--) {
4439
- if (!data.textWasQuoted[i] && /^[^@\s]+@[^@\s]+$/.test(data.text[i])) {
4583
+ if (!data.textWasQuoted[i] && ADDR_SPEC.test(data.text[i])) {
4440
4584
  data.address = data.text.splice(i, 1);
4441
4585
  data.textWasQuoted.splice(i, 1);
4442
4586
  break;
@@ -4471,6 +4615,7 @@ var require_addressparser = __commonJS({
4471
4615
  const addressFromQuotedText = !data.address.length && data.textWasQuoted.some((wasQuoted) => wasQuoted);
4472
4616
  data.text = data.text.join(" ");
4473
4617
  data.address = data.address.join(" ");
4618
+ _recoverAddrSpec(data);
4474
4619
  const address = {
4475
4620
  address: data.address || data.text || "",
4476
4621
  name: data.text || data.address || ""
@@ -4617,18 +4762,22 @@ var require_addressparser = __commonJS({
4617
4762
  }
4618
4763
  addresses.forEach((addr) => {
4619
4764
  const handled = _handleAddress(addr, depth);
4620
- if (handled.length) {
4621
- parsedAddresses = parsedAddresses.concat(handled);
4765
+ for (let i = 0; i < handled.length; i++) {
4766
+ parsedAddresses.push(handled[i]);
4622
4767
  }
4623
4768
  });
4624
- for (let i = parsedAddresses.length - 2; i >= 0; i--) {
4769
+ const mergedAddresses = [];
4770
+ for (let i = parsedAddresses.length - 1; i >= 0; i--) {
4625
4771
  const current = parsedAddresses[i];
4626
- const next = parsedAddresses[i + 1];
4627
- if (current.address === "" && current.name && !current.group && next.address && next.name) {
4772
+ const next = mergedAddresses.length ? mergedAddresses[mergedAddresses.length - 1] : null;
4773
+ if (next && current.address === "" && current.name && !current.group && next.address && next.name) {
4628
4774
  next.name = current.name + ", " + next.name;
4629
- parsedAddresses.splice(i, 1);
4775
+ } else {
4776
+ mergedAddresses.push(current);
4630
4777
  }
4631
4778
  }
4779
+ mergedAddresses.reverse();
4780
+ parsedAddresses = mergedAddresses;
4632
4781
  if (options.flatten) {
4633
4782
  const flatAddresses = [];
4634
4783
  const walkAddressList = (list) => {
@@ -4648,9 +4797,9 @@ var require_addressparser = __commonJS({
4648
4797
  }
4649
4798
  });
4650
4799
 
4651
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/mime-node/last-newline.js
4800
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/mime-node/last-newline.js
4652
4801
  var require_last_newline = __commonJS({
4653
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/mime-node/last-newline.js"(exports, module) {
4802
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/mime-node/last-newline.js"(exports, module) {
4654
4803
  "use strict";
4655
4804
  var { Transform } = __require("stream");
4656
4805
  var LastNewline = class extends Transform {
@@ -4681,9 +4830,9 @@ var require_last_newline = __commonJS({
4681
4830
  }
4682
4831
  });
4683
4832
 
4684
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/mime-node/le-windows.js
4833
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/mime-node/le-windows.js
4685
4834
  var require_le_windows = __commonJS({
4686
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/mime-node/le-windows.js"(exports, module) {
4835
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/mime-node/le-windows.js"(exports, module) {
4687
4836
  "use strict";
4688
4837
  var { Transform } = __require("stream");
4689
4838
  var LeWindows = class extends Transform {
@@ -4723,9 +4872,9 @@ var require_le_windows = __commonJS({
4723
4872
  }
4724
4873
  });
4725
4874
 
4726
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/mime-node/le-unix.js
4875
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/mime-node/le-unix.js
4727
4876
  var require_le_unix = __commonJS({
4728
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/mime-node/le-unix.js"(exports, module) {
4877
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/mime-node/le-unix.js"(exports, module) {
4729
4878
  "use strict";
4730
4879
  var { Transform } = __require("stream");
4731
4880
  var LeUnix = class extends Transform {
@@ -4758,15 +4907,16 @@ var require_le_unix = __commonJS({
4758
4907
  }
4759
4908
  });
4760
4909
 
4761
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/mime-node/index.js
4910
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/mime-node/index.js
4762
4911
  var require_mime_node = __commonJS({
4763
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/mime-node/index.js"(exports, module) {
4912
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/mime-node/index.js"(exports, module) {
4764
4913
  "use strict";
4765
4914
  var crypto = __require("crypto");
4766
4915
  var fs = __require("fs");
4767
4916
  var punycode = require_punycode();
4768
4917
  var { PassThrough } = __require("stream");
4769
4918
  var shared = require_shared();
4919
+ var urlModule = __require("url");
4770
4920
  var mimeFuncs = require_mime_funcs();
4771
4921
  var qp = require_qp();
4772
4922
  var base64 = require_base64();
@@ -4781,6 +4931,17 @@ var require_mime_node = __commonJS({
4781
4931
  var DOT_ATOM = new RegExp("^" + ATEXT + "+(?:\\." + ATEXT + "+)*$");
4782
4932
  var QUOTED_STRING = /^"(?:[^"\\]|\\[\s\S])*"$/;
4783
4933
  var PLAIN_ADDRESS = /^[^\s"(),:;<>@[\\\]]+@[^\s"(),:;<>@[\\\]]+$/;
4934
+ var URL_PARSER_UNSAFE = /[/\\?#%\x00-\x20\x7F]/;
4935
+ function normalizeDomain(domain, toUnicode) {
4936
+ const mapper = toUnicode ? urlModule.domainToUnicode : urlModule.domainToASCII;
4937
+ if (typeof mapper === "function" && !URL_PARSER_UNSAFE.test(domain)) {
4938
+ const mapped = mapper(domain);
4939
+ if (mapped) {
4940
+ return mapped;
4941
+ }
4942
+ }
4943
+ return toUnicode ? punycode.toUnicode(domain) : punycode.toASCII(domain);
4944
+ }
4784
4945
  var MimeNode = class _MimeNode {
4785
4946
  constructor(contentType, options) {
4786
4947
  this.nodeCounter = 0;
@@ -4841,6 +5002,9 @@ var require_mime_node = __commonJS({
4841
5002
  * @return {Object} Appended node object
4842
5003
  */
4843
5004
  appendChild(childNode) {
5005
+ if (childNode.parentNode && childNode.parentNode !== this) {
5006
+ childNode.remove();
5007
+ }
4844
5008
  if (childNode.rootNode !== this.rootNode) {
4845
5009
  childNode.rootNode = this.rootNode;
4846
5010
  childNode._nodeId = ++this.rootNode.nodeCounter;
@@ -5107,11 +5271,7 @@ var require_mime_node = __commonJS({
5107
5271
  const options = {};
5108
5272
  const formattedHeaders = FORMATTED_HEADERS;
5109
5273
  if (value && typeof value === "object" && !formattedHeaders.includes(key)) {
5110
- Object.keys(value).forEach((key2) => {
5111
- if (key2 !== "value") {
5112
- options[key2] = value[key2];
5113
- }
5114
- });
5274
+ shared.copyOwnKeys(options, value, (optionKey) => optionKey === "value");
5115
5275
  value = (value.value || "").toString();
5116
5276
  if (!value.trim()) {
5117
5277
  return;
@@ -5370,18 +5530,15 @@ var require_mime_node = __commonJS({
5370
5530
  this._envelope.from = list[0].address;
5371
5531
  }
5372
5532
  }
5533
+ const seenRecipients = /* @__PURE__ */ new Set();
5373
5534
  ["to", "cc", "bcc"].forEach((key) => {
5374
5535
  if (envelope[key]) {
5375
- this._convertAddresses(this._parseEnvelopeAddresses(envelope[key]), this._envelope.to);
5536
+ this._convertAddresses(this._parseEnvelopeAddresses(envelope[key]), this._envelope.to, seenRecipients);
5376
5537
  }
5377
5538
  });
5378
5539
  this._envelope.to = this._envelope.to.map((to) => to.address).filter((address) => address);
5379
5540
  const standardFields = ["to", "cc", "bcc", "from"];
5380
- Object.keys(envelope).forEach((key) => {
5381
- if (!standardFields.includes(key)) {
5382
- this._envelope[key] = envelope[key];
5383
- }
5384
- });
5541
+ shared.copyOwnKeys(this._envelope, envelope, (key) => standardFields.includes(key));
5385
5542
  return this;
5386
5543
  }
5387
5544
  /**
@@ -5391,13 +5548,15 @@ var require_mime_node = __commonJS({
5391
5548
  */
5392
5549
  getAddresses() {
5393
5550
  const addresses = {};
5551
+ const seenByKey = /* @__PURE__ */ new Map();
5394
5552
  this._headers.forEach((header) => {
5395
5553
  const key = header.key.toLowerCase();
5396
5554
  if (["from", "sender", "reply-to", "to", "cc", "bcc"].includes(key)) {
5397
5555
  if (!Array.isArray(addresses[key])) {
5398
5556
  addresses[key] = [];
5557
+ seenByKey.set(key, /* @__PURE__ */ new Set());
5399
5558
  }
5400
- this._convertAddresses(this._parseAddresses(header.value), addresses[key]);
5559
+ this._convertAddresses(this._parseAddresses(header.value), addresses[key], seenByKey.get(key));
5401
5560
  }
5402
5561
  });
5403
5562
  return addresses;
@@ -5415,6 +5574,7 @@ var require_mime_node = __commonJS({
5415
5574
  from: false,
5416
5575
  to: []
5417
5576
  };
5577
+ const seenRecipients = /* @__PURE__ */ new Set();
5418
5578
  this._headers.forEach((header) => {
5419
5579
  const list = [];
5420
5580
  if (header.key === "From" || !envelope.from && ["Reply-To", "Sender"].includes(header.key)) {
@@ -5423,7 +5583,7 @@ var require_mime_node = __commonJS({
5423
5583
  envelope.from = list[0].address;
5424
5584
  }
5425
5585
  } else if (["To", "Cc", "Bcc"].includes(header.key)) {
5426
- this._convertAddresses(this._parseAddresses(header.value), envelope.to);
5586
+ this._convertAddresses(this._parseAddresses(header.value), envelope.to, seenRecipients);
5427
5587
  }
5428
5588
  });
5429
5589
  envelope.to = envelope.to.map((to) => to.address);
@@ -5459,6 +5619,25 @@ var require_mime_node = __commonJS({
5459
5619
  return this;
5460
5620
  }
5461
5621
  /////// PRIVATE METHODS
5622
+ /**
5623
+ * Checks an access policy flag for this node and every node above it. The flags are set
5624
+ * from the options the node was built with, and createChild only ever sees the options
5625
+ * the caller passed, so a child of a closed tree starts out open. Reading the answer off
5626
+ * the parent chain keeps it right whatever order the tree was assembled in.
5627
+ *
5628
+ * @param {String} flag Either 'disableFileAccess' or 'disableUrlAccess'
5629
+ * @return {Boolean} true if this node or an ancestor closed that access
5630
+ */
5631
+ _accessDisabled(flag) {
5632
+ let node = this;
5633
+ while (node) {
5634
+ if (node[flag]) {
5635
+ return true;
5636
+ }
5637
+ node = node.parentNode;
5638
+ }
5639
+ return false;
5640
+ }
5462
5641
  /**
5463
5642
  * Detects and returns handle to a stream related with the content.
5464
5643
  *
@@ -5482,7 +5661,7 @@ var require_mime_node = __commonJS({
5482
5661
  return content;
5483
5662
  }
5484
5663
  if (content && typeof content.path === "string" && !content.href) {
5485
- if (this.disableFileAccess) {
5664
+ if (this._accessDisabled("disableFileAccess")) {
5486
5665
  contentStream = new PassThrough();
5487
5666
  setImmediate(() => {
5488
5667
  const err = new Error("File access rejected for " + content.path);
@@ -5494,7 +5673,7 @@ var require_mime_node = __commonJS({
5494
5673
  return fs.createReadStream(content.path);
5495
5674
  }
5496
5675
  if (content && typeof content.href === "string") {
5497
- if (this.disableUrlAccess) {
5676
+ if (this._accessDisabled("disableUrlAccess")) {
5498
5677
  contentStream = new PassThrough();
5499
5678
  setImmediate(() => {
5500
5679
  const err = new Error("Url access rejected for " + content.href);
@@ -5523,22 +5702,26 @@ var require_mime_node = __commonJS({
5523
5702
  * @return {Array} An array of address objects
5524
5703
  */
5525
5704
  _parseAddresses(addresses) {
5526
- return [].concat.apply(
5527
- [],
5528
- [].concat(addresses).map((address) => {
5529
- if (address && address.address) {
5530
- const normalized = this._normalizeAddress(address.address);
5531
- if (normalized === address.address && typeof address.name === "string") {
5532
- return [address];
5533
- }
5534
- const copy = Object.assign({}, address);
5535
- copy.address = normalized;
5536
- copy.name = address.name || "";
5537
- return [copy];
5705
+ const flattened = [];
5706
+ [].concat(addresses).forEach((address) => {
5707
+ if (address && address.address) {
5708
+ const normalized = this._normalizeAddress(address.address);
5709
+ if (normalized === address.address && typeof address.name === "string") {
5710
+ flattened.push(address);
5711
+ return;
5538
5712
  }
5539
- return this._normalizeParsedAddresses(addressparser(address));
5540
- })
5541
- );
5713
+ const copy = shared.copyOwnKeys({}, address);
5714
+ copy.address = normalized;
5715
+ copy.name = address.name || "";
5716
+ flattened.push(copy);
5717
+ return;
5718
+ }
5719
+ const parsed = this._normalizeParsedAddresses(addressparser(address));
5720
+ for (let i = 0; i < parsed.length; i++) {
5721
+ flattened.push(parsed[i]);
5722
+ }
5723
+ });
5724
+ return flattened;
5542
5725
  }
5543
5726
  /**
5544
5727
  * Normalizes the addresses of a freshly parsed address list, groups included.
@@ -5680,9 +5863,15 @@ var require_mime_node = __commonJS({
5680
5863
  * @param {Array} [uniqueList] An array to be populated with addresses
5681
5864
  * @return {String} address string
5682
5865
  */
5683
- _convertAddresses(addresses, uniqueList) {
5866
+ _convertAddresses(addresses, uniqueList, seenAddresses) {
5684
5867
  const values = [];
5685
5868
  uniqueList = uniqueList || [];
5869
+ if (!seenAddresses) {
5870
+ seenAddresses = /* @__PURE__ */ new Set();
5871
+ for (let i = 0; i < uniqueList.length; i++) {
5872
+ seenAddresses.add(uniqueList[i].address);
5873
+ }
5874
+ }
5686
5875
  [].concat(addresses || []).forEach((address) => {
5687
5876
  if (address.address) {
5688
5877
  address.address = this._normalizeAddress(address.address);
@@ -5691,11 +5880,12 @@ var require_mime_node = __commonJS({
5691
5880
  } else {
5692
5881
  values.push(`${this._encodeAddressName(address.name)} <${address.address}>`);
5693
5882
  }
5694
- if (!uniqueList.some((a) => a.address === address.address)) {
5883
+ if (!seenAddresses.has(address.address)) {
5884
+ seenAddresses.add(address.address);
5695
5885
  uniqueList.push(address);
5696
5886
  }
5697
5887
  } else if (address.group) {
5698
- const groupListAddresses = (address.group.length ? this._convertAddresses(address.group, uniqueList) : "").trim();
5888
+ const groupListAddresses = (address.group.length ? this._convertAddresses(address.group, uniqueList, seenAddresses) : "").trim();
5699
5889
  values.push(`${this._encodeAddressName(address.name)}:${groupListAddresses};`);
5700
5890
  }
5701
5891
  });
@@ -5719,12 +5909,9 @@ var require_mime_node = __commonJS({
5719
5909
  const user = address.substr(0, lastAt);
5720
5910
  const domain = address.substr(lastAt + 1);
5721
5911
  let encodedDomain = domain;
5912
+ const smtputf8 = /[\x80-\uFFFF]/.test(user);
5722
5913
  try {
5723
- if (/[\x80-\uFFFF]/.test(user)) {
5724
- encodedDomain = punycode.toUnicode(domain.toLowerCase());
5725
- } else {
5726
- encodedDomain = punycode.toASCII(domain.toLowerCase());
5727
- }
5914
+ encodedDomain = normalizeDomain(domain.toLowerCase(), smtputf8);
5728
5915
  } catch (_err) {
5729
5916
  }
5730
5917
  return `${this._normalizeLocalPart(user)}@${encodedDomain}`;
@@ -5827,13 +6014,13 @@ var require_mime_node = __commonJS({
5827
6014
  }
5828
6015
  });
5829
6016
 
5830
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/mail-composer/index.js
6017
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/mail-composer/index.js
5831
6018
  var require_mail_composer = __commonJS({
5832
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/mail-composer/index.js"(exports, module) {
6019
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/mail-composer/index.js"(exports, module) {
5833
6020
  "use strict";
5834
6021
  var MimeNode = require_mime_node();
5835
6022
  var mimeFuncs = require_mime_funcs();
5836
- var { parseDataURI } = require_shared();
6023
+ var { parseDataURI, copyOwnKeys } = require_shared();
5837
6024
  var MailComposer = class {
5838
6025
  constructor(mail) {
5839
6026
  this.mail = mail || {};
@@ -5986,7 +6173,7 @@ var require_mail_composer = __commonJS({
5986
6173
  if (!this._icalEvent) {
5987
6174
  let icalEvent;
5988
6175
  if (typeof this.mail.icalEvent === "object" && (this.mail.icalEvent.content || this.mail.icalEvent.path || this.mail.icalEvent.href || this.mail.icalEvent.raw)) {
5989
- icalEvent = Object.assign({}, this.mail.icalEvent);
6176
+ icalEvent = copyOwnKeys({}, this.mail.icalEvent);
5990
6177
  } else {
5991
6178
  icalEvent = {
5992
6179
  content: this.mail.icalEvent
@@ -6283,7 +6470,7 @@ var require_mail_composer = __commonJS({
6283
6470
  detectedType = parts[0].trim();
6284
6471
  }
6285
6472
  }
6286
- return Object.assign({}, element, {
6473
+ return Object.assign(copyOwnKeys({}, element), {
6287
6474
  path: false,
6288
6475
  href: false,
6289
6476
  content: Buffer.alloc(0),
@@ -6314,9 +6501,9 @@ var require_mail_composer = __commonJS({
6314
6501
  }
6315
6502
  });
6316
6503
 
6317
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/dkim/message-parser.js
6504
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/dkim/message-parser.js
6318
6505
  var require_message_parser = __commonJS({
6319
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/dkim/message-parser.js"(exports, module) {
6506
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/dkim/message-parser.js"(exports, module) {
6320
6507
  "use strict";
6321
6508
  var { Transform } = __require("stream");
6322
6509
  var MessageParser = class extends Transform {
@@ -6443,9 +6630,9 @@ var require_message_parser = __commonJS({
6443
6630
  }
6444
6631
  });
6445
6632
 
6446
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/dkim/relaxed-body.js
6633
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/dkim/relaxed-body.js
6447
6634
  var require_relaxed_body = __commonJS({
6448
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/dkim/relaxed-body.js"(exports, module) {
6635
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/dkim/relaxed-body.js"(exports, module) {
6449
6636
  "use strict";
6450
6637
  var { Transform } = __require("stream");
6451
6638
  var crypto = __require("crypto");
@@ -6552,9 +6739,9 @@ var require_relaxed_body = __commonJS({
6552
6739
  }
6553
6740
  });
6554
6741
 
6555
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/dkim/sign.js
6742
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/dkim/sign.js
6556
6743
  var require_sign = __commonJS({
6557
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/dkim/sign.js"(exports, module) {
6744
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/dkim/sign.js"(exports, module) {
6558
6745
  "use strict";
6559
6746
  var punycode = require_punycode();
6560
6747
  var mimeFuncs = require_mime_funcs();
@@ -6626,9 +6813,9 @@ var require_sign = __commonJS({
6626
6813
  }
6627
6814
  });
6628
6815
 
6629
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/dkim/index.js
6816
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/dkim/index.js
6630
6817
  var require_dkim = __commonJS({
6631
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/dkim/index.js"(exports, module) {
6818
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/dkim/index.js"(exports, module) {
6632
6819
  "use strict";
6633
6820
  var MessageParser = require_message_parser();
6634
6821
  var RelaxedBody = require_relaxed_body();
@@ -6637,6 +6824,7 @@ var require_dkim = __commonJS({
6637
6824
  var fs = __require("fs");
6638
6825
  var path = __require("path");
6639
6826
  var crypto = __require("crypto");
6827
+ var { copyOwnKeys } = require_objects();
6640
6828
  var DKIM_ALGO = "sha256";
6641
6829
  var MAX_MESSAGE_SIZE = 2 * 1024 * 1024;
6642
6830
  var DKIMSigner = class {
@@ -6803,7 +6991,8 @@ var require_dkim = __commonJS({
6803
6991
  }
6804
6992
  let options = this.options;
6805
6993
  if (extraOptions && Object.keys(extraOptions).length) {
6806
- options = Object.assign({}, extraOptions, this.options);
6994
+ options = copyOwnKeys({}, extraOptions);
6995
+ copyOwnKeys(options, this.options);
6807
6996
  }
6808
6997
  const signer = new DKIMSigner(options, this.keys, inputStream, output);
6809
6998
  setImmediate(() => {
@@ -6821,9 +7010,9 @@ var require_dkim = __commonJS({
6821
7010
  }
6822
7011
  });
6823
7012
 
6824
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/smtp-connection/http-proxy-client.js
7013
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/smtp-connection/http-proxy-client.js
6825
7014
  var require_http_proxy_client = __commonJS({
6826
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/smtp-connection/http-proxy-client.js"(exports, module) {
7015
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/smtp-connection/http-proxy-client.js"(exports, module) {
6827
7016
  "use strict";
6828
7017
  var net = __require("net");
6829
7018
  var tls = __require("tls");
@@ -6937,13 +7126,14 @@ var require_http_proxy_client = __commonJS({
6937
7126
  }
6938
7127
  });
6939
7128
 
6940
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/mailer/mail-message.js
7129
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/mailer/mail-message.js
6941
7130
  var require_mail_message = __commonJS({
6942
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/mailer/mail-message.js"(exports, module) {
7131
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/mailer/mail-message.js"(exports, module) {
6943
7132
  "use strict";
6944
7133
  var shared = require_shared();
6945
7134
  var MimeNode = require_mime_node();
6946
7135
  var mimeFuncs = require_mime_funcs();
7136
+ var hasOwn = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
6947
7137
  var MailMessage = class {
6948
7138
  constructor(mailer, data) {
6949
7139
  this.mailer = mailer;
@@ -6952,27 +7142,32 @@ var require_mail_message = __commonJS({
6952
7142
  data = data || {};
6953
7143
  const options = mailer.options || {};
6954
7144
  const defaults = mailer._defaults || {};
6955
- Object.assign(this.data, data);
7145
+ shared.copyOwnKeys(this.data, data);
6956
7146
  this.data.headers = this.data.headers || {};
6957
- Object.keys(defaults).forEach((key) => {
6958
- if (!(key in this.data)) {
6959
- this.data[key] = defaults[key];
6960
- } else if (key === "headers") {
6961
- Object.keys(defaults.headers).forEach((key2) => {
6962
- if (!(key2 in this.data.headers)) {
6963
- this.data.headers[key2] = defaults.headers[key2];
6964
- }
6965
- });
6966
- }
6967
- });
6968
- ["disableFileAccess", "disableUrlAccess", "normalizeHeaderKey"].forEach((key) => {
7147
+ shared.copyOwnKeys(this.data, defaults, (key) => hasOwn(this.data, key));
7148
+ shared.copyOwnKeys(this.data.headers, defaults.headers, (key) => hasOwn(this.data.headers, key));
7149
+ ["disableFileAccess", "disableUrlAccess", "normalizeHeaderKey", "maxRecipients"].forEach((key) => {
6969
7150
  if (key in options) {
6970
7151
  this.data[key] = options[key];
6971
7152
  }
6972
7153
  });
7154
+ ["disableFileAccess", "disableUrlAccess"].forEach((key) => {
7155
+ if (!(key in options) && hasOwn(defaults, key)) {
7156
+ this.data[key] = this.data[key] || defaults[key];
7157
+ }
7158
+ });
6973
7159
  }
6974
- resolveContent(...args) {
6975
- return shared.resolveContent(...args);
7160
+ resolveContent(data, key, options, callback) {
7161
+ if (!callback && typeof options === "function") {
7162
+ callback = options;
7163
+ options = false;
7164
+ }
7165
+ options = options || {};
7166
+ const policy = {
7167
+ disableFileAccess: this.data.disableFileAccess || options.disableFileAccess,
7168
+ disableUrlAccess: this.data.disableUrlAccess || options.disableUrlAccess
7169
+ };
7170
+ return shared.resolveContent(data, key, policy, callback);
6976
7171
  }
6977
7172
  resolveAll(callback) {
6978
7173
  const keys = [
@@ -7042,11 +7237,7 @@ var require_mail_message = __commonJS({
7042
7237
  content: value
7043
7238
  };
7044
7239
  if (args[0][args[1]] && typeof args[0][args[1]] === "object" && !Buffer.isBuffer(args[0][args[1]])) {
7045
- Object.keys(args[0][args[1]]).forEach((key) => {
7046
- if (!(key in node) && !["content", "path", "href", "raw"].includes(key)) {
7047
- node[key] = args[0][args[1]][key];
7048
- }
7049
- });
7240
+ shared.copyOwnKeys(node, args[0][args[1]], (key) => key in node || ["content", "path", "href", "raw"].includes(key));
7050
7241
  }
7051
7242
  args[0][args[1]] = node;
7052
7243
  resolveNext();
@@ -7095,6 +7286,9 @@ var require_mail_message = __commonJS({
7095
7286
  }
7096
7287
  data.normalizedHeaders = {};
7097
7288
  Object.keys(data.headers || {}).forEach((key) => {
7289
+ if (shared.isProtoKey(key)) {
7290
+ return;
7291
+ }
7098
7292
  let value = [].concat(data.headers[key] || []).shift();
7099
7293
  value = value && value.value || value;
7100
7294
  if (value) {
@@ -7195,9 +7389,9 @@ var require_mail_message = __commonJS({
7195
7389
  }
7196
7390
  });
7197
7391
 
7198
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/mailer/index.js
7392
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/mailer/index.js
7199
7393
  var require_mailer = __commonJS({
7200
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/mailer/index.js"(exports, module) {
7394
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/mailer/index.js"(exports, module) {
7201
7395
  "use strict";
7202
7396
  var EventEmitter = __require("events");
7203
7397
  var shared = require_shared();
@@ -7213,6 +7407,7 @@ var require_mailer = __commonJS({
7213
7407
  var net = __require("net");
7214
7408
  var dns = __require("dns");
7215
7409
  var crypto = __require("crypto");
7410
+ var DEFAULT_MAX_RECIPIENTS = 1e5;
7216
7411
  var Mail = class extends EventEmitter {
7217
7412
  constructor(transporter, options, defaults) {
7218
7413
  super();
@@ -7348,6 +7543,24 @@ var require_mailer = __commonJS({
7348
7543
  mail.setMailerHeader();
7349
7544
  mail.setPriorityHeaders();
7350
7545
  mail.setListHeaders();
7546
+ const maxRecipients = mail.data.maxRecipients === void 0 ? DEFAULT_MAX_RECIPIENTS : mail.data.maxRecipients;
7547
+ const recipientCount = mail.message.getEnvelope().to.length;
7548
+ if (maxRecipients && recipientCount > maxRecipients) {
7549
+ const err2 = new Error(
7550
+ `Message has ${recipientCount} recipients, which is over the ${maxRecipients} allowed by maxRecipients`
7551
+ );
7552
+ err2.code = errors.EMAXRECIPIENTS;
7553
+ this.logger.error(
7554
+ {
7555
+ err: err2,
7556
+ tnx: "transport",
7557
+ action: "send"
7558
+ },
7559
+ "Send Error: %s",
7560
+ err2.message
7561
+ );
7562
+ return callback(err2);
7563
+ }
7351
7564
  this._processPlugins("stream", mail, (err2) => {
7352
7565
  if (err2) {
7353
7566
  this.logger.error(
@@ -7586,9 +7799,9 @@ var require_mailer = __commonJS({
7586
7799
  }
7587
7800
  });
7588
7801
 
7589
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/smtp-connection/data-stream.js
7802
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/smtp-connection/data-stream.js
7590
7803
  var require_data_stream = __commonJS({
7591
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/smtp-connection/data-stream.js"(exports, module) {
7804
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/smtp-connection/data-stream.js"(exports, module) {
7592
7805
  "use strict";
7593
7806
  var { Transform } = __require("stream");
7594
7807
  var DataStream = class extends Transform {
@@ -7673,9 +7886,9 @@ var require_data_stream = __commonJS({
7673
7886
  }
7674
7887
  });
7675
7888
 
7676
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/smtp-connection/index.js
7889
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/smtp-connection/index.js
7677
7890
  var require_smtp_connection = __commonJS({
7678
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/smtp-connection/index.js"(exports, module) {
7891
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/smtp-connection/index.js"(exports, module) {
7679
7892
  "use strict";
7680
7893
  var packageInfo = require_package();
7681
7894
  var { EventEmitter } = __require("events");
@@ -9174,9 +9387,9 @@ var require_smtp_connection = __commonJS({
9174
9387
  }
9175
9388
  });
9176
9389
 
9177
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/xoauth2/index.js
9390
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/xoauth2/index.js
9178
9391
  var require_xoauth2 = __commonJS({
9179
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/xoauth2/index.js"(exports, module) {
9392
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/xoauth2/index.js"(exports, module) {
9180
9393
  "use strict";
9181
9394
  var { Stream } = __require("stream");
9182
9395
  var nmfetch = require_fetch();
@@ -9534,9 +9747,9 @@ var require_xoauth2 = __commonJS({
9534
9747
  }
9535
9748
  });
9536
9749
 
9537
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/smtp-pool/pool-resource.js
9750
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/smtp-pool/pool-resource.js
9538
9751
  var require_pool_resource = __commonJS({
9539
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/smtp-pool/pool-resource.js"(exports, module) {
9752
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/smtp-pool/pool-resource.js"(exports, module) {
9540
9753
  "use strict";
9541
9754
  var SMTPConnection = require_smtp_connection();
9542
9755
  var assign = require_shared().assign;
@@ -9755,9 +9968,9 @@ var require_pool_resource = __commonJS({
9755
9968
  }
9756
9969
  });
9757
9970
 
9758
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/well-known/services.json
9971
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/well-known/services.json
9759
9972
  var require_services = __commonJS({
9760
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/well-known/services.json"(exports, module) {
9973
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/well-known/services.json"(exports, module) {
9761
9974
  module.exports = {
9762
9975
  "1und1": {
9763
9976
  description: "1&1 Mail (German hosting provider)",
@@ -10307,9 +10520,9 @@ var require_services = __commonJS({
10307
10520
  }
10308
10521
  });
10309
10522
 
10310
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/well-known/index.js
10523
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/well-known/index.js
10311
10524
  var require_well_known = __commonJS({
10312
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/well-known/index.js"(exports, module) {
10525
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/well-known/index.js"(exports, module) {
10313
10526
  "use strict";
10314
10527
  var services = require_services();
10315
10528
  var normalized = {};
@@ -10343,9 +10556,9 @@ var require_well_known = __commonJS({
10343
10556
  }
10344
10557
  });
10345
10558
 
10346
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/smtp-pool/index.js
10559
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/smtp-pool/index.js
10347
10560
  var require_smtp_pool = __commonJS({
10348
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/smtp-pool/index.js"(exports, module) {
10561
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/smtp-pool/index.js"(exports, module) {
10349
10562
  "use strict";
10350
10563
  var EventEmitter = __require("events");
10351
10564
  var PoolResource = require_pool_resource();
@@ -10882,9 +11095,9 @@ var require_smtp_pool = __commonJS({
10882
11095
  }
10883
11096
  });
10884
11097
 
10885
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/smtp-transport/index.js
11098
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/smtp-transport/index.js
10886
11099
  var require_smtp_transport = __commonJS({
10887
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/smtp-transport/index.js"(exports, module) {
11100
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/smtp-transport/index.js"(exports, module) {
10888
11101
  "use strict";
10889
11102
  var EventEmitter = __require("events");
10890
11103
  var SMTPConnection = require_smtp_connection();
@@ -11251,9 +11464,9 @@ var require_smtp_transport = __commonJS({
11251
11464
  }
11252
11465
  });
11253
11466
 
11254
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/sendmail-transport/index.js
11467
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/sendmail-transport/index.js
11255
11468
  var require_sendmail_transport = __commonJS({
11256
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/sendmail-transport/index.js"(exports, module) {
11469
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/sendmail-transport/index.js"(exports, module) {
11257
11470
  "use strict";
11258
11471
  var { spawn } = __require("child_process");
11259
11472
  var packageData = require_package();
@@ -11427,9 +11640,9 @@ var require_sendmail_transport = __commonJS({
11427
11640
  }
11428
11641
  });
11429
11642
 
11430
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/stream-transport/index.js
11643
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/stream-transport/index.js
11431
11644
  var require_stream_transport = __commonJS({
11432
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/stream-transport/index.js"(exports, module) {
11645
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/stream-transport/index.js"(exports, module) {
11433
11646
  "use strict";
11434
11647
  var packageData = require_package();
11435
11648
  var shared = require_shared();
@@ -11548,9 +11761,9 @@ var require_stream_transport = __commonJS({
11548
11761
  }
11549
11762
  });
11550
11763
 
11551
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/json-transport/index.js
11764
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/json-transport/index.js
11552
11765
  var require_json_transport = __commonJS({
11553
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/json-transport/index.js"(exports, module) {
11766
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/json-transport/index.js"(exports, module) {
11554
11767
  "use strict";
11555
11768
  var packageData = require_package();
11556
11769
  var shared = require_shared();
@@ -11617,9 +11830,9 @@ var require_json_transport = __commonJS({
11617
11830
  }
11618
11831
  });
11619
11832
 
11620
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/ses-transport/index.js
11833
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/ses-transport/index.js
11621
11834
  var require_ses_transport = __commonJS({
11622
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/ses-transport/index.js"(exports, module) {
11835
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/ses-transport/index.js"(exports, module) {
11623
11836
  "use strict";
11624
11837
  var EventEmitter = __require("events");
11625
11838
  var packageData = require_package();
@@ -11720,7 +11933,7 @@ var require_ses_transport = __commonJS({
11720
11933
  );
11721
11934
  return callback(err);
11722
11935
  }
11723
- const sesMessage = Object.assign(
11936
+ const sesMessage = shared.copyOwnKeys(
11724
11937
  {
11725
11938
  Content: {
11726
11939
  Raw: {
@@ -11734,7 +11947,7 @@ var require_ses_transport = __commonJS({
11734
11947
  ToAddresses: envelope.to
11735
11948
  }
11736
11949
  },
11737
- mail.data.ses || {}
11950
+ mail.data.ses
11738
11951
  );
11739
11952
  this.getRegion((err2, region) => {
11740
11953
  if (err2 || !region) {
@@ -11836,9 +12049,9 @@ var require_ses_transport = __commonJS({
11836
12049
  }
11837
12050
  });
11838
12051
 
11839
- // node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/nodemailer.js
12052
+ // node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/nodemailer.js
11840
12053
  var require_nodemailer = __commonJS({
11841
- "node_modules/.pnpm/nodemailer@9.0.5/node_modules/nodemailer/lib/nodemailer.js"(exports, module) {
12054
+ "node_modules/.pnpm/nodemailer@9.1.1/node_modules/nodemailer/lib/nodemailer.js"(exports, module) {
11842
12055
  "use strict";
11843
12056
  var Mailer = require_mailer();
11844
12057
  var shared = require_shared();