@teleporthq/teleport-plugin-next-workflows 0.43.42 → 0.43.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/__tests__/cart-availability-add-to-cart.test.ts +47 -0
  2. package/__tests__/cron-route-loop-templateparams.test.ts +144 -0
  3. package/__tests__/data-api-on-conflict-do-nothing.test.ts +35 -0
  4. package/__tests__/email-body-context-resolution.test.ts +126 -0
  5. package/__tests__/raw-sql-param-binding.test.ts +138 -0
  6. package/dist/cjs/account-delete-route-generator.d.ts +13 -0
  7. package/dist/cjs/account-delete-route-generator.d.ts.map +1 -0
  8. package/dist/cjs/account-delete-route-generator.js +247 -0
  9. package/dist/cjs/account-delete-route-generator.js.map +1 -0
  10. package/dist/cjs/api-route-generator.d.ts +1 -1
  11. package/dist/cjs/api-route-generator.d.ts.map +1 -1
  12. package/dist/cjs/api-route-generator.js +29 -33
  13. package/dist/cjs/api-route-generator.js.map +1 -1
  14. package/dist/cjs/auth-generator.d.ts +9 -1
  15. package/dist/cjs/auth-generator.d.ts.map +1 -1
  16. package/dist/cjs/auth-generator.js +53 -2
  17. package/dist/cjs/auth-generator.js.map +1 -1
  18. package/dist/cjs/data-api-route-generator.d.ts.map +1 -1
  19. package/dist/cjs/data-api-route-generator.js +11 -2
  20. package/dist/cjs/data-api-route-generator.js.map +1 -1
  21. package/dist/cjs/ecommerce/cart-availability.d.ts.map +1 -1
  22. package/dist/cjs/ecommerce/cart-availability.js +49 -2
  23. package/dist/cjs/ecommerce/cart-availability.js.map +1 -1
  24. package/dist/cjs/ecommerce/stock-decrement.d.ts +1 -1
  25. package/dist/cjs/ecommerce/stock-decrement.d.ts.map +1 -1
  26. package/dist/cjs/ecommerce/stock-decrement.js +48 -10
  27. package/dist/cjs/ecommerce/stock-decrement.js.map +1 -1
  28. package/dist/cjs/executor-generator.d.ts.map +1 -1
  29. package/dist/cjs/executor-generator.js +62 -0
  30. package/dist/cjs/executor-generator.js.map +1 -1
  31. package/dist/cjs/graph-utils.d.ts.map +1 -1
  32. package/dist/cjs/graph-utils.js +1 -0
  33. package/dist/cjs/graph-utils.js.map +1 -1
  34. package/dist/cjs/invoice/api-routes-code.d.ts.map +1 -1
  35. package/dist/cjs/invoice/api-routes-code.js +2 -0
  36. package/dist/cjs/invoice/api-routes-code.js.map +1 -1
  37. package/dist/cjs/invoice/data-access-code.d.ts.map +1 -1
  38. package/dist/cjs/invoice/data-access-code.js +2 -0
  39. package/dist/cjs/invoice/data-access-code.js.map +1 -1
  40. package/dist/cjs/invoice/invoice-html-code.d.ts.map +1 -1
  41. package/dist/cjs/invoice/invoice-html-code.js +22 -2
  42. package/dist/cjs/invoice/invoice-html-code.js.map +1 -1
  43. package/dist/cjs/nodes/account/account-delete-current.d.ts +3 -0
  44. package/dist/cjs/nodes/account/account-delete-current.d.ts.map +1 -0
  45. package/dist/cjs/nodes/account/account-delete-current.js +79 -0
  46. package/dist/cjs/nodes/account/account-delete-current.js.map +1 -0
  47. package/dist/cjs/nodes/account/account-signup.d.ts.map +1 -1
  48. package/dist/cjs/nodes/account/account-signup.js +20 -1
  49. package/dist/cjs/nodes/account/account-signup.js.map +1 -1
  50. package/dist/cjs/nodes/data/data-create-item.d.ts.map +1 -1
  51. package/dist/cjs/nodes/data/data-create-item.js +7 -0
  52. package/dist/cjs/nodes/data/data-create-item.js.map +1 -1
  53. package/dist/cjs/nodes/index.d.ts.map +1 -1
  54. package/dist/cjs/nodes/index.js +2 -1
  55. package/dist/cjs/nodes/index.js.map +1 -1
  56. package/dist/cjs/nodes/payment/payment-charge-user.d.ts.map +1 -1
  57. package/dist/cjs/nodes/payment/payment-charge-user.js +9 -1
  58. package/dist/cjs/nodes/payment/payment-charge-user.js.map +1 -1
  59. package/dist/cjs/pg-client-code.d.ts +11 -0
  60. package/dist/cjs/pg-client-code.d.ts.map +1 -0
  61. package/dist/cjs/pg-client-code.js +75 -0
  62. package/dist/cjs/pg-client-code.js.map +1 -0
  63. package/dist/cjs/raw-sql-param-binding.d.ts +82 -0
  64. package/dist/cjs/raw-sql-param-binding.d.ts.map +1 -0
  65. package/dist/cjs/raw-sql-param-binding.js +321 -0
  66. package/dist/cjs/raw-sql-param-binding.js.map +1 -0
  67. package/dist/cjs/transactional-email-code.d.ts +6 -0
  68. package/dist/cjs/transactional-email-code.d.ts.map +1 -0
  69. package/dist/cjs/transactional-email-code.js +112 -0
  70. package/dist/cjs/transactional-email-code.js.map +1 -0
  71. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  72. package/dist/cjs/workflow-project-plugin.d.ts.map +1 -1
  73. package/dist/cjs/workflow-project-plugin.js +153 -27
  74. package/dist/cjs/workflow-project-plugin.js.map +1 -1
  75. package/dist/esm/account-delete-route-generator.d.ts +13 -0
  76. package/dist/esm/account-delete-route-generator.d.ts.map +1 -0
  77. package/dist/esm/account-delete-route-generator.js +243 -0
  78. package/dist/esm/account-delete-route-generator.js.map +1 -0
  79. package/dist/esm/api-route-generator.d.ts +1 -1
  80. package/dist/esm/api-route-generator.d.ts.map +1 -1
  81. package/dist/esm/api-route-generator.js +29 -33
  82. package/dist/esm/api-route-generator.js.map +1 -1
  83. package/dist/esm/auth-generator.d.ts +9 -1
  84. package/dist/esm/auth-generator.d.ts.map +1 -1
  85. package/dist/esm/auth-generator.js +53 -2
  86. package/dist/esm/auth-generator.js.map +1 -1
  87. package/dist/esm/data-api-route-generator.d.ts.map +1 -1
  88. package/dist/esm/data-api-route-generator.js +11 -2
  89. package/dist/esm/data-api-route-generator.js.map +1 -1
  90. package/dist/esm/ecommerce/cart-availability.d.ts.map +1 -1
  91. package/dist/esm/ecommerce/cart-availability.js +49 -2
  92. package/dist/esm/ecommerce/cart-availability.js.map +1 -1
  93. package/dist/esm/ecommerce/stock-decrement.d.ts +1 -1
  94. package/dist/esm/ecommerce/stock-decrement.d.ts.map +1 -1
  95. package/dist/esm/ecommerce/stock-decrement.js +48 -10
  96. package/dist/esm/ecommerce/stock-decrement.js.map +1 -1
  97. package/dist/esm/executor-generator.d.ts.map +1 -1
  98. package/dist/esm/executor-generator.js +62 -0
  99. package/dist/esm/executor-generator.js.map +1 -1
  100. package/dist/esm/graph-utils.d.ts.map +1 -1
  101. package/dist/esm/graph-utils.js +1 -0
  102. package/dist/esm/graph-utils.js.map +1 -1
  103. package/dist/esm/invoice/api-routes-code.d.ts.map +1 -1
  104. package/dist/esm/invoice/api-routes-code.js +2 -0
  105. package/dist/esm/invoice/api-routes-code.js.map +1 -1
  106. package/dist/esm/invoice/data-access-code.d.ts.map +1 -1
  107. package/dist/esm/invoice/data-access-code.js +2 -0
  108. package/dist/esm/invoice/data-access-code.js.map +1 -1
  109. package/dist/esm/invoice/invoice-html-code.d.ts.map +1 -1
  110. package/dist/esm/invoice/invoice-html-code.js +22 -2
  111. package/dist/esm/invoice/invoice-html-code.js.map +1 -1
  112. package/dist/esm/nodes/account/account-delete-current.d.ts +3 -0
  113. package/dist/esm/nodes/account/account-delete-current.d.ts.map +1 -0
  114. package/dist/esm/nodes/account/account-delete-current.js +76 -0
  115. package/dist/esm/nodes/account/account-delete-current.js.map +1 -0
  116. package/dist/esm/nodes/account/account-signup.d.ts.map +1 -1
  117. package/dist/esm/nodes/account/account-signup.js +20 -1
  118. package/dist/esm/nodes/account/account-signup.js.map +1 -1
  119. package/dist/esm/nodes/data/data-create-item.d.ts.map +1 -1
  120. package/dist/esm/nodes/data/data-create-item.js +7 -0
  121. package/dist/esm/nodes/data/data-create-item.js.map +1 -1
  122. package/dist/esm/nodes/index.d.ts.map +1 -1
  123. package/dist/esm/nodes/index.js +2 -1
  124. package/dist/esm/nodes/index.js.map +1 -1
  125. package/dist/esm/nodes/payment/payment-charge-user.d.ts.map +1 -1
  126. package/dist/esm/nodes/payment/payment-charge-user.js +9 -1
  127. package/dist/esm/nodes/payment/payment-charge-user.js.map +1 -1
  128. package/dist/esm/pg-client-code.d.ts +11 -0
  129. package/dist/esm/pg-client-code.d.ts.map +1 -0
  130. package/dist/esm/pg-client-code.js +71 -0
  131. package/dist/esm/pg-client-code.js.map +1 -0
  132. package/dist/esm/raw-sql-param-binding.d.ts +82 -0
  133. package/dist/esm/raw-sql-param-binding.d.ts.map +1 -0
  134. package/dist/esm/raw-sql-param-binding.js +314 -0
  135. package/dist/esm/raw-sql-param-binding.js.map +1 -0
  136. package/dist/esm/transactional-email-code.d.ts +6 -0
  137. package/dist/esm/transactional-email-code.d.ts.map +1 -0
  138. package/dist/esm/transactional-email-code.js +106 -0
  139. package/dist/esm/transactional-email-code.js.map +1 -0
  140. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  141. package/dist/esm/workflow-project-plugin.d.ts.map +1 -1
  142. package/dist/esm/workflow-project-plugin.js +153 -27
  143. package/dist/esm/workflow-project-plugin.js.map +1 -1
  144. package/package.json +4 -4
  145. package/src/account-delete-route-generator.ts +269 -0
  146. package/src/api-route-generator.ts +35 -33
  147. package/src/auth-generator.ts +77 -2
  148. package/src/data-api-route-generator.ts +11 -2
  149. package/src/ecommerce/cart-availability.ts +49 -2
  150. package/src/ecommerce/stock-decrement.ts +48 -10
  151. package/src/executor-generator.ts +62 -0
  152. package/src/graph-utils.ts +1 -0
  153. package/src/invoice/api-routes-code.ts +2 -0
  154. package/src/invoice/data-access-code.ts +2 -0
  155. package/src/invoice/invoice-html-code.ts +22 -2
  156. package/src/nodes/account/account-delete-current.ts +86 -0
  157. package/src/nodes/account/account-signup.ts +20 -1
  158. package/src/nodes/data/data-create-item.ts +7 -0
  159. package/src/nodes/index.ts +2 -0
  160. package/src/nodes/payment/payment-charge-user.ts +9 -1
  161. package/src/pg-client-code.ts +70 -0
  162. package/src/raw-sql-param-binding.ts +406 -0
  163. package/src/transactional-email-code.ts +112 -0
  164. package/src/workflow-project-plugin.ts +178 -25
