@teleporthq/teleport-plugin-next-workflows 0.44.0 → 0.44.1
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/__tests__/_helpers/fake-store-database.ts +428 -0
- package/__tests__/_helpers/invoice-store.ts +382 -0
- package/__tests__/email-locale-senders.test.ts +3 -1
- package/__tests__/email-sender-name.test.ts +513 -0
- package/__tests__/graph-utils-topological-order.test.ts +155 -1
- package/__tests__/invoice-billing-details.test.ts +107 -1
- package/__tests__/invoice-data-access-replace.test.ts +236 -2
- package/__tests__/invoice-order-items-settle.test.ts +1 -1
- package/__tests__/invoice-payment-email.test.ts +191 -0
- package/__tests__/invoice-regenerate-email.test.ts +288 -0
- package/__tests__/invoice-regenerate-route.test.ts +9 -7
- package/__tests__/invoice-reservation.test.ts +1 -1
- package/__tests__/invoice-tender.test.ts +1 -1
- package/__tests__/segment-splitter-checkout-order.test.ts +306 -0
- package/__tests__/streaming-on-end-env-filter.test.ts +18 -18
- package/__tests__/streaming-on-end-order.test.ts +387 -0
- package/dist/cjs/account-delete-route-generator.d.ts +1 -0
- package/dist/cjs/account-delete-route-generator.d.ts.map +1 -1
- package/dist/cjs/account-delete-route-generator.js +2 -1
- package/dist/cjs/account-delete-route-generator.js.map +1 -1
- package/dist/cjs/auth-generator.d.ts +1 -0
- package/dist/cjs/auth-generator.d.ts.map +1 -1
- package/dist/cjs/auth-generator.js +2 -1
- package/dist/cjs/auth-generator.js.map +1 -1
- package/dist/cjs/executor-generator.d.ts.map +1 -1
- package/dist/cjs/executor-generator.js +9 -26
- package/dist/cjs/executor-generator.js.map +1 -1
- package/dist/cjs/graph-utils.d.ts +31 -1
- package/dist/cjs/graph-utils.d.ts.map +1 -1
- package/dist/cjs/graph-utils.js +112 -10
- package/dist/cjs/graph-utils.js.map +1 -1
- package/dist/cjs/invoice/api-routes-code.d.ts +12 -3
- package/dist/cjs/invoice/api-routes-code.d.ts.map +1 -1
- package/dist/cjs/invoice/api-routes-code.js +152 -21
- package/dist/cjs/invoice/api-routes-code.js.map +1 -1
- package/dist/cjs/invoice/data-access-code.d.ts.map +1 -1
- package/dist/cjs/invoice/data-access-code.js +133 -21
- package/dist/cjs/invoice/data-access-code.js.map +1 -1
- package/dist/cjs/invoice/email-sender-code.d.ts.map +1 -1
- package/dist/cjs/invoice/email-sender-code.js +15 -25
- package/dist/cjs/invoice/email-sender-code.js.map +1 -1
- package/dist/cjs/invoice/index.js +1 -1
- package/dist/cjs/invoice/index.js.map +1 -1
- package/dist/cjs/invoice/invoice-assembly-code.d.ts.map +1 -1
- package/dist/cjs/invoice/invoice-assembly-code.js +10 -6
- package/dist/cjs/invoice/invoice-assembly-code.js.map +1 -1
- package/dist/cjs/invoice/invoice-html-code.d.ts.map +1 -1
- package/dist/cjs/invoice/invoice-html-code.js +3 -0
- package/dist/cjs/invoice/invoice-html-code.js.map +1 -1
- package/dist/cjs/nodes/email/email-mailgun.d.ts.map +1 -1
- package/dist/cjs/nodes/email/email-mailgun.js +4 -2
- package/dist/cjs/nodes/email/email-mailgun.js.map +1 -1
- package/dist/cjs/nodes/email/email-postmark.d.ts.map +1 -1
- package/dist/cjs/nodes/email/email-postmark.js +5 -2
- package/dist/cjs/nodes/email/email-postmark.js.map +1 -1
- package/dist/cjs/nodes/email/email-resend.d.ts.map +1 -1
- package/dist/cjs/nodes/email/email-resend.js +5 -2
- package/dist/cjs/nodes/email/email-resend.js.map +1 -1
- package/dist/cjs/nodes/email/email-sendgrid.d.ts.map +1 -1
- package/dist/cjs/nodes/email/email-sendgrid.js +8 -2
- package/dist/cjs/nodes/email/email-sendgrid.js.map +1 -1
- package/dist/cjs/nodes/storage/storage-local-remove.d.ts.map +1 -1
- package/dist/cjs/nodes/storage/storage-local-remove.js +2 -0
- package/dist/cjs/nodes/storage/storage-local-remove.js.map +1 -1
- package/dist/cjs/nodes/storage/storage-local-set.d.ts.map +1 -1
- package/dist/cjs/nodes/storage/storage-local-set.js +4 -0
- package/dist/cjs/nodes/storage/storage-local-set.js.map +1 -1
- package/dist/cjs/segment-splitter.d.ts.map +1 -1
- package/dist/cjs/segment-splitter.js +65 -27
- package/dist/cjs/segment-splitter.js.map +1 -1
- package/dist/cjs/transactional-email-code.d.ts.map +1 -1
- package/dist/cjs/transactional-email-code.js +32 -18
- package/dist/cjs/transactional-email-code.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/workflow-project-plugin.d.ts.map +1 -1
- package/dist/cjs/workflow-project-plugin.js +2 -0
- package/dist/cjs/workflow-project-plugin.js.map +1 -1
- package/dist/esm/account-delete-route-generator.d.ts +1 -0
- package/dist/esm/account-delete-route-generator.d.ts.map +1 -1
- package/dist/esm/account-delete-route-generator.js +2 -1
- package/dist/esm/account-delete-route-generator.js.map +1 -1
- package/dist/esm/auth-generator.d.ts +1 -0
- package/dist/esm/auth-generator.d.ts.map +1 -1
- package/dist/esm/auth-generator.js +2 -1
- package/dist/esm/auth-generator.js.map +1 -1
- package/dist/esm/executor-generator.d.ts.map +1 -1
- package/dist/esm/executor-generator.js +9 -26
- package/dist/esm/executor-generator.js.map +1 -1
- package/dist/esm/graph-utils.d.ts +31 -1
- package/dist/esm/graph-utils.d.ts.map +1 -1
- package/dist/esm/graph-utils.js +109 -9
- package/dist/esm/graph-utils.js.map +1 -1
- package/dist/esm/invoice/api-routes-code.d.ts +12 -3
- package/dist/esm/invoice/api-routes-code.d.ts.map +1 -1
- package/dist/esm/invoice/api-routes-code.js +152 -21
- package/dist/esm/invoice/api-routes-code.js.map +1 -1
- package/dist/esm/invoice/data-access-code.d.ts.map +1 -1
- package/dist/esm/invoice/data-access-code.js +133 -21
- package/dist/esm/invoice/data-access-code.js.map +1 -1
- package/dist/esm/invoice/email-sender-code.d.ts.map +1 -1
- package/dist/esm/invoice/email-sender-code.js +15 -25
- package/dist/esm/invoice/email-sender-code.js.map +1 -1
- package/dist/esm/invoice/index.js +1 -1
- package/dist/esm/invoice/index.js.map +1 -1
- package/dist/esm/invoice/invoice-assembly-code.d.ts.map +1 -1
- package/dist/esm/invoice/invoice-assembly-code.js +10 -6
- package/dist/esm/invoice/invoice-assembly-code.js.map +1 -1
- package/dist/esm/invoice/invoice-html-code.d.ts.map +1 -1
- package/dist/esm/invoice/invoice-html-code.js +3 -0
- package/dist/esm/invoice/invoice-html-code.js.map +1 -1
- package/dist/esm/nodes/email/email-mailgun.d.ts.map +1 -1
- package/dist/esm/nodes/email/email-mailgun.js +4 -2
- package/dist/esm/nodes/email/email-mailgun.js.map +1 -1
- package/dist/esm/nodes/email/email-postmark.d.ts.map +1 -1
- package/dist/esm/nodes/email/email-postmark.js +5 -2
- package/dist/esm/nodes/email/email-postmark.js.map +1 -1
- package/dist/esm/nodes/email/email-resend.d.ts.map +1 -1
- package/dist/esm/nodes/email/email-resend.js +5 -2
- package/dist/esm/nodes/email/email-resend.js.map +1 -1
- package/dist/esm/nodes/email/email-sendgrid.d.ts.map +1 -1
- package/dist/esm/nodes/email/email-sendgrid.js +8 -2
- package/dist/esm/nodes/email/email-sendgrid.js.map +1 -1
- package/dist/esm/nodes/storage/storage-local-remove.d.ts.map +1 -1
- package/dist/esm/nodes/storage/storage-local-remove.js +2 -0
- package/dist/esm/nodes/storage/storage-local-remove.js.map +1 -1
- package/dist/esm/nodes/storage/storage-local-set.d.ts.map +1 -1
- package/dist/esm/nodes/storage/storage-local-set.js +4 -0
- package/dist/esm/nodes/storage/storage-local-set.js.map +1 -1
- package/dist/esm/segment-splitter.d.ts.map +1 -1
- package/dist/esm/segment-splitter.js +66 -28
- package/dist/esm/segment-splitter.js.map +1 -1
- package/dist/esm/transactional-email-code.d.ts.map +1 -1
- package/dist/esm/transactional-email-code.js +32 -18
- package/dist/esm/transactional-email-code.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/workflow-project-plugin.d.ts.map +1 -1
- package/dist/esm/workflow-project-plugin.js +2 -0
- package/dist/esm/workflow-project-plugin.js.map +1 -1
- package/package.json +3 -3
- package/src/account-delete-route-generator.ts +3 -1
- package/src/auth-generator.ts +3 -1
- package/src/executor-generator.ts +9 -26
- package/src/graph-utils.ts +143 -11
- package/src/invoice/api-routes-code.ts +166 -21
- package/src/invoice/data-access-code.ts +139 -21
- package/src/invoice/email-sender-code.ts +15 -25
- package/src/invoice/index.ts +1 -1
- package/src/invoice/invoice-assembly-code.ts +10 -6
- package/src/invoice/invoice-html-code.ts +3 -0
- package/src/nodes/email/email-mailgun.ts +11 -2
- package/src/nodes/email/email-postmark.ts +12 -2
- package/src/nodes/email/email-resend.ts +12 -2
- package/src/nodes/email/email-sendgrid.ts +15 -2
- package/src/nodes/storage/storage-local-remove.ts +4 -0
- package/src/nodes/storage/storage-local-set.ts +6 -0
- package/src/segment-splitter.ts +90 -36
- package/src/transactional-email-code.ts +32 -21
- package/src/workflow-project-plugin.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-resend.d.ts","sourceRoot":"","sources":["../../../../src/nodes/email/email-resend.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"email-resend.d.ts","sourceRoot":"","sources":["../../../../src/nodes/email/email-resend.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AAsDhE,eAAO,MAAM,WAAW,EAAE,oBAYzB,CAAA"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { EmailSender } from '@teleporthq/teleport-shared';
|
|
1
2
|
import { handlerToString } from '../types';
|
|
3
|
+
import { assertHandlerHasNoModuleRefs } from '../analytics/commerce-tracking';
|
|
2
4
|
async function email_resend(config, context) {
|
|
3
5
|
const apiKey = config.apiKey;
|
|
4
6
|
const from = config.from;
|
|
7
|
+
const fromName = config.fromName;
|
|
5
8
|
const to = config.to;
|
|
6
9
|
const subject = config.subject;
|
|
7
10
|
const body = config.body;
|
|
@@ -13,7 +16,7 @@ async function email_resend(config, context) {
|
|
|
13
16
|
const Resend = __nodeRequire('resend').Resend;
|
|
14
17
|
const resend = new Resend(apiKey);
|
|
15
18
|
const payload = {
|
|
16
|
-
from,
|
|
19
|
+
from: __emailSender({ from, name: fromName }).header,
|
|
17
20
|
to: Array.isArray(to) ? to : [to],
|
|
18
21
|
subject,
|
|
19
22
|
html: body,
|
|
@@ -46,7 +49,7 @@ export const emailResend = {
|
|
|
46
49
|
resend: '^4.0.0',
|
|
47
50
|
},
|
|
48
51
|
generateHandler() {
|
|
49
|
-
return handlerToString(email_resend);
|
|
52
|
+
return assertHandlerHasNoModuleRefs(handlerToString(email_resend) + '\n' + EmailSender.generateEmailSenderHelperCode(), 'email-resend');
|
|
50
53
|
},
|
|
51
54
|
};
|
|
52
55
|
//# sourceMappingURL=email-resend.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-resend.js","sourceRoot":"","sources":["../../../../src/nodes/email/email-resend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"email-resend.js","sourceRoot":"","sources":["../../../../src/nodes/email/email-resend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-sendgrid.d.ts","sourceRoot":"","sources":["../../../../src/nodes/email/email-sendgrid.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"email-sendgrid.d.ts","sourceRoot":"","sources":["../../../../src/nodes/email/email-sendgrid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AAkEhE,eAAO,MAAM,aAAa,EAAE,oBAY3B,CAAA"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { EmailSender } from '@teleporthq/teleport-shared';
|
|
1
2
|
import { handlerToString } from '../types';
|
|
3
|
+
import { assertHandlerHasNoModuleRefs } from '../analytics/commerce-tracking';
|
|
2
4
|
async function email_sendgrid(config, context) {
|
|
3
5
|
const apiKey = config.apiKey;
|
|
4
6
|
const from = config.from;
|
|
7
|
+
const fromName = config.fromName;
|
|
5
8
|
const to = config.to;
|
|
6
9
|
const subject = config.subject;
|
|
7
10
|
const body = config.body;
|
|
@@ -13,9 +16,12 @@ async function email_sendgrid(config, context) {
|
|
|
13
16
|
const MailService = __nodeRequire('@sendgrid/mail').MailService;
|
|
14
17
|
const sgMail = new MailService();
|
|
15
18
|
sgMail.setApiKey(apiKey);
|
|
19
|
+
// SendGrid reads a "Name <email>" string's name verbatim, quotes included,
|
|
20
|
+
// so a named sender goes as its two parts.
|
|
21
|
+
const sender = __emailSender({ from, name: fromName });
|
|
16
22
|
const msg = {
|
|
17
23
|
to: Array.isArray(to) ? to : [to],
|
|
18
|
-
from,
|
|
24
|
+
from: sender.name ? { email: sender.email, name: sender.name } : sender.email,
|
|
19
25
|
subject,
|
|
20
26
|
html: body,
|
|
21
27
|
};
|
|
@@ -56,7 +62,7 @@ export const emailSendgrid = {
|
|
|
56
62
|
'@sendgrid/mail': '^8.0.0',
|
|
57
63
|
},
|
|
58
64
|
generateHandler() {
|
|
59
|
-
return handlerToString(email_sendgrid);
|
|
65
|
+
return assertHandlerHasNoModuleRefs(handlerToString(email_sendgrid) + '\n' + EmailSender.generateEmailSenderHelperCode(), 'email-sendgrid');
|
|
60
66
|
},
|
|
61
67
|
};
|
|
62
68
|
//# sourceMappingURL=email-sendgrid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-sendgrid.js","sourceRoot":"","sources":["../../../../src/nodes/email/email-sendgrid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"email-sendgrid.js","sourceRoot":"","sources":["../../../../src/nodes/email/email-sendgrid.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-local-remove.d.ts","sourceRoot":"","sources":["../../../../src/nodes/storage/storage-local-remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"storage-local-remove.d.ts","sourceRoot":"","sources":["../../../../src/nodes/storage/storage-local-remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AAgBhE,eAAO,MAAM,kBAAkB,EAAE,oBAMhC,CAAA"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { handlerToString } from '../types';
|
|
2
|
+
// Same-tab notice of the removal, as storage-local-set gives for a write.
|
|
2
3
|
async function storage_local_remove(config, context) {
|
|
3
4
|
const key = config.key;
|
|
4
5
|
try {
|
|
5
6
|
localStorage.removeItem(key);
|
|
7
|
+
window.dispatchEvent(new CustomEvent('teleport:local-storage', { detail: { key, value: null } }));
|
|
6
8
|
return { success: true };
|
|
7
9
|
}
|
|
8
10
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-local-remove.js","sourceRoot":"","sources":["../../../../src/nodes/storage/storage-local-remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,UAAU,CAAA;AAEhE,KAAK,UAAU,oBAAoB,CAAC,MAAW,EAAE,OAAgC;IAC/E,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;IAEtB,IAAI;QACF,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;KACzB;IAAC,OAAO,GAAY,EAAE;QACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAA;KACzD;AACH,CAAC;AACD,MAAM,CAAC,MAAM,kBAAkB,GAAyB;IACtD,QAAQ,EAAE,sBAAsB;IAChC,YAAY,EAAE,QAAQ;IACtB,eAAe;QACb,OAAO,eAAe,CAAC,oBAAoB,CAAC,CAAA;IAC9C,CAAC;CACF,CAAA"}
|
|
1
|
+
{"version":3,"file":"storage-local-remove.js","sourceRoot":"","sources":["../../../../src/nodes/storage/storage-local-remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,UAAU,CAAA;AAEhE,0EAA0E;AAC1E,KAAK,UAAU,oBAAoB,CAAC,MAAW,EAAE,OAAgC;IAC/E,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;IAEtB,IAAI;QACF,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC5B,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAC5E,CAAA;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;KACzB;IAAC,OAAO,GAAY,EAAE;QACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAA;KACzD;AACH,CAAC;AACD,MAAM,CAAC,MAAM,kBAAkB,GAAyB;IACtD,QAAQ,EAAE,sBAAsB;IAChC,YAAY,EAAE,QAAQ;IACtB,eAAe;QACb,OAAO,eAAe,CAAC,oBAAoB,CAAC,CAAA;IAC9C,CAAC;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-local-set.d.ts","sourceRoot":"","sources":["../../../../src/nodes/storage/storage-local-set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"storage-local-set.d.ts","sourceRoot":"","sources":["../../../../src/nodes/storage/storage-local-set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AAoBhE,eAAO,MAAM,eAAe,EAAE,oBAM7B,CAAA"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { handlerToString } from '../types';
|
|
2
|
+
// A write in the visitor's own tab fires no `storage` event. This one lets page
|
|
3
|
+
// scripts react at once: Google consent mode is granted by the cookie banner's
|
|
4
|
+
// Accept, which is this step (teleport-project-generator-next google-consent-mode).
|
|
2
5
|
async function storage_local_set(config, context) {
|
|
3
6
|
const key = config.key;
|
|
4
7
|
const value = config.value;
|
|
5
8
|
try {
|
|
6
9
|
const serialized = typeof value === 'string' ? value : JSON.stringify(value);
|
|
7
10
|
localStorage.setItem(key, serialized);
|
|
11
|
+
window.dispatchEvent(new CustomEvent('teleport:local-storage', { detail: { key, value: serialized } }));
|
|
8
12
|
return { success: true };
|
|
9
13
|
}
|
|
10
14
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-local-set.js","sourceRoot":"","sources":["../../../../src/nodes/storage/storage-local-set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,UAAU,CAAA;AAEhE,KAAK,UAAU,iBAAiB,CAAC,MAAW,EAAE,OAAgC;IAC5E,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;IACtB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;IAE1B,IAAI;QACF,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAC5E,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;KACzB;IAAC,OAAO,GAAY,EAAE;QACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAA;KACzD;AACH,CAAC;AACD,MAAM,CAAC,MAAM,eAAe,GAAyB;IACnD,QAAQ,EAAE,mBAAmB;IAC7B,YAAY,EAAE,QAAQ;IACtB,eAAe;QACb,OAAO,eAAe,CAAC,iBAAiB,CAAC,CAAA;IAC3C,CAAC;CACF,CAAA"}
|
|
1
|
+
{"version":3,"file":"storage-local-set.js","sourceRoot":"","sources":["../../../../src/nodes/storage/storage-local-set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,UAAU,CAAA;AAEhE,gFAAgF;AAChF,+EAA+E;AAC/E,oFAAoF;AACpF,KAAK,UAAU,iBAAiB,CAAC,MAAW,EAAE,OAAgC;IAC5E,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;IACtB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;IAE1B,IAAI;QACF,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAC5E,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QACrC,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAClF,CAAA;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;KACzB;IAAC,OAAO,GAAY,EAAE;QACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAA;KACzD;AACH,CAAC;AACD,MAAM,CAAC,MAAM,eAAe,GAAyB;IACnD,QAAQ,EAAE,mBAAmB;IAC7B,YAAY,EAAE,QAAQ;IACtB,eAAe;QACb,OAAO,eAAe,CAAC,iBAAiB,CAAC,CAAA;IAC3C,CAAC;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segment-splitter.d.ts","sourceRoot":"","sources":["../../src/segment-splitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAoB,MAAM,4BAA4B,CAAA;AAC7F,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAyG/D,eAAO,MAAM,iBAAiB,aAAc,YAAY,KAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"segment-splitter.d.ts","sourceRoot":"","sources":["../../src/segment-splitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAoB,MAAM,4BAA4B,CAAA;AAC7F,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAyG/D,eAAO,MAAM,iBAAiB,aAAc,YAAY,KAAG,eAAe,EAqIzE,CAAA;AAuGD;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,SAAU,gBAAgB,KAAG,oBAChC,CAAA;AAajC,eAAO,MAAM,8BAA8B,EAAE,aAAa,CAAC,MAAM,CAGhE,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB,WACzB,OAAO,MAAM,EAAE,OAAO,CAAC,OAC1B,oBAAoB,aACd,MAAM,KAChB,OAAO,MAAM,EAAE,OAAO,CAgBxB,CAAA;AA0BD,eAAO,MAAM,iBAAiB,aAAc,eAAe,EAAE,KAAG,eAAe,EAE9E,CAAA;AAED,eAAO,MAAM,iBAAiB,aAAc,eAAe,EAAE,KAAG,eAAe,EAE9E,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getLoopBodyNodes, getNodeById, getTopologicalOrder } from './graph-utils';
|
|
1
|
+
import { getDependents, getLoopBodyNodes, getNodeById, getTopologicalOrder } from './graph-utils';
|
|
2
2
|
import { nodeRegistry } from './nodes';
|
|
3
3
|
import { AWAIT_RESULT_CONFIG_KEY } from './await-result';
|
|
4
4
|
import { WELCOME_EMAIL_CONFIG_KEYS } from './transactional-email-code';
|
|
@@ -115,20 +115,38 @@ export const splitIntoSegments = (workflow) => {
|
|
|
115
115
|
const mainEdges = errorBranchIds.size > 0
|
|
116
116
|
? workflow.edges.filter((e) => !errorBranchIds.has(e.source) && !errorBranchIds.has(e.target))
|
|
117
117
|
: workflow.edges;
|
|
118
|
-
const order = getTopologicalOrder(mainNodes, mainEdges);
|
|
119
118
|
// Loop bodies must execute as a single unit at runtime. The split-by-env
|
|
120
119
|
// walk below would otherwise drop AI/server steps in one segment and the
|
|
121
120
|
// client-only post-processing into another, leaving the loop's body half-
|
|
122
|
-
// executed for every iteration.
|
|
123
|
-
//
|
|
124
|
-
//
|
|
125
|
-
//
|
|
126
|
-
const
|
|
121
|
+
// executed for every iteration. Every loop + body gets a single forced env
|
|
122
|
+
// (server if any body or the loop itself needs server, else client), and the
|
|
123
|
+
// topo order is rearranged so all body nodes sit immediately after their
|
|
124
|
+
// owning loop, so the env walk emits one segment for the loop + body.
|
|
125
|
+
const forcedEnvByNodeId = resolveLoopClusterEnvs(mainNodes, mainEdges);
|
|
126
|
+
const order = getTopologicalOrder(mainNodes, mainEdges, (node) => { var _a; return (_a = forcedEnvByNodeId.get(node.id)) !== null && _a !== void 0 ? _a : resolveFixedExecutionEnv(node); });
|
|
127
|
+
const reorderedOrder = hoistLoopBodies(order, mainNodes, mainEdges);
|
|
127
128
|
const segments = [];
|
|
128
129
|
let currentEnv = null;
|
|
129
130
|
let currentNodeIds = [];
|
|
130
131
|
let segClientCount = 0;
|
|
131
132
|
let segServerCount = 0;
|
|
133
|
+
// A server route runs its segment's nodes by stepNumber, never by edge, so a
|
|
134
|
+
// node must not join a segment holding one of its inputs at a later step (a
|
|
135
|
+
// join also reached by a shorter path, a value read across branches): the
|
|
136
|
+
// route would run it first. Loop bodies run inside their loop, at the loop's
|
|
137
|
+
// step, and never leave its segment.
|
|
138
|
+
const inputsById = new Map();
|
|
139
|
+
Object.entries(getDependents(mainNodes, mainEdges)).forEach(([source, dependents]) => dependents.forEach((id) => inputsById.set(id, [...(inputsById.get(id) || []), source])));
|
|
140
|
+
const loopStepByBodyNodeId = new Map();
|
|
141
|
+
mainNodes
|
|
142
|
+
.filter((n) => n.type === 'general-loop')
|
|
143
|
+
.forEach((loop) => getLoopBodyNodes(loop.id, mainEdges).forEach((id) => {
|
|
144
|
+
var _a;
|
|
145
|
+
return loopStepByBodyNodeId.set(id, Math.min((_a = loopStepByBodyNodeId.get(id)) !== null && _a !== void 0 ? _a : Infinity, loop.stepNumber || 0));
|
|
146
|
+
}));
|
|
147
|
+
const runsAtStep = (nodeId) => { var _a, _b; return (_a = loopStepByBodyNodeId.get(nodeId)) !== null && _a !== void 0 ? _a : (((_b = getNodeById(mainNodes, nodeId)) === null || _b === void 0 ? void 0 : _b.stepNumber) || 0); };
|
|
148
|
+
const readsALaterStepOfThisSegment = (node) => !loopStepByBodyNodeId.has(node.id) &&
|
|
149
|
+
(inputsById.get(node.id) || []).some((inputId) => currentNodeIds.includes(inputId) && runsAtStep(inputId) > (node.stepNumber || 0));
|
|
132
150
|
const flushSegment = () => {
|
|
133
151
|
if (currentNodeIds.length === 0 || currentEnv === null) {
|
|
134
152
|
return;
|
|
@@ -154,7 +172,8 @@ export const splitIntoSegments = (workflow) => {
|
|
|
154
172
|
}
|
|
155
173
|
const forced = forcedEnvByNodeId.get(nodeId);
|
|
156
174
|
const nodeEnv = forced !== null && forced !== void 0 ? forced : resolveExecutionEnv(node, currentEnv);
|
|
157
|
-
if (currentEnv !== null &&
|
|
175
|
+
if (currentEnv !== null &&
|
|
176
|
+
(nodeEnv !== currentEnv || (nodeEnv === 'server' && readsALaterStepOfThisSegment(node)))) {
|
|
158
177
|
flushSegment();
|
|
159
178
|
}
|
|
160
179
|
currentEnv = nodeEnv;
|
|
@@ -164,10 +183,7 @@ export const splitIntoSegments = (workflow) => {
|
|
|
164
183
|
return segments;
|
|
165
184
|
};
|
|
166
185
|
/**
|
|
167
|
-
*
|
|
168
|
-
* directly after the loop, and pick a single execution env for the
|
|
169
|
-
* (loop + body) cluster. Nested loops are processed inner-first so the outer
|
|
170
|
-
* loop's body window already contains the inner body in the right order.
|
|
186
|
+
* The single execution env of every (loop + body) cluster.
|
|
171
187
|
*
|
|
172
188
|
* Why an explicit env override is needed: a body that mixes universal /
|
|
173
189
|
* server / client nodes (e.g. fetch → AI prompt → custom-js with
|
|
@@ -180,12 +196,47 @@ export const splitIntoSegments = (workflow) => {
|
|
|
180
196
|
* runs the same string of JS regardless of where it executes); the inverse
|
|
181
197
|
* is not true for AI / HTTP-with-secret nodes. When no member is server, we
|
|
182
198
|
* keep the cluster on the client so DOM- or window-bound bodies still work.
|
|
199
|
+
* A node of nested loops takes its outermost loop's env, which is server
|
|
200
|
+
* whenever an inner loop's is.
|
|
183
201
|
*/
|
|
184
|
-
const
|
|
202
|
+
const resolveLoopClusterEnvs = (mainNodes, mainEdges) => {
|
|
185
203
|
const forcedEnvByNodeId = new Map();
|
|
204
|
+
for (const loop of mainNodes.filter((n) => n.type === 'general-loop')) {
|
|
205
|
+
const bodyIds = getLoopBodyNodes(loop.id, mainEdges);
|
|
206
|
+
if (bodyIds.length === 0) {
|
|
207
|
+
continue;
|
|
208
|
+
}
|
|
209
|
+
const clusterMembers = [loop.id, ...bodyIds]
|
|
210
|
+
.map((id) => getNodeById(mainNodes, id))
|
|
211
|
+
.filter((n) => Boolean(n));
|
|
212
|
+
const clusterEnv = clusterMembers.some((member) => resolveExecutionEnv(member, null) === 'server')
|
|
213
|
+
? 'server'
|
|
214
|
+
: 'client';
|
|
215
|
+
for (const member of clusterMembers) {
|
|
216
|
+
if (forcedEnvByNodeId.get(member.id) !== 'server') {
|
|
217
|
+
forcedEnvByNodeId.set(member.id, clusterEnv);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return forcedEnvByNodeId;
|
|
222
|
+
};
|
|
223
|
+
/**
|
|
224
|
+
* Where a node runs whatever ran before it, or `null` for a node that takes the
|
|
225
|
+
* env of the node before it (an if-statement): it fits either side.
|
|
226
|
+
*/
|
|
227
|
+
const resolveFixedExecutionEnv = (node) => {
|
|
228
|
+
const env = resolveExecutionEnv(node, 'server');
|
|
229
|
+
return env === resolveExecutionEnv(node, 'client') ? env : null;
|
|
230
|
+
};
|
|
231
|
+
/**
|
|
232
|
+
* Re-arrange the topological node order so every loop's body nodes sit
|
|
233
|
+
* directly after the loop. Nested loops are processed inner-first so the outer
|
|
234
|
+
* loop's body window already contains the inner body in the right order.
|
|
235
|
+
*/
|
|
236
|
+
const hoistLoopBodies = (order, mainNodes, mainEdges) => {
|
|
186
237
|
const loopNodes = mainNodes.filter((n) => n.type === 'general-loop');
|
|
187
238
|
if (loopNodes.length === 0) {
|
|
188
|
-
return
|
|
239
|
+
return order;
|
|
189
240
|
}
|
|
190
241
|
// Process inner loops before outer ones: an inner loop's body is a subset
|
|
191
242
|
// of its enclosing loop's body, and we want the outer pass to see the
|
|
@@ -199,19 +250,6 @@ const enforceLoopBodyIntegrity = (order, mainNodes, mainEdges) => {
|
|
|
199
250
|
continue;
|
|
200
251
|
}
|
|
201
252
|
const clusterIds = new Set([loopId, ...bodyIds]);
|
|
202
|
-
const clusterMembers = Array.from(clusterIds)
|
|
203
|
-
.map((id) => getNodeById(mainNodes, id))
|
|
204
|
-
.filter((n) => Boolean(n));
|
|
205
|
-
let clusterEnv = 'client';
|
|
206
|
-
for (const member of clusterMembers) {
|
|
207
|
-
if (resolveExecutionEnv(member, null) === 'server') {
|
|
208
|
-
clusterEnv = 'server';
|
|
209
|
-
break;
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
for (const member of clusterMembers) {
|
|
213
|
-
forcedEnvByNodeId.set(member.id, clusterEnv);
|
|
214
|
-
}
|
|
215
253
|
// Hoist body nodes (preserving their existing relative order) immediately
|
|
216
254
|
// after the loop. Other nodes keep their relative position.
|
|
217
255
|
const bodyInOrder = working.filter((id) => id !== loopId && clusterIds.has(id));
|
|
@@ -226,7 +264,7 @@ const enforceLoopBodyIntegrity = (order, mainNodes, mainEdges) => {
|
|
|
226
264
|
...withoutBody.slice(loopIdxAfterRemoval + 1),
|
|
227
265
|
];
|
|
228
266
|
}
|
|
229
|
-
return
|
|
267
|
+
return working;
|
|
230
268
|
};
|
|
231
269
|
/**
|
|
232
270
|
* Resolve a node's intrinsic execution env using the exact same rules the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segment-splitter.js","sourceRoot":"","sources":["../../src/segment-splitter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"segment-splitter.js","sourceRoot":"","sources":["../../src/segment-splitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactional-email-code.d.ts","sourceRoot":"","sources":["../../src/transactional-email-code.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"transactional-email-code.d.ts","sourceRoot":"","sources":["../../src/transactional-email-code.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;AAKxE,eAAO,MAAM,yBAAyB,aAMpC,CAAA;AAIF,eAAO,MAAM,8BAA8B,cAC9B,MAAM,GAAG,IAAI,KACvB,OAAO,MAAM,EAAE,MAAM,CAKvB,CAAA;AAED;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;CACvB;AASD,eAAO,MAAM,4BAA4B,cAC5B,MAAM,GAAG,IAAI,WACf,wBAAwB,KAChC,MA0CF,CAAA;AA6DD,eAAO,MAAM,sBAAsB,QAAO,MASxC,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,UAAW,OAAO,KAAG,2BAgB5D,CAAA;AAED,oFAAoF;AACpF,eAAO,MAAM,0BAA0B,mBAAoB,MAAM,KAAG,MAGlC,CAAA;AAElC;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,WAAY;IACnD,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;CACvB,KAAG,MAMF,CAAA;AAKF,eAAO,MAAM,yBAAyB,UAarC,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EmailSender } from '@teleporthq/teleport-shared';
|
|
1
2
|
import { getEmailProviderDependencies } from './invoice/email-sender-code';
|
|
2
3
|
import { EMAIL_LOCALE_FILE_NAME, EMAIL_LOCALE_PATH } from './email-locale/email-locale-scope';
|
|
3
4
|
export const SUPPORTED_EMAIL_PROVIDERS = new Set([
|
|
@@ -15,18 +16,25 @@ export const transactionalEmailDependencies = (provider) => {
|
|
|
15
16
|
}
|
|
16
17
|
return getEmailProviderDependencies(provider);
|
|
17
18
|
};
|
|
18
|
-
// Provider-specific `__sendProviderEmail({ from, to, subject, html,
|
|
19
|
-
// tokenValues?, userId? })
|
|
20
|
-
//
|
|
21
|
-
//
|
|
22
|
-
//
|
|
23
|
-
//
|
|
19
|
+
// Provider-specific `__sendProviderEmail({ from, fromName?, to, subject, html,
|
|
20
|
+
// apiKey, tokenValues?, userId? })`, preceded by the `__emailSender` helper that
|
|
21
|
+
// names the sender. No attachment (unlike the invoice sender). When no provider
|
|
22
|
+
// is configured the function is a no-op so the route stays self-contained and
|
|
23
|
+
// never throws. With `ledger`, the provider function is emitted as
|
|
24
|
+
// `__sendProviderEmailRaw` and `__sendProviderEmail` records every attempt
|
|
25
|
+
// (success or throw) before returning / rethrowing.
|
|
24
26
|
export const generateProviderSendFunction = (provider, ledger) => {
|
|
25
27
|
const raw = generateRawProviderSendFunction(provider);
|
|
26
|
-
if (!
|
|
28
|
+
if (!provider || !SUPPORTED_EMAIL_PROVIDERS.has(provider)) {
|
|
27
29
|
return raw;
|
|
28
30
|
}
|
|
29
|
-
|
|
31
|
+
const senderHelper = EmailSender.generateEmailSenderHelperCode();
|
|
32
|
+
if (!ledger) {
|
|
33
|
+
return `${senderHelper}
|
|
34
|
+
${raw}`;
|
|
35
|
+
}
|
|
36
|
+
return `${senderHelper}
|
|
37
|
+
${raw.replace('async function __sendProviderEmail(', 'async function __sendProviderEmailRaw(')}
|
|
30
38
|
|
|
31
39
|
var __sentEmailLog = require('${ledger.relativePrefix}/utils/email/sent-email-log');
|
|
32
40
|
|
|
@@ -37,12 +45,14 @@ async function __sendProviderEmail(msg) {
|
|
|
37
45
|
} catch (err) {
|
|
38
46
|
failure = err;
|
|
39
47
|
}
|
|
48
|
+
var sender = __emailSender({ from: msg.from, name: msg.fromName });
|
|
40
49
|
// Recorded in the background; the route settles the ledger before it replies.
|
|
41
50
|
__sentEmailLog.recordSentEmail({
|
|
42
51
|
emailType: ${JSON.stringify(ledger.emailType)},
|
|
43
52
|
audience: 'customer',
|
|
44
53
|
to: msg.to,
|
|
45
|
-
from:
|
|
54
|
+
from: sender.email,
|
|
55
|
+
fromName: sender.name,
|
|
46
56
|
subject: msg.subject,
|
|
47
57
|
html: msg.html,
|
|
48
58
|
payload: msg.tokenValues,
|
|
@@ -62,20 +72,26 @@ const generateRawProviderSendFunction = (provider) => {
|
|
|
62
72
|
return `async function __sendProviderEmail(msg) {
|
|
63
73
|
var Resend = require('resend').Resend;
|
|
64
74
|
var resend = new Resend(msg.apiKey);
|
|
65
|
-
var
|
|
75
|
+
var sender = __emailSender({ from: msg.from, name: msg.fromName });
|
|
76
|
+
var result = await resend.emails.send({ from: sender.header, to: [msg.to], subject: msg.subject, html: msg.html });
|
|
66
77
|
if (result && result.error) { throw new Error(result.error.message || 'Failed to send email'); }
|
|
67
78
|
}`;
|
|
68
79
|
case 'sendgrid':
|
|
80
|
+
// SendGrid reads a "Name <email>" string's name verbatim, quotes included,
|
|
81
|
+
// so a named sender goes as its two parts.
|
|
69
82
|
return `async function __sendProviderEmail(msg) {
|
|
70
83
|
var sgMail = require('@sendgrid/mail');
|
|
71
84
|
sgMail.setApiKey(msg.apiKey);
|
|
72
|
-
|
|
85
|
+
var sender = __emailSender({ from: msg.from, name: msg.fromName });
|
|
86
|
+
var from = sender.name ? { email: sender.email, name: sender.name } : sender.email;
|
|
87
|
+
await sgMail.send({ to: msg.to, from: from, subject: msg.subject, html: msg.html });
|
|
73
88
|
}`;
|
|
74
89
|
case 'postmark':
|
|
75
90
|
return `async function __sendProviderEmail(msg) {
|
|
76
91
|
var postmark = require('postmark');
|
|
77
92
|
var client = new postmark.ServerClient(msg.apiKey);
|
|
78
|
-
|
|
93
|
+
var sender = __emailSender({ from: msg.from, name: msg.fromName });
|
|
94
|
+
await client.sendEmail({ From: sender.header, To: msg.to, Subject: msg.subject, HtmlBody: msg.html });
|
|
79
95
|
}`;
|
|
80
96
|
case 'mailgun':
|
|
81
97
|
return `async function __sendProviderEmail(msg) {
|
|
@@ -85,7 +101,8 @@ const generateRawProviderSendFunction = (provider) => {
|
|
|
85
101
|
if (!domain) { throw new Error('Mailgun domain not configured'); }
|
|
86
102
|
var mailgun = new Mailgun(formData);
|
|
87
103
|
var mg = mailgun.client({ username: 'api', key: msg.apiKey });
|
|
88
|
-
|
|
104
|
+
var sender = __emailSender({ from: msg.from, name: msg.fromName });
|
|
105
|
+
await mg.messages.create(domain, { from: sender.header, to: [msg.to], subject: msg.subject, html: msg.html });
|
|
89
106
|
}`;
|
|
90
107
|
case 'mailersend':
|
|
91
108
|
return `async function __sendProviderEmail(msg) {
|
|
@@ -94,11 +111,8 @@ const generateRawProviderSendFunction = (provider) => {
|
|
|
94
111
|
var Sender = require('mailersend').Sender;
|
|
95
112
|
var Recipient = require('mailersend').Recipient;
|
|
96
113
|
var mailerSend = new MailerSend({ apiKey: msg.apiKey });
|
|
97
|
-
var
|
|
98
|
-
var
|
|
99
|
-
var fromEmail = m ? m[2].trim() : fromStr;
|
|
100
|
-
var fromName = m ? m[1].trim() : '';
|
|
101
|
-
var sender = new Sender(fromEmail, fromName || fromEmail);
|
|
114
|
+
var from = __emailSender({ from: msg.from, name: msg.fromName });
|
|
115
|
+
var sender = new Sender(from.email, from.name || from.email);
|
|
102
116
|
var params = new EmailParams().setFrom(sender).setTo([new Recipient(msg.to)]).setSubject(msg.subject).setHtml(msg.html);
|
|
103
117
|
await mailerSend.email.send(params);
|
|
104
118
|
}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactional-email-code.js","sourceRoot":"","sources":["../../src/transactional-email-code.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAA;AAC1E,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAE7F,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IAC/C,QAAQ;IACR,UAAU;IACV,UAAU;IACV,SAAS;IACT,YAAY;CACb,CAAC,CAAA;AAEF,+EAA+E;AAC/E,8BAA8B;AAC9B,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,QAAwB,EACA,EAAE;IAC1B,IAAI,CAAC,QAAQ,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;QACzD,OAAO,EAAE,CAAA;KACV;IACD,OAAO,4BAA4B,CAAC,QAAQ,CAAC,CAAA;AAC/C,CAAC,CAAA;AAcD,
|
|
1
|
+
{"version":3,"file":"transactional-email-code.js","sourceRoot":"","sources":["../../src/transactional-email-code.ts"],"names":[],"mappings":"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"}
|