@budibase/server 1.0.152 → 1.0.153

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 (167) hide show
  1. package/builder/assets/{index.4f24612c.js → index.01cadea9.js} +1 -1
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +139 -118
  4. package/coverage/coverage-final.json +2 -2
  5. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  6. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/index.html +1 -1
  15. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  21. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  44. package/coverage/lcov-report/api/index.html +1 -1
  45. package/coverage/lcov-report/api/index.js.html +1 -1
  46. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/index.html +1 -1
  57. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  71. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  74. package/coverage/lcov-report/automations/actions.js.html +1 -1
  75. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  76. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  77. package/coverage/lcov-report/automations/index.html +1 -1
  78. package/coverage/lcov-report/automations/index.js.html +1 -1
  79. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/index.html +1 -1
  86. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  96. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  105. package/coverage/lcov-report/constants/index.html +5 -5
  106. package/coverage/lcov-report/constants/index.js.html +19 -4
  107. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  108. package/coverage/lcov-report/constants/screens.js.html +1 -1
  109. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  110. package/coverage/lcov-report/db/index.html +1 -1
  111. package/coverage/lcov-report/db/index.js.html +1 -1
  112. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  113. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  116. package/coverage/lcov-report/db/newid.js.html +1 -1
  117. package/coverage/lcov-report/db/utils.js.html +1 -1
  118. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  119. package/coverage/lcov-report/events/index.html +1 -1
  120. package/coverage/lcov-report/events/index.js.html +1 -1
  121. package/coverage/lcov-report/events/utils.js.html +1 -1
  122. package/coverage/lcov-report/index.html +21 -21
  123. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  124. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  125. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  126. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  127. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  128. package/coverage/lcov-report/middleware/index.html +1 -1
  129. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  130. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  131. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  132. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  133. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  134. package/coverage/lcov-report/threads/automation.js.html +117 -63
  135. package/coverage/lcov-report/threads/index.html +19 -19
  136. package/coverage/lcov-report/threads/query.js.html +1 -1
  137. package/coverage/lcov-report/threads/utils.js.html +1 -1
  138. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  139. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  140. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  141. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  142. package/coverage/lcov-report/utilities/global.js.html +1 -1
  143. package/coverage/lcov-report/utilities/index.html +1 -1
  144. package/coverage/lcov-report/utilities/index.js.html +1 -1
  145. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  146. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  147. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  148. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  149. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  150. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  151. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  152. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  153. package/coverage/lcov-report/utilities/security.js.html +1 -1
  154. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  155. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  156. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  157. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  158. package/coverage/lcov-report/utilities/users.js.html +1 -1
  159. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  160. package/coverage/lcov.info +229 -194
  161. package/dist/constants/index.js +4 -0
  162. package/dist/package.json +5 -5
  163. package/dist/threads/automation.js +46 -21
  164. package/dist/tsconfig.build.tsbuildinfo +1 -1
  165. package/package.json +6 -6
  166. package/src/constants/index.js +5 -0
  167. package/src/threads/automation.js +49 -31
@@ -5064,9 +5064,10 @@ DA:190,48
5064
5064
  DA:196,48
5065
5065
  DA:201,48
5066
5066
  DA:205,48
5067
- DA:212,48
5068
- LF:28
5069
- LH:28
5067
+ DA:211,48
5068
+ DA:217,48
5069
+ LF:29
5070
+ LH:29
5070
5071
  BRDA:59,0,0,96
5071
5072
  BRDA:59,0,1,0
5072
5073
  BRF:2
@@ -6505,30 +6506,34 @@ BRH:0
6505
6506
  end_of_record
6506
6507
  TN:
6507
6508
  SF:src/threads/automation.js
