@teleporthq/teleport-plugin-next-workflows 0.43.75 → 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.
Files changed (248) hide show
  1. package/__tests__/_helpers/fake-store-database.ts +428 -0
  2. package/__tests__/_helpers/invoice-store.ts +382 -0
  3. package/__tests__/booking-calendar-feed-route.test.ts +494 -0
  4. package/__tests__/custom-node-result-taken-branch.test.ts +107 -0
  5. package/__tests__/data-api-date-parser.test.ts +45 -0
  6. package/__tests__/email-locale-senders.test.ts +3 -1
  7. package/__tests__/email-sender-name.test.ts +513 -0
  8. package/__tests__/graph-utils-topological-order.test.ts +155 -1
  9. package/__tests__/invoice-billing-details.test.ts +384 -0
  10. package/__tests__/invoice-data-access-replace.test.ts +236 -2
  11. package/__tests__/invoice-order-items-settle.test.ts +1 -1
  12. package/__tests__/invoice-payment-email.test.ts +191 -0
  13. package/__tests__/invoice-regenerate-email.test.ts +288 -0
  14. package/__tests__/invoice-regenerate-route.test.ts +9 -7
  15. package/__tests__/invoice-reservation.test.ts +1 -1
  16. package/__tests__/invoice-tender.test.ts +1 -1
  17. package/__tests__/middleware-admin-panel-roles.test.ts +127 -0
  18. package/__tests__/page-arrival-remount.test.ts +247 -0
  19. package/__tests__/payment-drivers-module.test.ts +19 -0
  20. package/__tests__/raw-query-error-code.test.ts +47 -0
  21. package/__tests__/runtime-template-token-resolution.test.ts +16 -0
  22. package/__tests__/segment-reply-changed-keys.test.ts +31 -0
  23. package/__tests__/segment-route-skipped-branch.test.ts +101 -0
  24. package/__tests__/segment-splitter-checkout-order.test.ts +306 -0
  25. package/__tests__/streaming-on-end-env-filter.test.ts +18 -18
  26. package/__tests__/streaming-on-end-order.test.ts +387 -0
  27. package/dist/cjs/account-delete-route-generator.d.ts +1 -0
  28. package/dist/cjs/account-delete-route-generator.d.ts.map +1 -1
  29. package/dist/cjs/account-delete-route-generator.js +2 -1
  30. package/dist/cjs/account-delete-route-generator.js.map +1 -1
  31. package/dist/cjs/api-route-generator.d.ts.map +1 -1
  32. package/dist/cjs/api-route-generator.js +23 -13
  33. package/dist/cjs/api-route-generator.js.map +1 -1
  34. package/dist/cjs/auth-generator.d.ts +1 -0
  35. package/dist/cjs/auth-generator.d.ts.map +1 -1
  36. package/dist/cjs/auth-generator.js +77 -28
  37. package/dist/cjs/auth-generator.js.map +1 -1
  38. package/dist/cjs/booking-calendar-feed-route-generator.d.ts +28 -0
  39. package/dist/cjs/booking-calendar-feed-route-generator.d.ts.map +1 -0
  40. package/dist/cjs/booking-calendar-feed-route-generator.js +296 -0
  41. package/dist/cjs/booking-calendar-feed-route-generator.js.map +1 -0
  42. package/dist/cjs/data-api-route-generator.d.ts.map +1 -1
  43. package/dist/cjs/data-api-route-generator.js +6 -1
  44. package/dist/cjs/data-api-route-generator.js.map +1 -1
  45. package/dist/cjs/executor-generator.d.ts.map +1 -1
  46. package/dist/cjs/executor-generator.js +39 -28
  47. package/dist/cjs/executor-generator.js.map +1 -1
  48. package/dist/cjs/graph-utils.d.ts +31 -1
  49. package/dist/cjs/graph-utils.d.ts.map +1 -1
  50. package/dist/cjs/graph-utils.js +112 -10
  51. package/dist/cjs/graph-utils.js.map +1 -1
  52. package/dist/cjs/index.d.ts +1 -1
  53. package/dist/cjs/index.d.ts.map +1 -1
  54. package/dist/cjs/index.js +2 -1
  55. package/dist/cjs/index.js.map +1 -1
  56. package/dist/cjs/invoice/api-routes-code.d.ts +12 -3
  57. package/dist/cjs/invoice/api-routes-code.d.ts.map +1 -1
  58. package/dist/cjs/invoice/api-routes-code.js +152 -21
  59. package/dist/cjs/invoice/api-routes-code.js.map +1 -1
  60. package/dist/cjs/invoice/data-access-code.d.ts.map +1 -1
  61. package/dist/cjs/invoice/data-access-code.js +133 -21
  62. package/dist/cjs/invoice/data-access-code.js.map +1 -1
  63. package/dist/cjs/invoice/email-sender-code.d.ts.map +1 -1
  64. package/dist/cjs/invoice/email-sender-code.js +15 -25
  65. package/dist/cjs/invoice/email-sender-code.js.map +1 -1
  66. package/dist/cjs/invoice/index.js +1 -1
  67. package/dist/cjs/invoice/index.js.map +1 -1
  68. package/dist/cjs/invoice/invoice-assembly-code.d.ts.map +1 -1
  69. package/dist/cjs/invoice/invoice-assembly-code.js +50 -6
  70. package/dist/cjs/invoice/invoice-assembly-code.js.map +1 -1
  71. package/dist/cjs/invoice/invoice-html-code.d.ts.map +1 -1
  72. package/dist/cjs/invoice/invoice-html-code.js +13 -2
  73. package/dist/cjs/invoice/invoice-html-code.js.map +1 -1
  74. package/dist/cjs/nodes/data/data-raw-query.d.ts.map +1 -1
  75. package/dist/cjs/nodes/data/data-raw-query.js +11 -1
  76. package/dist/cjs/nodes/data/data-raw-query.js.map +1 -1
  77. package/dist/cjs/nodes/email/email-mailgun.d.ts.map +1 -1
  78. package/dist/cjs/nodes/email/email-mailgun.js +4 -2
  79. package/dist/cjs/nodes/email/email-mailgun.js.map +1 -1
  80. package/dist/cjs/nodes/email/email-postmark.d.ts.map +1 -1
  81. package/dist/cjs/nodes/email/email-postmark.js +5 -2
  82. package/dist/cjs/nodes/email/email-postmark.js.map +1 -1
  83. package/dist/cjs/nodes/email/email-resend.d.ts.map +1 -1
  84. package/dist/cjs/nodes/email/email-resend.js +5 -2
  85. package/dist/cjs/nodes/email/email-resend.js.map +1 -1
  86. package/dist/cjs/nodes/email/email-sendgrid.d.ts.map +1 -1
  87. package/dist/cjs/nodes/email/email-sendgrid.js +8 -2
  88. package/dist/cjs/nodes/email/email-sendgrid.js.map +1 -1
  89. package/dist/cjs/nodes/general/general-custom-js.d.ts.map +1 -1
  90. package/dist/cjs/nodes/general/general-custom-js.js +11 -0
  91. package/dist/cjs/nodes/general/general-custom-js.js.map +1 -1
  92. package/dist/cjs/nodes/storage/storage-local-remove.d.ts.map +1 -1
  93. package/dist/cjs/nodes/storage/storage-local-remove.js +2 -0
  94. package/dist/cjs/nodes/storage/storage-local-remove.js.map +1 -1
  95. package/dist/cjs/nodes/storage/storage-local-set.d.ts.map +1 -1
  96. package/dist/cjs/nodes/storage/storage-local-set.js +4 -0
  97. package/dist/cjs/nodes/storage/storage-local-set.js.map +1 -1
  98. package/dist/cjs/page-arrival.d.ts +10 -0
  99. package/dist/cjs/page-arrival.d.ts.map +1 -0
  100. package/dist/cjs/page-arrival.js +86 -0
  101. package/dist/cjs/page-arrival.js.map +1 -0
  102. package/dist/cjs/payments/index.d.ts +10 -4
  103. package/dist/cjs/payments/index.d.ts.map +1 -1
  104. package/dist/cjs/payments/index.js +18 -7
  105. package/dist/cjs/payments/index.js.map +1 -1
  106. package/dist/cjs/segment-splitter.d.ts.map +1 -1
  107. package/dist/cjs/segment-splitter.js +65 -27
  108. package/dist/cjs/segment-splitter.js.map +1 -1
  109. package/dist/cjs/transactional-email-code.d.ts.map +1 -1
  110. package/dist/cjs/transactional-email-code.js +32 -18
  111. package/dist/cjs/transactional-email-code.js.map +1 -1
  112. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  113. package/dist/cjs/workflow-component-plugin.d.ts.map +1 -1
  114. package/dist/cjs/workflow-component-plugin.js +35 -149
  115. package/dist/cjs/workflow-component-plugin.js.map +1 -1
  116. package/dist/cjs/workflow-project-plugin.d.ts.map +1 -1
  117. package/dist/cjs/workflow-project-plugin.js +16 -4
  118. package/dist/cjs/workflow-project-plugin.js.map +1 -1
  119. package/dist/cjs/workflow-scope.d.ts +19 -0
  120. package/dist/cjs/workflow-scope.d.ts.map +1 -0
  121. package/dist/cjs/workflow-scope.js +147 -0
  122. package/dist/cjs/workflow-scope.js.map +1 -0
  123. package/dist/esm/account-delete-route-generator.d.ts +1 -0
  124. package/dist/esm/account-delete-route-generator.d.ts.map +1 -1
  125. package/dist/esm/account-delete-route-generator.js +2 -1
  126. package/dist/esm/account-delete-route-generator.js.map +1 -1
  127. package/dist/esm/api-route-generator.d.ts.map +1 -1
  128. package/dist/esm/api-route-generator.js +23 -13
  129. package/dist/esm/api-route-generator.js.map +1 -1
  130. package/dist/esm/auth-generator.d.ts +1 -0
  131. package/dist/esm/auth-generator.d.ts.map +1 -1
  132. package/dist/esm/auth-generator.js +77 -28
  133. package/dist/esm/auth-generator.js.map +1 -1
  134. package/dist/esm/booking-calendar-feed-route-generator.d.ts +28 -0
  135. package/dist/esm/booking-calendar-feed-route-generator.d.ts.map +1 -0
  136. package/dist/esm/booking-calendar-feed-route-generator.js +291 -0
  137. package/dist/esm/booking-calendar-feed-route-generator.js.map +1 -0
  138. package/dist/esm/data-api-route-generator.d.ts.map +1 -1
  139. package/dist/esm/data-api-route-generator.js +6 -1
  140. package/dist/esm/data-api-route-generator.js.map +1 -1
  141. package/dist/esm/executor-generator.d.ts.map +1 -1
  142. package/dist/esm/executor-generator.js +39 -28
  143. package/dist/esm/executor-generator.js.map +1 -1
  144. package/dist/esm/graph-utils.d.ts +31 -1
  145. package/dist/esm/graph-utils.d.ts.map +1 -1
  146. package/dist/esm/graph-utils.js +109 -9
  147. package/dist/esm/graph-utils.js.map +1 -1
  148. package/dist/esm/index.d.ts +1 -1
  149. package/dist/esm/index.d.ts.map +1 -1
  150. package/dist/esm/index.js +1 -1
  151. package/dist/esm/index.js.map +1 -1
  152. package/dist/esm/invoice/api-routes-code.d.ts +12 -3
  153. package/dist/esm/invoice/api-routes-code.d.ts.map +1 -1
  154. package/dist/esm/invoice/api-routes-code.js +152 -21
  155. package/dist/esm/invoice/api-routes-code.js.map +1 -1
  156. package/dist/esm/invoice/data-access-code.d.ts.map +1 -1
  157. package/dist/esm/invoice/data-access-code.js +133 -21
  158. package/dist/esm/invoice/data-access-code.js.map +1 -1
  159. package/dist/esm/invoice/email-sender-code.d.ts.map +1 -1
  160. package/dist/esm/invoice/email-sender-code.js +15 -25
  161. package/dist/esm/invoice/email-sender-code.js.map +1 -1
  162. package/dist/esm/invoice/index.js +1 -1
  163. package/dist/esm/invoice/index.js.map +1 -1
  164. package/dist/esm/invoice/invoice-assembly-code.d.ts.map +1 -1
  165. package/dist/esm/invoice/invoice-assembly-code.js +50 -6
  166. package/dist/esm/invoice/invoice-assembly-code.js.map +1 -1
  167. package/dist/esm/invoice/invoice-html-code.d.ts.map +1 -1
  168. package/dist/esm/invoice/invoice-html-code.js +13 -2
  169. package/dist/esm/invoice/invoice-html-code.js.map +1 -1
  170. package/dist/esm/nodes/data/data-raw-query.d.ts.map +1 -1
  171. package/dist/esm/nodes/data/data-raw-query.js +11 -1
  172. package/dist/esm/nodes/data/data-raw-query.js.map +1 -1
  173. package/dist/esm/nodes/email/email-mailgun.d.ts.map +1 -1
  174. package/dist/esm/nodes/email/email-mailgun.js +4 -2
  175. package/dist/esm/nodes/email/email-mailgun.js.map +1 -1
  176. package/dist/esm/nodes/email/email-postmark.d.ts.map +1 -1
  177. package/dist/esm/nodes/email/email-postmark.js +5 -2
  178. package/dist/esm/nodes/email/email-postmark.js.map +1 -1
  179. package/dist/esm/nodes/email/email-resend.d.ts.map +1 -1
  180. package/dist/esm/nodes/email/email-resend.js +5 -2
  181. package/dist/esm/nodes/email/email-resend.js.map +1 -1
  182. package/dist/esm/nodes/email/email-sendgrid.d.ts.map +1 -1
  183. package/dist/esm/nodes/email/email-sendgrid.js +8 -2
  184. package/dist/esm/nodes/email/email-sendgrid.js.map +1 -1
  185. package/dist/esm/nodes/general/general-custom-js.d.ts.map +1 -1
  186. package/dist/esm/nodes/general/general-custom-js.js +11 -0
  187. package/dist/esm/nodes/general/general-custom-js.js.map +1 -1
  188. package/dist/esm/nodes/storage/storage-local-remove.d.ts.map +1 -1
  189. package/dist/esm/nodes/storage/storage-local-remove.js +2 -0
  190. package/dist/esm/nodes/storage/storage-local-remove.js.map +1 -1
  191. package/dist/esm/nodes/storage/storage-local-set.d.ts.map +1 -1
  192. package/dist/esm/nodes/storage/storage-local-set.js +4 -0
  193. package/dist/esm/nodes/storage/storage-local-set.js.map +1 -1
  194. package/dist/esm/page-arrival.d.ts +10 -0
  195. package/dist/esm/page-arrival.d.ts.map +1 -0
  196. package/dist/esm/page-arrival.js +81 -0
  197. package/dist/esm/page-arrival.js.map +1 -0
  198. package/dist/esm/payments/index.d.ts +10 -4
  199. package/dist/esm/payments/index.d.ts.map +1 -1
  200. package/dist/esm/payments/index.js +16 -6
  201. package/dist/esm/payments/index.js.map +1 -1
  202. package/dist/esm/segment-splitter.d.ts.map +1 -1
  203. package/dist/esm/segment-splitter.js +66 -28
  204. package/dist/esm/segment-splitter.js.map +1 -1
  205. package/dist/esm/transactional-email-code.d.ts.map +1 -1
  206. package/dist/esm/transactional-email-code.js +32 -18
  207. package/dist/esm/transactional-email-code.js.map +1 -1
  208. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  209. package/dist/esm/workflow-component-plugin.d.ts.map +1 -1
  210. package/dist/esm/workflow-component-plugin.js +32 -146
  211. package/dist/esm/workflow-component-plugin.js.map +1 -1
  212. package/dist/esm/workflow-project-plugin.d.ts.map +1 -1
  213. package/dist/esm/workflow-project-plugin.js +16 -4
  214. package/dist/esm/workflow-project-plugin.js.map +1 -1
  215. package/dist/esm/workflow-scope.d.ts +19 -0
  216. package/dist/esm/workflow-scope.d.ts.map +1 -0
  217. package/dist/esm/workflow-scope.js +142 -0
  218. package/dist/esm/workflow-scope.js.map +1 -0
  219. package/package.json +4 -4
  220. package/src/account-delete-route-generator.ts +3 -1
  221. package/src/api-route-generator.ts +23 -13
  222. package/src/auth-generator.ts +83 -26
  223. package/src/booking-calendar-feed-route-generator.ts +293 -0
  224. package/src/data-api-route-generator.ts +6 -1
  225. package/src/executor-generator.ts +39 -28
  226. package/src/graph-utils.ts +143 -11
  227. package/src/index.ts +1 -0
  228. package/src/invoice/api-routes-code.ts +166 -21
  229. package/src/invoice/data-access-code.ts +139 -21
  230. package/src/invoice/email-sender-code.ts +15 -25
  231. package/src/invoice/index.ts +1 -1
  232. package/src/invoice/invoice-assembly-code.ts +50 -6
  233. package/src/invoice/invoice-html-code.ts +13 -2
  234. package/src/nodes/data/data-raw-query.ts +11 -1
  235. package/src/nodes/email/email-mailgun.ts +11 -2
  236. package/src/nodes/email/email-postmark.ts +12 -2
  237. package/src/nodes/email/email-resend.ts +12 -2
  238. package/src/nodes/email/email-sendgrid.ts +15 -2
  239. package/src/nodes/general/general-custom-js.ts +10 -0
  240. package/src/nodes/storage/storage-local-remove.ts +4 -0
  241. package/src/nodes/storage/storage-local-set.ts +6 -0
  242. package/src/page-arrival.ts +115 -0
  243. package/src/payments/index.ts +18 -5
  244. package/src/segment-splitter.ts +90 -36
  245. package/src/transactional-email-code.ts +32 -21
  246. package/src/workflow-component-plugin.ts +43 -188
  247. package/src/workflow-project-plugin.ts +17 -4
  248. package/src/workflow-scope.ts +184 -0
