@simplens/nodemailer-gmail 1.0.7 → 1.0.8

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.
package/README.md CHANGED
@@ -80,7 +80,7 @@ EMAIL_FROM=your-email@gmail.com
80
80
  ## Features
81
81
 
82
82
  - ✅ HTML and plain text emails (auto-detected)
83
- - ✅ Template variable substitution (`{{key}}` syntax)
83
+ - ✅ Template variable substitution (`{{key}}`, `${key}`, `{key}`, `$key` syntax)
84
84
  - ✅ Configurable rate limiting
85
85
  - ✅ Automatic retry classification
86
86
  - ✅ Gmail and any SMTP server support
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EACH,CAAC,EACD,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EAIvB,MAAM,eAAe,CAAC;AAkBvB;;GAEG;AACH,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK3B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;;;;;;;;;;GAaG;AACH,qBAAa,aAAc,YAAW,gBAAgB,CAAC,iBAAiB,CAAC;IACrE,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,MAAM,CAA+B;IAE7C,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAUjC;IAEF,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIrB,kBAAkB;;;;;;;;;;IAIlB,gBAAgB;;;;;;;;;;IAIhB,kBAAkB,IAAI,eAAe;IAa/B,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BjD,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAe/B,IAAI,CAAC,YAAY,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC;IAqE9D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAOlC;AAGD,eAAe,aAAa,CAAC;AAG7B,wBAAgB,cAAc,IAAI,aAAa,CAE9C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EACH,CAAC,EACD,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EAGvB,MAAM,eAAe,CAAC;AA6GvB;;GAEG;AACH,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK3B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;;;;;;;;;;GAaG;AACH,qBAAa,aAAc,YAAW,gBAAgB,CAAC,iBAAiB,CAAC;IACrE,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,MAAM,CAA+B;IAE7C,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAUjC;IAEF,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIrB,kBAAkB;;;;;;;;;;IAIlB,gBAAgB;;;;;;;;;;IAIhB,kBAAkB,IAAI,eAAe;IAa/B,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BjD,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAe/B,IAAI,CAAC,YAAY,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC;IAmF9D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAOlC;AAGD,eAAe,aAAa,CAAC;AAG7B,wBAAgB,cAAc,IAAI,aAAa,CAE9C"}
package/dist/index.js CHANGED
@@ -5,7 +5,67 @@
5
5
  * Uses Nodemailer for email delivery.
6
6
  */
7
7
  import nodemailer from 'nodemailer';