6508
- FN:26,(anonymous_0)
6509
- FN:48,(anonymous_1)
6510
- FN:55,(anonymous_2)
6511
- FN:63,(anonymous_3)
6512
- FN:72,(anonymous_4)
6513
- FN:81,(anonymous_5)
6514
- FN:99,(anonymous_6)
6515
- FN:213,(anonymous_7)
6516
- FN:249,(anonymous_8)
6517
- FN:314,(anonymous_9)
6518
- FN:316,(anonymous_10)
6519
- FNF:11
6509
+ FN:20,typecastForLooping
6510
+ FN:45,getLoopIterations
6511
+ FN:61,(anonymous_2)
6512
+ FN:83,(anonymous_3)
6513
+ FN:90,(anonymous_4)
6514
+ FN:98,(anonymous_5)
6515
+ FN:107,(anonymous_6)
6516
+ FN:116,(anonymous_7)
6517
+ FN:134,(anonymous_8)
6518
+ FN:236,(anonymous_9)
6519
+ FN:267,(anonymous_10)
6520
+ FN:332,(anonymous_11)
6521
+ FN:334,(anonymous_12)
6522
+ FNF:13
6520
6523
  FNH:9
6521
- FNDA:6,(anonymous_0)
6522
- FNDA:6,(anonymous_1)
6523
- FNDA:5,(anonymous_2)
6524
+ FNDA:0,typecastForLooping
6525
+ FNDA:0,getLoopIterations
6526
+ FNDA:6,(anonymous_2)
6524
6527
  FNDA:6,(anonymous_3)
6525
- FNDA:11,(anonymous_4)
6526
- FNDA:0,(anonymous_5)
6527
- FNDA:6,(anonymous_6)
6528
+ FNDA:5,(anonymous_4)
6529
+ FNDA:6,(anonymous_5)
6530
+ FNDA:11,(anonymous_6)
6528
6531
  FNDA:0,(anonymous_7)
6529
- FNDA:5,(anonymous_8)
6530
- FNDA:6,(anonymous_9)
6531
- FNDA:6,(anonymous_10)
6532
+ FNDA:6,(anonymous_8)
6533
+ FNDA:0,(anonymous_9)
6534
+ FNDA:5,(anonymous_10)
6535
+ FNDA:6,(anonymous_11)
6536
+ FNDA:6,(anonymous_12)
6532
6537
  DA:1,3
6533
6538
  DA:2,3
6534
6539
  DA:3,3
@@ -6546,201 +6551,231 @@ DA:15,3
6546
6551
  DA:16,3
6547
6552
  DA:17,3
6548
6553
  DA:18,3
6549
- DA:27,6
6550
- DA:28,6
6551
- DA:29,6
6552
- DA:30,6
6553
- DA:31,6
6554
- DA:32,6
6555
- DA:34,6
6556
- DA:35,6
6557
- DA:37,6
6558
- DA:38,6
6559
- DA:41,6
6560
- DA:42,6
6561
- DA:44,6
6562
- DA:45,6
6563
- DA:49,6
6554
+ DA:21,0
6555
+ DA:22,0
6556
+ DA:24,0
6557
+ DA:25,0
6558
+ DA:26,0
6559
+ DA:27,0
6560
+ DA:29,0
6561
+ DA:30,0
6562
+ DA:32,0
6563
+ DA:34,0
6564
+ DA:35,0
6565
+ DA:37,0
6566
+ DA:40,0
6567
+ DA:42,0
6568
+ DA:46,0
6569
+ DA:47,0
6570
+ DA:48,0
6564
6571
  DA:50,0
6565
- DA:52,6
6566
- DA:56,5
6567
- DA:57,5
6568
- DA:58,0
6569
- DA:60,5
6572
+ DA:62,6
6573
+ DA:63,6
6570
6574
  DA:64,6
6571
- DA:65,0
6575
+ DA:65,6
6576
+ DA:66,6
6572
6577
  DA:67,6
6573
- DA:68,6
6574
6578
  DA:69,6
6575
- DA:73,11
6576
- DA:75,11
6579
+ DA:70,6
6580
+ DA:72,6
6581
+ DA:73,6
6577
6582
  DA:76,6