@@ -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. We reorder the topo so all body nodes sit
123
- // immediately after their owning loop, and we record a single forced env
124
- // (server if any body or the loop itself needs server, else client) so the
125
- // forthcoming env walk emits one segment for the loop + body.
126
- const { reorderedOrder, forcedEnvByNodeId } = enforceLoopBodyIntegrity(order, mainNodes, mainEdges);
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 && nodeEnv !== currentEnv) {
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
- * Re-arrange the topological node order so every loop's body nodes sit
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 enforceLoopBodyIntegrity = (order, mainNodes, mainEdges) => {
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 { reorderedOrder: order, forcedEnvByNodeId };
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 { reorderedOrder: working, forcedEnvByNodeId };
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":"AAEA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAEtE,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,sBAAsB;CACvB,CAAC,CAAA;AAEF,MAAM,mBAAmB,GAAG,CAC1B,IAAsB,EACtB,OAAoC,EACd,EAAE;;IACxB,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACzC,OAAO,QAAQ,CAAA;KAChB;IAED,8EAA8E;IAC9E,uEAAuE;IACvE,6EAA6E;IAC7E,0EAA0E;IAC1E,4EAA4E;IAC5E,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE;QACvC,OAAO,QAAQ,CAAA;KAChB;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1C,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,YAAY,MAAK,QAAQ,EAAE;QACzC,OAAO,QAAQ,CAAA;KAChB;IAED,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;QAClC,OAAO,QAAQ,CAAA;KAChB;IACD,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;QAClC,OAAO,QAAQ,CAAA;KAChB;IAED,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,YAAY,MAAK,QAAQ,EAAE;QACzC,OAAO,QAAQ,CAAA;KAChB;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE;QACrC,MAAM,GAAG,GAAG,MAAA,IAAI,CAAC,MAAM,0CAAE,OAA6B,CAAA;QACtD,IAAI,GAAG,KAAK,QAAQ,EAAE;YACpB,OAAO,QAAQ,CAAA;SAChB;QACD,OAAO,QAAQ,CAAA;KAChB;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,EAAE;QACzC,MAAM,EAAE,GAAG,MAAA,IAAI,CAAC,MAAM,0CAAE,SAA+B,CAAA;QACvD,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,iBAAiB,IAAI,EAAE,KAAK,cAAc,EAAE;YACzE,OAAO,QAAQ,CAAA;SAChB;QACD,IAAI,EAAE,KAAK,kBAAkB,EAAE;YAC7B,OAAO,QAAQ,CAAA;SAChB;KACF;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE;QACtE,MAAM,EAAE,GAAG,MAAA,IAAI,CAAC,MAAM,0CAAE,SAA+B,CAAA;QACvD,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE;YACnC,OAAO,QAAQ,CAAA;SAChB;QACD,IAAI,EAAE,KAAK,oBAAoB,EAAE;YAC/B,OAAO,QAAQ,CAAA;SAChB;KACF;IAED,OAAO,OAAO,IAAI,QAAQ,CAAA;AAC5B,CAAC,CAAA;AAED,MAAM,yBAAyB,GAAG,CAChC,kBAA0B,EAC1B,KAAyB,EACzB,KAAyB,EACZ,EAAE;IACf,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAA;IAC7B,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;QACrB,IAAI,CAAC,CAAC,MAAM,KAAK,kBAAkB,EAAE;YACnC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;SACrB;KACF;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAG,CAAA;QAC1B,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACvC,SAAQ;SACT;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACZ,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;YACrB,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE;gBACpB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;aACrB;SACF;KACF;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAsB,EAAqB,EAAE;IAC7E,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QAC/B,OAAO,EAAE,CAAA;KACV;IAED,yEAAyE;IACzE,yEAAyE;IACzE,4EAA4E;IAC5E,yEAAyE;IACzE,6EAA6E;IAC7E,iDAAiD;IACjD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAA;IACxC,IAAI,QAAQ,CAAC,YAAY,EAAE;QACzB,KAAK,MAAM,EAAE,IAAI,yBAAyB,CACxC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAC5B,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,KAAK,CACf,EAAE;YACD,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;SACvB;KACF;IACD,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE;QAC9B,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAA;QACvD,IAAI,CAAC,CAAC,IAAI,KAAK,sBAAsB,IAAI,GAAG,CAAC,cAAc,KAAK,IAAI,EAAE;YACpE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YACxB,KAAK,MAAM,EAAE,IAAI,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAChF,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;aACvB;SACF;KACF;IAED,MAAM,SAAS,GACb,cAAc,CAAC,IAAI,GAAG,CAAC;QACrB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAA;IACpB,MAAM,SAAS,GACb,cAAc,CAAC,IAAI,GAAG,CAAC;QACrB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC9F,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAA;IAEpB,yEAAyE;IACzE,yEAAyE;IACzE,0EAA0E;IAC1E,2EAA2E;IAC3E,6EAA6E;IAC7E,yEAAyE;IACzE,sEAAsE;IACtE,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IACtE,MAAM,KAAK,GAAG,mBAAmB,CAC/B,SAAS,EACT,SAAS,EACT,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,MAAA,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,mCAAI,wBAAwB,CAAC,IAAI,CAAC,CAAA,EAAA,CAC3E,CAAA;IACD,MAAM,cAAc,GAAG,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;IACnE,MAAM,QAAQ,GAAsB,EAAE,CAAA;IACtC,IAAI,UAAU,GAAgC,IAAI,CAAA;IAClD,IAAI,cAAc,GAAa,EAAE,CAAA;IACjC,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,IAAI,cAAc,GAAG,CAAC,CAAA;IAEtB,6EAA6E;IAC7E,4EAA4E;IAC5E,0EAA0E;IAC1E,6EAA6E;IAC7E,qCAAqC;IACrC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAA;IAC9C,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,CACnF,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CACxF,CAAA;IACD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAA;IACtD,SAAS;SACN,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC;SACxC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAChB,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;;QAClD,OAAA,oBAAoB,CAAC,GAAG,CACtB,EAAE,EACF,IAAI,CAAC,GAAG,CAAC,MAAA,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,mCAAI,QAAQ,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,CACzE,CAAA;KAAA,CACF,CACF,CAAA;IACH,MAAM,UAAU,GAAG,CAAC,MAAc,EAAU,EAAE,eAC5C,OAAA,MAAA,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,mCAAI,CAAC,CAAA,MAAA,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,0CAAE,UAAU,KAAI,CAAC,CAAC,CAAA,EAAA,CAAA;IACvF,MAAM,4BAA4B,GAAG,CAAC,IAAsB,EAAW,EAAE,CACvE,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAClC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,CAC9F,CAAA;IAEH,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,KAAK,IAAI,EAAE;YACtD,OAAM;SACP;QACD,MAAM,EAAE,GAAG,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,cAAc,EAAE,CAAA;QAEhG,MAAM,KAAK,GAAG,cAAc;aACzB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;aAC9C,MAAM,CAAC,OAAO,CAAuB,CAAA;QAExC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAA;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CACjC,CAAC,CAAmB,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAC5E,CAAA;QACD,mEAAmE;QACnE,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAA;YACjF,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;QAChF,CAAC,CAAC,CAAA;QAEF,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,GAAG,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAA;QAChG,cAAc,GAAG,EAAE,CAAA;IACrB,CAAC,CAAA;IAED,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE;QACnC,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAChD,IAAI,CAAC,IAAI,EAAE;YACT,SAAQ;SACT;QAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC5C,MAAM,OAAO,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QAE/D,IACE,UAAU,KAAK,IAAI;YACnB,CAAC,OAAO,KAAK,UAAU,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,EACxF;YACA,YAAY,EAAE,CAAA;SACf;QACD,UAAU,GAAG,OAAO,CAAA;QACpB,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KAC5B;IAED,YAAY,EAAE,CAAA;IACd,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,sBAAsB,GAAG,CAC7B,SAA6B,EAC7B,SAA6B,EACM,EAAE;IACrC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAgC,CAAA;IACjE,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE;QACrE,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;QACpD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,SAAQ;SACT;QACD,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC;aACzC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;aACvC,MAAM,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QACnD,MAAM,UAAU,GAAyB,cAAc,CAAC,IAAI,CAC1D,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,QAAQ,CAC3D;YACC,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,QAAQ,CAAA;QACZ,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE;YACnC,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,QAAQ,EAAE;gBACjD,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;aAC7C;SACF;KACF;IACD,OAAO,iBAAiB,CAAA;AAC1B,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,wBAAwB,GAAG,CAAC,IAAsB,EAA+B,EAAE;IACvF,MAAM,GAAG,GAAG,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC/C,OAAO,GAAG,KAAK,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AACjE,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,eAAe,GAAG,CACtB,KAAe,EACf,SAA6B,EAC7B,SAA6B,EACnB,EAAE;IACZ,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAA;IACpE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,OAAO,KAAK,CAAA;KACb;IAED,0EAA0E;IAC1E,sEAAsE;IACtE,sDAAsD;IACtD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IAE1E,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;IAC3B,KAAK,IAAI,EAAE,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE;QACjD,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,CAAA;QAC5B,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QACnD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,SAAQ;SACT;QAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAA;QAExD,0EAA0E;QAC1E,4DAA4D;QAC5D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/E,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QAChF,MAAM,mBAAmB,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACvD,IAAI,mBAAmB,GAAG,CAAC,EAAE;YAC3B,SAAQ;SACT;QACD,OAAO,GAAG;YACR,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,GAAG,CAAC,CAAC;YAChD,GAAG,WAAW;YACd,GAAG,WAAW,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC;SAC9C,CAAA;KACF;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,IAAsB,EAAwB,EAAE,CACtF,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAEjC,+EAA+E;AAC/E,8EAA8E;AAC9E,4EAA4E;AAC5E,+EAA+E;AAC/E,2EAA2E;AAC3E,+EAA+E;AAC/E,oEAAoE;AACpE,yDAAyD;AACzD,EAAE;AACF,8EAA8E;AAC9E,2DAA2D;AAC3D,MAAM,CAAC,MAAM,8BAA8B,GAA0B;IACnE,WAAW;IACX,uBAAuB;CACxB,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,MAA+B,EAC/B,GAAyB,EACzB,QAAiB,EACQ,EAAE;IAC3B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QACzC,OAAO,MAAM,CAAA;KACd;IACD,IAAI,GAAG,KAAK,QAAQ,EAAE;QACpB,OAAO,QAAQ,IAAI,+BAA+B,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC9D,CAAC,CAAC,4BAA4B,CAAC,MAAM,CAAC;YACtC,CAAC,CAAC,MAAM,CAAA;KACX;IACD,MAAM,IAAI,GAA4B,EAAE,CAAA;IACxC,KAAK,MAAM,GAAG,IAAI,8BAA8B,EAAE;QAChD,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;SACxB;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,2EAA2E;AAC3E,2EAA2E;AAC3E,+EAA+E;AAC/E,8EAA8E;AAC9E,2EAA2E;AAC3E,qDAAqD;AACrD,MAAM,8BAA8B,GAAG,IAAI,GAAG,CAAS;IACrD,GAAG,yBAAyB;IAC5B,QAAQ;IACR,qBAAqB;CACtB,CAAC,CAAA;AAEF,MAAM,+BAA+B,GAAG,IAAI,GAAG,CAAC,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC,CAAA;AAE7F,MAAM,4BAA4B,GAAG,CAAC,MAA+B,EAA2B,EAAE;IAChG,MAAM,IAAI,GAA4B,EAAE,CAAA;IACxC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACrC,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;SACxB;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAA2B,EAAqB,EAAE;IAClF,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAA;AACnD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAA2B,EAAqB,EAAE;IAClF,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAA;AACnD,CAAC,CAAA"}
@@ -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;AAIxE,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;AAQD,eAAO,MAAM,4BAA4B,cAC5B,MAAM,GAAG,IAAI,WACf,wBAAwB,KAChC,MAqCF,CAAA;AAyDD,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
+ {"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, apiKey,
19
- // tokenValues?, userId? })`. No attachment (unlike the invoice sender). When
20
- // no provider is configured the function is a no-op so the route stays
21
- // self-contained and never throws. With `ledger`, the provider function is
22
- // emitted as `__sendProviderEmailRaw` and `__sendProviderEmail` records every
23
- // attempt (success or throw) before returning / rethrowing.
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 (!ledger || !provider || !SUPPORTED_EMAIL_PROVIDERS.has(provider)) {
28
+ if (!provider || !SUPPORTED_EMAIL_PROVIDERS.has(provider)) {
27
29
  return raw;
28
30
  }
29
- return `${raw.replace('async function __sendProviderEmail(', 'async function __sendProviderEmailRaw(')}
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: msg.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 result = await resend.emails.send({ from: msg.from, to: [msg.to], subject: msg.subject, html: msg.html });
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
- await sgMail.send({ to: msg.to, from: msg.from, subject: msg.subject, html: msg.html });
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
- await client.sendEmail({ From: msg.from, To: msg.to, Subject: msg.subject, HtmlBody: msg.html });
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
- await mg.messages.create(domain, { from: msg.from, to: [msg.to], subject: msg.subject, html: msg.html });
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 fromStr = String(msg.from || '').trim();
98
- var m = /^(.*)<([^<>]+)>\\s*$/.exec(fromStr);
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":"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"}
1
+ {"version":3,"file":"transactional-email-code.js","sourceRoot":"","sources":["../../src/transactional-email-code.ts"],"names":[],"mappings":"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"}