@@ -0,0 +1,247 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateAccountDeleteRoute = exports.accountDeleteRouteDependencies = void 0;
4
+ /**
5
+ * Generates the dedicated API route that backs the `account-delete-current`
6
+ * workflow node: `pages/api/account/delete-current.js`.
7
+ *
8
+ * The client node calls this route, which:
9
+ * 1. resolves the current user from the NextAuth session (never trusting a
10
+ * client-supplied id),
11
+ * 2. runs a single DB transaction that detaches + anonymises business/legal
12
+ * records (orders, withdrawal requests) so tracking survives, deletes the
13
+ * user's personal data (reviews, cart, favourites, chat history) and the
14
+ * user row, and
15
+ * 3. best-effort sends the farewell email (a failed send never fails the
16
+ * deletion).
17
+ *
18
+ * Every table statement is guarded by a runtime `information_schema` column
19
+ * check, so the route is a no-op for feature tables a given project never
20
+ * provisioned.
21
+ */
22
+ const pg_client_code_1 = require("./pg-client-code");
23
+ const transactional_email_code_1 = require("./transactional-email-code");
24
+ // Kept as a named alias (imported by workflow-project-plugin.ts) so the delete
25
+ // route's dependency wiring stays stable while the impl lives in the shared module.
26
+ exports.accountDeleteRouteDependencies = transactional_email_code_1.transactionalEmailDependencies;
27
+ const generateAccountDeleteRoute = (options = {}) => {
28
+ const authUsersTable = options.authUsersTableName || 'users';
29
+ const provider = options.emailProvider && transactional_email_code_1.SUPPORTED_EMAIL_PROVIDERS.has(options.emailProvider)
30
+ ? options.emailProvider
31
+ : null;
32
+ const deletedEmailPattern = options.deletedEmailPattern || 'deleted-user-{{userId}}@deleted.invalid';
33
+ return `${(0, pg_client_code_1.generatePgClientCode)()}
34
+ const { getToken } = require('next-auth/jwt');
35
+
36
+ const AUTH_USERS_TABLE = ${JSON.stringify(authUsersTable)};
37
+ const SITE_NAME = ${JSON.stringify(options.siteName || '')};
38
+ const DELETED_EMAIL_PATTERN = ${JSON.stringify(deletedEmailPattern)};
39
+ const EMAIL_PROVIDER = ${JSON.stringify(provider)};
40
+ const EMAIL_FROM = ${JSON.stringify(options.fromEmail || '')};
41
+ const EMAIL_SECRET_ENV_NAME = ${JSON.stringify(options.emailSecretEnvName || '')};
42
+ const EMAIL_SUBJECT = ${JSON.stringify(options.emailSubject || 'Your account has been deleted')};
43
+ const EMAIL_BODY_HTML = ${JSON.stringify(options.emailBodyHtml || '')};
44
+
45
+ // Personal data owned by the user — rows are DELETED (keyed by user_id). Messages
46
+ // are deleted before conversations so a conversation delete only cascades leftovers.
47
+ const DELETE_TABLES = [
48
+ 'teleport_product_reviews',
49
+ 'teleport_favourites',
50
+ 'teleport_cart',
51
+ 'teleport_ai_chat_messages',
52
+ 'teleport_ai_chat_conversations',
53
+ ];
54
+ // Business / legal records that must survive: the user link is nulled and any
55
+ // stored personal email is replaced with a synthetic, self-describing address.
56
+ const ANONYMIZE_TABLES = ['teleport_orders', 'teleport_withdrawal_requests'];
57
+ const EMAIL_COLUMNS = ['billing_email', 'shipping_email', 'customer_email', 'email'];
58
+
59
+ async function tableColumns(client, table) {
60
+ var r = await client.query(
61
+ "SELECT column_name FROM information_schema.columns WHERE table_schema = 'public' AND table_name = $1",
62
+ [table]
63
+ );
64
+ var cols = [];
65
+ for (var i = 0; i < r.rows.length; i++) { cols.push(r.rows[i].column_name); }
66
+ return cols;
67
+ }
68
+
69
+ async function anonymizeUserRows(client, table, userId, syntheticEmail) {
70
+ var cols = await tableColumns(client, table);
71
+ if (cols.indexOf('user_id') === -1) { return; }
72
+ var sets = ['user_id = NULL'];
73
+ var params = [userId];
74
+ for (var i = 0; i < EMAIL_COLUMNS.length; i++) {
75
+ if (cols.indexOf(EMAIL_COLUMNS[i]) !== -1) {
76
+ params.push(syntheticEmail);
77
+ sets.push(EMAIL_COLUMNS[i] + ' = $' + params.length);
78
+ }
79
+ }
80
+ await client.query('UPDATE ' + table + ' SET ' + sets.join(', ') + ' WHERE user_id = $1', params);
81
+ }
82
+
83
+ async function deleteUserRows(client, table, userId) {
84
+ var cols = await tableColumns(client, table);
85
+ if (cols.indexOf('user_id') === -1) { return; }
86
+ await client.query('DELETE FROM ' + table + ' WHERE user_id = $1', [userId]);
87
+ }
88
+
89
+ async function deleteRowsByEmail(client, table, column, email) {
90
+ if (!email) { return; }
91
+ var cols = await tableColumns(client, table);
92
+ if (cols.indexOf(column) === -1) { return; }
93
+ await client.query('DELETE FROM ' + table + ' WHERE ' + column + ' = $1', [email]);
94
+ }
95
+
96
+ // Invoices are a financial/tax record that must survive, but they store the
97
+ // customer's PII denormalised and link to the user only through order_id (no
98
+ // user_id). Scrub the PII in place, matching invoices whose order belongs to the
99
+ // user. MUST run BEFORE the orders row is anonymised (its user_id is still set).
100
+ var INVOICE_PII_NULL_COLUMNS = [
101
+ 'customer_name',
102
+ 'customer_address',
103
+ 'customer_city',
104
+ 'customer_state',
105
+ 'customer_zip',
106
+ 'customer_country',
107
+ 'customer_vat',
108
+ 'customer_phone',
109
+ ];
110
+
111
+ async function anonymizeInvoices(client, ordersTable, invoicesTable, userId, syntheticEmail) {
112
+ var invCols = await tableColumns(client, invoicesTable);
113
+ if (invCols.indexOf('order_id') === -1) { return; }
114
+ var orderCols = await tableColumns(client, ordersTable);
115
+ if (orderCols.indexOf('user_id') === -1) { return; }
116
+ var sets = [];
117
+ var params = [];
118
+ if (invCols.indexOf('customer_email') !== -1) {
119
+ params.push(syntheticEmail);
120
+ sets.push('customer_email = $' + params.length);
121
+ }
122
+ for (var i = 0; i < INVOICE_PII_NULL_COLUMNS.length; i++) {
123
+ if (invCols.indexOf(INVOICE_PII_NULL_COLUMNS[i]) !== -1) {
124
+ sets.push(INVOICE_PII_NULL_COLUMNS[i] + ' = NULL');
125
+ }
126
+ }
127
+ if (sets.length === 0) { return; }
128
+ params.push(userId);
129
+ await client.query(
130
+ 'UPDATE ' + invoicesTable + ' SET ' + sets.join(', ') +
131
+ ' WHERE order_id IN (SELECT id FROM ' + ordersTable + ' WHERE user_id = $' + params.length + ')',
132
+ params
133
+ );
134
+ }
135
+
136
+ ${(0, transactional_email_code_1.generateFillTemplateFn)()}
137
+
138
+ ${(0, transactional_email_code_1.generateProviderSendFunction)(provider)}
139
+
140
+ async function sendFarewellEmail(toEmail, tokenValues) {
141
+ if (!EMAIL_PROVIDER || !EMAIL_BODY_HTML || !toEmail) { return; }
142
+ var apiKey = EMAIL_SECRET_ENV_NAME ? process.env[EMAIL_SECRET_ENV_NAME] : '';
143
+ // Don't treat an unresolved deploy placeholder as a real credential.
144
+ if (apiKey && String(apiKey).indexOf('teleporthq.secrets.') === 0) { apiKey = ''; }
145
+ if (!apiKey) { console.warn('[account-delete] farewell email skipped: credential not set'); return; }
146
+ var from = EMAIL_FROM || process.env.EMAIL_FROM || '';
147
+ if (!from) { console.warn('[account-delete] farewell email skipped: sender not configured'); return; }
148
+ var subject = fillTemplate(EMAIL_SUBJECT, tokenValues);
149
+ var html = fillTemplate(EMAIL_BODY_HTML, tokenValues);
150
+ await __sendProviderEmail({ from: from, to: toEmail, subject: subject, html: html, apiKey: apiKey });
151
+ }
152
+
153
+ module.exports = async function handler(req, res) {
154
+ if (req.method !== 'POST') {
155
+ return res.status(405).json({ error: 'Method not allowed' });
156
+ }
157
+
158
+ // Identify the user from the session — never trust a client-supplied id.
159
+ var token = null;
160
+ try {
161
+ token = await getToken({ req: req, secret: process.env.NEXTAUTH_SECRET });
162
+ } catch (e) {
163
+ token = null;
164
+ }
165
+ var userId = token && (token.id || token.sub);
166
+ if (!userId) {
167
+ return res.status(401).json({ error: 'Unauthenticated' });
168
+ }
169
+
170
+ var client = getClient();
171
+ var userEmail = '';
172
+ var userName = '';
173
+ var userFound = false;
174
+ var failed = false;
175
+ // try/finally so the pg connection is ALWAYS closed — every early exit
176
+ // (not-found, error) leaves via the finally, never leaking a connection.
177
+ try {
178
+ await client.connect();
179
+
180
+ // Capture the email/name BEFORE deletion so the farewell email can still be sent.
181
+ var userRes = await client.query('SELECT * FROM ' + AUTH_USERS_TABLE + ' WHERE id = $1', [userId]);
182
+ if (userRes.rows.length) {
183
+ userFound = true;
184
+ userEmail = userRes.rows[0].email || '';
185
+ userName = userRes.rows[0].name || '';
186
+
187
+ var syntheticEmail = String(DELETED_EMAIL_PATTERN).split('{{userId}}').join(String(userId));
188
+
189
+ await client.query('BEGIN');
190
+ try {
191
+ // Scrub invoice PII FIRST — invoices link to the user only through
192
+ // order_id, so this must run while the orders row still carries user_id.
193
+ await anonymizeInvoices(client, 'teleport_orders', 'teleport_invoices', userId, syntheticEmail);
194
+ for (var a = 0; a < ANONYMIZE_TABLES.length; a++) {
195
+ await anonymizeUserRows(client, ANONYMIZE_TABLES[a], userId, syntheticEmail);
196
+ }
197
+ for (var d = 0; d < DELETE_TABLES.length; d++) {
198
+ await deleteUserRows(client, DELETE_TABLES[d], userId);
199
+ }
200
+ // password_reset_tokens has no user_id — it is keyed by the email string.
201
+ await deleteRowsByEmail(client, 'password_reset_tokens', 'email', userEmail);
202
+ await client.query('DELETE FROM ' + AUTH_USERS_TABLE + ' WHERE id = $1', [userId]);
203
+ await client.query('COMMIT');
204
+ } catch (txErr) {
205
+ try { await client.query('ROLLBACK'); } catch (e) {}
206
+ throw txErr;
207
+ }
208
+ }
209
+ } catch (err) {
210
+ failed = true;
211
+ console.error('[account-delete] failed:', err && err.message ? err.message : err);
212
+ } finally {
213
+ try { await client.end(); } catch (e) {}
214
+ }
215
+
216
+ if (failed) {
217
+ return res.status(500).json({ error: 'Account deletion failed' });
218
+ }
219
+ if (!userFound) {
220
+ return res.status(404).json({ error: 'Account not found' });
221
+ }
222
+
223
+ // Best-effort farewell email AFTER the successful commit (connection closed).
224
+ try {
225
+ var resolvedSiteName =
226
+ SITE_NAME ||
227
+ (req.headers && req.headers.host
228
+ ? String(req.headers.host).replace(/^www\\./, '').split(':')[0]
229
+ : '');
230
+ await sendFarewellEmail(userEmail, {
231
+ userName: userName || 'there',
232
+ userEmail: userEmail,
233
+ siteName: resolvedSiteName,
234
+ });
235
+ } catch (emailErr) {
236
+ console.error(
237
+ '[account-delete] farewell email failed:',
238
+ emailErr && emailErr.message ? emailErr.message : emailErr
239
+ );
240
+ }
241
+
242
+ return res.status(200).json({ success: true });
243
+ };
244
+ `;
245
+ };
246
+ exports.generateAccountDeleteRoute = generateAccountDeleteRoute;
247
+ //# sourceMappingURL=account-delete-route-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-delete-route-generator.js","sourceRoot":"","sources":["../../src/account-delete-route-generator.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,qDAAuD;AACvD,yEAKmC;AAmBnC,+EAA+E;AAC/E,oFAAoF;AACvE,QAAA,8BAA8B,GAAG,yDAA8B,CAAA;AAErE,MAAM,0BAA0B,GAAG,CAAC,UAAqC,EAAE,EAAU,EAAE;IAC5F,MAAM,cAAc,GAAG,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAA;IAC5D,MAAM,QAAQ,GACZ,OAAO,CAAC,aAAa,IAAI,oDAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;QAC3E,CAAC,CAAC,OAAO,CAAC,aAAa;QACvB,CAAC,CAAC,IAAI,CAAA;IACV,MAAM,mBAAmB,GACvB,OAAO,CAAC,mBAAmB,IAAI,yCAAyC,CAAA;IAE1E,OAAO,GAAG,IAAA,qCAAoB,GAAE;;;2BAGP,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;oBACrC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;gCAC1B,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC;yBAC1C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;qBAC5B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;gCAC5B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC;wBACxD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,IAAI,+BAA+B,CAAC;0BACrE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6FnE,IAAA,iDAAsB,GAAE;;EAExB,IAAA,uDAA4B,EAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0GvC,CAAA;AACD,CAAC,CAAA;AA7NY,QAAA,0BAA0B,8BA6NtC"}
@@ -3,7 +3,7 @@ import { WorkflowSegment } from './types';
3
3
  export declare const generateServerSegmentAPIRoute: (segment: WorkflowSegment, workflowName?: string) => string;