6578
- DA:78,11
6579
- DA:82,0
6580
- DA:92,0
6581
- DA:100,6
6582
- DA:101,6
6583
+ DA:77,6
6584
+ DA:79,6
6585
+ DA:80,6
6586
+ DA:84,6
6587
+ DA:85,0
6588
+ DA:87,6
6589
+ DA:91,5
6590
+ DA:92,5
6591
+ DA:93,0
6592
+ DA:95,5
6593
+ DA:99,6
6594
+ DA:100,0
6583
6595
  DA:102,6
6584
6596
  DA:103,6
6585
- DA:105,6
6586
- DA:106,6
6587
- DA:107,6
6588
- DA:108,6
6589
- DA:109,5
6590
- DA:111,5
6591
- DA:112,0
6592
- DA:113,0
6593
- DA:114,0
6594
- DA:117,5
6595
- DA:118,0
6596
- DA:120,5
6597
- DA:125,5
6598
- DA:126,5
6599
- DA:127,5
6600
- DA:130,5
6601
- DA:131,0
6602
- DA:135,0
6603
- DA:140,0
6604
- DA:141,0
6605
- DA:147,0
6597
+ DA:104,6
6598
+ DA:108,11
6599
+ DA:110,11
6600
+ DA:111,6
6601
+ DA:113,11
6602
+ DA:117,0
6603
+ DA:127,0
6604
+ DA:135,6
6605
+ DA:136,6
6606
+ DA:137,6
6607
+ DA:138,6
6608
+ DA:140,6
6609
+ DA:141,6
6610
+ DA:142,6
6611
+ DA:143,6
6612
+ DA:144,5
6613
+ DA:146,5
6614
+ DA:147,5
6615
+ DA:148,5
6616
+ DA:149,0
6617
+ DA:150,0
6606
6618
  DA:151,0
6607
- DA:152,0
6608
- DA:153,0
6609
- DA:157,0
6610
- DA:161,0
6611
- DA:163,0
6612
- DA:166,0
6613
- DA:172,0
6619
+ DA:154,5
6620
+ DA:155,0
6621
+ DA:156,0
6622
+ DA:159,5
6623
+ DA:160,5
6624
+ DA:163,5
6625
+ DA:164,0
6626
+ DA:169,0
6627
+ DA:170,0
6628
+ DA:171,0
6614
6629
  DA:173,0
6615
- DA:174,0
6616
6630
  DA:177,0
6617
6631
  DA:178,0
6618
- DA:186,0
6632
+ DA:179,0
6633
+ DA:183,0
6619
6634
  DA:187,0
6620
- DA:194,0
6635
+ DA:189,0
6636
+ DA:192,0
6621
6637
  DA:198,0
6622
- DA:202,0
6638
+ DA:199,0
6639
+ DA:200,0
6623
6640
  DA:203,0
6624
6641
  DA:204,0
6625
- DA:207,0
6626
- DA:208,0
6627
- DA:211,0
6628
- DA:214,0
6642
+ DA:212,0
6643
+ DA:213,0
6629
6644
  DA:220,0
6630
- DA:225,0
6631
- DA:226,0
6645
+ DA:224,0
6646
+ DA:228,0
6647
+ DA:229,0
6632
6648
  DA:230,0
6633
- DA:231,0
6634
- DA:232,0
6635
- DA:237,5
6636
- DA:238,0
6637
- DA:239,0
6638
- DA:243,5
6639
- DA:244,5
6640
- DA:245,5
6641
- DA:246,5
6642
- DA:248,5
6643
- DA:249,5
6644
- DA:250,5
6645
- DA:257,5
6646
- DA:260,5
6647
- DA:261,0
6648
- DA:262,0
6649
- DA:266,0
6649
+ DA:233,0
6650
+ DA:234,0
6651
+ DA:235,0
6652
+ DA:236,0
6653
+ DA:237,0
6654
+ DA:240,0
6655
+ DA:243,0
6656
+ DA:244,0
6657
+ DA:248,0
6658
+ DA:249,0
6659
+ DA:250,0
6660
+ DA:255,5
6661
+ DA:256,0
6662
+ DA:257,0
6663
+ DA:261,5
6664
+ DA:262,5
6665
+ DA:263,5
6666
+ DA:264,5
6667
+ DA:266,5
6668
+ DA:267,5
6650
6669
  DA:268,5
