townkrier-smtp 1.0.0-alpha.6
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/CHANGELOG.md +32 -0
- package/dist/core/smtp-channel.d.ts +9 -0
- package/dist/core/smtp-channel.js +109 -0
- package/dist/core/smtp-channel.js.map +1 -0
- package/dist/core/smtp.mapper.d.ts +7 -0
- package/dist/core/smtp.mapper.js +62 -0
- package/dist/core/smtp.mapper.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/index.d.ts +3 -0
- package/dist/interfaces/index.js +3 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/jest.config.js +11 -0
- package/package.json +39 -0
- package/src/core/smtp-channel.ts +94 -0
- package/src/core/smtp.mapper.ts +78 -0
- package/src/index.ts +4 -0
- package/src/interfaces/index.ts +4 -0
- package/src/types/index.ts +13 -0
- package/tsconfig.json +24 -0
- package/tsconfig.spec.json +9 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Change Log
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
+
|
|
6
|
+
# 1.0.0-alpha.5 (2026-02-02)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- Update publish workflow to enforce frozen lockfile and adjust publish commands ([ae73a10](https://github.com/jeremiah-olisa/townkrier/commit/ae73a10c7629f54b0e2de4b1f648e6e721125dbc))
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- introduce Postmark and SMTP email channels with examples ([4d74797](https://github.com/jeremiah-olisa/townkrier/commit/4d7479737628267b8027a3df1fedddfd753460cd))
|
|
15
|
+
|
|
16
|
+
# 1.0.0-alpha.4 (2026-01-28)
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
- introduce Postmark and SMTP email channels with examples ([4d74797](https://github.com/jeremiah-olisa/townkrier/commit/4d7479737628267b8027a3df1fedddfd753460cd))
|
|
21
|
+
|
|
22
|
+
# 1.0.0-alpha.3 (2026-01-28)
|
|
23
|
+
|
|
24
|
+
### Features
|
|
25
|
+
|
|
26
|
+
- introduce Postmark and SMTP email channels with examples ([4d74797](https://github.com/jeremiah-olisa/townkrier/commit/4d7479737628267b8027a3df1fedddfd753460cd))
|
|
27
|
+
|
|
28
|
+
# 1.0.0-alpha.2 (2026-01-28)
|
|
29
|
+
|
|
30
|
+
### Features
|
|
31
|
+
|
|
32
|
+
- introduce Postmark and SMTP email channels with examples ([4d74797](https://github.com/jeremiah-olisa/townkrier/commit/4d7479737628267b8027a3df1fedddfd753460cd))
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MailChannel, SendEmailRequest, SendEmailResponse } from 'townkrier-core';
|
|
2
|
+
import { SmtpConfig } from '../types';
|
|
3
|
+
export declare class SmtpChannel extends MailChannel {
|
|
4
|
+
private transporter;
|
|
5
|
+
constructor(config: SmtpConfig);
|
|
6
|
+
sendEmail(request: SendEmailRequest): Promise<SendEmailResponse>;
|
|
7
|
+
private handleError;
|
|
8
|
+
}
|
|
9
|
+
export declare function createSmtpChannel(config: SmtpConfig): SmtpChannel;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.SmtpChannel = void 0;
|
|
37
|
+
exports.createSmtpChannel = createSmtpChannel;
|
|
38
|
+
const nodemailer = __importStar(require("nodemailer"));
|
|
39
|
+
const townkrier_core_1 = require("townkrier-core");
|
|
40
|
+
const smtp_mapper_1 = require("./smtp.mapper");
|
|
41
|
+
class SmtpChannel extends townkrier_core_1.MailChannel {
|
|
42
|
+
constructor(config) {
|
|
43
|
+
if (!config.host || !config.port) {
|
|
44
|
+
throw new townkrier_core_1.NotificationConfigurationException('Host and Port are required for SMTP', {
|
|
45
|
+
channel: 'SMTP',
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
super(config, 'SMTP');
|
|
49
|
+
this.transporter = nodemailer.createTransport({
|
|
50
|
+
host: config.host,
|
|
51
|
+
port: config.port,
|
|
52
|
+
secure: config.secure ?? false,
|
|
53
|
+
auth: config.auth,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
async sendEmail(request) {
|
|
57
|
+
try {
|
|
58
|
+
townkrier_core_1.Logger.debug('SENDING SMTP MAIL', request);
|
|
59
|
+
const recipients = Array.isArray(request.to) ? request.to : [request.to];
|
|
60
|
+
for (const recipient of recipients) {
|
|
61
|
+
const email = typeof recipient === 'string' ? recipient : recipient.email;
|
|
62
|
+
if (!(0, townkrier_core_1.isValidEmail)(email)) {
|
|
63
|
+
throw new townkrier_core_1.NotificationConfigurationException(`Invalid email address: ${email}`, {
|
|
64
|
+
email,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
const emailData = smtp_mapper_1.SmtpMapper.toSmtpData(request, this.config);
|
|
69
|
+
const info = await this.transporter.sendMail(emailData);
|
|
70
|
+
townkrier_core_1.Logger.debug('SMTP Raw Response', info);
|
|
71
|
+
return smtp_mapper_1.SmtpMapper.toSuccessResponse(info, request);
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
if (error instanceof Error && error.message.includes('From email address is required')) {
|
|
75
|
+
return {
|
|
76
|
+
success: false,
|
|
77
|
+
status: townkrier_core_1.NotificationStatus.FAILED,
|
|
78
|
+
messageId: '',
|
|
79
|
+
error: {
|
|
80
|
+
code: 'CONFIGURATION_ERROR',
|
|
81
|
+
message: 'From email address is required',
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
return this.handleError(error, 'Failed to send email with SMTP');
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
handleError(error, defaultMessage) {
|
|
89
|
+
const code = 'SMTP_ERROR';
|
|
90
|
+
let message = defaultMessage;
|
|
91
|
+
if (error instanceof Error) {
|
|
92
|
+
message = error.message;
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
messageId: '',
|
|
96
|
+
status: townkrier_core_1.NotificationStatus.FAILED,
|
|
97
|
+
error: {
|
|
98
|
+
code,
|
|
99
|
+
message,
|
|
100
|
+
details: error,
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.SmtpChannel = SmtpChannel;
|
|
106
|
+
function createSmtpChannel(config) {
|
|
107
|
+
return new SmtpChannel(config);
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=smtp-channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smtp-channel.js","sourceRoot":"","sources":["../../src/core/smtp-channel.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2FA,8CAEC;AA7FD,uDAAyC;AACzC,mDAQwB;AAGxB,+CAA2C;AAE3C,MAAa,WAAY,SAAQ,4BAAW;IAG1C,YAAY,MAAkB;QAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,IAAI,mDAAkC,CAAC,qCAAqC,EAAE;gBAClF,OAAO,EAAE,MAAM;aAChB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC;YAC5C,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK;YAC9B,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAyB;QACvC,IAAI,CAAC;YACH,uBAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;YAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACzE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC1E,IAAI,CAAC,IAAA,6BAAY,EAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,MAAM,IAAI,mDAAkC,CAAC,0BAA0B,KAAK,EAAE,EAAE;wBAC9E,KAAK;qBACN,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,SAAS,GAAG,wBAAU,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,MAAoB,CAAC,CAAC;YAE5E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAExD,uBAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;YAExC,OAAO,wBAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAC,EAAE,CAAC;gBACvF,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,mCAAkB,CAAC,MAAM;oBACjC,SAAS,EAAE,EAAE;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,qBAAqB;wBAC3B,OAAO,EAAE,gCAAgC;qBAC1C;iBACK,CAAC;YACX,CAAC;YAED,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,gCAAgC,CAAsB,CAAC;QACxF,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,KAAc,EAAE,cAAsB;QACxD,MAAM,IAAI,GAAG,YAAY,CAAC;QAC1B,IAAI,OAAO,GAAG,cAAc,CAAC;QAE7B,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAE1B,CAAC;QAED,OAAO;YACL,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,mCAAkB,CAAC,MAAM;YACjC,KAAK,EAAE;gBACL,IAAI;gBACJ,OAAO;gBACP,OAAO,EAAE,KAAK;aACf;SACF,CAAC;IACJ,CAAC;CACF;AA3ED,kCA2EC;AAED,SAAgB,iBAAiB,CAAC,MAAkB;IAClD,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SendEmailRequest, SendEmailResponse } from 'townkrier-core';
|
|
2
|
+
import { SmtpConfig } from '../types';
|
|
3
|
+
import { SmtpEmailData, SmtpApiResponse } from '../interfaces';
|
|
4
|
+
export declare class SmtpMapper {
|
|
5
|
+
static toSmtpData(request: SendEmailRequest, config: SmtpConfig): SmtpEmailData;
|
|
6
|
+
static toSuccessResponse(data: SmtpApiResponse, request: SendEmailRequest): SendEmailResponse;
|
|
7
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SmtpMapper = void 0;
|
|
4
|
+
const townkrier_core_1 = require("townkrier-core");
|
|
5
|
+
class SmtpMapper {
|
|
6
|
+
static toSmtpData(request, config) {
|
|
7
|
+
const from = request.from
|
|
8
|
+
? `${request.from.name ? `${request.from.name} <${request.from.email}>` : request.from.email}`
|
|
9
|
+
: config.from
|
|
10
|
+
? `${config.fromName ? `${config.fromName} <${config.from}>` : config.from}`
|
|
11
|
+
: '';
|
|
12
|
+
if (!from) {
|
|
13
|
+
throw new Error('From email address is required');
|
|
14
|
+
}
|
|
15
|
+
const recipients = Array.isArray(request.to) ? request.to : [request.to];
|
|
16
|
+
const to = recipients.map((r) => (r.name ? `${r.name} <${r.email}>` : r.email));
|
|
17
|
+
const emailData = {
|
|
18
|
+
from,
|
|
19
|
+
to,
|
|
20
|
+
subject: request.subject,
|
|
21
|
+
html: request.html,
|
|
22
|
+
text: request.text || request.html || request.subject,
|
|
23
|
+
};
|
|
24
|
+
if (request.cc && request.cc.length > 0) {
|
|
25
|
+
emailData.cc = request.cc.map((r) => (r.name ? `${r.name} <${r.email}>` : r.email));
|
|
26
|
+
}
|
|
27
|
+
if (request.bcc && request.bcc.length > 0) {
|
|
28
|
+
emailData.bcc = request.bcc.map((r) => (r.name ? `${r.name} <${r.email}>` : r.email));
|
|
29
|
+
}
|
|
30
|
+
if (request.replyTo) {
|
|
31
|
+
emailData.replyTo = request.replyTo.name
|
|
32
|
+
? `${request.replyTo.name} <${request.replyTo.email}>`
|
|
33
|
+
: request.replyTo.email;
|
|
34
|
+
}
|
|
35
|
+
if (request.attachments && request.attachments.length > 0) {
|
|
36
|
+
emailData.attachments = request.attachments
|
|
37
|
+
.filter((att) => att.content !== undefined)
|
|
38
|
+
.map((att) => ({
|
|
39
|
+
filename: att.filename,
|
|
40
|
+
content: att.content,
|
|
41
|
+
path: att.path,
|
|
42
|
+
contentType: att.contentType,
|
|
43
|
+
cid: undefined,
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
if (request.metadata) {
|
|
47
|
+
}
|
|
48
|
+
return emailData;
|
|
49
|
+
}
|
|
50
|
+
static toSuccessResponse(data, request) {
|
|
51
|
+
return {
|
|
52
|
+
messageId: data.messageId,
|
|
53
|
+
reference: request.reference || (0, townkrier_core_1.generateReference)('EMAIL'),
|
|
54
|
+
status: townkrier_core_1.NotificationStatus.SENT,
|
|
55
|
+
sentAt: new Date(),
|
|
56
|
+
metadata: request.metadata,
|
|
57
|
+
raw: data,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.SmtpMapper = SmtpMapper;
|
|
62
|
+
//# sourceMappingURL=smtp.mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smtp.mapper.js","sourceRoot":"","sources":["../../src/core/smtp.mapper.ts"],"names":[],"mappings":";;;AAAA,mDAKwB;AAIxB,MAAa,UAAU;IACrB,MAAM,CAAC,UAAU,CAAC,OAAyB,EAAE,MAAkB;QAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI;YACvB,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;YAC9F,CAAC,CAAC,MAAM,CAAC,IAAI;gBACX,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;gBAC5E,CAAC,CAAC,EAAE,CAAC;QAET,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAEhF,MAAM,SAAS,GAAkB;YAC/B,IAAI;YACJ,EAAE;YACF,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO;SACtD,CAAC;QAEF,IAAI,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,SAAS,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACxF,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI;gBACtC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG;gBACtD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5B,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW;iBACxC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC;iBAC1C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACb,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,GAAG,EAAE,SAAS;aACf,CAAC,CAAC,CAAC;QACR,CAAC;QAGD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QAGvB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,IAAqB,EAAE,OAAyB;QACvE,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAA,kCAAiB,EAAC,OAAO,CAAC;YAC1D,MAAM,EAAE,mCAAkB,CAAC,IAAI;YAC/B,MAAM,EAAE,IAAI,IAAI,EAAE;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,GAAG,EAAE,IAAI;SACV,CAAC;IACJ,CAAC;CACF;AApED,gCAoEC"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./core/smtp-channel"), exports);
|
|
18
|
+
__exportStar(require("./core/smtp.mapper"), exports);
|
|
19
|
+
__exportStar(require("./types"), exports);
|
|
20
|
+
__exportStar(require("./interfaces"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,qDAAmC;AACnC,0CAAwB;AACxB,+CAA6B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.scripthost.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.full.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/compatibility/iterators.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/globals.typedarray.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/buffer.buffer.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/globals.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/web-globals/crypto.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/web-globals/domexception.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/web-globals/events.d.ts","../../../../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/utility.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/header.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/readable.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/fetch.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/formdata.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/connector.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client-stats.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/errors.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/dispatcher.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-dispatcher.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-origin.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool-stats.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/handlers.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/balanced-pool.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/h2c-client.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/agent.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-interceptor.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-call-history.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-agent.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-client.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-pool.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/snapshot-agent.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-errors.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/proxy-agent.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-handler.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-agent.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/api.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache-interceptor.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/interceptors.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/util.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cookies.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/patch.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/websocket.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/eventsource.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/content-type.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache.d.ts","../../../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/index.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/web-globals/fetch.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/web-globals/navigator.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/web-globals/storage.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/web-globals/streams.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/assert.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/assert/strict.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/async_hooks.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/buffer.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/child_process.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/cluster.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/console.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/constants.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/crypto.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/dgram.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/diagnostics_channel.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/dns.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/dns/promises.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/domain.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/events.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/fs.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/fs/promises.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/http.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/http2.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/https.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/inspector.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/inspector.generated.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/module.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/net.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/os.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/path.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/perf_hooks.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/process.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/punycode.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/querystring.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/readline.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/readline/promises.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/repl.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/sea.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/sqlite.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/stream.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/stream/promises.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/stream/consumers.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/stream/web.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/string_decoder.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/test.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/timers.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/timers/promises.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/tls.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/trace_events.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/tty.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/url.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/util.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/v8.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/vm.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/wasi.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/worker_threads.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/zlib.d.ts","../../../../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/index.d.ts","../../../../../node_modules/.pnpm/@types+nodemailer@6.4.16/node_modules/@types/nodemailer/lib/dkim/index.d.ts","../../../../../node_modules/.pnpm/@types+nodemailer@6.4.16/node_modules/@types/nodemailer/lib/mailer/mail-message.d.ts","../../../../../node_modules/.pnpm/@types+nodemailer@6.4.16/node_modules/@types/nodemailer/lib/xoauth2/index.d.ts","../../../../../node_modules/.pnpm/@types+nodemailer@6.4.16/node_modules/@types/nodemailer/lib/mailer/index.d.ts","../../../../../node_modules/.pnpm/@types+nodemailer@6.4.16/node_modules/@types/nodemailer/lib/mime-node/index.d.ts","../../../../../node_modules/.pnpm/@types+nodemailer@6.4.16/node_modules/@types/nodemailer/lib/smtp-connection/index.d.ts","../../../../../node_modules/.pnpm/@types+nodemailer@6.4.16/node_modules/@types/nodemailer/lib/shared/index.d.ts","../../../../../node_modules/.pnpm/@types+nodemailer@6.4.16/node_modules/@types/nodemailer/lib/json-transport/index.d.ts","../../../../../node_modules/.pnpm/@types+nodemailer@6.4.16/node_modules/@types/nodemailer/lib/sendmail-transport/index.d.ts","../../../../../node_modules/.pnpm/@types+nodemailer@6.4.16/node_modules/@types/nodemailer/lib/ses-transport/index.d.ts","../../../../../node_modules/.pnpm/@types+nodemailer@6.4.16/node_modules/@types/nodemailer/lib/smtp-pool/index.d.ts","../../../../../node_modules/.pnpm/@types+nodemailer@6.4.16/node_modules/@types/nodemailer/lib/smtp-transport/index.d.ts","../../../../../node_modules/.pnpm/@types+nodemailer@6.4.16/node_modules/@types/nodemailer/lib/stream-transport/index.d.ts","../../../../../node_modules/.pnpm/@types+nodemailer@6.4.16/node_modules/@types/nodemailer/index.d.ts","../../../../core/dist/types/delivery-strategy.type.d.ts","../../../../core/dist/types/index.d.ts","../../../../core/dist/interfaces/notification-request.interface.d.ts","../../../../core/dist/core/notification.d.ts","../../../../core/dist/interfaces/notification-response.interface.d.ts","../../../../core/dist/interfaces/notification-channel.interface.d.ts","../../../../core/dist/interfaces/template-renderer.interface.d.ts","../../../../core/dist/interfaces/notification-config.interface.d.ts","../../../../core/dist/interfaces/index.d.ts","../../../../core/dist/events/notification-event.d.ts","../../../../core/dist/events/notification-sending.event.d.ts","../../../../core/dist/events/notification-sent.event.d.ts","../../../../core/dist/events/notification-failed.event.d.ts","../../../../core/dist/events/notification-event-dispatcher.d.ts","../../../../core/dist/events/index.d.ts","../../../../core/dist/utils/types.util.d.ts","../../../../core/dist/utils/index.d.ts","../../../../core/dist/core/notification-manager/types.d.ts","../../../../core/dist/core/notification-manager.d.ts","../../../../core/dist/core/notification-request.mapper.d.ts","../../../../core/dist/core/base-notification-channel.d.ts","../../../../core/dist/core/townkrier-factory.d.ts","../../../../core/dist/core/notifiable/notifiable-mixin.d.ts","../../../../core/dist/core/notifiable/utils.d.ts","../../../../core/dist/core/notifiable/index.d.ts","../../../../core/dist/core/index.d.ts","../../../../core/dist/logger/logger.interface.d.ts","../../../../core/dist/types/log-options.d.ts","../../../../core/dist/logger/console-logger.d.ts","../../../../core/dist/logger/logger.d.ts","../../../../core/dist/logger/index.d.ts","../../../../core/dist/exceptions/notification-error-codes.d.ts","../../../../core/dist/exceptions/notification.exception.d.ts","../../../../core/dist/exceptions/index.d.ts","../../../../core/dist/channels/mail.channel.d.ts","../../../../core/dist/channels/sms.channel.d.ts","../../../../core/dist/channels/push.channel.d.ts","../../../../core/dist/channels/in-app.channel.d.ts","../../../../core/dist/channels/index.d.ts","../../../../core/dist/index.d.ts","../src/types/index.ts","../src/interfaces/index.ts","../src/core/smtp.mapper.ts","../src/core/smtp-channel.ts","../src/index.ts","../../../../../node_modules/.pnpm/@jest+expect-utils@30.2.0/node_modules/@jest/expect-utils/build/index.d.ts","../../../../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/symbols/symbols.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/symbols/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/any/any.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/any/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped-key.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped-result.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/async-iterator/async-iterator.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/async-iterator/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/readonly/readonly.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/readonly/readonly-from-mapped-result.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/readonly/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/readonly-optional/readonly-optional.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/readonly-optional/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/constructor/constructor.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/constructor/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/literal/literal.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/literal/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/enum/enum.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/enum/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/function/function.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/function/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/computed/computed.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/computed/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/never/never.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/never/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect-type.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect-evaluated.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/intersect/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/union/union-type.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/union/union-evaluated.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/union/union.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/union/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/recursive/recursive.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/recursive/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/unsafe/unsafe.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/unsafe/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/ref/ref.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/ref/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/tuple/tuple.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/tuple/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/error/error.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/error/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/string/string.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/string/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/boolean/boolean.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/boolean/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/number/number.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/number/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/integer/integer.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/integer/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/bigint/bigint.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/bigint/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/template-literal/parse.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/template-literal/finite.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/template-literal/generate.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/template-literal/syntax.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/template-literal/pattern.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/template-literal/template-literal.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/template-literal/union.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/template-literal/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-property-keys.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-from-mapped-result.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-from-mapped-key.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/indexed/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/iterator/iterator.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/iterator/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/promise/promise.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/promise/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/sets/set.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/sets/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/mapped/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/optional/optional.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/optional/optional-from-mapped-result.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/optional/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/awaited/awaited.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/awaited/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-property-keys.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-from-mapped-result.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-property-entries.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/keyof/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/omit/omit-from-mapped-result.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/omit/omit.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/omit/omit-from-mapped-key.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/omit/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/pick/pick-from-mapped-result.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/pick/pick.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/pick/pick-from-mapped-key.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/pick/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/null/null.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/null/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/symbol/symbol.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/symbol/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/undefined/undefined.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/undefined/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/partial/partial.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/partial/partial-from-mapped-result.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/partial/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/regexp/regexp.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/regexp/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/record/record.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/record/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/required/required.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/required/required-from-mapped-result.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/required/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/transform/transform.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/transform/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/module/compute.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/module/infer.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/module/module.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/module/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/not/not.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/not/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/static/static.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/static/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/object/object.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/object/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/helpers/helpers.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/helpers/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/array/array.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/array/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/date/date.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/date/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/uint8array/uint8array.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/uint8array/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/unknown/unknown.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/unknown/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/void/void.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/void/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/schema/schema.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/schema/anyschema.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/schema/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/clone/type.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/clone/value.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/clone/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/create/type.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/create/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/argument/argument.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/argument/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/guard/kind.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/guard/type.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/guard/value.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/guard/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/patterns/patterns.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/patterns/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/registry/format.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/registry/type.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/registry/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/composite/composite.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/composite/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/const/const.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/const/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/constructor-parameters/constructor-parameters.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/constructor-parameters/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude-from-template-literal.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude-from-mapped-result.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/exclude/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-check.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-from-mapped-result.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/extends/extends.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-from-mapped-key.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-undefined.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/extends/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/extract/extract-from-template-literal.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/extract/extract.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/extract/extract-from-mapped-result.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/extract/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/instance-type/instance-type.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/instance-type/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/instantiate/instantiate.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/instantiate/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/intrinsic-from-mapped-key.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/intrinsic.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/capitalize.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/lowercase.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/uncapitalize.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/uppercase.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/parameters/parameters.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/parameters/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/rest/rest.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/rest/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/return-type/return-type.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/return-type/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/type/json.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/type/javascript.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/type/type/index.d.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.48/node_modules/@sinclair/typebox/build/cjs/index.d.ts","../../../../../node_modules/.pnpm/@jest+schemas@30.0.5/node_modules/@jest/schemas/build/index.d.ts","../../../../../node_modules/.pnpm/pretty-format@30.2.0/node_modules/pretty-format/build/index.d.ts","../../../../../node_modules/.pnpm/jest-diff@30.2.0/node_modules/jest-diff/build/index.d.ts","../../../../../node_modules/.pnpm/jest-matcher-utils@30.2.0/node_modules/jest-matcher-utils/build/index.d.ts","../../../../../node_modules/.pnpm/jest-mock@30.2.0/node_modules/jest-mock/build/index.d.ts","../../../../../node_modules/.pnpm/expect@30.2.0/node_modules/expect/build/index.d.ts","../../../../../node_modules/.pnpm/@types+jest@30.0.0/node_modules/@types/jest/index.d.ts"],"fileIdsList":[[61,116,133,134],[61,116,133,134,419],[61,116,133,134,229,231,235,238,240,242,244,246,248,252,256,260,262,264,266,268,270,272,274,276,278,280,288,293,295,297,299,301,304,306,311,315,319,321,323,325,328,330,332,335,337,341,343,345,347,349,351,353,355,357,359,362,365,367,369,373,375,378,380,382,384,388,394,398,400,402,409,411,413,415,418],[61,116,133,134,229,362],[61,116,133,134,230],[61,116,133,134,368],[61,116,133,134,229,345,349,362],[61,116,133,134,350],[61,116,133,134,229,345,362],[61,116,133,134,234],[61,116,133,134,250,256,260,266,297,349,362],[61,116,133,134,305],[61,116,133,134,279],[61,116,133,134,273],[61,116,133,134,363,364],[61,116,133,134,362],[61,116,133,134,252,256,293,299,311,347,349,362],[61,116,133,134,379],[61,116,133,134,228,362],[61,116,133,134,249],[61,116,133,134,231,238,244,248,252,268,280,321,323,325,347,349,353,355,357,362],[61,116,133,134,381],[61,116,133,134,242,252,268,362],[61,116,133,134,383],[61,116,133,134,229,238,240,304,345,349,362],[61,116,133,134,241],[61,116,133,134,366],[61,116,133,134,360],[61,116,133,134,352],[61,116,133,134,229,244,362],[61,116,133,134,245],[61,116,133,134,269],[61,116,133,134,301,347,362,386],[61,116,133,134,288,362,386],[61,116,133,134,252,260,288,301,345,349,362,385,387],[61,116,133,134,385,386,387],[61,116,133,134,270,362],[61,116,133,134,244,301,347,349,362,391],[61,116,133,134,301,347,362,391],[61,116,133,134,260,301,345,349,362,390,392],[61,116,133,134,389,390,391,392,393],[61,116,133,134,301,347,362,396],[61,116,133,134,288,362,396],[61,116,133,134,252,260,288,301,345,349,362,395,397],[61,116,133,134,395,396,397],[61,116,133,134,247],[61,116,133,134,370,371,372],[61,116,133,134,229,231,235,238,242,244,248,250,252,256,260,262,264,266,268,272,274,276,278,280,288,295,297,301,304,321,323,325,330,332,337,341,343,347,351,353,355,357,359,362,369],[61,116,133,134,229,231,235,238,242,244,248,250,252,256,260,262,264,266,268,270,272,274,276,278,280,288,295,297,301,304,321,323,325,330,332,337,341,343,347,351,353,355,357,359,362,369],[61,116,133,134,252,347,362],[61,116,133,134,348],[61,116,133,134,289,290,291,292],[61,116,133,134,291,301,347,349,362],[61,116,133,134,289,293,301,347,362],[61,116,133,134,244,260,276,278,288,362],[61,116,133,134,250,252,256,260,262,266,268,289,290,292,301,347,349,351,362],[61,116,133,134,399],[61,116,133,134,242,252,362],[61,116,133,134,401],[61,116,133,134,235,238,240,242,248,256,260,268,295,297,304,332,347,351,357,362,369],[61,116,133,134,277],[61,116,133,134,253,254,255],[61,116,133,134,238,252,253,304,362],[61,116,133,134,252,253,362],[61,116,133,134,362,404],[61,116,133,134,403,404,405,406,407,408],[61,116,133,134,244,301,347,349,362,404],[61,116,133,134,244,260,288,301,362,403],[61,116,133,134,294],[61,116,133,134,307,308,309,310],[61,116,133,134,301,308,347,349,362],[61,116,133,134,256,260,262,268,299,347,349,351,362],[61,116,133,134,244,250,260,266,276,301,307,309,349,362],[61,116,133,134,243],[61,116,133,134,232,233,300],[61,116,133,134,229,347,362],[61,116,133,134,232,233,235,238,242,244,246,248,256,260,268,293,295,297,299,304,347,349,351,362],[61,116,133,134,235,238,242,246,248,250,252,256,260,266,268,293,295,304,306,311,315,319,328,332,335,337,347,349,351,362],[61,116,133,134,340],[61,116,133,134,235,238,242,246,248,256,260,262,266,268,295,304,332,345,347,349,351,362],[61,116,133,134,229,338,339,345,347,362],[61,116,133,134,251],[61,116,133,134,342],[61,116,133,134,320],[61,116,133,134,275],[61,116,133,134,346],[61,116,133,134,229,238,304,345,349,362],[61,116,133,134,312,313,314],[61,116,133,134,301,313,347,362],[61,116,133,134,301,313,347,349,362],[61,116,133,134,244,250,256,260,262,266,293,301,312,314,347,349,362],[61,116,133,134,302,303],[61,116,133,134,301,302,347],[61,116,133,134,229,301,303,349,362],[61,116,133,134,410],[61,116,133,134,248,252,268,362],[61,116,133,134,326,327],[61,116,133,134,301,326,347,349,362],[61,116,133,134,238,240,244,250,256,260,262,266,272,274,276,278,280,301,304,321,323,325,327,347,349,362],[61,116,133,134,374],[61,116,133,134,316,317,318],[61,116,133,134,301,317,347,362],[61,116,133,134,301,317,347,349,362],[61,116,133,134,244,250,256,260,262,266,293,301,316,318,347,349,362],[61,116,133,134,296],[61,116,133,134,239],[61,116,133,134,238,304,362],[61,116,133,134,236,237],[61,116,133,134,236,301,347],[61,116,133,134,229,237,301,349,362],[61,116,133,134,331],[61,116,133,134,229,231,244,246,252,260,272,274,276,278,288,330,345,347,349,362],[61,116,133,134,261],[61,116,133,134,265],[61,116,133,134,229,264,345,362],[61,116,133,134,329],[61,116,133,134,376,377],[61,116,133,134,333,334],[61,116,133,134,301,333,347,349,362],[61,116,133,134,238,240,244,250,256,260,262,266,272,274,276,278,280,301,304,321,323,325,334,347,349,362],[61,116,133,134,412],[61,116,133,134,256,260,268,362],[61,116,133,134,414],[61,116,133,134,248,252,362],[61,116,133,134,231,235,242,244,246,248,256,260,262,266,268,272,274,276,278,280,288,295,297,321,323,325,330,332,343,347,351,353,355,357,359,360],[61,116,133,134,360,361],[61,116,133,134,229],[61,116,133,134,298],[61,116,133,134,344],[61,116,133,134,235,238,242,246,248,252,256,260,262,264,266,268,295,297,304,332,337,341,343,347,349,351,362],[61,116,133,134,271],[61,116,133,134,322],[61,116,133,134,228],[61,116,133,134,244,260,270,272,274,276,278,280,281,288],[61,116,133,134,244,260,270,274,281,282,288,349],[61,116,133,134,281,282,283,284,285,286,287],[61,116,133,134,270],[61,116,133,134,270,288],[61,116,133,134,244,260,272,274,276,280,288,349],[61,116,133,134,229,244,252,260,272,274,276,278,280,284,345,349,362],[61,116,133,134,244,260,286,345,349],[61,116,133,134,336],[61,116,133,134,267],[61,116,133,134,416,417],[61,116,133,134,235,242,248,280,295,297,306,323,325,330,353,355,359,362,369,384,400,402,411,415,416],[61,116,133,134,231,238,240,244,246,252,256,260,262,264,266,268,272,274,276,278,288,293,301,304,311,315,319,321,328,332,335,337,341,343,347,351,357,362,380,382,388,394,398,409,413],[61,116,133,134,354],[61,116,133,134,324],[61,116,133,134,257,258,259],[61,116,133,134,238,252,257,304,362],[61,116,133,134,252,257,362],[61,116,133,134,356],[61,116,133,134,263],[61,116,133,134,358],[61,116,133,134,421,425],[61,113,114,116,133,134],[61,115,116,133,134],[116,133,134],[61,116,121,133,134,151],[61,116,117,122,127,133,134,136,148,159],[61,116,117,118,127,133,134,136],[61,116,119,133,134,160],[61,116,120,121,128,133,134,137],[61,116,121,133,134,148,156],[61,116,122,124,127,133,134,136],[61,115,116,123,133,134],[61,116,124,125,133,134],[61,116,126,127,133,134],[61,115,116,127,133,134],[61,116,127,128,129,133,134,148,159],[61,116,127,128,129,133,134,143,148,151],[61,108,116,124,127,130,133,134,136,148,159],[61,116,127,128,130,131,133,134,136,148,156,159],[61,116,130,132,133,134,148,156,159],[59,60,61,62,63,64,65,66,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165],[61,116,127,133,134],[61,116,133,134,135,159],[61,116,124,127,133,134,136,148],[61,116,133,134,137],[61,116,133,134,138],[61,115,116,133,134,139],[61,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165],[61,116,133,134,141],[61,116,133,134,142],[61,116,127,133,134,143,144],[61,116,133,134,143,145,160,162],[61,116,128,133,134],[61,116,127,133,134,148,149,151],[61,116,133,134,150,151],[61,116,133,134,148,149],[61,116,133,134,151],[61,116,133,134,152],[61,113,116,133,134,148,153],[61,116,127,133,134,154,155],[61,116,133,134,154,155],[61,116,121,133,134,136,148,156],[61,116,133,134,157],[61,116,133,134,136,158],[61,116,130,133,134,142,159],[61,116,121,133,134,160],[61,116,133,134,148,161],[61,116,133,134,135,162],[61,116,133,134,163],[61,116,121,133,134],[61,108,116,133,134],[61,116,133,134,164],[61,108,116,127,129,133,134,139,148,151,159,161,162,164],[61,116,133,134,148,165],[61,116,133,134,166,168,170,174,175,176,177,178,179],[61,116,133,134,148,166],[61,116,127,133,134,166,168,170,171,173,180],[61,116,127,133,134,136,148,159,166,167,168,169,171,172,173,180],[61,116,133,134,148,166,170,171],[61,116,133,134,148,166,170,172],[61,116,133,134,166,168,170,171,173,180],[61,116,133,134,148,166,172],[61,116,127,133,134,136,148,156,166,169,171,173],[61,116,127,133,134,166,168,170,171,172,173,180],[61,116,127,133,134,148,166,168,169,170,171,172,173,180],[61,116,127,133,134,148,166,168,170,171,173,180],[61,116,130,133,134,148,166,173],[61,116,133,134,226,423,424],[61,116,133,134,421],[61,116,133,134,227,422],[61,116,133,134,420],[61,74,77,80,81,116,133,134,159],[61,77,116,133,134,148,159],[61,77,81,116,133,134,159],[61,116,133,134,148],[61,71,116,133,134],[61,75,116,133,134],[61,73,74,77,116,133,134,159],[61,116,133,134,136,156],[61,116,133,134,166],[61,71,116,133,134,166],[61,73,77,116,133,134,136,159],[61,68,69,70,72,76,116,127,133,134,148,159],[61,77,85,93,116,133,134],[61,69,75,116,133,134],[61,77,102,103,116,133,134],[61,69,72,77,116,133,134,151,159,166],[61,77,116,133,134],[61,73,77,116,133,134,159],[61,68,116,133,134],[61,71,72,73,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,103,104,105,106,107,116,133,134],[61,77,95,98,116,124,133,134],[61,77,85,86,87,116,133,134],[61,75,77,86,88,116,133,134],[61,76,116,133,134],[61,69,71,77,116,133,134],[61,77,81,86,88,116,133,134],[61,81,116,133,134],[61,75,77,80,116,133,134,159],[61,69,73,77,85,116,133,134],[61,77,95,116,133,134],[61,88,116,133,134],[61,71,77,102,116,133,134,151,164,166],[61,116,133,134,180,220,221,223],[61,116,133,134,220,221,222],[61,116,133,134,221,222,223,224],[61,116,133,134,180],[61,116,133,134,220],[61,116,133,134,186,188,189,201],[61,116,133,134,215,216,217,218],[61,116,133,134,186,188],[61,116,133,134,184,199,200,201,202,205],[61,116,133,134,199,203,204,206,220],[61,116,133,134,182,184,189,197,199],[61,116,133,134,184,189,199,205],[61,116,133,134,189,195,198],[61,116,133,134,184,189,195,197],[61,116,133,134,184,189],[61,116,133,134,182,183],[61,116,133,134,186,195,199],[61,116,133,134,190,191,192,193,194],[61,116,133,134,190],[61,116,133,134,182,184],[61,116,133,134,182,184,190],[61,116,133,134,212,213],[61,116,133,134,182,189,195,197,206,211,214,219],[61,116,133,134,182,183,185,186,187,188],[61,116,133,134,183,185],[61,116,133,134,187],[61,116,133,134,182],[61,116,133,134,207,208],[61,116,133,134,207,209,210],[61,116,133,134,181],[61,116,133,134,196]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a66df3ab5de5cfcda11538cffddd67ff6a174e003788e270914c1e0248483cf","impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"378281aa35786c27d5811af7e6bcaa492eebd0c7013d48137c35bbc69a2b9751","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"1b2dd1cbeb0cc6ae20795958ba5950395ebb2849b7c8326853dd15530c77ab0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"387a023d363f755eb63450a66c28b14cdd7bc30a104565e2dbf0a8988bb4a56c","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"3a80bc85f38526ca3b08007ee80712e7bb0601df178b23fbf0bf87036fce40ce","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"2931540c47ee0ff8a62860e61782eb17b155615db61e36986e54645ec67f67c2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"f6faf5f74e4c4cc309a6c6a6c4da02dbb840be5d3e92905a23dcd7b2b0bd1986","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"3bacf516d686d08682751a3bd2519ea3b8041a164bfb4f1d35728993e70a2426","impliedFormat":1},{"version":"7fb266686238369442bd1719bc0d7edd0199da4fb8540354e1ff7f16669b4323","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"c183b931b68ad184bc8e8372bf663f3d33304772fb482f29fb91b3c391031f3e","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"48cc3ec153b50985fb95153258a710782b25975b10dd4ac8a4f3920632d10790","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"e1528ca65ac90f6fa0e4a247eb656b4263c470bb22d9033e466463e13395e599","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"866078923a56d026e39243b4392e282c1c63159723996fa89243140e1388a98d","impliedFormat":1},{"version":"830171b27c5fdf9bcbe4cf7d428fcf3ae2c67780fb7fbdccdf70d1623d938bc4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ea15fd99b2e34cb25fe8346c955000bb70c8b423ae4377a972ef46bfb37f595","impliedFormat":1},{"version":"7cf69dd5502c41644c9e5106210b5da7144800670cbe861f66726fa209e231c4","impliedFormat":1},{"version":"72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7","impliedFormat":1},{"version":"f9b4137a0d285bd77dba2e6e895530112264310ae47e07bf311feae428fb8b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b21e13ed07d0df176ae31d6b7f01f7b17d66dbeb489c0d31d00de2ca14883da","impliedFormat":1},{"version":"51aecd2df90a3cffea1eb4696b33b2d78594ea2aa2138e6b9471ec4841c6c2ee","impliedFormat":1},{"version":"2c91d8366ff2506296191c26fd97cc1990bab3ee22576275d28b654a21261a44","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"f929f0b6b3421a2d34344b0f421f45aeb2c84ad365ebf29d04312023b3accc58","impliedFormat":1},{"version":"db9ada976f9e52e13f7ae8b9a320f4b67b87685938c5879187d8864b2fbe97f3","impliedFormat":1},{"version":"9f39e70a354d0fba29ac3cdf6eca00b7f9e96f64b2b2780c432e8ea27f133743","impliedFormat":1},{"version":"0dace96cc0f7bc6d0ee2044921bdf19fe42d16284dbcc8ae200800d1c9579335","impliedFormat":1},{"version":"a2e2bbde231b65c53c764c12313897ffdfb6c49183dd31823ee2405f2f7b5378","impliedFormat":1},{"version":"ad1cc0ed328f3f708771272021be61ab146b32ecf2b78f3224959ff1e2cd2a5c","impliedFormat":1},{"version":"c64e1888baaa3253ca4405b455e4bf44f76357868a1bd0a52998ade9a092ad78","affectsGlobalScope":true,"impliedFormat":1},{"version":"d8cf132379078d0974a59df26069689a2d33c7dc826b5be56231841cb2f32e58","impliedFormat":1},{"version":"fbf413fc617837453c878a9174a1f1b383616857a3f8366bc41cf30df4aea7d5","impliedFormat":1},{"version":"148c73ec11318850f571172ceae3e55ce479d850fe18ec8eae0abd99d9f6c319","impliedFormat":1},{"version":"230bdc111d7578276e4a3bb9d075d85c78c6b68f428c3a9935e2eaa10f4ae1f5","impliedFormat":1},{"version":"e8aabbee5e7b9101b03bb4222607d57f38859b8115a8050a4eb91b4ee43a3a73","impliedFormat":1},{"version":"bbf42f98a5819f4f06e18c8b669a994afe9a17fe520ae3454a195e6eabf7700d","impliedFormat":1},{"version":"c0bb1b65757c72bbf8ddf7eaa532223bacf58041ff16c883e76f45506596e925","impliedFormat":1},{"version":"c8b85f7aed29f8f52b813f800611406b0bfe5cf3224d20a4bdda7c7f73ce368e","affectsGlobalScope":true,"impliedFormat":1},{"version":"145dcf25fd4967c610c53d93d7bc4dce8fbb1b6dd7935362472d4ae49363c7ba","impliedFormat":1},{"version":"ff65b8a8bd380c6d129becc35de02f7c29ad7ce03300331ca91311fb4044d1a9","impliedFormat":1},{"version":"76957a6d92b94b9e2852cf527fea32ad2dc0ef50f67fe2b14bd027c9ceef2d86","impliedFormat":1},{"version":"9043daec15206650fa119bad6b8d70136021ea7d52673a71f79a87a42ee38d44","affectsGlobalScope":true,"impliedFormat":1},{"version":"150d28d98d2f6aa7053ee0eb7de5a1c2ab23a6dbcc92eed0a630b2f572a1a5ec","affectsGlobalScope":true,"impliedFormat":1},{"version":"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","impliedFormat":1},{"version":"b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","impliedFormat":1},{"version":"de263f0089aefbfd73c89562fb7254a7468b1f33b61839aafc3f035d60766cb4","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"8c81fd4a110490c43d7c578e8c6f69b3af01717189196899a6a44f93daa57a3a","impliedFormat":1},{"version":"5fb39858b2459864b139950a09adae4f38dad87c25bf572ce414f10e4bd7baab","impliedFormat":1},{"version":"28e3631087ecef78fef8efdb21d4d2509f776ef6f0d660ff605b5ee6a22ebb8c","impliedFormat":1},{"version":"b33b74b97952d9bf4fbd2951dcfbb5136656ddb310ce1c84518aaa77dbca9992","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"6b306cd4282bbb54d4a6bb23cfb7a271160983dfc38c67b5a132504cfcc34896","affectsGlobalScope":true,"impliedFormat":1},{"version":"c119835edf36415081dfd9ed15fc0cd37aaa28d232be029ad073f15f3d88c323","impliedFormat":1},{"version":"450172a56b944c2d83f45cc11c9a388ea967cd301a21202aa0a23c34c7506a18","impliedFormat":1},{"version":"9705cd157ffbb91c5cab48bdd2de5a437a372e63f870f8a8472e72ff634d47c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","impliedFormat":1},{"version":"72f8936aebf0c4a1adab767b97d34ba7d3a308afcf76de4417b9c16fb92ed548","impliedFormat":1},{"version":"e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","impliedFormat":1},{"version":"4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055","impliedFormat":1},{"version":"04aa8fb012abeecf5666b013c59ba01dca5aa0c28173cb5385bc88d4adeb8d64","affectsGlobalScope":true,"impliedFormat":1},{"version":"3585d6891e9ea18e07d0755a6d90d71331558ba5dc5561933553209f886db106","affectsGlobalScope":true,"impliedFormat":1},{"version":"86be71cbb0593468644932a6eb96d527cfa600cecfc0b698af5f52e51804451d","impliedFormat":1},{"version":"84dd6b0fd2505135692935599d6606f50a421389e8d4535194bcded307ee5cf2","impliedFormat":1},{"version":"0d5b085f36e6dc55bc6332ecb9c733be3a534958c238fb8d8d18d4a2b6f2a15a","impliedFormat":1},{"version":"db19ea066fdc5f97df3f769e582ae3000380ab7942e266654bdb1a4650d19eaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"2a034894bf28c220a331c7a0229d33564803abe2ac1b9a5feee91b6b9b6e88ea","impliedFormat":1},{"version":"d7e9ab1b0996639047c61c1e62f85c620e4382206b3abb430d9a21fb7bc23c77","impliedFormat":1},{"version":"6825eb4d1c8beb77e9ed6681c830326a15ebf52b171f83ffbca1b1574c90a3b0","impliedFormat":1},{"version":"1741975791f9be7f803a826457273094096e8bba7a50f8fa960d5ed2328cdbcc","impliedFormat":1},{"version":"6ec0d1c15d14d63d08ccb10d09d839bf8a724f6b4b9ed134a3ab5042c54a7721","impliedFormat":1},{"version":"043a3b03dcb40d6b87d36ad26378c80086905232ee5602f067eaaed21baa42ef","impliedFormat":1},{"version":"ddfc215bfbddf5854d80ab8fb0256bd802f2a8acb6be62f9e630041266d56cd5","impliedFormat":1},{"version":"2c3bcb8a4ea2fcb4208a06672af7540dd65bf08298d742f041ffa6cbe487cf80","impliedFormat":1},{"version":"1cce0460d75645fc40044c729da9a16c2e0dabe11a58b5e4bfd62ac840a1835d","impliedFormat":1},{"version":"c784a9f75a6f27cf8c43cc9a12c66d68d3beb2e7376e1babfae5ae4998ffbc4a","impliedFormat":1},{"version":"feb4c51948d875fdbbaa402dad77ee40cf1752b179574094b613d8ad98921ce1","impliedFormat":1},{"version":"a6d3984b706cefe5f4a83c1d3f0918ff603475a2a3afa9d247e4114f18b1f1ef","impliedFormat":1},{"version":"b457d606cabde6ea3b0bc32c23dc0de1c84bb5cb06d9e101f7076440fc244727","impliedFormat":1},{"version":"9d59919309a2d462b249abdefba8ca36b06e8e480a77b36c0d657f83a63af465","impliedFormat":1},{"version":"9faa2661daa32d2369ec31e583df91fd556f74bcbd036dab54184303dee4f311","impliedFormat":1},{"version":"ba2e5b6da441b8cf9baddc30520c59dc3ab47ad3674f6cb51f64e7e1f662df12","impliedFormat":1},"4fb51660d5a4f32e7a6af5bb28cede9042d91eb32bc20f7c3ac00b0ce6f68d9e","e20a41eb710fe9b3f9a64a1f8208707bb42fcb4552ce3b337ab5069c18cd6d43","5c5190596de85c32a18f7e73c179e28639ab7420568a8a2d251d70faabe1da48","a03de0ff6d1a8a6341e3acd1b598f7796cbf48988d59d82abebf56c93905db1f","a70e73cdac3bfffad8181ccb0d0e789de126db94b47d5cc4bb83a2ee5e0a335c","4b936cdb79b5a09e4772e778c0dfdbf878505d6c98f9394aad6b7345b01fcd2d","a34e5c9b403540de4331ca22f872f49f22c362b85a16a52d240bebd27cefe1e9","d76aaef2ab520233da52e675546a91b5f84a3f4e6e10a4fe5e643d655ec8c834","f3e43176e5e5929089a4cb85e25597b4fa19dba49592fe37fd4aaaddd11230b9","a91aadd9e5106942e768e4fb5d3a0e7280f003cc3ef9ec03bd72e6b893243f73","972109f68752e888279a0d1f9bc198c1fd0e066b366968197dccd5bf918e2c07","49d0a2ad1b7090ea479400de0ccbd22dff8c33a18f5117c25192a12e2f3f119a","c9507062e6fabb6025e59d734a8be37dd5df329fb24558bcb8b01961f154bad9","cc7bfea717ca4b12aa600fea1a3475cd0a566be717d990b8b4d114f2ee7eab4a","6a907c8aead5147ad8e1a894ce8e5daa9905eef2f121490ab2591c26f1a676df","2ac89e922c9fcf9ba0e7e7472a62f648ae61f79fb9c9e63303d9b1cdf103b8e3","eaa57d450a3ddd0fd486a1a3b808fb44a124e1e24bae97e78a2e916dbe9f8841","0f4cb136e871cf2f64c370f7c0436321ef14ec1ff795503553e86533bb661bf6","f53af79510f33936eb6ca50b431aac38d591a87116eba6df9879700f835f1eda","c9218ba3d2a95ccf58ce184ff1520639f1407ce7e897e9e0cff463e373b54d6f","c31b1b6bf52f5d393a8606f81d9da57bd135669ba31852a929ad0c8fbe28908e","29ce49b1272449d329df0f13189b8aa7b22f42bdaafb3a9c261408b0540cd514","d6db74ea6f34453e2932bafbe47e0742347084f46b8d95e176a4308d4b12c5df","830aa9102aa370609624c9e1fb22104d6da4df66a654c6415ca61d7636e4f073","abb2fea146ac79ef2bfab44ebfd3636c8f7aee975027d75bf35038300dcfbad2","9faf9170347059d004ec1dae3a14d1877ff2f49827baa88b61425895b91721b1","0f147986d49b93812b242c9bab5ecd97bc9d70edf34fb32dcbf4d2946702dab0","29c18d8adf11347fe6b1a4debf8f2eb2257a2d69c977895f7e4d923abbddd283","edb3cdb05166549d12e25527be1f730708300ff88a6ac813a3f2c0d263909326","217f9828298d1ca229c012e84d76f6ed112fb95e718769165908c7f0169f9806","c95735de7ff0873de8a8dc5d148c05277b7b23bb99076905061aee098d1b8fcc","9e9e95a3b11b021b05253abe6a5795de97f5153c441762a0a3d6103c1e039faa","984c68d1309159e26cadb0c87f270c41e0a9013d0911dd67b790bd04d13a681a","2a400729286ef1a6fb66b2f614da6b8b9112291f7bf8324520dc43125b63d606","d93053716fb373e50e3120e88c6fc7e583597972a5741814c6451273fa41bd88","892e58af797ea84563e877978f776e0112d9be4e01967365a9f296909967b596","2896ae3cc1371ab2f9b459ca5889a50e428e303eb0df383824a3c0dff764ab1c","cd6b3a5ca97abc256a5aea378ea044254a987f7eab29f7b9a88987e10c48a9dc","2e2c0db485e062361a7c658ae1c80dc73cce4917f23ef91c59645424a4ea9622","c865214610cbc50ab9d68e538083783f4b61e21fdc8a11488cfeeaef295a998a",{"version":"8d8ecfc9f819bd62847ba2458c465cd4ec1c6aab5761b8297d4c0f9d21c56abd","signature":"a763912c9cba1687c1a76f616c03f4e51c78f2366f2631758679d9fb0dd3e916"},{"version":"e7b67d4475a5ce602151ecf439248b432897f3714879550eed3378e9168c4d63","signature":"702acc53c481923abdebb0ca843e825c73e29a9c3bcbf9bf9b70de18551b95df"},{"version":"3653cabbb3e9659b70a499ec4cedf31e5b1fcadc1ac090592651576aa1bacbd6","signature":"c3396320f9d9a4bf8b3ed980d2b5739da776a4b0e7058e4eeb62fb924302f58d"},{"version":"bf0765463e133ce9e7010c2b9ffa1e080b6347f13a65e8a47d717ae4bf93ffff","signature":"563628867f576d228ce12816e5fc3f3bc3163067b552423e81a2247dc6e8fd42"},"f3ea408d89712b466309bfe2060d5302fc6e67e57b081f74e5d83d1375687194",{"version":"d934a06d62d87a7e2d75a3586b5f9fb2d94d5fe4725ff07252d5f4651485100f","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"b104e2da53231a529373174880dc0abfbc80184bb473b6bf2a9a0746bebb663d","impliedFormat":1},{"version":"ee91a5fbbd1627c632df89cce5a4054f9cc6e7413ebdccc82b27c7ffeedf982d","impliedFormat":1},{"version":"85c8731ca285809fc248abf21b921fe00a67b6121d27060d6194eddc0e042b1a","impliedFormat":1},{"version":"6bac0cbdf1bc85ae707f91fdf037e1b600e39fb05df18915d4ecab04a1e59d3c","impliedFormat":1},{"version":"5688b21a05a2a11c25f56e53359e2dcda0a34cb1a582dbeb1eaacdeca55cb699","impliedFormat":1},{"version":"35558bf15f773acbe3ed5ac07dd27c278476630d85245f176e85f9a95128b6e0","impliedFormat":1},{"version":"951f54e4a63e82b310439993170e866dba0f28bb829cbc14d2f2103935cea381","impliedFormat":1},{"version":"4454a999dc1676b866450e8cddd9490be87b391b5526a33f88c7e45129d30c5d","impliedFormat":1},{"version":"99013139312db746c142f27515a14cdebb61ff37f20ee1de6a58ce30d36a4f0d","impliedFormat":1},{"version":"71da852f38ac50d2ae43a7b7f2899b10a2000727fee293b0b72123ed2e7e2ad6","impliedFormat":1},{"version":"74dd1096fca1fec76b951cf5eacf609feaf919e67e13af02fed49ec3b77ea797","impliedFormat":1},{"version":"a0691153ccf5aa1b687b1500239722fff4d755481c20e16d9fcd7fb2d659c7c7","impliedFormat":1},{"version":"fe2201d73ae56b1b4946c10e18549a93bf4c390308af9d422f1ffd3c7989ffc8","impliedFormat":1},{"version":"cad63667f992149cee390c3e98f38c00eee56a2dae3541c6d9929641b835f987","impliedFormat":1},{"version":"f497cad2b33824d8b566fa276cfe3561553f905fdc6b40406c92bcfcaec96552","impliedFormat":1},{"version":"eb58c4dbc6fec60617d80f8ccf23900a64d3190fda7cfb2558b389506ec69be0","impliedFormat":1},{"version":"578929b1c1e3adaed503c0a0f9bda8ba3fea598cc41ad5c38932f765684d9888","impliedFormat":1},{"version":"7cc9d600b2070b1e5c220044a8d5a58b40da1c11399b6c8968711de9663dc6b2","impliedFormat":1},{"version":"45f36cf09d3067cd98b39a7d430e0e531f02911dd6d63b6d784b1955eef86435","impliedFormat":1},{"version":"80419a23b4182c256fa51d71cb9c4d872256ca6873701ceabbd65f8426591e49","impliedFormat":1},{"version":"5aa046aaab44da1a63d229bd67a7a1344afbd6f64db20c2bbe3981ceb2db3b07","impliedFormat":1},{"version":"ed9ad5b51c6faf9d6f597aa0ab11cb1d3a361c51ba59d1220557ef21ad5b0146","impliedFormat":1},{"version":"73db7984e8a35e6b48e3879a6d024803dd990022def2750b3c23c01eb58bc30f","impliedFormat":1},{"version":"c9ecb910b3b4c0cf67bc74833fc41585141c196b5660d2eb3a74cfffbf5aa266","impliedFormat":1},{"version":"33dcfba8a7e4acbe23974d342c44c36d7382c3d1d261f8aef28261a7a5df2969","impliedFormat":1},{"version":"de26700eb7277e8cfdde32ebb21b3d9ad1d713b64fdc2019068b857611e8f0c4","impliedFormat":1},{"version":"e481bd2c07c8e93eb58a857a9e66f22cb0b5ddfd86bbf273816fd31ef3a80613","impliedFormat":1},{"version":"ef156ba4043f6228d37645d6d9c6230a311e1c7a86669518d5f2ebc26e6559bf","impliedFormat":1},{"version":"457fd1e6d6f359d7fa2ca453353f4317efccae5c902b13f15c587597015212bc","impliedFormat":1},{"version":"473b2b42af720ebdb539988c06e040fd9600facdeb23cb297d72ee0098d8598f","impliedFormat":1},{"version":"22bc373ca556de33255faaddb373fec49e08336638958ad17fbd6361c7461eed","impliedFormat":1},{"version":"b3d58358675095fef03ec71bddc61f743128682625f1336df2fc31e29499ab25","impliedFormat":1},{"version":"5b1ef94b03042629c76350fe18be52e17ab70f1c3be8f606102b30a5cd86c1b3","impliedFormat":1},{"version":"a7b6046c44d5fda21d39b3266805d37a2811c2f639bf6b40a633b9a5fb4f5d88","impliedFormat":1},{"version":"80b036a132f3def4623aad73d526c6261dcae3c5f7013857f9ecf6589b72951f","impliedFormat":1},{"version":"0a347c2088c3b1726b95ccde77953bede00dd9dd2fda84585fa6f9f6e9573c18","impliedFormat":1},{"version":"8cc3abb4586d574a3faeea6747111b291e0c9981003a0d72711351a6bcc01421","impliedFormat":1},{"version":"0a516adfde610035e31008b170da29166233678216ef3646822c1b9af98879da","impliedFormat":1},{"version":"70d48a1faa86f67c9cb8a39babc5049246d7c67b6617cd08f64e29c055897ca9","impliedFormat":1},{"version":"df10dc6fe1c49e2f94be9d7d1e625aeb66e5eb90b2e0af1f378bfdfa5313155b","impliedFormat":1},{"version":"082b818038423de54be877cebdb344a2e3cf3f6abcfc48218d8acf95c030426a","impliedFormat":1},{"version":"813514ef625cb8fc3befeec97afddfb3b80b80ced859959339d99f3ad538d8fe","impliedFormat":1},{"version":"039cd54028eb988297e189275764df06c18f9299b14c063e93bd3f30c046fee6","impliedFormat":1},{"version":"e91cfd040e6da28427c5c4396912874902c26605240bdc3457cc75b6235a80f2","impliedFormat":1},{"version":"b4347f0b45e4788c18241ac4dee20ceab96d172847f1c11d42439d3de3c09a3e","impliedFormat":1},{"version":"16fe6721dc0b4144a0cdcef98857ee19025bf3c2a3cc210bcd0b9d0e25f7cec8","impliedFormat":1},{"version":"346d903799e8ea99e9674ba5745642d47c0d77b003cc7bb93e1d4c21c9e37101","impliedFormat":1},{"version":"3997421bb1889118b1bbfc53dd198c3f653bf566fd13c663e02eb08649b985c4","impliedFormat":1},{"version":"2d1ac54184d897cb5b2e732d501fa4591f751678717fd0c1fd4a368236b75cba","impliedFormat":1},{"version":"bade30041d41945c54d16a6ec7046fba6d1a279aade69dfdef9e70f71f2b7226","impliedFormat":1},{"version":"56fbea100bd7dd903dc49a1001995d3c6eee10a419c66a79cdb194bff7250eb7","impliedFormat":1},{"version":"fe8d26b2b3e519e37ceea31b1790b17d7c5ab30334ca2b56d376501388ba80d6","impliedFormat":1},{"version":"37ad0a0c2b296442072cd928d55ef6a156d50793c46c2e2497da1c2750d27c1e","impliedFormat":1},{"version":"be93d07586d09e1b6625e51a1591d6119c9f1cbd95718497636a406ec42babee","impliedFormat":1},{"version":"a062b507ed5fc23fbc5850fd101bc9a39e9a0940bb52a45cd4624176337ad6b8","impliedFormat":1},{"version":"cf01f601ef1e10b90cad69312081ce0350f26a18330913487a26d6d4f7ce5a73","impliedFormat":1},{"version":"a9de7b9a5deaed116c9c89ad76fdcc469226a22b79c80736de585af4f97b17cd","impliedFormat":1},{"version":"5bde81e8b0efb2d977c6795f9425f890770d54610764b1d8df340ce35778c4f8","impliedFormat":1},{"version":"20fd0402351907669405355eeae8db00b3cf0331a3a86d8142f7b33805174f57","impliedFormat":1},{"version":"da6949af729eca1ec1fe867f93a601988b5b206b6049c027d0c849301d20af6f","impliedFormat":1},{"version":"7008f240ea3a5a344be4e5f9b5dbf26721aad3c5cfef5ff79d133fa7450e48fa","impliedFormat":1},{"version":"eb13c8624f5747a845aea0df1dfde0f2b8f5ed90ca3bc550b12777797cb1b1e3","impliedFormat":1},{"version":"2452fc0f47d3b5b466bda412397831dd5138e62f77aa5e11270e6ca3ecb8328d","impliedFormat":1},{"version":"33c2ebbdd9a62776ca0091a8d1f445fa2ea4b4f378bc92f524031a70dfbeec86","impliedFormat":1},{"version":"3ac3a5b34331a56a3f76de9baf619def3f3073961ce0a012b6ffa72cf8a91f1f","impliedFormat":1},{"version":"d5e9d32cc9813a5290a17492f554999e33f1aa083a128d3e857779548537a778","impliedFormat":1},{"version":"776f49489fa2e461b40370e501d8e775ddb32433c2d1b973f79d9717e1d79be5","impliedFormat":1},{"version":"be94ea1bfaa2eeef1e821a024914ef94cf0cba05be8f2e7df7e9556231870a1d","impliedFormat":1},{"version":"40cd13782413c7195ad8f189f81174850cc083967d056b23d529199d64f02c79","impliedFormat":1},{"version":"05e041810faf710c1dcd03f3ffde100c4a744672d93512314b1f3cfffccdaf20","impliedFormat":1},{"version":"15a8f79b1557978d752c0be488ee5a70daa389638d79570507a3d4cfc620d49d","impliedFormat":1},{"version":"968ee57037c469cffb3b0e268ab824a9c31e4205475b230011895466a1e72da4","impliedFormat":1},{"version":"77debd777927059acbaf1029dfc95900b3ab8ed0434ce3914775efb0574e747b","impliedFormat":1},{"version":"921e3bd6325acb712cd319eaec9392c9ad81f893dead509ab2f4e688f265e536","impliedFormat":1},{"version":"60f6768c96f54b870966957fb9a1b176336cd82895ded088980fb506c032be1c","impliedFormat":1},{"version":"755d9b267084db4ea40fa29653ea5fc43e125792b1940f2909ec70a4c7f712d8","impliedFormat":1},{"version":"7e3056d5333f2d8a9e54324c2e2293027e4cd9874615692a53ad69090894d116","impliedFormat":1},{"version":"1e25b848c58ad80be5c31b794d49092d94df2b7e492683974c436bcdbefb983c","impliedFormat":1},{"version":"3df6fc700b8d787974651680ae6e37b6b50726cf5401b7887f669ab195c2f2ef","impliedFormat":1},{"version":"145df08c171ec616645a353d5eaa5d5f57a5fbce960a47d847548abd9215a99e","impliedFormat":1},{"version":"dcfd2ca9e033077f9125eeca6890bb152c6c0bc715d0482595abc93c05d02d92","impliedFormat":1},{"version":"8056fa6beb8297f160e13c9b677ba2be92ab23adfb6940e5a974b05acd33163b","impliedFormat":1},{"version":"86dda1e79020fad844010b39abb68fafed2f3b2156e3302820c4d0a161f88b03","impliedFormat":1},{"version":"dea0dcec8d5e0153d6f0eacebb163d7c3a4b322a9304048adffc6d26084054bd","impliedFormat":1},{"version":"2afd081a65d595d806b0ff434d2a96dc3d6dcd8f0d1351c0a0968568c6944e0b","impliedFormat":1},{"version":"b86259ab4b95ebe1aedb03d3eebea647f0bd9a706981220f00210487d70e77a0","impliedFormat":1},{"version":"2f1f7c65e8ee58e3e7358f9b8b3c37d8447549ecc85046f9405a0fc67fbdf54b","impliedFormat":1},{"version":"e3f3964ff78dee11a07ae589f1319ff682f62f3c6c8afa935e3d8616cf21b431","impliedFormat":1},{"version":"2762c2dbee294ffb8fdbcae6db32c3dae09e477d6a348b48578b4145b15d1818","impliedFormat":1},{"version":"78a1eace936ad32ca1c228814f3333cb2e826e1447e60fee181b3c53d43a8d07","impliedFormat":1},{"version":"24bd135b687da453ea7bd98f7ece72e610a3ff8ca6ec23d321c0e32f19d32db6","impliedFormat":1},{"version":"64d45d55ba6e42734ac326d2ea1f674c72837443eb7ff66c82f95e4544980713","impliedFormat":1},{"version":"f9b0dc747f13dcc09e40c26ddcc118b1bafc3152f771fdc32757a7f8916a11fc","impliedFormat":1},{"version":"7035fc608c297fd38dfe757d44d3483a570e2d6c8824b2d6b20294d617da64c6","impliedFormat":1},{"version":"22160a296186123d2df75280a1fab70d2105ce1677af1ebb344ffcb88eef6e42","impliedFormat":1},{"version":"9067b3fd7d71165d4c34fcbbf29f883860fd722b7e8f92e87da036b355a6c625","impliedFormat":1},{"version":"e01ab4b99cc4a775d06155e9cadd2ebd93e4af46e2723cb9361f24a4e1f178ef","impliedFormat":1},{"version":"9a13410635d5cc9c2882e67921c59fb26e77b9d99efa1a80b5a46fdc2954afce","impliedFormat":1},{"version":"b04862a4f44f78fd12ad8ed34ab81f9f254a87398568173694a78dc0bdebcd23","impliedFormat":1},{"version":"fa894bdddb2ba0e6c65ad0d88942cf15328941246410c502576124ef044746f9","impliedFormat":1},{"version":"59c5a06fa4bf2fa320a3c5289b6f199a3e4f9562480f59c0987c91dc135a1adf","impliedFormat":1},{"version":"456a9a12ad5d57af0094edf99ceab1804449f6e7bc773d85d09c56a18978a177","impliedFormat":1},{"version":"a8e2a77f445a8a1ce61bfd4b7b22664d98cf19b84ec6a966544d0decec18e143","impliedFormat":1},{"version":"6f6b0b477db6c4039410c7a13fe1ebed4910dedf644330269816df419cdb1c65","impliedFormat":1},{"version":"960b6e1edfb9aafbd560eceaae0093b31a9232ab273f4ed776c647b2fb9771da","impliedFormat":1},{"version":"530f4bee13cc07fd4e8bac69eeb728a6270ebafeab886c98624c699725b29755","impliedFormat":1},{"version":"a0db48d42371b223cea8fd7a41763d48f9166ecd4baecc9d29d9bb44cc3c2d83","impliedFormat":1},{"version":"aaf3c2e268f27514eb28255835f38445a200cd8bcfdff2c07c6227f67aaaf657","impliedFormat":1},{"version":"6ade56d2afdf75a9bd55cd9c8593ed1d78674804d9f6d9aba04f807f3179979e","impliedFormat":1},{"version":"b67acb619b761e91e3a11dddb98c51ee140361bc361eb17538f1c3617e3ec157","impliedFormat":1},{"version":"81b097e0f9f8d8c3d5fe6ba9dc86139e2d95d1e24c5ce7396a276dfbb2713371","impliedFormat":1},{"version":"692d56fff4fb60948fe16e9fed6c4c4eac9b263c06a8c6e63726e28ed4844fd4","impliedFormat":1},{"version":"f13228f2c0e145fc6dc64917eeef690fb2883a0ac3fa9ebfbd99616fd12f5629","impliedFormat":1},{"version":"d89b2b41a42c04853037408080a2740f8cd18beee1c422638d54f8aefe95c5b8","impliedFormat":1},{"version":"be5d39e513e3e0135068e4ebed5473ab465ae441405dce90ab95055a14403f64","impliedFormat":1},{"version":"97e320c56905d9fa6ac8bd652cea750265384f048505870831e273050e2878cc","impliedFormat":1},{"version":"9932f390435192eb93597f89997500626fb31005416ce08a614f66ec475c5c42","impliedFormat":1},{"version":"5d89ca552233ac2d61aee34b0587f49111a54a02492e7a1098e0701dedca60c9","impliedFormat":1},{"version":"1ee47a39f996d76442fe9777bb4446bd110f6828488db0e65cba817b4ffc5807","impliedFormat":1},{"version":"fdc4fd2c610b368104746960b45216bc32685927529dd871a5330f4871d14906","impliedFormat":1},{"version":"7b5d77c769a6f54ea64b22f1877d64436f038d9c81f1552ad11ed63f394bd351","impliedFormat":1},{"version":"4f7d54c603949113f45505330caae6f41e8dbb59841d4ae20b42307dc4579835","impliedFormat":1},{"version":"a71fd01a802624c3fce6b09c14b461cc7c7758aa199c202d423a7c89ad89943c","impliedFormat":1},{"version":"1ed0dc05908eb15f46379bc1cb64423760e59d6c3de826a970b2e2f6da290bf5","impliedFormat":1},{"version":"db89ef053f209839606e770244031688c47624b771ff5c65f0fa1ec10a6919f1","impliedFormat":1},{"version":"4d45b88987f32b2ac744f633ff5ddb95cd10f64459703f91f1633ff457d6c30d","impliedFormat":1},{"version":"8512fd4a480cd8ef8bf923a85ff5e97216fa93fb763ec871144a9026e1c9dade","impliedFormat":1},{"version":"2aa58b491183eedf2c8ae6ef9a610cd43433fcd854f4cc3e2492027fbe63f5ca","impliedFormat":1},{"version":"ce1f3439cb1c5a207f47938e68752730892fc3e66222227effc6a8b693450b82","impliedFormat":1},{"version":"295ce2cf585c26a9b71ba34fbb026d2b5a5f0d738b06a356e514f39c20bf38ba","impliedFormat":1},{"version":"342f10cf9ba3fbf52d54253db5c0ac3de50360b0a3c28e648a449e28a4ac8a8c","impliedFormat":1},{"version":"c485987c684a51c30e375d70f70942576fa86e9d30ee8d5849b6017931fccc6f","impliedFormat":1},{"version":"320bd1aa480e22cdd7cd3d385157258cc252577f4948cbf7cfdf78ded9d6d0a8","impliedFormat":1},{"version":"4ee053dfa1fce5266ecfae2bf8b6b0cb78a6a76060a1dcf66fb7215b9ff46b0b","impliedFormat":1},{"version":"1f84d8b133284b596328df47453d3b3f3817ad206cf3facf5eb64b0a2c14f6d7","impliedFormat":1},{"version":"5c75e05bc62bffe196a9b2e9adfa824ffa7b90d62345a766c21585f2ce775001","impliedFormat":1},{"version":"cc2eb5b23140bbceadf000ef2b71d27ac011d1c325b0fc5ecd42a3221db5fb2e","impliedFormat":1},{"version":"fd75cc24ea5ec28a44c0afc2f8f33da5736be58737ba772318ae3bdc1c079dc3","impliedFormat":1},{"version":"5ae43407346e6f7d5408292a7d957a663cc7b6d858a14526714a23466ac83ef9","impliedFormat":1},{"version":"c72001118edc35bbe4fff17674dc5f2032ccdbcc5bec4bd7894a6ed55739d31b","impliedFormat":1},{"version":"353196fd0dd1d05e933703d8dad664651ed172b8dfb3beaef38e66522b1e0219","impliedFormat":1},{"version":"670aef817baea9332d7974295938cf0201a2d533c5721fccf4801ba9a4571c75","impliedFormat":1},{"version":"3f5736e735ee01c6ecc6d4ab35b2d905418bb0d2128de098b73e11dd5decc34f","impliedFormat":1},{"version":"b64e159c49afc6499005756f5a7c2397c917525ceab513995f047cdd80b04bdf","impliedFormat":1},{"version":"f72b400dbf8f27adbda4c39a673884cb05daf8e0a1d8152eec2480f5700db36c","impliedFormat":1},{"version":"24509d0601fc00c4d77c20cacddbca6b878025f4e0712bddd171c7917f8cdcde","impliedFormat":1},{"version":"5f5baa59149d3d6d6cef2c09d46bb4d19beb10d6bee8c05b7850c33535b3c438","impliedFormat":1},{"version":"f17a51aae728f9f1a2290919cf29a927621b27f6ae91697aee78f41d48851690","impliedFormat":1},{"version":"be02e3c3cb4e187fd252e7ae12f6383f274e82288c8772bb0daf1a4e4af571ad","impliedFormat":1},{"version":"82ca40fb541799273571b011cd9de6ee9b577ef68acc8408135504ae69365b74","impliedFormat":1},{"version":"8fb6646db72914d6ef0692ea88b25670bbf5e504891613a1f46b42783ec18cce","impliedFormat":1},{"version":"b61efdebae3d131b6ad71bd2aa7cc4284e351481339bf66d84ee5ed86465bcc8","impliedFormat":1},{"version":"213aa21650a910d95c4d0bee4bb936ecd51e230c1a9e5361e008830dcc73bc86","impliedFormat":1},{"version":"874a8c5125ad187e47e4a8eacc809c866c0e71b619a863cc14794dd3ccf23940","impliedFormat":1},{"version":"c31db8e51e85ee67018ac2a40006910efbb58e46baea774cf1f245d99bf178b5","impliedFormat":1},{"version":"31fac222250b18ebac0158938ede4b5d245e67d29cd2ef1e6c8a5859d137d803","impliedFormat":1},{"version":"a9dfb793a7e10949f4f3ea9f282b53d3bd8bf59f5459bc6e618e3457ed2529f5","impliedFormat":1},{"version":"2a77167687b0ec0c36ef581925103f1dc0c69993f61a9dbd299dcd30601af487","impliedFormat":1},{"version":"0f23b5ce60c754c2816c2542b9b164d6cb15243f4cbcd11cfafcab14b60e04d0","impliedFormat":1},{"version":"813ce40a8c02b172fdbeb8a07fdd427ac68e821f0e20e3dc699fb5f5bdf1ef0a","impliedFormat":1},{"version":"5ce6b24d5fd5ebb1e38fe817b8775e2e00c94145ad6eedaf26e3adf8bb3903d0","impliedFormat":1},{"version":"6babca69d3ae17be168cfceb91011eed881d41ce973302ee4e97d68a81c514b4","impliedFormat":1},{"version":"3e0832bc2533c0ec6ffcd61b7c055adedcca1a45364b3275c03343b83c71f5b3","impliedFormat":1},{"version":"342418c52b55f721b043183975052fb3956dae3c1f55f965fedfbbf4ad540501","impliedFormat":1},{"version":"6a6ab1edb5440ee695818d76f66d1a282a31207707e0d835828341e88e0c1160","impliedFormat":1},{"version":"7e9b4669774e97f5dc435ddb679aa9e7d77a1e5a480072c1d1291892d54bf45c","impliedFormat":1},{"version":"de439ddbed60296fbd1e5b4d242ce12aad718dffe6432efcae1ad6cd996defd3","impliedFormat":1},{"version":"ce5fb71799f4dbb0a9622bf976a192664e6c574d125d3773d0fa57926387b8b2","impliedFormat":1},{"version":"b9c0de070a5876c81540b1340baac0d7098ea9657c6653731a3199fcb2917cef","impliedFormat":1},{"version":"cbc91ecd74d8f9ddcbcbdc2d9245f14eff5b2f6ae38371283c97ca7dc3c4a45f","impliedFormat":1},{"version":"3ca1d6f016f36c61a59483c80d8b9f9d50301fbe52a0dde288c1381862b13636","impliedFormat":1},{"version":"ecfef0c0ff0c80ac9a6c2fab904a06b680fb5dfe8d9654bb789e49c6973cb781","impliedFormat":1},{"version":"0ee2eb3f7c0106ccf6e388bc0a16e1b3d346e88ac31b6a5bbc15766e43992167","impliedFormat":1},{"version":"7a80da7b14bc7902b1da607c8b3734ad5740f8f5fade9a7bfbf753b9bba22652","impliedFormat":1},{"version":"7e46dd61422e5afe88c34e5f1894ae89a37b7a07393440c092e9dc4399820172","impliedFormat":1},{"version":"9df4f57d7279173b0810154c174aa03fd60f5a1f0c3acfe8805e55e935bdecd4","impliedFormat":1},{"version":"a02a51b68a60a06d4bd0c747d6fbade0cb87eefda5f985fb4650e343da424f12","impliedFormat":1},{"version":"0cf851e2f0ecf61cabe64efd72de360246bcb8c19c6ef7b5cbb702293e1ff755","impliedFormat":1},{"version":"0c0e0aaf37ab0552dffc13eb584d8c56423b597c1c49f7974695cb45e2973de6","impliedFormat":1},{"version":"e2e0cd8f6470bc69bbfbc5e758e917a4e0f9259da7ffc93c0930516b0aa99520","impliedFormat":1},{"version":"180de8975eff720420697e7b5d95c0ecaf80f25d0cea4f8df7fe9cf817d44884","impliedFormat":1},{"version":"424a7394f9704d45596dce70bd015c5afec74a1cc5760781dfda31bc300df88f","impliedFormat":1},{"version":"044a62b9c967ee8c56dcb7b2090cf07ef2ac15c07e0e9c53d99fab7219ee3d67","impliedFormat":1},{"version":"3903b01a9ba327aae8c7ea884cdabc115d27446fba889afc95fddca8a9b4f6e2","impliedFormat":1},{"version":"78fd8f2504fbfb0070569729bf2fe41417fdf59f8c3e975ab3143a96f03e0a4a","impliedFormat":1},{"version":"8afd4f91e3a060a886a249f22b23da880ec12d4a20b6404acc5e283ef01bdd46","impliedFormat":1},{"version":"72e72e3dea4081877925442f67b23be151484ef0a1565323c9af7f1c5a0820f0","impliedFormat":1},{"version":"fa8c21bafd5d8991019d58887add8971ccbe88243c79bbcaec2e2417a40af4e8","impliedFormat":1},{"version":"ab35597fd103b902484b75a583606f606ab2cef7c069fae6c8aca0f058cee77d","impliedFormat":1},{"version":"ca54ec33929149dded2199dca95fd8ad7d48a04f6e8500f3f84a050fa77fee45","impliedFormat":1},{"version":"cac7dcf6f66d12979cc6095f33edc7fbb4266a44c8554cd44cd04572a4623fd0","impliedFormat":1},{"version":"98af566e6d420e54e4d8d942973e7fbe794e5168133ad6658b589d9dfb4409d8","impliedFormat":1},{"version":"772b2865dd86088c6e0cab71e23534ad7254961c1f791bdeaf31a57a2254df43","impliedFormat":1},{"version":"786d837fba58af9145e7ad685bc1990f52524dc4f84f3e60d9382a0c3f4a0f77","impliedFormat":1},{"version":"539dd525bf1d52094e7a35c2b4270bee757d3a35770462bcb01cd07683b4d489","impliedFormat":1},{"version":"69135303a105f3b058d79ea7e582e170721e621b1222e8f8e51ea29c61cd3acf","impliedFormat":1},{"version":"e92e6f0d63e0675fe2538e8031e1ece36d794cb6ecc07a036d82c33fa3e091a9","impliedFormat":1},{"version":"1fdb07843cdb9bd7e24745d357c6c1fde5e7f2dd7c668dd68b36c0dff144a390","impliedFormat":1},{"version":"3e2f739bdfb6b194ae2af13316b4c5bb18b3fe81ac340288675f92ba2061b370","affectsGlobalScope":true,"impliedFormat":1}],"root":[[221,225]],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"outDir":"./","removeComments":true,"skipLibCheck":true,"sourceMap":true,"strictBindCallApply":true,"strictNullChecks":true,"target":8},"referencedMap":[[226,1],[420,2],[419,3],[230,4],[231,5],[368,4],[369,6],[350,7],[351,8],[234,9],[235,10],[305,11],[306,12],[279,4],[280,13],[273,4],[274,14],[365,15],[363,16],[364,1],[379,17],[380,18],[249,19],[250,20],[381,21],[382,22],[383,23],[384,24],[241,25],[242,26],[367,27],[366,28],[352,4],[353,29],[245,30],[246,31],[269,1],[270,32],[387,33],[385,34],[386,35],[388,36],[389,37],[392,38],[390,39],[393,16],[391,40],[394,41],[397,42],[395,43],[396,44],[398,45],[247,25],[248,46],[373,47],[370,48],[371,49],[372,1],[348,50],[349,51],[293,52],[292,53],[290,54],[289,55],[291,56],[400,57],[399,58],[402,59],[401,60],[278,61],[277,4],[256,62],[254,63],[253,9],[255,64],[405,65],[409,66],[403,67],[404,68],[406,65],[407,65],[408,65],[295,69],[294,9],[311,70],[309,71],[310,16],[307,72],[308,73],[244,74],[243,4],[301,75],[232,4],[233,76],[300,77],[338,78],[341,79],[339,80],[340,81],[252,82],[251,4],[343,83],[342,9],[321,84],[320,4],[276,85],[275,4],[347,86],[346,87],[315,88],[314,89],[312,90],[313,91],[304,92],[303,93],[302,94],[411,95],[410,96],[328,97],[327,98],[326,99],[375,100],[374,1],[319,101],[318,102],[316,103],[317,104],[297,105],[296,9],[240,106],[239,107],[238,108],[237,109],[236,110],[332,111],[331,112],[262,113],[261,9],[266,114],[265,115],[330,116],[329,4],[376,1],[378,117],[377,1],[335,118],[334,119],[333,120],[413,121],[412,122],[415,123],[414,124],[361,125],[362,126],[360,127],[299,128],[298,1],[345,129],[344,130],[272,131],[271,4],[323,132],[322,4],[229,133],[228,1],[282,134],[283,135],[288,136],[281,137],[285,138],[284,139],[286,140],[287,141],[337,142],[336,9],[268,143],[267,9],[418,144],[417,145],[416,146],[355,147],[354,4],[325,148],[324,4],[260,149],[258,150],[257,9],[259,151],[357,152],[356,4],[264,153],[263,4],[359,154],[358,4],[426,155],[113,156],[114,156],[115,157],[61,158],[116,159],[117,160],[118,161],[59,1],[119,162],[120,163],[121,164],[122,165],[123,166],[124,167],[125,167],[126,168],[127,169],[128,170],[129,171],[62,1],[60,1],[130,172],[131,173],[132,174],[166,175],[133,176],[134,1],[135,177],[136,178],[137,179],[138,180],[139,181],[140,182],[141,183],[142,184],[143,185],[144,185],[145,186],[146,1],[147,187],[148,188],[150,189],[149,190],[151,191],[152,192],[153,193],[154,194],[155,195],[156,196],[157,197],[158,198],[159,199],[160,200],[161,201],[162,202],[163,203],[63,1],[64,204],[65,1],[66,1],[109,205],[110,206],[111,1],[112,191],[164,207],[165,208],[180,209],[167,210],[174,211],[170,212],[168,213],[171,214],[175,215],[176,211],[173,216],[172,217],[177,218],[178,219],[179,220],[169,221],[67,1],[227,1],[425,222],[422,223],[423,224],[424,1],[421,225],[56,1],[57,1],[11,1],[9,1],[10,1],[15,1],[14,1],[2,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[3,1],[24,1],[25,1],[4,1],[26,1],[30,1],[27,1],[28,1],[29,1],[31,1],[32,1],[33,1],[5,1],[34,1],[35,1],[36,1],[37,1],[6,1],[41,1],[38,1],[39,1],[40,1],[42,1],[7,1],[43,1],[48,1],[49,1],[44,1],[45,1],[46,1],[47,1],[8,1],[58,1],[53,1],[50,1],[51,1],[52,1],[1,1],[54,1],[55,1],[13,1],[12,1],[85,226],[97,227],[83,228],[98,229],[107,230],[74,231],[75,232],[73,233],[106,234],[101,235],[105,236],[77,237],[94,238],[76,239],[104,240],[71,241],[72,235],[78,242],[79,1],[84,243],[82,242],[69,244],[108,245],[99,246],[88,247],[87,242],[89,248],[92,249],[86,250],[90,251],[102,234],[80,252],[81,253],[93,254],[70,229],[96,255],[95,242],[91,256],[100,1],[68,1],[103,257],[224,258],[223,259],[225,260],[222,261],[221,262],[218,263],[219,264],[215,263],[217,263],[216,263],[201,265],[206,266],[205,267],[203,268],[204,269],[199,270],[198,271],[200,272],[184,273],[202,274],[195,275],[194,276],[190,277],[193,278],[191,278],[192,278],[214,279],[212,1],[213,1],[220,280],[189,281],[186,282],[188,283],[183,284],[185,284],[187,1],[209,285],[211,286],[210,285],[207,1],[181,1],[182,287],[208,1],[197,288],[196,1]],"version":"5.9.3"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { NotificationChannelConfig } from 'townkrier-core';
|
|
2
|
+
export interface SmtpConfig extends NotificationChannelConfig {
|
|
3
|
+
host: string;
|
|
4
|
+
port: number;
|
|
5
|
+
secure?: boolean;
|
|
6
|
+
auth?: {
|
|
7
|
+
user: string;
|
|
8
|
+
pass: string;
|
|
9
|
+
};
|
|
10
|
+
from?: string;
|
|
11
|
+
fromName?: string;
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
|
package/jest.config.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
moduleFileExtensions: ['js', 'json', 'ts'],
|
|
3
|
+
rootDir: 'src',
|
|
4
|
+
testRegex: '.*\\.spec\\.ts$',
|
|
5
|
+
transform: {
|
|
6
|
+
'^.+\\.(t|j)s$': 'ts-jest',
|
|
7
|
+
},
|
|
8
|
+
collectCoverageFrom: ['**/*.(t|j)s'],
|
|
9
|
+
coverageDirectory: '../coverage',
|
|
10
|
+
testEnvironment: 'node',
|
|
11
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "townkrier-smtp",
|
|
3
|
+
"version": "1.0.0-alpha.6",
|
|
4
|
+
"description": "SMTP email adapter for Townkrier notification system",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"smtp",
|
|
9
|
+
"email",
|
|
10
|
+
"townkrier",
|
|
11
|
+
"notifications"
|
|
12
|
+
],
|
|
13
|
+
"author": "Jeremiah Olisa",
|
|
14
|
+
"license": "MIT",
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"nodemailer": "^6.9.15",
|
|
20
|
+
"townkrier-core": "1.0.0-alpha.6"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@types/jest": "^30.0.0",
|
|
24
|
+
"@types/node": "^24.9.1",
|
|
25
|
+
"@types/nodemailer": "^6.4.16",
|
|
26
|
+
"jest": "^30.2.0",
|
|
27
|
+
"ts-jest": "^29.4.5",
|
|
28
|
+
"typescript": "^5.9.3"
|
|
29
|
+
},
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "tsc",
|
|
32
|
+
"watch": "tsc --watch",
|
|
33
|
+
"test": "jest",
|
|
34
|
+
"test:watch": "jest --watch",
|
|
35
|
+
"test:cov": "jest --coverage",
|
|
36
|
+
"lint": "eslint \"src/**/*.ts\" --fix",
|
|
37
|
+
"clean": "rm -rf dist"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import * as nodemailer from 'nodemailer';
|
|
2
|
+
import {
|
|
3
|
+
MailChannel,
|
|
4
|
+
SendEmailRequest,
|
|
5
|
+
SendEmailResponse,
|
|
6
|
+
NotificationStatus,
|
|
7
|
+
NotificationConfigurationException,
|
|
8
|
+
isValidEmail,
|
|
9
|
+
Logger,
|
|
10
|
+
} from 'townkrier-core';
|
|
11
|
+
|
|
12
|
+
import { SmtpConfig } from '../types';
|
|
13
|
+
import { SmtpMapper } from './smtp.mapper';
|
|
14
|
+
|
|
15
|
+
export class SmtpChannel extends MailChannel {
|
|
16
|
+
private transporter: nodemailer.Transporter;
|
|
17
|
+
|
|
18
|
+
constructor(config: SmtpConfig) {
|
|
19
|
+
if (!config.host || !config.port) {
|
|
20
|
+
throw new NotificationConfigurationException('Host and Port are required for SMTP', {
|
|
21
|
+
channel: 'SMTP',
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
super(config, 'SMTP');
|
|
26
|
+
this.transporter = nodemailer.createTransport({
|
|
27
|
+
host: config.host,
|
|
28
|
+
port: config.port,
|
|
29
|
+
secure: config.secure ?? false, // true for 465, false for other ports
|
|
30
|
+
auth: config.auth,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
async sendEmail(request: SendEmailRequest): Promise<SendEmailResponse> {
|
|
35
|
+
try {
|
|
36
|
+
Logger.debug('SENDING SMTP MAIL', request);
|
|
37
|
+
const recipients = Array.isArray(request.to) ? request.to : [request.to];
|
|
38
|
+
for (const recipient of recipients) {
|
|
39
|
+
const email = typeof recipient === 'string' ? recipient : recipient.email;
|
|
40
|
+
if (!isValidEmail(email)) {
|
|
41
|
+
throw new NotificationConfigurationException(`Invalid email address: ${email}`, {
|
|
42
|
+
email,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const emailData = SmtpMapper.toSmtpData(request, this.config as SmtpConfig);
|
|
48
|
+
|
|
49
|
+
const info = await this.transporter.sendMail(emailData);
|
|
50
|
+
|
|
51
|
+
Logger.debug('SMTP Raw Response', info);
|
|
52
|
+
|
|
53
|
+
return SmtpMapper.toSuccessResponse(info, request);
|
|
54
|
+
} catch (error) {
|
|
55
|
+
if (error instanceof Error && error.message.includes('From email address is required')) {
|
|
56
|
+
return {
|
|
57
|
+
success: false,
|
|
58
|
+
status: NotificationStatus.FAILED,
|
|
59
|
+
messageId: '',
|
|
60
|
+
error: {
|
|
61
|
+
code: 'CONFIGURATION_ERROR',
|
|
62
|
+
message: 'From email address is required',
|
|
63
|
+
},
|
|
64
|
+
} as any;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return this.handleError(error, 'Failed to send email with SMTP') as SendEmailResponse;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
private handleError(error: unknown, defaultMessage: string): SendEmailResponse {
|
|
72
|
+
const code = 'SMTP_ERROR';
|
|
73
|
+
let message = defaultMessage;
|
|
74
|
+
|
|
75
|
+
if (error instanceof Error) {
|
|
76
|
+
message = error.message;
|
|
77
|
+
// Check for specific nodemailer error codes if possible, usually it just throws Error object
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return {
|
|
81
|
+
messageId: '',
|
|
82
|
+
status: NotificationStatus.FAILED,
|
|
83
|
+
error: {
|
|
84
|
+
code,
|
|
85
|
+
message,
|
|
86
|
+
details: error,
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export function createSmtpChannel(config: SmtpConfig): SmtpChannel {
|
|
93
|
+
return new SmtpChannel(config);
|
|
94
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SendEmailRequest,
|
|
3
|
+
SendEmailResponse,
|
|
4
|
+
NotificationStatus,
|
|
5
|
+
generateReference,
|
|
6
|
+
} from 'townkrier-core';
|
|
7
|
+
import { SmtpConfig } from '../types';
|
|
8
|
+
import { SmtpEmailData, SmtpApiResponse } from '../interfaces';
|
|
9
|
+
|
|
10
|
+
export class SmtpMapper {
|
|
11
|
+
static toSmtpData(request: SendEmailRequest, config: SmtpConfig): SmtpEmailData {
|
|
12
|
+
const from = request.from
|
|
13
|
+
? `${request.from.name ? `${request.from.name} <${request.from.email}>` : request.from.email}`
|
|
14
|
+
: config.from
|
|
15
|
+
? `${config.fromName ? `${config.fromName} <${config.from}>` : config.from}`
|
|
16
|
+
: '';
|
|
17
|
+
|
|
18
|
+
if (!from) {
|
|
19
|
+
throw new Error('From email address is required');
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const recipients = Array.isArray(request.to) ? request.to : [request.to];
|
|
23
|
+
const to = recipients.map((r) => (r.name ? `${r.name} <${r.email}>` : r.email));
|
|
24
|
+
|
|
25
|
+
const emailData: SmtpEmailData = {
|
|
26
|
+
from,
|
|
27
|
+
to,
|
|
28
|
+
subject: request.subject,
|
|
29
|
+
html: request.html,
|
|
30
|
+
text: request.text || request.html || request.subject,
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
if (request.cc && request.cc.length > 0) {
|
|
34
|
+
emailData.cc = request.cc.map((r) => (r.name ? `${r.name} <${r.email}>` : r.email));
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (request.bcc && request.bcc.length > 0) {
|
|
38
|
+
emailData.bcc = request.bcc.map((r) => (r.name ? `${r.name} <${r.email}>` : r.email));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (request.replyTo) {
|
|
42
|
+
emailData.replyTo = request.replyTo.name
|
|
43
|
+
? `${request.replyTo.name} <${request.replyTo.email}>`
|
|
44
|
+
: request.replyTo.email;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (request.attachments && request.attachments.length > 0) {
|
|
48
|
+
emailData.attachments = request.attachments
|
|
49
|
+
.filter((att) => att.content !== undefined)
|
|
50
|
+
.map((att) => ({
|
|
51
|
+
filename: att.filename,
|
|
52
|
+
content: att.content,
|
|
53
|
+
path: att.path,
|
|
54
|
+
contentType: att.contentType,
|
|
55
|
+
cid: undefined, // Nodemailer uses cid for embedded images if needed
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Nodemailer supports headers property for custom headers/metadata
|
|
60
|
+
if (request.metadata) {
|
|
61
|
+
// We can iterate and add X-Headers
|
|
62
|
+
// Or simplify implementation. For now, skipping explicit metadata -> header map unless specific requirement.
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return emailData;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
static toSuccessResponse(data: SmtpApiResponse, request: SendEmailRequest): SendEmailResponse {
|
|
69
|
+
return {
|
|
70
|
+
messageId: data.messageId,
|
|
71
|
+
reference: request.reference || generateReference('EMAIL'),
|
|
72
|
+
status: NotificationStatus.SENT,
|
|
73
|
+
sentAt: new Date(),
|
|
74
|
+
metadata: request.metadata,
|
|
75
|
+
raw: data,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { NotificationChannelConfig } from 'townkrier-core';
|
|
2
|
+
|
|
3
|
+
export interface SmtpConfig extends NotificationChannelConfig {
|
|
4
|
+
host: string;
|
|
5
|
+
port: number;
|
|
6
|
+
secure?: boolean;
|
|
7
|
+
auth?: {
|
|
8
|
+
user: string;
|
|
9
|
+
pass: string;
|
|
10
|
+
};
|
|
11
|
+
from?: string;
|
|
12
|
+
fromName?: string;
|
|
13
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"module": "commonjs",
|
|
4
|
+
"declaration": true,
|
|
5
|
+
"removeComments": true,
|
|
6
|
+
"emitDecoratorMetadata": true,
|
|
7
|
+
"experimentalDecorators": true,
|
|
8
|
+
"allowSyntheticDefaultImports": true,
|
|
9
|
+
"target": "es2021",
|
|
10
|
+
"sourceMap": true,
|
|
11
|
+
"outDir": "./dist",
|
|
12
|
+
"baseUrl": "./",
|
|
13
|
+
"incremental": true,
|
|
14
|
+
"skipLibCheck": true,
|
|
15
|
+
"strictNullChecks": true,
|
|
16
|
+
"noImplicitAny": true,
|
|
17
|
+
"strictBindCallApply": true,
|
|
18
|
+
"forceConsistentCasingInFileNames": true,
|
|
19
|
+
"noFallthroughCasesInSwitch": true,
|
|
20
|
+
"esModuleInterop": true
|
|
21
|
+
},
|
|
22
|
+
"include": ["src/**/*"],
|
|
23
|
+
"exclude": ["node_modules", "dist", "**/*spec.ts"]
|
|
24
|
+
}
|