4
4
  export declare const hasStreamingAINode: (segment: WorkflowSegment) => boolean;
5
5
  export declare const generateStreamingServerSegmentAPIRoute: (segment: WorkflowSegment, workflowName?: string) => string;
6
- export declare const generateCronAPIRoute: (workflow: UIDLWorkflow) => string;
6
+ export declare const generateCronAPIRoute: (workflow: UIDLWorkflow, customNodes?: Record<string, UIDLCustomWorkflowNode>) => string;
7
7
  export declare const getAPIRouteFileName: (workflowId: string, segmentId: string, workflowName?: string) => string;
8
8
  export declare const getCronRouteFileName: (workflow: UIDLWorkflow) => string;
9
9
  export declare const generateWebhookWorkflowAPIRoute: (workflow: UIDLWorkflow, customNodes?: Record<string, UIDLCustomWorkflowNode>) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"api-route-generator.d.ts","sourceRoot":"","sources":["../../src/api-route-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAIZ,sBAAsB,EACvB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAoBzC,eAAO,MAAM,6BAA6B,YAC/B,eAAe,iBACT,MAAM,KACpB,MAoUF,CAAA;AAED,eAAO,MAAM,kBAAkB,YAAa,eAAe,KAAG,OAE7D,CAAA;AAED,eAAO,MAAM,sCAAsC,YACxC,eAAe,iBACT,MAAM,KACpB,MAwYF,CAAA;AA0HD,eAAO,MAAM,oBAAoB,aAAc,YAAY,KAAG,MAiG7D,CAAA;AAED,eAAO,MAAM,mBAAmB,eAClB,MAAM,aACP,MAAM,iBACF,MAAM,KACpB,MAuBF,CAAA;AAED,eAAO,MAAM,oBAAoB,aAAc,YAAY,KAAG,MAa7D,CAAA;AA0PD,eAAO,MAAM,+BAA+B,aAChC,YAAY,gBACR,OAAO,MAAM,EAAE,sBAAsB,CAAC,KACnD,MA6LF,CAAA;AAED,eAAO,MAAM,uBAAuB,aAAc,YAAY,KAAG,MAiBhE,CAAA;AAED,eAAO,MAAM,mBAAmB,aAAc,YAAY,KAAG,MAAM,EAqBlE,CAAA"}