6651
- DA:269,0
6652
- DA:271,5
6670
+ DA:275,5
6671
+ DA:278,5
6653
6672
  DA:279,0
6654
6673
  DA:280,0
6655
- DA:282,5
6656
- DA:283,0
6657
6674
  DA:284,0
6658
- DA:285,0
6659
- DA:286,0
6675
+ DA:286,5
6660
6676
  DA:287,0
6661
- DA:292,5
6662
- DA:293,0
6677
+ DA:289,5
6678
+ DA:297,0
6663
6679
  DA:298,0
6680
+ DA:300,5
6681
+ DA:301,0
6682
+ DA:302,0
6683
+ DA:303,0
6684
+ DA:304,0
6664
6685
  DA:305,0
6665
- DA:306,0
6666
- DA:310,6
6667
- DA:314,3
6668
- DA:315,6
6669
- DA:316,6
6670
- DA:317,6
6671
- DA:321,6
6672
- DA:322,6
6673
- DA:323,6
6674
- DA:325,0
6675
- LF:143
6686
+ DA:310,5
6687
+ DA:311,0
6688
+ DA:316,0
6689
+ DA:323,0
6690
+ DA:324,0
6691
+ DA:328,6
6692
+ DA:332,3
6693
+ DA:333,6
6694
+ DA:334,6
6695
+ DA:335,6
6696
+ DA:339,6
6697
+ DA:340,6
6698
+ DA:341,6
6699
+ DA:343,0
6700
+ LF:163
6676
6701
  LH:82
