@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 +1 @@
1
- {"version":3,"file":"executor-generator.d.ts","sourceRoot":"","sources":["../../src/executor-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAGlB,MAAM,gBAAgB,CAAA;AAGvB,MAAM,WAAW,yBAAyB;IACxC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAA;CACjC;AAID,eAAO,MAAM,8BAA8B,aAAa,yBAAyB,KAAQ,MA68CxF,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAO,MAgpB5C,CAAA"}
1
+ {"version":3,"file":"executor-generator.d.ts","sourceRoot":"","sources":["../../src/executor-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAGlB,MAAM,gBAAgB,CAAA;AAGvB,MAAM,WAAW,yBAAyB;IACxC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAA;CACjC;AAID,eAAO,MAAM,8BAA8B,aAAa,yBAAyB,KAAQ,MAy+CxF,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAO,MA+nB5C,CAAA"}
@@ -374,8 +374,19 @@ function applyTemplateParams(text, params) {
374
374
  function finalizeResolvedConfig(nodeType, config) {
375
375
  var isDataNode = typeof nodeType === 'string' && nodeType.indexOf('data-') === 0;
376
376
  var error = null;
377
+ // A config value may be a live element (a trigger's target handed to a
378
+ // custom-js node) or an object that refers back to itself: walking into a
379
+ // DOM node follows its React fibers forever (a page's every element-bound
380
+ // behavior died with "Maximum call stack size exceeded"). Elements are
381
+ // left as they are; an object is walked once.
382
+ var seen = typeof WeakSet === 'function' ? new WeakSet() : null;
377
383
  function walk(obj, insideFilters) {
378
384
  if (!obj || typeof obj !== 'object') return;
385
+ if (typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string') return;
386
+ if (seen) {
387
+ if (seen.has(obj)) return;
388
+ seen.add(obj);
389
+ }
379
390
  if (Array.isArray(obj)) {
380
391
  for (var ai = 0; ai < obj.length; ai++) walk(obj[ai], insideFilters);
381
392
  return;
@@ -1385,15 +1396,31 @@ var SEGMENT_REPLY_PRIVATE_KEYS = {
1385
1396
  // be echoed back wholesale (every earlier node's result, the trigger, the whole
1386
1397
  // page state), so each round trip carried the page twice over and the network
1387
1398
  // tab showed every node's data on every hop.
1399
+ //
1400
+ // A node marked \`keepResultOnServer\` is the exception: its result serves the
1401
+ // nodes after it in the same segment and never leaves the server (a statement's
1402
+ // rows read only to build what the browser may see, a sender's recipients).
1403
+ // Nothing in a later segment can read it.
1404
+ // The nodes whose result the client branches on: never kept on the server.
1405
+ function isBranchingNodeType(type) {
1406
+ return type === 'general-if-statement' || type === 'general-switch';
1407
+ }
1408
+
1388
1409
  function segmentReply(segmentConfig, context, snapshot) {
1389
1410
  var reply = {};
1390
1411
  var own = {};
1412
+ var kept = {};
1391
1413
  var nodes = (segmentConfig && segmentConfig.nodes) || [];
1392
- for (var ni = 0; ni < nodes.length; ni++) own[nodes[ni].id] = true;
1414
+ for (var ni = 0; ni < nodes.length; ni++) {
1415
+ own[nodes[ni].id] = true;
1416
+ if (nodes[ni].config && nodes[ni].config.keepResultOnServer === true && !isBranchingNodeType(nodes[ni].type)) {
1417
+ kept[nodes[ni].id] = true;
1418
+ }
1419
+ }
1393
1420
  var keys = Object.keys(context);
1394
1421
  for (var i = 0; i < keys.length; i++) {
1395
1422
  var key = keys[i];
1396
- if (SEGMENT_REPLY_PRIVATE_KEYS[key]) continue;
1423
+ if (SEGMENT_REPLY_PRIVATE_KEYS[key] || kept[key]) continue;
1397
1424
  var value = context[key];
1398
1425
  if (value === undefined) continue;
1399
1426
  if (own[key] || !snapshot || !Object.prototype.hasOwnProperty.call(snapshot, key)) {
@@ -1484,6 +1511,7 @@ module.exports = {
1484
1511
  fatalNodeResultMessage,
1485
1512
  continuesOnError,
1486
1513
  isFireAndForgetNode,
1514
+ isBranchingNodeType,
1487
1515
  startFireAndForgetNode,
1488
1516
  registerPendingNodePromise,
1489
1517
  settlePendingNodePromises
@@ -1808,25 +1836,19 @@ function findStreamingAINodes(allNodes, allEdges) {
1808
1836
  const n = allNodes[ni];
1809
1837
  if (aiTypes.indexOf(n.type) >= 0 && n.config && n.config.streaming) {
1810
1838
  let onStreamEdge = null;
1811
- let onEndEdge = null;
1812
1839
  for (let ei = 0; ei < allEdges.length; ei++) {
1813
- if (allEdges[ei].source === n.id) {
1814
- if (allEdges[ei].sourceHandle === 'on-stream') onStreamEdge = allEdges[ei];
1815
- if (allEdges[ei].sourceHandle === 'on-end') onEndEdge = allEdges[ei];
1816
- }
1840
+ if (allEdges[ei].source === n.id && allEdges[ei].sourceHandle === 'on-stream') onStreamEdge = allEdges[ei];
1817
1841
  }
1818
1842
  const onStreamNodes = onStreamEdge ? utils.collectBranchNodes(onStreamEdge.target, allNodes, allEdges, n.id) : [];
1819
- const onEndNodes = onEndEdge ? utils.collectBranchNodes(onEndEdge.target, allNodes, allEdges, n.id) : [];
1820
- map[n.id] = { node: n, onStreamNodes: onStreamNodes, onEndNodes: onEndNodes };
1843
+ map[n.id] = { node: n, onStreamNodes: onStreamNodes };
1821
1844
  }
1822
1845
  }
1823
1846
  return map;
1824
1847
  }
1825
1848
 
1826
- // A streaming AI node's on-stream / on-end branches are collected from the
1827
- // FULL workflow node list, so they may contain server nodes (e.g. the SQL
1828
- // insert persisting a chat answer). Those already execute inside their own
1829
- // server segments with full configs; the browser bundle only ships their
1849
+ // A streaming AI node's on-stream branch is collected from the FULL workflow
1850
+ // node list, so it may contain server nodes. Those already execute inside their
1851
+ // own server segments with full configs; the browser bundle only ships their
1830
1852
  // config redacted down to the client-safe whitelist (segment-splitter's
1831
1853
  // redactServerNodeConfig), so executing them here with CLIENT handlers both
1832
1854
  // double-executes them and crashes on the missing config. Emitted nodes carry
@@ -1839,7 +1861,6 @@ function clientExecutableBranchNodes(branchNodes) {
1839
1861
  async function callStreamingServerSegment(segmentUrl, context, streamingInfo, allNodes, allEdges, clientHandlers, workflowConfig, executionId, stateKeys) {
1840
1862
  const prunedContext = pruneContext(context, stateKeys);
1841
1863
  const handledNodeIds = {};
1842
- const streamedNodeIds = {};
1843
1864
  // Same relative-URL problem as callServerSegment above — required even
1844
1865
  // for streaming segments because a server-side caller (e.g. an AI
1845
1866
  // chat webhook) would otherwise fail to parse the URL.
@@ -1886,7 +1907,6 @@ async function callStreamingServerSegment(segmentUrl, context, streamingInfo, al
1886
1907
  try { data = JSON.parse(jsonStr); } catch(e) { continue; }
1887
1908
 
1888
1909
  if (data.type === 'chunk' && data.nodeId) {
1889
- streamedNodeIds[data.nodeId] = true;
1890
1910
  context[data.nodeId] = { chunk: data.chunk, fullResponse: data.fullResponse };
1891
1911
  const info = streamingInfo[data.nodeId];
1892
1912
  if (info && info.onStreamNodes.length > 0) {
@@ -1901,22 +1921,13 @@ async function callStreamingServerSegment(segmentUrl, context, streamingInfo, al
1901
1921
  } else if (data.type === 'node-result' && data.nodeId) {
1902
1922
  context[data.nodeId] = data.result;
1903
1923
  } else if (data.type === 'done') {
1924
+ // The on-end branch is not run here: its steps sit in the segments after
1925
+ // this one, and the caller runs those in graph order, so a browser step
1926
+ // waits for the server steps before it (the chat's "Bump Conversation
1927
+ // After Reply" -> "Get Chat Messages for Final Update").
1904
1928
  if (data.results) {
1905
1929
  mergeServerResults(context, data.results, workflowConfig && workflowConfig.triggerNodeId);
1906
1930
  }
1907
- const streamedKeys = Object.keys(streamedNodeIds);
1908
- for (let sk = 0; sk < streamedKeys.length; sk++) {
1909
- const endInfo = streamingInfo[streamedKeys[sk]];
1910
- if (endInfo && endInfo.onEndNodes.length > 0) {
1911
- const runnableEndNodes = clientExecutableBranchNodes(endInfo.onEndNodes);
1912
- if (runnableEndNodes.length > 0) {
1913
- await utils.executeNodes(runnableEndNodes, allEdges, context, clientHandlers, workflowConfig, null, executionId);
1914
- }
1915
- for (let eni = 0; eni < endInfo.onEndNodes.length; eni++) {
1916
- handledNodeIds[endInfo.onEndNodes[eni].id] = true;
1917
- }
1918
- }
1919
- }
1920
1931
  } else if (data.type === 'error') {
1921
1932
  throw new Error(data.error || 'Streaming workflow segment failed');
1922
1933
  }
@@ -1 +1 @@
1
- {"version":3,"file":"executor-generator.js","sourceRoot":"","sources":["../../src/executor-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor-generator.js","sourceRoot":"","sources":["../../src/executor-generator.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,37 @@ export declare const getEdgesTo: (nodeId: string, edges: UIDLWorkflowEdge[]) =>
11
11
  * loop collections, custom-js params, …).
12
12
  */
13
13
  export declare const collectWorkflowContextNodeIds: (value: unknown, out: Set<string>) => void;
14
- export declare const getTopologicalOrder: (nodes: UIDLWorkflowNode[], edges: UIDLWorkflowEdge[]) => string[];
14
+ /**
15
+ * Where a node runs once the segment splitter places it, or `null` for a node
16
+ * that runs wherever the node before it ran (an if-statement), so it never
17
+ * forces a switch between browser and server.
18
+ */
19
+ export type ExecutionSide = 'client' | 'server';
20
+ export type ExecutionSideOf = (node: UIDLWorkflowNode) => ExecutionSide | null;
21
+ /**
22
+ * Every dependency each node waits for: the source of each edge into it (but a
23
+ * loop's back edge) and every node whose output it reads through a
24
+ * `workflowContext` reference. Listed per SOURCE, in edge order then reference
25
+ * order — the order the topological sort below releases them in.
26
+ */
27
+ export declare const getDependents: (nodes: UIDLWorkflowNode[], edges: UIDLWorkflowEdge[]) => Record<string, string[]>;
28
+ /**
29
+ * Whether two nodes can never both run: they lie on different branches of the
30
+ * same if-statement or switch, and the runtime skips everything reachable from
31
+ * the branch it did not take.
32
+ */
33
+ export declare const getNeverRunTogether: (nodes: UIDLWorkflowNode[], edges: UIDLWorkflowEdge[]) => (a: string, b: string) => boolean;
34
+ /**
35
+ * Kahn's order, the lowest `stepNumber` first among the nodes ready to run.
36
+ *
37
+ * With `sideOf` (the segment splitter), a ready node that stays on the side
38
+ * the previous node ran on may go ahead of lower-step nodes on the other side —
39
+ * one client/server switch fewer, so one server round trip fewer — but only of
40
+ * nodes it never runs together with. A refusal branch's toast waits for the
41
+ * main chain's server steps; two steps that both run keep their order, which
42
+ * custom JavaScript reads `params` by.
43
+ */
44
+ export declare const getTopologicalOrder: (nodes: UIDLWorkflowNode[], edges: UIDLWorkflowEdge[], sideOf?: ExecutionSideOf) => string[];
15
45
  export declare const getLoopBodyNodes: (loopNodeId: string, edges: UIDLWorkflowEdge[]) => string[];
16
46
  export declare const getParallelBranches: (parallelNodeId: string, edges: UIDLWorkflowEdge[]) => {
17
47
  branchStartIds: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"graph-utils.d.ts","sourceRoot":"","sources":["../../src/graph-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE9F,eAAO,MAAM,WAAW,UACf,gBAAgB,EAAE,UACjB,MAAM,KACb,gBAAgB,GAAG,SAErB,CAAA;AAED,eAAO,MAAM,mBAAmB,WAAY,MAAM,SAAS,gBAAgB,EAAE,KAAG,MAAM,EAErF,CAAA;AAED,eAAO,MAAM,eAAe,WAAY,MAAM,SAAS,gBAAgB,EAAE,KAAG,MAAM,EAEjF,CAAA;AAED,eAAO,MAAM,YAAY,WAAY,MAAM,SAAS,gBAAgB,EAAE,KAAG,gBAAgB,EAExF,CAAA;AAED,eAAO,MAAM,UAAU,WAAY,MAAM,SAAS,gBAAgB,EAAE,KAAG,gBAAgB,EAEtF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,UAAW,OAAO,OAAO,IAAI,MAAM,CAAC,KAAG,IAahF,CAAA;AAED,eAAO,MAAM,mBAAmB,UACvB,gBAAgB,EAAE,SAClB,gBAAgB,EAAE,KACxB,MAAM,EAqFR,CAAA;AAED,eAAO,MAAM,gBAAgB,eAAgB,MAAM,SAAS,gBAAgB,EAAE,KAAG,MAAM,EA8BtF,CAAA;AAED,eAAO,MAAM,mBAAmB,mBACd,MAAM,SACf,gBAAgB,EAAE,KACxB;IAAE,cAAc,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAY9E,CAAA;AAED,eAAO,MAAM,cAAc,iBACX,MAAM,SACb,gBAAgB,EAAE,KACxB,MAAM;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAc5C,CAAA;AAED,eAAO,MAAM,aAAa,aACd,MAAM,SACT,gBAAgB,EAAE,KACxB;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAQjD,CAAA;AAED,eAAO,MAAM,iBAAiB,eAChB,MAAM,SACX,gBAAgB,EAAE,KACxB,MAAM,GAAG,SAGX,CAAA;AAED,eAAO,MAAM,oBAAoB,cAAe,aAAa,KAAG,IAAI,MAAM,CAoBzE,CAAA;AAED,eAAO,MAAM,aAAa,aAOxB,CAAA;AAEF,eAAO,MAAM,iBAAiB,SAAU,gBAAgB,KAAG,OAE1D,CAAA;AAED,eAAO,MAAM,oBAAoB,WACvB,MAAM,SACP,gBAAgB,EAAE,KACxB;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAOrD,CAAA;AAED,eAAO,MAAM,iBAAiB,aAAc,MAAM,KAAG,OAIpD,CAAA;AAED,eAAO,MAAM,cAAc,aAAc,MAAM,KAAG,OAajD,CAAA;AAED,eAAO,MAAM,mBAAmB,aAW9B,CAAA;AAEF,eAAO,MAAM,sBAAsB,aAKjC,CAAA;AAEF,eAAO,MAAM,mBAAmB,cAAe,aAAa,KAAG,OAiC9D,CAAA;AAED,eAAO,MAAM,8BAA8B,cAAe,aAAa,KAAG,IAAI,MAAM,CAoCnF,CAAA"}
1
+ {"version":3,"file":"graph-utils.d.ts","sourceRoot":"","sources":["../../src/graph-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE9F,eAAO,MAAM,WAAW,UACf,gBAAgB,EAAE,UACjB,MAAM,KACb,gBAAgB,GAAG,SAErB,CAAA;AAED,eAAO,MAAM,mBAAmB,WAAY,MAAM,SAAS,gBAAgB,EAAE,KAAG,MAAM,EAErF,CAAA;AAED,eAAO,MAAM,eAAe,WAAY,MAAM,SAAS,gBAAgB,EAAE,KAAG,MAAM,EAEjF,CAAA;AAED,eAAO,MAAM,YAAY,WAAY,MAAM,SAAS,gBAAgB,EAAE,KAAG,gBAAgB,EAExF,CAAA;AAED,eAAO,MAAM,UAAU,WAAY,MAAM,SAAS,gBAAgB,EAAE,KAAG,gBAAgB,EAEtF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,UAAW,OAAO,OAAO,IAAI,MAAM,CAAC,KAAG,IAahF,CAAA;AASD;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAC/C,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,gBAAgB,KAAK,aAAa,GAAG,IAAI,CAAA;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,aAAa,UACjB,gBAAgB,EAAE,SAClB,gBAAgB,EAAE,KACxB,OAAO,MAAM,EAAE,MAAM,EAAE,CA4CzB,CAAA;AAyBD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,UACvB,gBAAgB,EAAE,SAClB,gBAAgB,EAAE,SACnB,MAAM,KAAK,MAAM,KAAK,OAgC7B,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,UACvB,gBAAgB,EAAE,SAClB,gBAAgB,EAAE,WAChB,eAAe,KACvB,MAAM,EAuER,CAAA;AAED,eAAO,MAAM,gBAAgB,eAAgB,MAAM,SAAS,gBAAgB,EAAE,KAAG,MAAM,EA8BtF,CAAA;AAED,eAAO,MAAM,mBAAmB,mBACd,MAAM,SACf,gBAAgB,EAAE,KACxB;IAAE,cAAc,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAY9E,CAAA;AAED,eAAO,MAAM,cAAc,iBACX,MAAM,SACb,gBAAgB,EAAE,KACxB,MAAM;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAc5C,CAAA;AAED,eAAO,MAAM,aAAa,aACd,MAAM,SACT,gBAAgB,EAAE,KACxB;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAQjD,CAAA;AAED,eAAO,MAAM,iBAAiB,eAChB,MAAM,SACX,gBAAgB,EAAE,KACxB,MAAM,GAAG,SAGX,CAAA;AAED,eAAO,MAAM,oBAAoB,cAAe,aAAa,KAAG,IAAI,MAAM,CAoBzE,CAAA;AAED,eAAO,MAAM,aAAa,aAOxB,CAAA;AAEF,eAAO,MAAM,iBAAiB,SAAU,gBAAgB,KAAG,OAE1D,CAAA;AAED,eAAO,MAAM,oBAAoB,WACvB,MAAM,SACP,gBAAgB,EAAE,KACxB;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAOrD,CAAA;AAED,eAAO,MAAM,iBAAiB,aAAc,MAAM,KAAG,OAIpD,CAAA;AAED,eAAO,MAAM,cAAc,aAAc,MAAM,KAAG,OAajD,CAAA;AAED,eAAO,MAAM,mBAAmB,aAW9B,CAAA;AAEF,eAAO,MAAM,sBAAsB,aAKjC,CAAA;AAEF,eAAO,MAAM,mBAAmB,cAAe,aAAa,KAAG,OAiC9D,CAAA;AAED,eAAO,MAAM,8BAA8B,cAAe,aAAa,KAAG,IAAI,MAAM,CAoCnF,CAAA"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.collectUsedRealtimeActionTypes = exports.projectUsesRealtime = exports.REALTIME_TRIGGER_TYPES = exports.REALTIME_NODE_TYPES = exports.isTerminalNode = exports.isControlFlowNode = exports.getStreamingBranches = exports.isStreamingAINode = exports.AI_NODE_TYPES = exports.collectUsedNodeTypes = exports.getLoopExitTarget = exports.getIfBranches = exports.getSwitchCases = exports.getParallelBranches = exports.getLoopBodyNodes = exports.getTopologicalOrder = exports.collectWorkflowContextNodeIds = exports.getEdgesTo = exports.getEdgesFrom = exports.getNodeChildren = exports.getNodeDependencies = exports.getNodeById = void 0;
3
+ exports.collectUsedRealtimeActionTypes = exports.projectUsesRealtime = exports.REALTIME_TRIGGER_TYPES = exports.REALTIME_NODE_TYPES = exports.isTerminalNode = exports.isControlFlowNode = exports.getStreamingBranches = exports.isStreamingAINode = exports.AI_NODE_TYPES = exports.collectUsedNodeTypes = exports.getLoopExitTarget = exports.getIfBranches = exports.getSwitchCases = exports.getParallelBranches = exports.getLoopBodyNodes = exports.getTopologicalOrder = exports.getNeverRunTogether = exports.getDependents = exports.collectWorkflowContextNodeIds = exports.getEdgesTo = exports.getEdgesFrom = exports.getNodeChildren = exports.getNodeDependencies = exports.getNodeById = void 0;
4
4
  const getNodeById = (nodes, nodeId) => {
5
5
  return nodes.find((n) => n.id === nodeId);
6
6
  };
@@ -42,19 +42,27 @@ const collectWorkflowContextNodeIds = (value, out) => {
42
42
  Object.values(record).forEach((child) => (0, exports.collectWorkflowContextNodeIds)(child, out));
43
43
  };
44
44
  exports.collectWorkflowContextNodeIds = collectWorkflowContextNodeIds;
45
- const getTopologicalOrder = (nodes, edges) => {
45
+ /**
46
+ * The edge that sends a loop body back to its loop for the next item. The loop
47
+ * does not wait for it: counted as a dependency it left the loop, and every
48
+ * node after it, waiting forever.
49
+ */
50
+ const isLoopBackEdge = (edge) => edge.targetHandle === 'loop-back';
51
+ /**
52
+ * Every dependency each node waits for: the source of each edge into it (but a
53
+ * loop's back edge) and every node whose output it reads through a
54
+ * `workflowContext` reference. Listed per SOURCE, in edge order then reference
55
+ * order — the order the topological sort below releases them in.
56
+ */
57
+ const getDependents = (nodes, edges) => {
46
58
  const nodeIds = new Set(nodes.map((n) => n.id));
47
- const inDegree = {};
48
59
  const adjacency = {};
49
- const nodeIdArr = Array.from(nodeIds);
50
- nodeIdArr.forEach((id) => {
51
- inDegree[id] = 0;
60
+ nodeIds.forEach((id) => {
52
61
  adjacency[id] = [];
53
62
  });
54
63
  edges.forEach((edge) => {
55
- if (nodeIds.has(edge.source) && nodeIds.has(edge.target)) {
64
+ if (nodeIds.has(edge.source) && nodeIds.has(edge.target) && !isLoopBackEdge(edge)) {
56
65
  adjacency[edge.source].push(edge.target);
57
- inDegree[edge.target]++;
58
66
  }
59
67
  });
60
68
  // Virtual dependency edges from IMPLICIT data dependencies: a node that
@@ -84,15 +92,108 @@ const getTopologicalOrder = (nodes, edges) => {
84
92
  return;
85
93
  }
86
94
  adjacency[refId].push(node.id);
87
- inDegree[node.id]++;
88
95
  });
89
96
  });
97
+ return adjacency;
98
+ };
99
+ exports.getDependents = getDependents;
100
+ /**
101
+ * Every node reachable from `startId` without passing through `parentId` or a
102
+ * loop's back edge: what the runtime skips when `parentId` does not take the
103
+ * branch starting at `startId`.
104
+ */
105
+ const collectBranchNodeIds = (startId, targetsBySource, parentId) => {
106
+ const reached = new Set();
107
+ const queue = [startId];
108
+ while (queue.length > 0) {
109
+ const current = queue.shift();
110
+ if (reached.has(current) || current === parentId) {
111
+ continue;
112
+ }
113
+ reached.add(current);
114
+ queue.push(...(targetsBySource.get(current) || []));
115
+ }
116
+ return reached;
117
+ };
118
+ /**
119
+ * Whether two nodes can never both run: they lie on different branches of the
120
+ * same if-statement or switch, and the runtime skips everything reachable from
121
+ * the branch it did not take.
122
+ */
123
+ const getNeverRunTogether = (nodes, edges) => {
124
+ const targetsBySource = new Map();
125
+ edges.forEach((edge) => {
126
+ if (!isLoopBackEdge(edge)) {
127
+ targetsBySource.set(edge.source, [...(targetsBySource.get(edge.source) || []), edge.target]);
128
+ }
129
+ });
130
+ const branchesByNodeId = new Map();
131
+ nodes.forEach((gate) => {
132
+ const branchTargets = gate.type === 'general-if-statement'
133
+ ? Object.entries((0, exports.getIfBranches)(gate.id, edges))
134
+ : gate.type === 'general-switch'
135
+ ? (0, exports.getSwitchCases)(gate.id, edges).map(({ caseId, targetId }) => [caseId, targetId])
136
+ : [];
137
+ branchTargets.forEach(([branch, targetId]) => {
138
+ if (!targetId) {
139
+ return;
140
+ }
141
+ collectBranchNodeIds(targetId, targetsBySource, gate.id).forEach((id) => {
142
+ const branches = branchesByNodeId.get(id) || [];
143
+ branches.push({ gateId: gate.id, branch });
144
+ branchesByNodeId.set(id, branches);
145
+ });
146
+ });
147
+ });
148
+ return (a, b) => {
149
+ const branchesOfB = branchesByNodeId.get(b) || [];
150
+ return (branchesByNodeId.get(a) || []).some((x) => branchesOfB.some((y) => x.gateId === y.gateId && x.branch !== y.branch));
151
+ };
152
+ };
153
+ exports.getNeverRunTogether = getNeverRunTogether;
154
+ /**
155
+ * Kahn's order, the lowest `stepNumber` first among the nodes ready to run.
156
+ *
157
+ * With `sideOf` (the segment splitter), a ready node that stays on the side
158
+ * the previous node ran on may go ahead of lower-step nodes on the other side —
159
+ * one client/server switch fewer, so one server round trip fewer — but only of
160
+ * nodes it never runs together with. A refusal branch's toast waits for the
161
+ * main chain's server steps; two steps that both run keep their order, which
162
+ * custom JavaScript reads `params` by.
163
+ */
164
+ const getTopologicalOrder = (nodes, edges, sideOf) => {
165
+ const nodeIds = new Set(nodes.map((n) => n.id));
166
+ const adjacency = (0, exports.getDependents)(nodes, edges);
167
+ const inDegree = {};
168
+ const nodeIdArr = Array.from(nodeIds);
169
+ nodeIdArr.forEach((id) => {
170
+ inDegree[id] = 0;
171
+ });
172
+ nodeIdArr.forEach((id) => adjacency[id].forEach((dependent) => {
173
+ inDegree[dependent]++;
174
+ }));
90
175
  const queue = [];
91
176
  nodeIdArr.forEach((id) => {
92
177
  if (inDegree[id] === 0) {
93
178
  queue.push(id);
94
179
  }
95
180
  });
181
+ const nodeById = new Map(nodes.map((n) => [n.id, n]));
182
+ const neverRunTogether = sideOf ? (0, exports.getNeverRunTogether)(nodes, edges) : null;
183
+ let currentSide = null;
184
+ const staysOnCurrentSide = (id) => {
185
+ const side = sideOf(nodeById.get(id));
186
+ return side === null || side === currentSide;
187
+ };
188
+ const nextIndex = () => {
189
+ if (!sideOf || currentSide === null || staysOnCurrentSide(queue[0])) {
190
+ return 0;
191
+ }
192
+ const index = queue.findIndex((id, i) => i > 0 &&
193
+ staysOnCurrentSide(id) &&
194
+ queue.slice(0, i).every((ahead) => neverRunTogether(id, ahead)));
195
+ return Math.max(index, 0);
196
+ };
96
197
  const order = [];
97
198
  while (queue.length > 0) {
98
199
  queue.sort((a, b) => {
@@ -100,7 +201,8 @@ const getTopologicalOrder = (nodes, edges) => {
100
201
  const nodeB = nodes.find((n) => n.id === b);
101
202
  return ((nodeA === null || nodeA === void 0 ? void 0 : nodeA.stepNumber) || 0) - ((nodeB === null || nodeB === void 0 ? void 0 : nodeB.stepNumber) || 0);
102
203
  });
103
- const current = queue.shift();
204
+ const [current] = queue.splice(nextIndex(), 1);
205
+ currentSide = (sideOf && sideOf(nodeById.get(current))) || currentSide;
104
206
  order.push(current);
105
207
  for (const neighbor of adjacency[current] || []) {
106
208
  inDegree[neighbor]--;
@@ -1 +1 @@
1
- {"version":3,"file":"graph-utils.js","sourceRoot":"","sources":["../../src/graph-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-utils.js","sourceRoot":"","sources":["../../src/graph-utils.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export { collectUsedNodeTypes, projectUsesRealtime, REALTIME_NODE_TYPES, REALTIM
21
21
  export * from './realtime-generator';
22
22
  export { generateInvoiceFiles, resolveInvoiceDataSource } from './invoice';
23
23
  export { generateWebhookFiles } from './webhook-generator';
24
- export { declarePaymentCredentialEnv, ensurePaymentDriversModule, resolveStorePaymentDriverIds, } from './payments';
24
+ export { declarePaymentCredentialEnv, ensurePaymentDriversModule, readUidlPaymentProviders, resolveStorePaymentDriverIds, } from './payments';
25
25
  export { needsRuntimeStorageRoute, generateRuntimeStorageUploadRoute, } from './runtime-storage-generator';
26
26
  export * from './types';
27
27
  export { SCROLL_POINT_PROGRESS, DEFAULT_SCROLL_POINT, resolveScrollPoint } from './scroll-points';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC5F,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACjF,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAA;AAChG,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EACL,6BAA6B,EAC7B,sCAAsC,EACtC,oBAAoB,EACpB,+BAA+B,EAC/B,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EACL,oCAAoC,EACpC,6BAA6B,EAC7B,sBAAsB,EACtB,8BAA8B,EAC9B,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,8BAA8B,EAC9B,wBAAwB,GACzB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,yBAAyB,EACzB,gCAAgC,EAChC,wCAAwC,GACzC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,eAAe,CAAA;AACtB,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,wBAAwB,EACxB,iCAAiC,GAClC,MAAM,6BAA6B,CAAA;AACpC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC5F,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACjF,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAA;AAChG,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EACL,6BAA6B,EAC7B,sCAAsC,EACtC,oBAAoB,EACpB,+BAA+B,EAC/B,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EACL,oCAAoC,EACpC,6BAA6B,EAC7B,sBAAsB,EACtB,8BAA8B,EAC9B,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,8BAA8B,EAC9B,wBAAwB,GACzB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,yBAAyB,EACzB,gCAAgC,EAChC,wCAAwC,GACzC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,eAAe,CAAA;AACtB,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,wBAAwB,EACxB,iCAAiC,GAClC,MAAM,6BAA6B,CAAA;AACpC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA"}
package/dist/cjs/index.js CHANGED
@@ -15,7 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.declarePaymentCredentialEnv = exports.generateWebhookFiles = exports.resolveInvoiceDataSource = exports.generateInvoiceFiles = exports.REALTIME_TRIGGER_TYPES = exports.REALTIME_NODE_TYPES = exports.projectUsesRealtime = exports.collectUsedNodeTypes = exports.generateCommonJsSessionTokenResolverCode = exports.generateSessionTokenResolverCode = exports.SESSION_TOKEN_RESOLVER_FN = exports.resolveEmailLocaleConfig = exports.LOCALIZED_TEMPLATES_CONFIG_KEY = exports.EMAIL_LOCALE_HEADER = exports.EMAIL_LOCALE_CONFIG_KEY = exports.ensureEmailLocaleModule = exports.ensureSentEmailLogModule = exports.resolveSubscriptionFallbackRoute = exports.resolveProductDetailsRoute = exports.resolveCustomProductPageRoutes = exports.hasSubscriberOnlyPages = exports.generateSubscriberAccessRoute = exports.generateSubscriberAccessHelperModule = exports.getDatabaseDriverDependencies = exports.generateLazyPgClientCode = exports.generatePgClientCode = exports.generateTriggerCode = exports.hasStreamingAINode = exports.getWebhookRoutePath = exports.getWebhookRouteFileName = exports.getCronRouteFileName = exports.getAPIRouteFileName = exports.findPaymentWebhookRouteUrl = exports.generateWebhookWorkflowAPIRoute = exports.generateCronAPIRoute = exports.generateStreamingServerSegmentAPIRoute = exports.generateServerSegmentAPIRoute = exports.buildSegmentTrust = exports.generateServerRuntimeCode = exports.generateSharedRuntimeUtilsCode = exports.generateClientRuntimeCode = exports.collectSecrets = exports.ALL_STATE_KEYS = exports.collectSegmentStateKeys = exports.getClientSegments = exports.getServerSegments = exports.splitIntoSegments = exports.nodeRegistry = exports.NextWorkflowProjectPlugin = exports.createNextWorkflowPlugin = void 0;
18
- exports.resolveScrollPoint = exports.DEFAULT_SCROLL_POINT = exports.SCROLL_POINT_PROGRESS = exports.generateRuntimeStorageUploadRoute = exports.needsRuntimeStorageRoute = exports.resolveStorePaymentDriverIds = exports.ensurePaymentDriversModule = void 0;
18
+ exports.resolveScrollPoint = exports.DEFAULT_SCROLL_POINT = exports.SCROLL_POINT_PROGRESS = exports.generateRuntimeStorageUploadRoute = exports.needsRuntimeStorageRoute = exports.resolveStorePaymentDriverIds = exports.readUidlPaymentProviders = exports.ensurePaymentDriversModule = void 0;
19
19
  var workflow_component_plugin_1 = require("./workflow-component-plugin");
20
20
  Object.defineProperty(exports, "createNextWorkflowPlugin", { enumerable: true, get: function () { return workflow_component_plugin_1.createNextWorkflowPlugin; } });
21
21
  var workflow_project_plugin_1 = require("./workflow-project-plugin");
@@ -89,6 +89,7 @@ Object.defineProperty(exports, "generateWebhookFiles", { enumerable: true, get:
89
89
  var payments_1 = require("./payments");
90
90
  Object.defineProperty(exports, "declarePaymentCredentialEnv", { enumerable: true, get: function () { return payments_1.declarePaymentCredentialEnv; } });
91
91
  Object.defineProperty(exports, "ensurePaymentDriversModule", { enumerable: true, get: function () { return payments_1.ensurePaymentDriversModule; } });
92
+ Object.defineProperty(exports, "readUidlPaymentProviders", { enumerable: true, get: function () { return payments_1.readUidlPaymentProviders; } });
92
93
  Object.defineProperty(exports, "resolveStorePaymentDriverIds", { enumerable: true, get: function () { return payments_1.resolveStorePaymentDriverIds; } });
93
94
  var runtime_storage_generator_1 = require("./runtime-storage-generator");
94
95
  Object.defineProperty(exports, "needsRuntimeStorageRoute", { enumerable: true, get: function () { return runtime_storage_generator_1.needsRuntimeStorageRoute; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,yEAAsE;AAA7D,qIAAA,wBAAwB,OAAA;AACjC,qEAAqE;AAA5D,oIAAA,yBAAyB,OAAA;AAClC,iCAAsC;AAA7B,qGAAA,YAAY,OAAA;AACrB,uDAA4F;AAAnF,qHAAA,iBAAiB,OAAA;AAAE,qHAAA,iBAAiB,OAAA;AAAE,qHAAA,iBAAiB,OAAA;AAChE,iEAAiF;AAAxE,gIAAA,uBAAuB,OAAA;AAAE,uHAAA,cAAc,OAAA;AAEhD,uDAAmD;AAA1C,kHAAA,cAAc,OAAA;AACvB,2DAAgG;AAAvF,+HAAA,yBAAyB,OAAA;AAAE,oIAAA,8BAA8B,OAAA;AAClE,6DAAiE;AAAxD,gIAAA,yBAAyB,OAAA;AAClC,iDAAmD;AAA1C,kHAAA,iBAAiB,OAAA;AAE1B,6DAW8B;AAV5B,oIAAA,6BAA6B,OAAA;AAC7B,6IAAA,sCAAsC,OAAA;AACtC,2HAAA,oBAAoB,OAAA;AACpB,sIAAA,+BAA+B,OAAA;AAC/B,iIAAA,0BAA0B,OAAA;AAC1B,0HAAA,mBAAmB,OAAA;AACnB,2HAAA,oBAAoB,OAAA;AACpB,8HAAA,uBAAuB,OAAA;AACvB,0HAAA,mBAAmB,OAAA;AACnB,yHAAA,kBAAkB,OAAA;AAEpB,yDAAyD;AAAhD,wHAAA,mBAAmB,OAAA;AAC5B,mDAAiF;AAAxE,sHAAA,oBAAoB,OAAA;AAAE,0HAAA,wBAAwB,OAAA;AACvD,mDAAgE;AAAvD,+HAAA,6BAA6B,OAAA;AACtC,yFAO4C;AAN1C,yJAAA,oCAAoC,OAAA;AACpC,kJAAA,6BAA6B,OAAA;AAC7B,2IAAA,sBAAsB,OAAA;AACtB,mJAAA,8BAA8B,OAAA;AAC9B,+IAAA,0BAA0B,OAAA;AAC1B,qJAAA,gCAAgC,OAAA;AAElC,mDAA2D;AAAlD,0HAAA,wBAAwB,OAAA;AACjC,+CAMuB;AALrB,uHAAA,uBAAuB,OAAA;AACvB,uHAAA,uBAAuB,OAAA;AACvB,mHAAA,mBAAmB,OAAA;AACnB,8HAAA,8BAA8B,OAAA;AAC9B,wHAAA,wBAAwB,OAAA;AAE1B,qEAIkC;AAHhC,oIAAA,yBAAyB,OAAA;AACzB,2IAAA,gCAAgC,OAAA;AAChC,mJAAA,wCAAwC,OAAA;AAE1C,6CAKsB;AAJpB,mHAAA,oBAAoB,OAAA;AACpB,kHAAA,mBAAmB,OAAA;AACnB,kHAAA,mBAAmB,OAAA;AACnB,qHAAA,sBAAsB,OAAA;AAExB,uDAAoC;AACpC,qCAA0E;AAAjE,+GAAA,oBAAoB,OAAA;AAAE,mHAAA,wBAAwB,OAAA;AACvD,yDAA0D;AAAjD,yHAAA,oBAAoB,OAAA;AAC7B,uCAImB;AAHjB,uHAAA,2BAA2B,OAAA;AAC3B,sHAAA,0BAA0B,OAAA;AAC1B,wHAAA,4BAA4B,OAAA;AAE9B,yEAGoC;AAFlC,qIAAA,wBAAwB,OAAA;AACxB,8IAAA,iCAAiC,OAAA;AAEnC,0CAAuB;AACvB,iDAAiG;AAAxF,sHAAA,qBAAqB,OAAA;AAAE,qHAAA,oBAAoB,OAAA;AAAE,mHAAA,kBAAkB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,yEAAsE;AAA7D,qIAAA,wBAAwB,OAAA;AACjC,qEAAqE;AAA5D,oIAAA,yBAAyB,OAAA;AAClC,iCAAsC;AAA7B,qGAAA,YAAY,OAAA;AACrB,uDAA4F;AAAnF,qHAAA,iBAAiB,OAAA;AAAE,qHAAA,iBAAiB,OAAA;AAAE,qHAAA,iBAAiB,OAAA;AAChE,iEAAiF;AAAxE,gIAAA,uBAAuB,OAAA;AAAE,uHAAA,cAAc,OAAA;AAEhD,uDAAmD;AAA1C,kHAAA,cAAc,OAAA;AACvB,2DAAgG;AAAvF,+HAAA,yBAAyB,OAAA;AAAE,oIAAA,8BAA8B,OAAA;AAClE,6DAAiE;AAAxD,gIAAA,yBAAyB,OAAA;AAClC,iDAAmD;AAA1C,kHAAA,iBAAiB,OAAA;AAE1B,6DAW8B;AAV5B,oIAAA,6BAA6B,OAAA;AAC7B,6IAAA,sCAAsC,OAAA;AACtC,2HAAA,oBAAoB,OAAA;AACpB,sIAAA,+BAA+B,OAAA;AAC/B,iIAAA,0BAA0B,OAAA;AAC1B,0HAAA,mBAAmB,OAAA;AACnB,2HAAA,oBAAoB,OAAA;AACpB,8HAAA,uBAAuB,OAAA;AACvB,0HAAA,mBAAmB,OAAA;AACnB,yHAAA,kBAAkB,OAAA;AAEpB,yDAAyD;AAAhD,wHAAA,mBAAmB,OAAA;AAC5B,mDAAiF;AAAxE,sHAAA,oBAAoB,OAAA;AAAE,0HAAA,wBAAwB,OAAA;AACvD,mDAAgE;AAAvD,+HAAA,6BAA6B,OAAA;AACtC,yFAO4C;AAN1C,yJAAA,oCAAoC,OAAA;AACpC,kJAAA,6BAA6B,OAAA;AAC7B,2IAAA,sBAAsB,OAAA;AACtB,mJAAA,8BAA8B,OAAA;AAC9B,+IAAA,0BAA0B,OAAA;AAC1B,qJAAA,gCAAgC,OAAA;AAElC,mDAA2D;AAAlD,0HAAA,wBAAwB,OAAA;AACjC,+CAMuB;AALrB,uHAAA,uBAAuB,OAAA;AACvB,uHAAA,uBAAuB,OAAA;AACvB,mHAAA,mBAAmB,OAAA;AACnB,8HAAA,8BAA8B,OAAA;AAC9B,wHAAA,wBAAwB,OAAA;AAE1B,qEAIkC;AAHhC,oIAAA,yBAAyB,OAAA;AACzB,2IAAA,gCAAgC,OAAA;AAChC,mJAAA,wCAAwC,OAAA;AAE1C,6CAKsB;AAJpB,mHAAA,oBAAoB,OAAA;AACpB,kHAAA,mBAAmB,OAAA;AACnB,kHAAA,mBAAmB,OAAA;AACnB,qHAAA,sBAAsB,OAAA;AAExB,uDAAoC;AACpC,qCAA0E;AAAjE,+GAAA,oBAAoB,OAAA;AAAE,mHAAA,wBAAwB,OAAA;AACvD,yDAA0D;AAAjD,yHAAA,oBAAoB,OAAA;AAC7B,uCAKmB;AAJjB,uHAAA,2BAA2B,OAAA;AAC3B,sHAAA,0BAA0B,OAAA;AAC1B,oHAAA,wBAAwB,OAAA;AACxB,wHAAA,4BAA4B,OAAA;AAE9B,yEAGoC;AAFlC,qIAAA,wBAAwB,OAAA;AACxB,8IAAA,iCAAiC,OAAA;AAEnC,0CAAuB;AACvB,iDAAiG;AAAxF,sHAAA,qBAAqB,OAAA;AAAE,qHAAA,oBAAoB,OAAA;AAAE,mHAAA,kBAAkB,OAAA"}
@@ -9,14 +9,23 @@ export declare const generateInvoiceGenerateRouteCode: (settings: UIDLInvoiceSet
9
9
  * against it keep pointing at a valid invoice. What a merchant corrected on the
10
10
  * invoice itself (customer details, notes, payment method) wins over the order;
11
11
  * the lines and every figure are recomputed from the order. The old PDF is
12
- * replaced — and its runtime-storage copy deleted — and the customer is never
13
- * emailed.
12
+ * replaced — and its runtime-storage copy deleted.
13
+ *
14
+ * The customer is emailed once: by the regeneration that gives an invoice its
15
+ * FIRST PDF — one whose PDF failed at payment, so the payment's invoice email
16
+ * never went out — and only when the store emails invoices (Invoice Email
17
+ * Delivery). It is the payment's email: the same sender, template, attachment,
18
+ * link and language, recorded in the sent-email ledger and on the order's
19
+ * history. Which write gives the first PDF, the database decides (see
20
+ * `replaceInvoice` and `storeInvoicePdf`), so a second regeneration, a double
21
+ * click, two requests at once or a retried payment finishing the same invoice
22
+ * never send it again; a failed send costs the merchant nothing.
14
23
  *
15
24
  * Unlike `/generate`, which the payment webhook calls server-to-server, this
16
25
  * route is reached from the merchant's browser only, so it checks the session
17
26
  * itself: signed in, with an admin role.
18
27
  */
19
- export declare const generateInvoiceRegenerateRouteCode: () => string;
28
+ export declare const generateInvoiceRegenerateRouteCode: (settings: UIDLInvoiceSettings) => string;
20
29
  /**
21
30
  * GET /api/invoices/[id]/pdf — the invoice PDF kept in the database, the link
22
31
  * an order shows when runtime storage is not configured.
@@ -1 +1 @@
1
- {"version":3,"file":"api-routes-code.d.ts","sourceRoot":"","sources":["../../../src/invoice/api-routes-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AA2DhE,eAAO,MAAM,gCAAgC,aAAc,mBAAmB,KAAG,MAsYhF,CAAA;AAKD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kCAAkC,QAAO,MAmNrD,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,QAAO,MAsF9C,CAAA"}
1
+ {"version":3,"file":"api-routes-code.d.ts","sourceRoot":"","sources":["../../../src/invoice/api-routes-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AA+FhE,eAAO,MAAM,gCAAgC,aAAc,mBAAmB,KAAG,MAgahF,CAAA;AAoCD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,kCAAkC,aAAc,mBAAmB,KAAG,MA8PlF,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,QAAO,MAsF9C,CAAA"}