1
+ {"version":3,"file":"api-route-generator.d.ts","sourceRoot":"","sources":["../../src/api-route-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAIZ,sBAAsB,EACvB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAoBzC,eAAO,MAAM,6BAA6B,YAC/B,eAAe,iBACT,MAAM,KACpB,MAwUF,CAAA;AAED,eAAO,MAAM,kBAAkB,YAAa,eAAe,KAAG,OAE7D,CAAA;AAED,eAAO,MAAM,sCAAsC,YACxC,eAAe,iBACT,MAAM,KACpB,MAwYF,CAAA;AA0HD,eAAO,MAAM,oBAAoB,aACrB,YAAY,gBACR,OAAO,MAAM,EAAE,sBAAsB,CAAC,KACnD,MAoFF,CAAA;AAED,eAAO,MAAM,mBAAmB,eAClB,MAAM,aACP,MAAM,iBACF,MAAM,KACpB,MAuBF,CAAA;AAED,eAAO,MAAM,oBAAoB,aAAc,YAAY,KAAG,MAa7D,CAAA;AAkQD,eAAO,MAAM,+BAA+B,aAChC,YAAY,gBACR,OAAO,MAAM,EAAE,sBAAsB,CAAC,KACnD,MA6LF,CAAA;AAED,eAAO,MAAM,uBAAuB,aAAc,YAAY,KAAG,MAiBhE,CAAA;AAED,eAAO,MAAM,mBAAmB,aAAc,YAAY,KAAG,MAAM,EAqBlE,CAAA"}
@@ -168,6 +168,10 @@ module.exports = async function handler(req, res) {
168
168
  var bNode = bodyNodes[bi];
169
169
  var bResolved = resolveConfig(bNode.config, context);
170
170
  bResolved.__nodeId = bNode.id;
171
+ if (bResolved && Array.isArray(bResolved.templateParams)) {
172
+ if (typeof bResolved.body === 'string') { bResolved.body = utils.applyTemplateParams(bResolved.body, bResolved.templateParams); }
173
+ if (typeof bResolved.subject === 'string') { bResolved.subject = utils.applyTemplateParams(bResolved.subject, bResolved.templateParams); }
174
+ }
171
175
  if (bNode.type === 'general-if-statement') {
172
176
  context[bNode.id] = { result: utils.evaluateCondition(bResolved, context) };
173
177
  continue;
@@ -838,13 +842,16 @@ const CLIENT_ONLY_NODES = new Set([
838
842
  'realtime-list-channels',
839
843
  'realtime-list-channel-members',
840
844
  ]);
841
- const generateCronAPIRoute = (workflow) => {
845
+ const generateCronAPIRoute = (workflow, customNodes) => {
842
846
  const serverNodes = workflow.nodes.filter((n) => !CLIENT_ONLY_NODES.has(n.type));
843
847
  const allNodeTypes = new Set(serverNodes.map((n) => n.type));
844
848
  const nodeHandlersEntries = generateNodeHandlersForSegment(allNodeTypes, true);
845
849
  const hasRateLimiter = allNodeTypes.has('general-rate-limiter');
846
850
  const serverNodeIds = new Set(serverNodes.map((n) => n.id));
847
851
  const serverEdges = workflow.edges.filter((e) => serverNodeIds.has(e.source) || serverNodeIds.has(e.target));
852
+ const hasCustomNodeUsage = serverNodes.some((n) => n.type === 'general-custom-node');
853
+ const hasCustomNodeDefs = !!customNodes && Object.keys(customNodes).length > 0;
854
+ const useCustomNodes = hasCustomNodeUsage && hasCustomNodeDefs;
848
855
  const workflowConfig = JSON.stringify({
849
856
  triggerNodeId: workflow.trigger.nodeId,
850
857
  nodes: serverNodes.map((n) => ({
@@ -859,6 +866,17 @@ const generateCronAPIRoute = (workflow) => {
859
866
  const requestInjection = hasRateLimiter
860
867
  ? `\n context.__request = { ip: __getClientIp(req), headers: req.headers || {} };`
861
868
  : '';
869
+ // Cron routes live at pages/api/workflows/<file>.js → three levels up to root.
870
+ const customNodesImport = useCustomNodes
871
+ ? `var __customNodes;\ntry { __customNodes = require('../../../utils/workflows/custom-nodes'); } catch (_e) { __customNodes = {}; }\n`
872
+ : '';
873
+ // Reuse the shared execution loop (the same one webhook routes use) so cron
874
+ // workflows support loops, if/switch branching, and per-node templateParams
875
+ // merging (component-bodied emails). Its earlyResponse/terminal handling and
876
+ // sortedNodes declaration are self-contained.
877
+ const executionLoop = generateNodeExecutionLoop('WORKFLOW_CONFIG', {
878
+ hasCustomNodes: useCustomNodes,
879
+ });
862
880
  return `/**
863
881
  * Workflow Cron API Route
864
882
  * Workflow: ${sanitizeForBlockComment(workflow.name || workflow.id)}
@@ -867,7 +885,7 @@ const generateCronAPIRoute = (workflow) => {
867
885
 
868
886
  const utils = require('../../../utils/workflows/server-runtime');
869
887
  const resolveConfig = utils.resolveConfig;
870
-
888
+ ${customNodesImport}
871
889
  const WORKFLOW_CONFIG = ${workflowConfig};
872
890
 
873
891
  const nodeHandlers = {
@@ -884,37 +902,7 @@ module.exports = async function handler(req, res) {
884
902
  const context = {};
885
903
  context[WORKFLOW_CONFIG.triggerNodeId] = triggerContext;${requestInjection}
886
904
 
887
- const sortedNodes = WORKFLOW_CONFIG.nodes.slice().sort(function(a, b) { return a.stepNumber - b.stepNumber; });
888
-
889
- for (let i = 0; i < sortedNodes.length; i++) {
890
- const node = sortedNodes[i];
891
- const resolved = resolveConfig(node.config, context);
892
- resolved.__nodeId = node.id;
893
-
894
- if (node.type === 'general-if-statement') {
895
- const condResult = utils.evaluateCondition(resolved, context);
896
- context[node.id] = { result: condResult };
897
- continue;
898
- }
899
-
900
- const handler = nodeHandlers[node.type];
901
- if (!handler) continue;
902
- const result = await handler(resolved, context);
903
- if (result && result.__earlyResponse) {
904
- var earlyRes = result.__earlyResponse;
905
- var hKeys = Object.keys(earlyRes.headers || {});
906
- for (var h = 0; h < hKeys.length; h++) {
907
- res.setHeader(hKeys[h], earlyRes.headers[hKeys[h]]);
908
- }
909
- res.status(earlyRes.status || 500).json(earlyRes.body || {});
910
- return;
911
- }
912
- if (utils.isFatalNodeResult(result)) {
913
- throw new Error(utils.fatalNodeResultMessage(result));
914
- }
915
- context[node.id] = result;
916
- if (result && result.__terminal) break;
917
- }
905
+ ${executionLoop}
918
906
 
919
907
  res.status(200).json({ success: true, timestamp: Date.now() });
920
908
  } catch (error) {
@@ -987,6 +975,10 @@ const generateNodeExecutionLoop = (configVar, options) => {
987
975
  var node = sortedNodes[i];
988
976
  var resolved = resolveConfig(node.config, context);
989
977
  resolved.__nodeId = node.id;
978
+ if (resolved && Array.isArray(resolved.templateParams)) {
979
+ if (typeof resolved.body === 'string') { resolved.body = utils.applyTemplateParams(resolved.body, resolved.templateParams); }
980
+ if (typeof resolved.subject === 'string') { resolved.subject = utils.applyTemplateParams(resolved.subject, resolved.templateParams); }
981
+ }
990
982
 
991
983
  if (node.type === 'general-if-statement') {
992
984
  var condResult = utils.evaluateCondition(resolved, context);
@@ -1057,6 +1049,10 @@ const generateNodeExecutionLoop = (configVar, options) => {
1057
1049
  var bNode = bodyNodes[bi];
1058
1050
  var bResolved = resolveConfig(bNode.config, context);
1059
1051
  bResolved.__nodeId = bNode.id;
1052
+ if (bResolved && Array.isArray(bResolved.templateParams)) {
1053
+ if (typeof bResolved.body === 'string') { bResolved.body = utils.applyTemplateParams(bResolved.body, bResolved.templateParams); }
1054
+ if (typeof bResolved.subject === 'string') { bResolved.subject = utils.applyTemplateParams(bResolved.subject, bResolved.templateParams); }
1055
+ }
1060
1056
  if (bNode.type === 'general-if-statement') {
1061
1057
  context[bNode.id] = { result: utils.evaluateCondition(bResolved, context) };
1062
1058
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"api-route-generator.js","sourceRoot":"","sources":["../../src/api-route-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-route-generator.js","sourceRoot":"","sources":["../../src/api-route-generator.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,15 @@ export declare const getDatabaseDriverDependencies: (dataSourceType: DataSourceT
3
3
  export declare const generateAuthOptionsFile: (auth: UIDLAuthentication, dataSourceConfig?: Record<string, unknown> | null) => string;
4
4
  export declare const generateHashPasswordFile: () => string;
5
5
  export declare const generateNextAuthRouteFile: () => string;
6
- export declare const generateSignupRouteFile: (auth: UIDLAuthentication) => string;
6
+ export interface WelcomeEmailOptions {
7
+ emailProvider?: string | null;
8
+ fromEmail?: string;
9
+ emailSecretEnvName?: string | null;
10
+ emailSubject?: string;
11
+ emailBodyHtml?: string;
12
+ siteName?: string;
13
+ }
14
+ export declare const generateSignupRouteFile: (auth: UIDLAuthentication, welcome?: WelcomeEmailOptions) => string;
7
15
  export declare const generateMiddlewareFile: (auth: UIDLAuthentication) => string;
8
16
  export declare const generateSessionProviderWrapper: () => string;
9
17
  //# sourceMappingURL=auth-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-generator.d.ts","sourceRoot":"","sources":["../../src/auth-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAElB,cAAc,EACf,MAAM,4BAA4B,CAAA;AAYnC,eAAO,MAAM,6BAA6B,mBACxB,cAAc,GAAG,IAAI,KACpC,OAAO,MAAM,EAAE,MAAM,CA0BvB,CAAA;AAmhBD,eAAO,MAAM,uBAAuB,SAC5B,kBAAkB,qBACL,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,KAChD,MAsFF,CAAA;AAED,eAAO,MAAM,wBAAwB,QAAO,MA4B3C,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAO,MAgC5C,CAAA;AAED,eAAO,MAAM,uBAAuB,SAAU,kBAAkB,KAAG,MAuFlE,CAAA;AAsBD,eAAO,MAAM,sBAAsB,SAAU,kBAAkB,KAAG,MAiPjE,CAAA;AAED,eAAO,MAAM,8BAA8B,QAAO,MAqCjD,CAAA"}
1
+ {"version":3,"file":"auth-generator.d.ts","sourceRoot":"","sources":["../../src/auth-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAElB,cAAc,EACf,MAAM,4BAA4B,CAAA;AAkBnC,eAAO,MAAM,6BAA6B,mBACxB,cAAc,GAAG,IAAI,KACpC,OAAO,MAAM,EAAE,MAAM,CA0BvB,CAAA;AAmhBD,eAAO,MAAM,uBAAuB,SAC5B,kBAAkB,qBACL,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,KAChD,MAsFF,CAAA;AAED,eAAO,MAAM,wBAAwB,QAAO,MA4B3C,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAO,MAgC5C,CAAA;AAMD,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,uBAAuB,SAC5B,kBAAkB,YACf,mBAAmB,KAC3B,MA4IF,CAAA;AAsBD,eAAO,MAAM,sBAAsB,SAAU,kBAAkB,KAAG,MAiPjE,CAAA;AAED,eAAO,MAAM,8BAA8B,QAAO,MAqCjD,CAAA"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateSessionProviderWrapper = exports.generateMiddlewareFile = exports.generateSignupRouteFile = exports.generateNextAuthRouteFile = exports.generateHashPasswordFile = exports.generateAuthOptionsFile = exports.getDatabaseDriverDependencies = void 0;
4
+ const transactional_email_code_1 = require("./transactional-email-code");
4
5
  // GUI provider id → the actual next-auth v4 provider MODULE name, for the few
5
6
  // cases where they differ. Everything else uses the id as the module name.
6
7
  // (Providers next-auth v4 cannot supply are not offered by the GUI; if one
@@ -679,15 +680,51 @@ module.exports = function nextAuthRoute(req, res) {
679
680
  `;
680
681
  };
681
682
  exports.generateNextAuthRouteFile = generateNextAuthRouteFile;
682
- const generateSignupRouteFile = (auth) => {
683
+ const generateSignupRouteFile = (auth, welcome = {}) => {
683
684
  const needsDb = !!auth.dataSourceType;
685
+ const welcomeProvider = welcome.emailProvider && transactional_email_code_1.SUPPORTED_EMAIL_PROVIDERS.has(welcome.emailProvider)
686
+ ? welcome.emailProvider
687
+ : null;
688
+ // Reserved keys that must NOT be copied from the request body onto the new
689
+ // user row — the auth fields plus every welcome-email config key (a stale
690
+ // client could otherwise inject them as bogus user columns).
691
+ const reservedKeysObj = { email: 1, password: 1, name: 1, role: 1 };
692
+ for (const key of transactional_email_code_1.WELCOME_EMAIL_CONFIG_KEYS) {
693
+ reservedKeysObj[key] = 1;
694
+ }
684
695
  let dbImport = '';
685
696
  let createUserCall = '';
697
+ let welcomeHelpers = '';
686
698
  if (needsDb) {
687
699
  dbImport = `const authUtils = require('../../../utils/auth/auth-options');
688
700
  const createUser = authUtils.createUser;
689
701
  const userExistsByEmail = authUtils.userExistsByEmail;
690
702
  const sanitizeUser = authUtils.sanitizeUser;`;
703
+ // Baked welcome-email helpers + config (no-op send when no provider set).
704
+ welcomeHelpers = `
705
+ const WELCOME_EMAIL_PROVIDER = ${JSON.stringify(welcomeProvider)};
706
+ const WELCOME_EMAIL_FROM = ${JSON.stringify(welcome.fromEmail || '')};
707
+ const WELCOME_EMAIL_SECRET_ENV_NAME = ${JSON.stringify(welcome.emailSecretEnvName || '')};
708
+ const WELCOME_EMAIL_SUBJECT = ${JSON.stringify(welcome.emailSubject || 'Welcome')};
709
+ const WELCOME_EMAIL_BODY_HTML = ${JSON.stringify(welcome.emailBodyHtml || '')};
710
+ const WELCOME_EMAIL_SITE_NAME = ${JSON.stringify(welcome.siteName || '')};
711
+
712
+ ${(0, transactional_email_code_1.generateFillTemplateFn)()}
713
+
714
+ ${(0, transactional_email_code_1.generateProviderSendFunction)(welcomeProvider)}
715
+
716
+ async function sendWelcomeEmail(toEmail, tokenValues) {
717
+ if (!WELCOME_EMAIL_PROVIDER || !WELCOME_EMAIL_BODY_HTML || !toEmail) { return; }
718
+ var apiKey = WELCOME_EMAIL_SECRET_ENV_NAME ? process.env[WELCOME_EMAIL_SECRET_ENV_NAME] : '';
719
+ if (apiKey && String(apiKey).indexOf('teleporthq.secrets.') === 0) { apiKey = ''; }
720
+ if (!apiKey) { console.warn('[account-signup] welcome email skipped: credential not set'); return; }
721
+ var from = WELCOME_EMAIL_FROM || process.env.EMAIL_FROM || '';
722
+ if (!from) { console.warn('[account-signup] welcome email skipped: sender not configured'); return; }
723
+ var subject = fillTemplate(WELCOME_EMAIL_SUBJECT, tokenValues);
724
+ var html = fillTemplate(WELCOME_EMAIL_BODY_HTML, tokenValues);
725
+ await __sendProviderEmail({ from: from, to: toEmail, subject: subject, html: html, apiKey: apiKey });
726
+ }
727
+ `;
691
728
  createUserCall = ` const exists = await userExistsByEmail(email);
692
729
  if (exists) {
693
730
  res.status(409).json({ error: 'User with this email already exists' });
@@ -700,7 +737,7 @@ const sanitizeUser = authUtils.sanitizeUser;`;
700
737
  password: hashedPassword,
701
738
  role: 'user',
702
739
  };
703
- const reservedKeys = { email: 1, password: 1, name: 1, role: 1 };
740
+ const reservedKeys = ${JSON.stringify(reservedKeysObj)};
704
741
  const bodyKeys = Object.keys(body);
705
742
  for (let i = 0; i < bodyKeys.length; i++) {
706
743
  if (!reservedKeys[bodyKeys[i]]) {
@@ -715,6 +752,19 @@ const sanitizeUser = authUtils.sanitizeUser;`;
715
752
  return;
716
753
  }
717
754
 
755
+ // Best-effort welcome email — a failed send must never fail the signup.
756
+ try {
757
+ const __welcomeSiteName = WELCOME_EMAIL_SITE_NAME ||
758
+ (req.headers && req.headers.host ? String(req.headers.host).replace(/^www\\./, '').split(':')[0] : '');
759
+ await sendWelcomeEmail(email, {
760
+ userName: name || (newUser && newUser.name) || 'there',
761
+ userEmail: email,
762
+ siteName: __welcomeSiteName,
763
+ });
764
+ } catch (welcomeErr) {
765
+ console.error('[account-signup] welcome email failed:', welcomeErr && welcomeErr.message ? welcomeErr.message : welcomeErr);
766
+ }
767
+
718
768
  res.status(201).json({ user: sanitizeUser(newUser) });`;
719
769
  }
720
770
  else {
@@ -722,6 +772,7 @@ const sanitizeUser = authUtils.sanitizeUser;`;
722
772
  }
723
773
  return `const hashPassword = require('../../../utils/auth/hash-password');
724
774
  ${dbImport}
775
+ ${welcomeHelpers}
725
776
 
726
777
  module.exports = async function handler(req, res) {
727
778
  if (req.method !== 'POST') {