6677
- BRDA:26,0,0,0
6678
- BRDA:28,1,0,4
6679
- BRDA:28,1,1,2
6680
- BRDA:49,2,0,0
6681
- BRDA:49,2,1,6
6682
- BRDA:57,3,0,0
6683
- BRDA:57,3,1,5
6684
- BRDA:64,4,0,0
6685
- BRDA:64,4,1,6
6686
- BRDA:75,5,0,6
6687
- BRDA:75,5,1,5
6688
- BRDA:111,6,0,0
6689
- BRDA:111,6,1,5
6690
- BRDA:117,7,0,0
6691
- BRDA:117,7,1,5
6692
- BRDA:120,8,0,0
6693
- BRDA:120,8,1,5
6694
- BRDA:121,9,0,0
6695
- BRDA:121,9,1,0
6696
- BRDA:130,10,0,0
6697
- BRDA:130,10,1,5
6698
- BRDA:141,11,0,0
6699
- BRDA:141,11,1,0
6700
- BRDA:142,12,0,0
6701
- BRDA:142,12,1,0
6702
- BRDA:142,12,2,0
6703
- BRDA:142,12,3,0
6704
- BRDA:157,13,0,0
6705
- BRDA:157,13,1,0
6706
- BRDA:158,14,0,0
6707
- BRDA:158,14,1,0
6708
- BRDA:173,15,0,0
6709
- BRDA:173,15,1,0
6710
- BRDA:177,16,0,0
6711
- BRDA:177,16,1,0
6712
- BRDA:186,17,0,0
6713
- BRDA:186,17,1,0
6714
- BRDA:194,18,0,0
6715
- BRDA:194,18,1,0
6716
- BRDA:195,19,0,0
6717
- BRDA:195,19,1,0
6718
- BRDA:208,20,0,0
6719
- BRDA:208,20,1,0
6720
- BRDA:225,21,0,0
6721
- BRDA:225,21,1,0
6722
- BRDA:237,22,0,0
6723
- BRDA:237,22,1,5
6724
- BRDA:248,23,0,5
6725
- BRDA:248,23,1,0
6726
- BRDA:260,24,0,0
6727
- BRDA:260,24,1,5
6728
- BRDA:260,25,0,5
6729
- BRDA:260,25,1,0
6730
- BRDA:268,26,0,0
6731
- BRDA:268,26,1,5
6732
- BRDA:268,27,0,5
6733
- BRDA:268,27,1,0
6734
- BRDA:282,28,0,0
6735
- BRDA:282,28,1,5
6736
- BRDA:284,29,0,0
6737
- BRDA:284,29,1,0
6738
- BRDA:292,30,0,0
6739
- BRDA:292,30,1,5
6740
- BRDA:292,31,0,5
6741
- BRDA:292,31,1,5
6742
- BRF:65
6743
- BRH:21
6702
+ BRDA:21,0,0,0
6703
+ BRDA:21,0,1,0
6704
+ BRDA:21,1,0,0
6705
+ BRDA:21,1,1,0
6706
+ BRDA:27,2,0,0
6707
+ BRDA:27,2,1,0
6708
+ BRDA:29,3,0,0
6709
+ BRDA:29,3,1,0
6710
+ BRDA:34,4,0,0
6711
+ BRDA:34,4,1,0
6712
+ BRDA:47,5,0,0
6713
+ BRDA:47,5,1,0
6714
+ BRDA:47,6,0,0
6715
+ BRDA:47,6,1,0
6716
+ BRDA:50,7,0,0
6717
+ BRDA:50,7,1,0
6718
+ BRDA:61,8,0,0
6719
+ BRDA:63,9,0,4
6720
+ BRDA:63,9,1,2
6721
+ BRDA:84,10,0,0
6722
+ BRDA:84,10,1,6
6723
+ BRDA:92,11,0,0
6724
+ BRDA:92,11,1,5
6725
+ BRDA:99,12,0,0
6726
+ BRDA:99,12,1,6
6727
+ BRDA:110,13,0,6
6728
+ BRDA:110,13,1,5
6729
+ BRDA:148,14,0,0
6730
+ BRDA:148,14,1,5
6731
+ BRDA:154,15,0,0
6732
+ BRDA:154,15,1,5
6733
+ BRDA:163,16,0,0
6734
+ BRDA:163,16,1,5
6735
+ BRDA:183,17,0,0
6736
+ BRDA:183,17,1,0
6737
+ BRDA:184,18,0,0
6738
+ BRDA:184,18,1,0
6739
+ BRDA:199,19,0,0
6740
+ BRDA:199,19,1,0
6741
+ BRDA:203,20,0,0
6742
+ BRDA:203,20,1,0
6743
+ BRDA:212,21,0,0
6744
+ BRDA:212,21,1,0
6745
+ BRDA:220,22,0,0
6746
+ BRDA:220,22,1,0
6747
+ BRDA:221,23,0,0
6748
+ BRDA:221,23,1,0
6749
+ BRDA:235,24,0,0
6750
+ BRDA:235,24,1,0
6751
+ BRDA:235,25,0,0
6752
+ BRDA:235,25,1,0
6753
+ BRDA:240,26,0,0
6754
+ BRDA:240,26,1,0
6755
+ BRDA:243,27,0,0
6756
+ BRDA:243,27,1,0
6757
+ BRDA:255,28,0,0
6758
+ BRDA:255,28,1,5
6759
+ BRDA:266,29,0,5
6760
+ BRDA:266,29,1,0
6761
+ BRDA:278,30,0,0
6762
+ BRDA:278,30,1,5
6763
+ BRDA:278,31,0,5
6764
+ BRDA:278,31,1,0
6765
+ BRDA:286,32,0,0
6766
+ BRDA:286,32,1,5
6767
+ BRDA:286,33,0,5
6768
+ BRDA:286,33,1,0
6769
+ BRDA:300,34,0,0
6770
+ BRDA:300,34,1,5
6771
+ BRDA:302,35,0,0
6772
+ BRDA:302,35,1,0
6773
+ BRDA:310,36,0,0
6774
+ BRDA:310,36,1,5
6775
+ BRDA:310,37,0,5
6776
+ BRDA:310,37,1,5
6777
+ BRF:75
6778
+ BRH:20
6744
6779
  end_of_record