8
- import { z, baseNotificationSchema, replaceVariables, isHtmlContent, } from '@simplens/sdk';
8
+ import { z, baseNotificationSchema, isHtmlContent, } from '@simplens/sdk';
9
+ /**
10
+ * Extracts base64 encoded images from HTML and converts them to CID attachments.
11
+ * This is necessary because most email clients block inline base64 images.
12
+ *
13
+ * @param html - The HTML content containing base64 images
14
+ * @returns Object with processed HTML (cid: references) and attachments array
15
+ */
16
+ function extractBase64Images(html) {
17
+ const attachments = [];
18
+ // Regex to match base64 image data URIs in img src attributes
19
+ // Matches: <img ... src="data:image/TYPE;base64,DATA" ...>
20
+ const base64ImageRegex = /<img([^>]*)\ssrc=["']data:(image\/(\w+));base64,([^"']+)["']([^>]*)>/gi;
21
+ let imageIndex = 0;
22
+ const processedHtml = html.replace(base64ImageRegex, (match, before, mimeType, extension, base64Data, after) => {
23
+ const cid = `embedded-image-${imageIndex}-${Date.now()}`;
24
+ const filename = `image-${imageIndex}.${extension}`;
25
+ attachments.push({
26
+ filename,
27
+ content: Buffer.from(base64Data, 'base64'),
28
+ cid,
29
+ contentType: mimeType,
30
+ });
31
+ imageIndex++;
32
+ return `<img${before} src="cid:${cid}"${after}>`;
33
+ });
34
+ return { html: processedHtml, attachments };
35
+ }
36
+ /**
37
+ * Replaces template variables in a string using multiple common patterns.
38
+ *
39
+ * Supported patterns:
40
+ * - {{variable}} - Handlebars/Mustache style
41
+ * - ${variable} - ES6 template literal style
42
+ * - {variable} - Simple brace style
43
+ * - $variable - Shell/PHP style (word characters only)
44
+ *
45
+ * @param template - The template string containing variables
46
+ * @param variables - Record of variable names to values
47
+ * @returns The template with all variables replaced
48
+ */
49
+ function replaceTemplateVariables(template, variables) {
50
+ let result = template;
51
+ // Define all supported patterns with their regex
52
+ // Order matters: more specific patterns first to avoid partial matches
53
+ const patterns = [
54
+ /\{\{(\w+)\}\}/g, // {{variable}}
55
+ /\$\{(\w+)\}/g, // ${variable}
56
+ /\{(\w+)\}/g, // {variable}
57
+ /\$(\w+)/g, // $variable
58
+ ];
59
+ for (const pattern of patterns) {
60
+ result = result.replace(pattern, (match, varName) => {
61
+ if (varName in variables) {
62
+ return String(variables[varName]);
63
+ }
64
+ return match; // Leave unmatched patterns as-is
65
+ });
66
+ }
67
+ return result;
68
+ }
9
69
  /**
10
70
  * Email recipient schema
11
71
  */
@@ -126,18 +186,32 @@ export class GmailProvider {
126
186
  }
127
187
  try {
128
188
  let message = notification.content.message;
129
- // Replace template variables
189
+ // Replace template variables using our custom multi-pattern replacer
130
190
  if (notification.variables) {
131
- message = replaceVariables(message, notification.variables);
191
+ message = replaceTemplateVariables(message, notification.variables);
132
192
  }
133
193
  // Detect if message is HTML
134
194
  const isHtml = isHtmlContent(message);
135
- const mailOptions = {
136
- from: this.fromEmail,
137
- to: notification.recipient.email,
138
- subject: notification.content.subject || 'Notification',
139
- ...(isHtml ? { html: message } : { text: message }),
140
- };
195
+ let mailOptions;
196
+ if (isHtml) {
197
+ // Extract base64 images and convert to CID attachments
198
+ const { html, attachments } = extractBase64Images(message);
199
+ mailOptions = {
200
+ from: this.fromEmail,
201
+ to: notification.recipient.email,
202
+ subject: notification.content.subject || 'Notification',
203
+ html,
204
+ attachments,
205
+ };
206
+ }
207
+ else {
208
+ mailOptions = {
209
+ from: this.fromEmail,
210
+ to: notification.recipient.email,
211
+ subject: notification.content.subject || 'Notification',
212
+ text: message,
213
+ };
214
+ }
141
215
  const info = await this.transporter.sendMail(mailOptions);
142
216
  console.log(`[GmailProvider] Email sent: ${info.messageId} to ${notification.recipient.email}`);
143
217
  return {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -18,13 +18,7 @@ vi.mock('@simplens/sdk', async () => {
18
18
  priority: z.enum(['high', 'normal', 'low']).optional(),
19
19
  variables: z.record(z.string(), z.unknown()).optional(),
20
20
  }),
21
- replaceVariables: vi.fn((message, variables) => {
22
- let result = message;
23
- for (const [key, value] of Object.entries(variables)) {
24
- result = result.replace(new RegExp(`{{${key}}}`, 'g'), String(value));
25
- }
26
- return result;
27
- }),
21
+ // Note: replaceVariables is no longer mocked as plugin uses its own replaceTemplateVariables
28
22
  isHtmlContent: vi.fn((content) => {
29
23
  return /<[^>]+>/.test(content);
30
24
  }),
@@ -315,6 +309,7 @@ describe('GmailProvider', () => {
315
309
  to: 'recipient@example.com',
316
310
  subject: 'HTML Email',
317
311
  html: '<h1>Hello</h1><p>This is HTML content</p>',
312
+ attachments: [], // Now includes empty attachments array
318
313
  });
319
314
  });