6745
6780
  TN:
6746
6781
  SF:src/threads/query.js
@@ -185,5 +185,9 @@ exports.AutomationErrors = {
185
185
  MAX_ITERATIONS: "MAX_ITERATIONS_REACHED",
186
186
  FAILURE_CONDITION: "FAILURE_CONDITION_MET",
187
187
  };
188
+ exports.LoopStepTypes = {
189
+ ARRAY: "Array",
190
+ STRING: "String",
191
+ };
188
192
  // pass through the list from the auth/core lib
189
193
  exports.ObjectStoreBuckets = ObjectStoreBuckets;
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/server",
3
3
  "email": "hi@budibase.com",
4
- "version": "1.0.151",
4
+ "version": "1.0.152",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -69,10 +69,10 @@
69
69
  "license": "GPL-3.0",
70
70
  "dependencies": {
71
71
  "@apidevtools/swagger-parser": "^10.0.3",
72
- "@budibase/backend-core": "^1.0.151",
73
- "@budibase/client": "^1.0.151",
74
- "@budibase/pro": "1.0.150",
75
- "@budibase/string-templates": "^1.0.151",
72
+ "@budibase/backend-core": "^1.0.152",
73
+ "@budibase/client": "^1.0.152",
74
+ "@budibase/pro": "1.0.152",
75
+ "@budibase/string-templates": "^1.0.152",
76
76
  "@bull-board/api": "^3.7.0",
77
77
  "@bull-board/koa": "^3.7.0",
78
78
  "@elastic/elasticsearch": "7.10.0",
@@ -18,13 +18,46 @@ const { DocumentTypes } = require("../db/utils");
18
18
  const { doInTenant } = require("@budibase/backend-core/tenancy");
19
19
  const { definitions: triggerDefs } = require("../automations/triggerInfo");
20
20
  const { doInAppContext, getAppDB } = require("@budibase/backend-core/context");
21
- const { AutomationErrors } = require("../constants");
21
+ const { AutomationErrors, LoopStepTypes } = require("../constants");
22
22
  const FILTER_STEP_ID = actions.ACTION_DEFINITIONS.FILTER.stepId;
23
23
  const LOOP_STEP_ID = actions.ACTION_DEFINITIONS.LOOP.stepId;
24
24
  const CRON_STEP_ID = triggerDefs.CRON.stepId;
25
25
  const STOPPED_STATUS = { success: false, status: "STOPPED" };
26
26
  const { cloneDeep } = require("lodash/fp");
27
27
  const env = require("../environment");
28
+ function typecastForLooping(loopStep, input) {
29
+ if (!input || !input.binding) {
30
+ return null;
31
+ }
32
+ const isArray = Array.isArray(input.binding), isString = typeof input.binding === "string";
33
+ try {
34
+ switch (loopStep.inputs.option) {
35
+ case LoopStepTypes.ARRAY:
36
+ if (isString) {
37
+ return JSON.parse(input.binding);
38
+ }
39
+ break;
40
+ case LoopStepTypes.STRING:
41
+ if (isArray) {
42
+ return input.binding.join(",");
43
+ }
44
+ break;
45
+ }
46
+ }
47
+ catch (err) {
48
+ throw new Error("Unable to cast to correct type");
49
+ }
50
+ return input.binding;
51
+ }
52
+ function getLoopIterations(loopStep, input) {
53
+ const binding = typecastForLooping(loopStep, input);
54
+ if (!loopStep || !binding) {
55
+ return 1;
56
+ }
57
+ return Array.isArray(binding)
58
+ ? binding.length
59
+ : automationUtils.stringSplit(binding).length;
60
+ }
28
61
  /**
29
62
  * The automation orchestrator is a class responsible for executing automations.
30
63
  * It handles the context of the automation and makes sure each step gets the correct
@@ -95,7 +128,7 @@ class Orchestrator {
95
128
  this._context.steps.splice(loopStepNumber, 0, Object.assign(Object.assign({}, output), { success: result.success, status: result.status }));
96
129
  }
97
130
  execute() {
98
- var _a, _b;
131
+ var _a;
99
132
  return __awaiter(this, void 0, void 0, function* () {
100
133
  let automation = this._automation;
101
134
  const app = yield this.getApp();
@@ -106,7 +139,7 @@ class Orchestrator {
106
139
  let loopSteps = [];
107
140
  for (let step of automation.definition.steps) {
108
141
  stepCount++;
109
- let input;
142
+ let input, iterations = 1, iterationCount = 0;
110
143
  if (step.stepId === LOOP_STEP_ID) {
111
144
  loopStep = step;
112
145
  loopStepNumber = stepCount;
@@ -114,24 +147,18 @@ class Orchestrator {
114
147
  }
115
148
  if (loopStep) {
116
149
  input = yield processObject(loopStep.inputs, this._context);
150
+ iterations = getLoopIterations(loopStep, input);
117
151
  }
118
- let iterations = loopStep
119
- ? Array.isArray(input.binding)
120
- ? input.binding.length
121
- : automationUtils.stringSplit(input.binding).length
122
- : 1;
123
- let iterationCount = 0;
124
152
  for (let index = 0; index < iterations; index++) {
125
153
  let originalStepInput = cloneDeep(step.inputs);
126
154
  // Handle if the user has set a max iteration count or if it reaches the max limit set by us
127
155
  if (loopStep) {
128
156
  let newInput = yield processObject(loopStep.inputs, cloneDeep(this._context));
129
- newInput = automationUtils.cleanInputValues(newInput, loopStep.schema.inputs);
130
157
  let tempOutput = { items: loopSteps, iterations: iterationCount };
131
- if ((loopStep.inputs.option === "Array" &&
132
- !Array.isArray(newInput.binding)) ||
133
- (loopStep.inputs.option === "String" &&
134
- typeof newInput.binding !== "string")) {
158
+ try {
159
+ newInput.binding = typecastForLooping(loopStep, newInput);
160
+ }
161
+ catch (err) {
135
162
  this.updateContextAndOutput(loopStepNumber, step, tempOutput, {
136
163
  status: AutomationErrors.INCORRECT_TYPE,
137
164
  success: false,
@@ -179,16 +206,14 @@ class Orchestrator {
179
206
  break;
180
207
  }
181
208
  let isFailure = false;
182
- if (typeof ((_a = this._context.steps[loopStepNumber]) === null || _a === void 0 ? void 0 : _a.currentItem) === "object") {
183
- isFailure = Object.keys(this._context.steps[loopStepNumber].currentItem).some(value => {
184
- return (this._context.steps[loopStepNumber].currentItem[value] ===
185
- loopStep.inputs.failure);
209
+ const currentItem = (_a = this._context.steps[loopStepNumber]) === null || _a === void 0 ? void 0 : _a.currentItem;
210
+ if (currentItem && typeof currentItem === "object") {
211
+ isFailure = Object.keys(currentItem).some(value => {
212
+ return currentItem[value] === loopStep.inputs.failure;
186
213
  });
187
214
  }
188
215
  else {
189
- isFailure =
190
- ((_b = this._context.steps[loopStepNumber]) === null || _b === void 0 ? void 0 : _b.currentItem) ===
191
- loopStep.inputs.failure;
216
+ isFailure = currentItem && currentItem === loopStep.inputs.failure;
192
217
  }
193
218
  if (isFailure) {
194
219
  this.updateContextAndOutput(loopStepNumber, step, tempOutput, {