320
315
  it('should use default subject when not provided', async () => {
@@ -483,4 +478,246 @@ describe('createProvider', () => {
483
478
  expect(provider).toBeInstanceOf(GmailProvider);
484
479
  });
485
480
  });
481
+ describe('Base64 Image Extraction', () => {
482
+ let provider;
483
+ let mockTransporter;
484
+ const createNotification = (overrides = {}) => ({
485
+ notification_id: 'notif-123',
486
+ request_id: crypto.randomUUID(),
487
+ client_id: crypto.randomUUID(),
488
+ channel: 'email',
489
+ recipient: {
490
+ user_id: 'user-456',
491
+ email: 'recipient@example.com',
492
+ },
493
+ webhook_url: 'https://example.com/webhook',
494
+ retry_count: 3,
495
+ content: {
496
+ subject: 'Test Subject',
497
+ message: 'Hello, this is a test message.',
498
+ },
499
+ created_at: new Date(),
500
+ ...overrides,
501
+ });
502
+ beforeEach(() => {
503
+ provider = new GmailProvider();
504
+ mockTransporter = {
505
+ verify: vi.fn(),
506
+ sendMail: vi.fn(),
507
+ close: vi.fn(),
508
+ };
509
+ vi.mocked(nodemailer.createTransport).mockReturnValue(mockTransporter);
510
+ vi.spyOn(console, 'log').mockImplementation(() => { });
511
+ vi.spyOn(console, 'error').mockImplementation(() => { });
512
+ });
513
+ afterEach(() => {
514
+ vi.clearAllMocks();
515
+ });
516
+ it('should extract base64 image and convert to CID attachment', async () => {
517
+ mockTransporter.sendMail.mockResolvedValue({
518
+ messageId: '<msg-id-img@gmail.com>',
519
+ });
520
+ await provider.initialize({
521
+ id: 'test',
522
+ credentials: {
523
+ EMAIL_USER: 'sender@gmail.com',
524
+ EMAIL_PASS: 'password123',
525
+ },
526
+ });
527
+ const base64Image = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==';
528
+ const notification = createNotification({
529
+ content: {
530
+ subject: 'Image Email',
531
+ message: `<html><body><img src="data:image/png;base64,${base64Image}" alt="test"/></body></html>`,
532
+ },
533
+ });
534
+ const result = await provider.send(notification);
535
+ expect(result.success).toBe(true);
536
+ expect(mockTransporter.sendMail).toHaveBeenCalledWith(expect.objectContaining({
537
+ html: expect.stringContaining('src="cid:'),
538
+ attachments: expect.arrayContaining([
539
+ expect.objectContaining({
540
+ filename: expect.stringMatching(/^image-0\.png$/),
541
+ cid: expect.stringMatching(/^embedded-image-0-/),
542
+ contentType: 'image/png',
543
+ }),
544
+ ]),
545
+ }));
546
+ });
547
+ it('should extract multiple base64 images', async () => {
548
+ mockTransporter.sendMail.mockResolvedValue({
549
+ messageId: '<msg-id-multi@gmail.com>',
550
+ });
551
+ await provider.initialize({
552
+ id: 'test',
553
+ credentials: {
554
+ EMAIL_USER: 'sender@gmail.com',
555
+ EMAIL_PASS: 'password123',
556
+ },
557
+ });
558
+ const base64Image = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==';
559
+ const notification = createNotification({
560
+ content: {
561
+ subject: 'Multiple Images',
562
+ message: `<html><body>
563
+ <img src="data:image/png;base64,${base64Image}" alt="first"/>
564
+ <img src="data:image/jpeg;base64,${base64Image}" alt="second"/>
565
+ </body></html>`,
566
+ },
567
+ });
568
+ const result = await provider.send(notification);
569
+ expect(result.success).toBe(true);
570
+ expect(mockTransporter.sendMail).toHaveBeenCalledWith(expect.objectContaining({
571
+ attachments: expect.arrayContaining([
572
+ expect.objectContaining({ filename: 'image-0.png' }),
573
+ expect.objectContaining({ filename: 'image-1.jpeg' }),
574
+ ]),
575
+ }));
576
+ });
577
+ it('should preserve external URL images', async () => {
578
+ mockTransporter.sendMail.mockResolvedValue({
579
+ messageId: '<msg-id-url@gmail.com>',
580
+ });
581
+ await provider.initialize({
582
+ id: 'test',
583
+ credentials: {
584
+ EMAIL_USER: 'sender@gmail.com',
585
+ EMAIL_PASS: 'password123',
586
+ },
587
+ });
588
+ const notification = createNotification({
589
+ content: {
590
+ subject: 'External Image',
591
+ message: '<html><body><img src="https://example.com/image.png" alt="external"/></body></html>',
592
+ },
593
+ });
594
+ const result = await provider.send(notification);
595
+ expect(result.success).toBe(true);
596
+ expect(mockTransporter.sendMail).toHaveBeenCalledWith(expect.objectContaining({
597
+ html: expect.stringContaining('src="https://example.com/image.png"'),
598
+ attachments: [],
599
+ }));
600
+ });
601
+ });
602
+ describe('Multi-Pattern Variable Replacement', () => {
603
+ let provider;
604
+ let mockTransporter;
605
+ const createNotification = (overrides = {}) => ({
606
+ notification_id: 'notif-123',
607
+ request_id: crypto.randomUUID(),
608
+ client_id: crypto.randomUUID(),
609
+ channel: 'email',
610
+ recipient: {
611
+ user_id: 'user-456',
612
+ email: 'recipient@example.com',
613
+ },
614
+ webhook_url: 'https://example.com/webhook',
615
+ retry_count: 3,
616
+ content: {
617
+ subject: 'Test Subject',
618
+ message: 'Hello, this is a test message.',
619
+ },
620
+ created_at: new Date(),
621
+ ...overrides,
622
+ });
623
+ beforeEach(() => {
624
+ provider = new GmailProvider();
625
+ mockTransporter = {
626
+ verify: vi.fn(),
627
+ sendMail: vi.fn(),
628
+ close: vi.fn(),
629
+ };
630
+ vi.mocked(nodemailer.createTransport).mockReturnValue(mockTransporter);
631
+ vi.spyOn(console, 'log').mockImplementation(() => { });
632
+ vi.spyOn(console, 'error').mockImplementation(() => { });
633
+ });
634
+ afterEach(() => {
635
+ vi.clearAllMocks();
636
+ });
637
+ it('should replace {{variable}} pattern', async () => {
638
+ mockTransporter.sendMail.mockResolvedValue({ messageId: '<msg@gmail.com>' });
639
+ await provider.initialize({
640
+ id: 'test',
641
+ credentials: { EMAIL_USER: 'test@gmail.com', EMAIL_PASS: 'pass' },
642
+ });
643
+ const notification = createNotification({
644
+ content: { subject: 'Test', message: 'Hello {{name}}!' },
645
+ variables: { name: 'Alice' },
646
+ });
647
+ await provider.send(notification);
648
+ expect(mockTransporter.sendMail).toHaveBeenCalledWith(expect.objectContaining({ text: 'Hello Alice!' }));
649
+ });
650
+ it('should replace ${variable} pattern', async () => {
651
+ mockTransporter.sendMail.mockResolvedValue({ messageId: '<msg@gmail.com>' });
652
+ await provider.initialize({
653
+ id: 'test',
654
+ credentials: { EMAIL_USER: 'test@gmail.com', EMAIL_PASS: 'pass' },
655
+ });
656
+ const notification = createNotification({
657
+ content: { subject: 'Test', message: 'Hello ${name}!' },
658
+ variables: { name: 'Bob' },
659
+ });
660
+ await provider.send(notification);
661
+ expect(mockTransporter.sendMail).toHaveBeenCalledWith(expect.objectContaining({ text: 'Hello Bob!' }));
662
+ });
663
+ it('should replace {variable} pattern', async () => {
664
+ mockTransporter.sendMail.mockResolvedValue({ messageId: '<msg@gmail.com>' });
665
+ await provider.initialize({
666
+ id: 'test',
667
+ credentials: { EMAIL_USER: 'test@gmail.com', EMAIL_PASS: 'pass' },
668
+ });
669
+ const notification = createNotification({
670
+ content: { subject: 'Test', message: 'Hello {name}!' },
671
+ variables: { name: 'Carol' },
672
+ });
673
+ await provider.send(notification);
674
+ expect(mockTransporter.sendMail).toHaveBeenCalledWith(expect.objectContaining({ text: 'Hello Carol!' }));
675
+ });
676
+ it('should replace $variable pattern', async () => {
677
+ mockTransporter.sendMail.mockResolvedValue({ messageId: '<msg@gmail.com>' });
678
+ await provider.initialize({
679
+ id: 'test',
680
+ credentials: { EMAIL_USER: 'test@gmail.com', EMAIL_PASS: 'pass' },
681
+ });
682
+ const notification = createNotification({
683
+ content: { subject: 'Test', message: 'Hello $name!' },
684
+ variables: { name: 'Dave' },
685
+ });
686
+ await provider.send(notification);
687
+ expect(mockTransporter.sendMail).toHaveBeenCalledWith(expect.objectContaining({ text: 'Hello Dave!' }));
688
+ });
689
+ it('should handle mixed patterns in same template', async () => {
690
+ mockTransporter.sendMail.mockResolvedValue({ messageId: '<msg@gmail.com>' });
691
+ await provider.initialize({
692
+ id: 'test',
693
+ credentials: { EMAIL_USER: 'test@gmail.com', EMAIL_PASS: 'pass' },
694
+ });
695
+ const notification = createNotification({
696
+ content: {
697
+ subject: 'Test',
698
+ message: 'Hi {{name}}, your order ${orderId} with {items} items costs $total.',
699
+ },
700
+ variables: { name: 'Eve', orderId: '12345', items: '3', total: '99' },
701
+ });
702
+ await provider.send(notification);
703
+ expect(mockTransporter.sendMail).toHaveBeenCalledWith(expect.objectContaining({
704
+ text: 'Hi Eve, your order 12345 with 3 items costs 99.',
705
+ }));
706
+ });
707
+ it('should leave unmatched patterns unchanged', async () => {
708
+ mockTransporter.sendMail.mockResolvedValue({ messageId: '<msg@gmail.com>' });
709
+ await provider.initialize({
710
+ id: 'test',
711
+ credentials: { EMAIL_USER: 'test@gmail.com', EMAIL_PASS: 'pass' },
712
+ });
713
+ const notification = createNotification({
714
+ content: { subject: 'Test', message: 'Hello {{name}}, value is {{unknown}}.' },
715
+ variables: { name: 'Frank' },
716
+ });
717
+ await provider.send(notification);
718
+ expect(mockTransporter.sendMail).toHaveBeenCalledWith(expect.objectContaining({
719
+ text: 'Hello Frank, value is {{unknown}}.',
720
+ }));
721
+ });
722
+ });
486
723
  //# sourceMappingURL=index.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,cAAc,EAA0B,MAAM,YAAY,CAAC;AAGnF,kBAAkB;AAClB,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;IACzB,OAAO,EAAE;QACL,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE;KAC3B;CACJ,CAAC,CAAC,CAAC;AAEJ,qBAAqB;AACrB,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;IAChC,MAAM,EAAE,CAAC,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO;QACH,CAAC;QACD,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC7B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;YAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;YACtD,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;SAC1D,CAAC;QACF,gBAAgB,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,OAAe,EAAE,SAAkC,EAAE,EAAE;YAC5E,IAAI,MAAM,GAAG,OAAO,CAAC;YACrB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC;QACF,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,OAAe,EAAE,EAAE;YACrC,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC,CAAC;KACL,CAAC;AACN,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC3B,IAAI,QAAuB,CAAC;IAC5B,IAAI,eAIH,CAAC;IAEF,UAAU,CAAC,GAAG,EAAE;QACZ,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QAC/B,eAAe,GAAG;YACd,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;YACf,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE;YACjB,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;SACjB,CAAC;QACF,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,eAAe,CAAC,eAAsB,CAAC,CAAC;QAE9E,0CAA0C;QAC1C,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACvD,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,EAAE,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YAC/C,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;gBAC9B,IAAI,EAAE,kCAAkC;gBACxC,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,oBAAoB;gBACjC,WAAW,EAAE,6CAA6C;gBAC1D,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,qEAAqE;gBAC/E,mBAAmB,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;gBACjD,cAAc,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;aAC7D,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC5B,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,kBAAkB;aAC5B,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC5B,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,eAAe;aACzB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC5B,OAAO,EAAE,cAAc;gBACvB,OAAO,EAAE,cAAc;aAC1B,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC5B,OAAO,EAAE,cAAc;aAC1B,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC5B,OAAO,EAAE,cAAc;aAC1B,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACpE,MAAM,MAAM,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACnB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,EAAE;aACjB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,QAAQ,CAAC,UAAU,CAAC;gBACtB,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE;oBACT,UAAU,EAAE,gBAAgB;oBAC5B,UAAU,EAAE,aAAa;iBAC5B;gBACD,OAAO,EAAE;oBACL,SAAS,EAAE;wBACP,SAAS,EAAE,GAAG;wBACd,UAAU,EAAE,EAAE;qBACjB;iBACJ;aACJ,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACnB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,EAAE;aACjB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,QAAQ,CAAC,UAAU,CAAC;gBACtB,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE;oBACT,UAAU,EAAE,gBAAgB;oBAC5B,UAAU,EAAE,aAAa;iBAC5B;aACJ,CAAC,CAAC;YAEH,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC;gBACpD,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE;gBACrD,iBAAiB,EAAE,KAAK;gBACxB,eAAe,EAAE,KAAK;gBACtB,aAAa,EAAE,KAAK;aACvB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,QAAQ,CAAC,UAAU,CAAC;gBACtB,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE;oBACT,UAAU,EAAE,kBAAkB;oBAC9B,UAAU,EAAE,aAAa;iBAC5B;gBACD,OAAO,EAAE;oBACL,UAAU,EAAE,kBAAkB;oBAC9B,UAAU,EAAE,KAAK;iBACpB;aACJ,CAAC,CAAC;YAEH,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC;gBACpD,IAAI,EAAE,kBAAkB;gBACxB,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,IAAI,EAAE,4BAA4B;gBAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE;gBACvD,iBAAiB,EAAE,KAAK;gBACxB,eAAe,EAAE,KAAK;gBACtB,aAAa,EAAE,KAAK;aACvB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,MAAM,CACR,QAAQ,CAAC,UAAU,CAAC;gBAChB,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE;oBACT,UAAU,EAAE,aAAa;iBAC5B;aACJ,CAAC,CACL,CAAC,OAAO,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,MAAM,CACR,QAAQ,CAAC,UAAU,CAAC;gBAChB,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE;oBACT,UAAU,EAAE,gBAAgB;iBAC/B;aACJ,CAAC,CACL,CAAC,OAAO,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACvE,eAAe,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAE/C,MAAM,QAAQ,CAAC,UAAU,CAAC;gBACtB,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE;oBACT,UAAU,EAAE,gBAAgB;oBAC5B,UAAU,EAAE,aAAa;iBAC5B;aACJ,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACrE,eAAe,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAEzE,MAAM,QAAQ,CAAC,UAAU,CAAC;gBACtB,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE;oBACT,UAAU,EAAE,gBAAgB;oBAC5B,UAAU,EAAE,aAAa;iBAC5B;aACJ,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QAClB,MAAM,kBAAkB,GAAG,CAAC,YAAwC,EAAE,EAAqB,EAAE,CAAC,CAAC;YAC3F,eAAe,EAAE,WAAW;YAC5B,UAAU,EAAE,MAAM,CAAC,UAAU,EAAU;YACvC,SAAS,EAAE,MAAM,CAAC,UAAU,EAAU;YACtC,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE;gBACP,OAAO,EAAE,UAAU;gBACnB,KAAK,EAAE,uBAAuB;aACjC;YACD,WAAW,EAAE,6BAA6B;YAC1C,WAAW,EAAE,CAAC;YACd,OAAO,EAAE;gBACL,OAAO,EAAE,cAAc;gBACvB,OAAO,EAAE,gCAAgC;aAC5C;YACD,UAAU,EAAE,IAAI,IAAI,EAAE;YACtB,GAAG,SAAS;SACf,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;gBACzB,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,6BAA6B;gBACtC,SAAS,EAAE,KAAK;aACnB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC5D,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBACvC,SAAS,EAAE,wBAAwB;aACtC,CAAC,CAAC;YAEH,MAAM,QAAQ,CAAC,UAAU,CAAC;gBACtB,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE;oBACT,UAAU,EAAE,kBAAkB;oBAC9B,UAAU,EAAE,aAAa;iBAC5B;aACJ,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACxD,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC;gBAClD,IAAI,EAAE,kBAAkB;gBACxB,EAAE,EAAE,uBAAuB;gBAC3B,OAAO,EAAE,cAAc;gBACvB,IAAI,EAAE,gCAAgC;aACzC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACjD,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBACvC,SAAS,EAAE,wBAAwB;aACtC,CAAC,CAAC;YAEH,MAAM,QAAQ,CAAC,UAAU,CAAC;gBACtB,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE;oBACT,UAAU,EAAE,kBAAkB;oBAC9B,UAAU,EAAE,aAAa;iBAC5B;aACJ,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,kBAAkB,CAAC;gBACpC,OAAO,EAAE;oBACL,OAAO,EAAE,YAAY;oBACrB,OAAO,EAAE,2CAA2C;iBACvD;aACJ,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC;gBAClD,IAAI,EAAE,kBAAkB;gBACxB,EAAE,EAAE,uBAAuB;gBAC3B,OAAO,EAAE,YAAY;gBACrB,IAAI,EAAE,2CAA2C;aACpD,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC1D,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBACvC,SAAS,EAAE,wBAAwB;aACtC,CAAC,CAAC;YAEH,MAAM,QAAQ,CAAC,UAAU,CAAC;gBACtB,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE;oBACT,UAAU,EAAE,kBAAkB;oBAC9B,UAAU,EAAE,aAAa;iBAC5B;aACJ,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,kBAAkB,CAAC;gBACpC,OAAO,EAAE;oBACL,OAAO,EAAE,yBAAyB;iBACrC;aACJ,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACjD,MAAM,CAAC,gBAAgB,CAAC;gBACpB,OAAO,EAAE,cAAc;aAC1B,CAAC,CACL,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YAC/C,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBACvC,SAAS,EAAE,wBAAwB;aACtC,CAAC,CAAC;YAEH,MAAM,QAAQ,CAAC,UAAU,CAAC;gBACtB,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE;oBACT,UAAU,EAAE,kBAAkB;oBAC9B,UAAU,EAAE,aAAa;iBAC5B;aACJ,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,kBAAkB,CAAC;gBACpC,OAAO,EAAE;oBACL,OAAO,EAAE,SAAS;oBAClB,OAAO,EAAE,sDAAsD;iBAClE;gBACD,SAAS,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,OAAO;iBACnB;aACJ,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACjD,MAAM,CAAC,gBAAgB,CAAC;gBACpB,IAAI,EAAE,4CAA4C;aACrD,CAAC,CACL,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC5C,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBACvC,SAAS,EAAE,yBAAyB;aACvC,CAAC,CAAC;YAEH,MAAM,QAAQ,CAAC,UAAU,CAAC;gBACtB,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE;oBACT,UAAU,EAAE,kBAAkB;oBAC9B,UAAU,EAAE,aAAa;oBACzB,UAAU,EAAE,uBAAuB;iBACtC;aACJ,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACjD,MAAM,CAAC,gBAAgB,CAAC;gBACpB,IAAI,EAAE,uBAAuB;aAChC,CAAC,CACL,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACjE,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAE5E,MAAM,QAAQ,CAAC,UAAU,CAAC;gBACtB,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE;oBACT,UAAU,EAAE,kBAAkB;oBAC9B,UAAU,EAAE,aAAa;iBAC5B;aACJ,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;gBACzB,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,oBAAoB;gBAC7B,SAAS,EAAE,IAAI;aAClB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;YAC1E,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;YAEnF,MAAM,QAAQ,CAAC,UAAU,CAAC;gBACtB,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE;oBACT,UAAU,EAAE,kBAAkB;oBAC9B,UAAU,EAAE,gBAAgB;iBAC/B;aACJ,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YACzE,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;YAE/E,MAAM,QAAQ,CAAC,UAAU,CAAC;gBACtB,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE;oBACT,UAAU,EAAE,kBAAkB;oBAC9B,UAAU,EAAE,aAAa;iBAC5B;aACJ,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAC9C,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;YAE3D,MAAM,QAAQ,CAAC,UAAU,CAAC;gBACtB,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE;oBACT,UAAU,EAAE,kBAAkB;oBAC9B,UAAU,EAAE,aAAa;iBAC5B;aACJ,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,QAAQ,CAAC,UAAU,CAAC;gBACtB,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE;oBACT,UAAU,EAAE,gBAAgB;oBAC5B,UAAU,EAAE,aAAa;iBAC5B;aACJ,CAAC,CAAC;YAEH,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAE1B,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,QAAQ,CAAC,UAAU,CAAC;gBACtB,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE;oBACT,UAAU,EAAE,gBAAgB;oBAC5B,UAAU,EAAE,aAAa;iBAC5B;aACJ,CAAC,CAAC;YAEH,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAE1B,mEAAmE;YACnE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAClD,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;QAClC,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplens/nodemailer-gmail",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "description": "Gmail/SMTP email provider plugin for SimpleNS using Nodemailer",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -17,6 +17,7 @@
17
17
  "test": "vitest run",
18
18
  "test:watch": "vitest",
19
19
  "test:coverage": "vitest run --coverage",
20
+ "test:send": "tsx scripts/test-send.ts",
20
21
  "prepublishOnly": "npm run build"
21
22
  },
22
23
  "keywords": [
@@ -35,6 +36,8 @@
35
36
  },
36
37
  "devDependencies": {
37
38
  "@types/nodemailer": "^6.4.0",
39
+ "dotenv": "^17.2.3",
40
+ "tsx": "^4.21.0",
38
41
  "typescript": "^5.0.0",
39
42
  "vitest": "^4.0.16"
40
43
  },