@budibase/server 0.9.136 → 0.9.140-alpha.0

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 (296) hide show
  1. package/builder/assets/discord.c14881e9.svg +10 -0
  2. package/builder/assets/{index.a0ab7774.js → index.0d1fa670.js} +35 -35
  3. package/builder/assets/{index.121692c9.css → index.79907e5c.css} +5 -5
  4. package/builder/assets/integromat.42212f11.png +0 -0
  5. package/builder/assets/slack.1e1f7cfb.svg +33 -0
  6. package/builder/assets/{vendor.7177f366.js → vendor.d39b3c1e.js} +2 -2
  7. package/builder/assets/zapier.3fbd8f5c.png +0 -0
  8. package/builder/index.html +3 -3
  9. package/coverage/clover.xml +2142 -2095
  10. package/coverage/coverage-final.json +120 -106
  11. package/coverage/lcov-report/api/controllers/analytics.js.html +3 -3
  12. package/coverage/lcov-report/api/controllers/apikeys.js.html +6 -6
  13. package/coverage/lcov-report/api/controllers/application.js.html +84 -84
  14. package/coverage/lcov-report/api/controllers/auth.js.html +6 -6
  15. package/coverage/lcov-report/api/controllers/automation.js.html +182 -356
  16. package/coverage/lcov-report/api/controllers/backup.js.html +3 -3
  17. package/coverage/lcov-report/api/controllers/component.js.html +5 -5
  18. package/coverage/lcov-report/api/controllers/datasource.js.html +12 -12
  19. package/coverage/lcov-report/api/controllers/dev.js.html +15 -15
  20. package/coverage/lcov-report/api/controllers/hosting.js.html +8 -8
  21. package/coverage/lcov-report/api/controllers/index.html +47 -32
  22. package/coverage/lcov-report/api/controllers/integration.js.html +4 -4
  23. package/coverage/lcov-report/api/controllers/layout.js.html +6 -6
  24. package/coverage/lcov-report/api/controllers/metadata.js.html +218 -0
  25. package/coverage/lcov-report/api/controllers/permission.js.html +14 -14
  26. package/coverage/lcov-report/api/controllers/query.js.html +17 -23
  27. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  28. package/coverage/lcov-report/api/controllers/routing.js.html +9 -9
  29. package/coverage/lcov-report/api/controllers/row/external.js.html +15 -15
  30. package/coverage/lcov-report/api/controllers/row/index.html +29 -44
  31. package/coverage/lcov-report/api/controllers/row/index.js.html +48 -45
  32. package/coverage/lcov-report/api/controllers/row/internal.js.html +159 -126
  33. package/coverage/lcov-report/api/controllers/row/utils.js.html +17 -17
  34. package/coverage/lcov-report/api/controllers/screen.js.html +7 -7
  35. package/coverage/lcov-report/api/controllers/script.js.html +5 -5
  36. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  37. package/coverage/lcov-report/api/controllers/table/index.js.html +40 -40
  38. package/coverage/lcov-report/api/controllers/table/utils.js.html +48 -48
  39. package/coverage/lcov-report/api/controllers/templates.js.html +5 -5
  40. package/coverage/lcov-report/api/controllers/user.js.html +14 -11
  41. package/coverage/lcov-report/api/controllers/view/exporters.js.html +3 -3
  42. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/index.js.html +9 -9
  44. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +6 -6
  45. package/coverage/lcov-report/api/controllers/webhook.js.html +14 -14
  46. package/coverage/lcov-report/api/index.html +1 -1
  47. package/coverage/lcov-report/api/index.js.html +23 -23
  48. package/coverage/lcov-report/api/routes/analytics.js.html +6 -6
  49. package/coverage/lcov-report/api/routes/apikeys.js.html +8 -8
  50. package/coverage/lcov-report/api/routes/application.js.html +8 -8
  51. package/coverage/lcov-report/api/routes/auth.js.html +6 -6
  52. package/coverage/lcov-report/api/routes/automation.js.html +41 -26
  53. package/coverage/lcov-report/api/routes/backup.js.html +8 -8
  54. package/coverage/lcov-report/api/routes/component.js.html +8 -8
  55. package/coverage/lcov-report/api/routes/datasource.js.html +13 -13
  56. package/coverage/lcov-report/api/routes/deploy.js.html +8 -8
  57. package/coverage/lcov-report/api/routes/dev.js.html +11 -11
  58. package/coverage/lcov-report/api/routes/hosting.js.html +8 -8
  59. package/coverage/lcov-report/api/routes/index.html +24 -9
  60. package/coverage/lcov-report/api/routes/index.js.html +36 -30
  61. package/coverage/lcov-report/api/routes/integration.js.html +8 -8
  62. package/coverage/lcov-report/api/routes/layout.js.html +8 -8
  63. package/coverage/lcov-report/api/routes/metadata.js.html +194 -0
  64. package/coverage/lcov-report/api/routes/permission.js.html +12 -12
  65. package/coverage/lcov-report/api/routes/query.js.html +13 -13
  66. package/coverage/lcov-report/api/routes/role.js.html +12 -12
  67. package/coverage/lcov-report/api/routes/routing.js.html +8 -8
  68. package/coverage/lcov-report/api/routes/row.js.html +10 -10
  69. package/coverage/lcov-report/api/routes/screen.js.html +11 -11
  70. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/static.js.html +13 -16
  72. package/coverage/lcov-report/api/routes/table.js.html +12 -12
  73. package/coverage/lcov-report/api/routes/templates.js.html +8 -8
  74. package/coverage/lcov-report/api/routes/user.js.html +9 -9
  75. package/coverage/lcov-report/api/routes/view.js.html +11 -11
  76. package/coverage/lcov-report/api/routes/webhook.js.html +11 -11
  77. package/coverage/lcov-report/automations/actions.js.html +57 -117
  78. package/coverage/lcov-report/automations/automationUtils.js.html +7 -7
  79. package/coverage/lcov-report/automations/bullboard.js.html +49 -16
  80. package/coverage/lcov-report/automations/index.html +67 -67
  81. package/coverage/lcov-report/automations/index.js.html +27 -129
  82. package/coverage/lcov-report/automations/steps/bash.js.html +37 -16
  83. package/coverage/lcov-report/automations/steps/createRow.js.html +15 -15
  84. package/coverage/lcov-report/automations/steps/delay.js.html +48 -9
  85. package/coverage/lcov-report/automations/steps/deleteRow.js.html +14 -14
  86. package/coverage/lcov-report/automations/steps/discord.js.html +329 -0
  87. package/coverage/lcov-report/automations/steps/executeQuery.js.html +22 -34
  88. package/coverage/lcov-report/automations/steps/executeScript.js.html +21 -33
  89. package/coverage/lcov-report/automations/steps/filter.js.html +28 -25
  90. package/coverage/lcov-report/automations/steps/index.html +140 -65
  91. package/coverage/lcov-report/automations/steps/integromat.js.html +341 -0
  92. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +44 -38
  93. package/coverage/lcov-report/automations/steps/queryRows.js.html +437 -0
  94. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +13 -13
  95. package/coverage/lcov-report/automations/steps/serverLog.js.html +23 -11
  96. package/coverage/lcov-report/automations/steps/{sendgridEmail.js.html → slack.js.html} +58 -88
  97. package/coverage/lcov-report/automations/steps/updateRow.js.html +12 -12
  98. package/coverage/lcov-report/automations/steps/utils.js.html +188 -0
  99. package/coverage/lcov-report/automations/steps/zapier.js.html +332 -0
  100. package/coverage/lcov-report/automations/thread.js.html +81 -78
  101. package/coverage/lcov-report/automations/triggerInfo/app.js.html +173 -0
  102. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +173 -0
  103. package/coverage/lcov-report/automations/triggerInfo/index.html +201 -0
  104. package/coverage/lcov-report/automations/triggerInfo/index.js.html +125 -0
  105. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +176 -0
  106. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +200 -0
  107. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +200 -0
  108. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +188 -0
  109. package/coverage/lcov-report/automations/triggers.js.html +67 -838
  110. package/coverage/lcov-report/automations/utils.js.html +557 -0
  111. package/coverage/lcov-report/constants/index.html +5 -5
  112. package/coverage/lcov-report/constants/index.js.html +32 -17
  113. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  114. package/coverage/lcov-report/constants/screens.js.html +4 -4
  115. package/coverage/lcov-report/db/client.js.html +18 -18
  116. package/coverage/lcov-report/db/index.html +19 -19
  117. package/coverage/lcov-report/db/index.js.html +3 -3
  118. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +79 -79
  119. package/coverage/lcov-report/db/linkedRows/index.html +18 -18
  120. package/coverage/lcov-report/db/linkedRows/index.js.html +107 -149
  121. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +43 -43
  122. package/coverage/lcov-report/db/newid.js.html +4 -4
  123. package/coverage/lcov-report/db/utils.js.html +127 -76
  124. package/coverage/lcov-report/events/AutomationEmitter.js.html +7 -7
  125. package/coverage/lcov-report/events/index.html +1 -1
  126. package/coverage/lcov-report/events/index.js.html +6 -6
  127. package/coverage/lcov-report/events/utils.js.html +3 -3
  128. package/coverage/lcov-report/index.html +116 -101
  129. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  130. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  131. package/coverage/lcov-report/{automations/logic.js.html → middleware/appInfo.js.html} +35 -38
  132. package/coverage/lcov-report/middleware/authorized.js.html +16 -16
  133. package/coverage/lcov-report/middleware/builder.js.html +15 -15
  134. package/coverage/lcov-report/middleware/currentapp.js.html +33 -33
  135. package/coverage/lcov-report/middleware/index.html +23 -8
  136. package/coverage/lcov-report/middleware/joi-validator.js.html +6 -6
  137. package/coverage/lcov-report/middleware/resourceId.js.html +28 -28
  138. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  139. package/coverage/lcov-report/middleware/usageQuota.js.html +8 -8
  140. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  141. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  142. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  143. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  144. package/coverage/lcov-report/utilities/global.js.html +33 -33
  145. package/coverage/lcov-report/utilities/index.html +28 -28
  146. package/coverage/lcov-report/utilities/index.js.html +178 -25
  147. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +18 -18
  148. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  149. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  150. package/coverage/lcov-report/utilities/routing/index.js.html +6 -6
  151. package/coverage/lcov-report/utilities/rowProcessor/index.html +14 -14
  152. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +87 -51
  153. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +10 -10
  154. package/coverage/lcov-report/utilities/security.js.html +9 -9
  155. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  156. package/coverage/lcov-report/utilities/users.js.html +5 -5
  157. package/coverage/lcov-report/utilities/workerRequests.js.html +52 -52
  158. package/coverage/lcov.info +3250 -3213
  159. package/dist/api/controllers/automation.js +60 -127
  160. package/dist/api/controllers/deploy/index.js +17 -1
  161. package/dist/api/controllers/metadata.js +49 -0
  162. package/dist/api/controllers/query.js +0 -2
  163. package/dist/api/controllers/row/ExternalRequest.js +1 -1
  164. package/dist/api/controllers/row/index.js +1 -0
  165. package/dist/api/controllers/row/internal.js +33 -23
  166. package/dist/api/controllers/static/index.js +1 -28
  167. package/dist/api/controllers/static/templates/BudibaseApp.svelte +4 -1
  168. package/dist/api/controllers/user.js +1 -1
  169. package/dist/api/routes/automation.js +4 -5
  170. package/dist/api/routes/index.js +2 -0
  171. package/dist/api/routes/metadata.js +13 -0
  172. package/dist/api/routes/static.js +0 -1
  173. package/dist/api/routes/tests/utilities/TestFunctions.js +13 -0
  174. package/dist/app.js +1 -1
  175. package/dist/automations/actions.js +29 -46
  176. package/dist/automations/bullboard.js +11 -2
  177. package/dist/automations/index.js +11 -48
  178. package/dist/automations/steps/bash.js +12 -6
  179. package/dist/automations/steps/createRow.js +5 -5
  180. package/dist/automations/steps/delay.js +16 -3
  181. package/dist/automations/steps/deleteRow.js +5 -5
  182. package/dist/automations/steps/discord.js +91 -0
  183. package/dist/automations/steps/executeQuery.js +12 -15
  184. package/dist/automations/steps/executeScript.js +12 -15
  185. package/dist/automations/steps/filter.js +19 -18
  186. package/dist/automations/steps/integromat.js +94 -0
  187. package/dist/automations/steps/outgoingWebhook.js +19 -20
  188. package/dist/automations/steps/queryRows.js +129 -0
  189. package/dist/automations/steps/sendSmtpEmail.js +4 -4
  190. package/dist/automations/steps/serverLog.js +7 -3
  191. package/dist/automations/steps/slack.js +73 -0
  192. package/dist/automations/steps/updateRow.js +4 -4
  193. package/dist/automations/steps/utils.js +46 -0
  194. package/dist/automations/steps/zapier.js +91 -0
  195. package/dist/automations/tests/utilities/index.js +2 -12
  196. package/dist/automations/thread.js +23 -25
  197. package/dist/automations/triggerInfo/app.js +32 -0
  198. package/dist/automations/triggerInfo/cron.js +32 -0
  199. package/dist/automations/triggerInfo/index.js +15 -0
  200. package/dist/automations/triggerInfo/rowDeleted.js +33 -0
  201. package/dist/automations/triggerInfo/rowSaved.js +41 -0
  202. package/dist/automations/triggerInfo/rowUpdated.js +41 -0
  203. package/dist/automations/triggerInfo/webhook.js +37 -0
  204. package/dist/automations/triggers.js +27 -285
  205. package/dist/automations/utils.js +143 -0
  206. package/dist/constants/index.js +4 -0
  207. package/dist/db/linkedRows/index.js +20 -34
  208. package/dist/db/utils.js +14 -1
  209. package/dist/environment.js +2 -1
  210. package/dist/integrations/mysql.js +14 -2
  211. package/dist/middleware/appInfo.js +17 -0
  212. package/dist/middleware/usageQuota.js +1 -1
  213. package/dist/package.json +12 -11
  214. package/dist/tsconfig.tsbuildinfo +1 -1
  215. package/dist/utilities/appDirectoryTemplate/package.json +1 -1
  216. package/dist/utilities/fileSystem/clientLibrary.js +2 -2
  217. package/dist/utilities/fileSystem/index.js +2 -27
  218. package/dist/utilities/index.js +54 -0
  219. package/dist/utilities/redis.js +16 -1
  220. package/dist/utilities/rowProcessor/index.js +7 -4
  221. package/package.json +13 -12
  222. package/scripts/jestSetup.js +1 -0
  223. package/scripts/selfhost.js +8 -0
  224. package/src/api/controllers/automation.js +87 -145
  225. package/src/api/controllers/deploy/index.js +23 -1
  226. package/src/api/controllers/metadata.js +46 -0
  227. package/src/api/controllers/query.js +0 -2
  228. package/src/api/controllers/row/ExternalRequest.ts +1 -1
  229. package/src/api/controllers/row/index.js +1 -0
  230. package/src/api/controllers/row/internal.js +34 -23
  231. package/src/api/controllers/static/index.js +1 -39
  232. package/src/api/controllers/static/templates/BudibaseApp.svelte +4 -1
  233. package/src/api/controllers/user.js +1 -0
  234. package/src/api/routes/automation.js +16 -11
  235. package/src/api/routes/index.js +2 -0
  236. package/src/api/routes/metadata.js +38 -0
  237. package/src/api/routes/static.js +0 -1
  238. package/src/api/routes/tests/automation.spec.js +4 -26
  239. package/src/api/routes/tests/metadata.spec.js +65 -0
  240. package/src/api/routes/tests/utilities/TestFunctions.js +14 -0
  241. package/src/app.ts +1 -1
  242. package/src/automations/actions.js +29 -49
  243. package/src/automations/bullboard.js +13 -2
  244. package/src/automations/index.js +11 -45
  245. package/src/automations/steps/bash.js +13 -6
  246. package/src/automations/steps/createRow.js +5 -5
  247. package/src/automations/steps/delay.js +16 -3
  248. package/src/automations/steps/deleteRow.js +5 -5
  249. package/src/automations/steps/discord.js +83 -0
  250. package/src/automations/steps/executeQuery.js +12 -16
  251. package/src/automations/steps/executeScript.js +12 -16
  252. package/src/automations/steps/filter.js +19 -18
  253. package/src/automations/steps/integromat.js +87 -0
  254. package/src/automations/steps/outgoingWebhook.js +20 -18
  255. package/src/automations/steps/queryRows.js +119 -0
  256. package/src/automations/steps/sendSmtpEmail.js +4 -4
  257. package/src/automations/steps/serverLog.js +7 -3
  258. package/src/automations/steps/slack.js +64 -0
  259. package/src/automations/steps/updateRow.js +4 -4
  260. package/src/automations/steps/utils.js +36 -0
  261. package/src/automations/steps/zapier.js +84 -0
  262. package/src/automations/tests/automation.spec.js +4 -67
  263. package/src/automations/tests/delay.spec.js +2 -2
  264. package/src/automations/tests/filter.spec.js +14 -14
  265. package/src/automations/tests/queryRows.spec.js +51 -0
  266. package/src/automations/tests/utilities/index.js +2 -13
  267. package/src/automations/thread.js +27 -26
  268. package/src/automations/triggerInfo/app.js +31 -0
  269. package/src/automations/triggerInfo/cron.js +31 -0
  270. package/src/automations/triggerInfo/index.js +15 -0
  271. package/src/automations/triggerInfo/rowDeleted.js +32 -0
  272. package/src/automations/triggerInfo/rowSaved.js +40 -0
  273. package/src/automations/triggerInfo/rowUpdated.js +40 -0
  274. package/src/automations/triggerInfo/webhook.js +36 -0
  275. package/src/automations/triggers.js +33 -290
  276. package/src/automations/utils.js +159 -0
  277. package/src/constants/index.js +5 -0
  278. package/src/db/linkedRows/index.js +21 -35
  279. package/src/db/tests/linkTests.spec.js +0 -12
  280. package/src/db/utils.js +17 -0
  281. package/src/environment.js +2 -1
  282. package/src/integrations/mysql.ts +15 -2
  283. package/src/middleware/appInfo.js +19 -0
  284. package/src/middleware/usageQuota.js +1 -1
  285. package/src/utilities/appDirectoryTemplate/package.json +1 -1
  286. package/src/utilities/fileSystem/clientLibrary.js +2 -2
  287. package/src/utilities/fileSystem/index.js +2 -36
  288. package/src/utilities/index.js +51 -0
  289. package/src/utilities/redis.js +18 -1
  290. package/src/utilities/rowProcessor/index.js +16 -4
  291. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +0 -1244
  292. package/dist/automations/logic.js +0 -17
  293. package/dist/automations/steps/sendgridEmail.js +0 -85
  294. package/src/automations/logic.js +0 -20
  295. package/src/automations/steps/sendgridEmail.js +0 -74
  296. package/src/automations/tests/sendEmail.spec.js +0 -36
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">89.17% </span>
26
+ <span class="strong">84.15% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>214/240</span>
28
+ <span class='fraction'>207/246</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">75.28% </span>
33
+ <span class="strong">73.2% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>67/89</span>
35
+ <span class='fraction'>71/97</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">92.59% </span>
40
+ <span class="strong">82.76% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>25/27</span>
42
+ <span class='fraction'>24/29</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">89.17% </span>
47
+ <span class="strong">84.15% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>214/240</span>
49
+ <span class='fraction'>207/246</span>
50
50
  </div>
51
51
 
52
52
 
@@ -74,17 +74,17 @@
74
74
  </thead>
75
75
  <tbody><tr>
76
76
  <td class="file high" data-value="actions.js"><a href="actions.js.html">actions.js</a></td>
77
- <td data-value="92" class="pic high">
78
- <div class="chart"><div class="cover-fill" style="width: 92%"></div><div class="cover-empty" style="width: 8%"></div></div>
77
+ <td data-value="100" class="pic high">
78
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
79
79
  </td>
80
- <td data-value="92" class="pct high">92%</td>
81
- <td data-value="25" class="abs high">23/25</td>
82
- <td data-value="75" class="pct medium">75%</td>
83
- <td data-value="4" class="abs medium">3/4</td>
84
80
  <td data-value="100" class="pct high">100%</td>
85
- <td data-value="1" class="abs high">1/1</td>
86
- <td data-value="92" class="pct high">92%</td>
87
- <td data-value="25" class="abs high">23/25</td>
81
+ <td data-value="19" class="abs high">19/19</td>
82
+ <td data-value="100" class="pct high">100%</td>
83
+ <td data-value="0" class="abs high">0/0</td>
84
+ <td data-value="100" class="pct high">100%</td>
85
+ <td data-value="0" class="abs high">0/0</td>
86
+ <td data-value="100" class="pct high">100%</td>
87
+ <td data-value="19" class="abs high">19/19</td>
88
88
  </tr>
89
89
 
90
90
  <tr>
@@ -103,78 +103,78 @@
103
103
  </tr>
104
104
 
105
105
  <tr>
106
- <td class="file low" data-value="bullboard.js"><a href="bullboard.js.html">bullboard.js</a></td>
107
- <td data-value="42.86" class="pic low">
108
- <div class="chart"><div class="cover-fill" style="width: 42%"></div><div class="cover-empty" style="width: 58%"></div></div>
106
+ <td class="file medium" data-value="bullboard.js"><a href="bullboard.js.html">bullboard.js</a></td>
107
+ <td data-value="61.9" class="pic medium">
108
+ <div class="chart"><div class="cover-fill" style="width: 61%"></div><div class="cover-empty" style="width: 39%"></div></div>
109
109
  </td>
110
- <td data-value="42.86" class="pct low">42.86%</td>
111
- <td data-value="14" class="abs low">6/14</td>
112
- <td data-value="100" class="pct high">100%</td>
113
- <td data-value="0" class="abs high">0/0</td>
110
+ <td data-value="61.9" class="pct medium">61.9%</td>
111
+ <td data-value="21" class="abs medium">13/21</td>
112
+ <td data-value="75" class="pct medium">75%</td>
113
+ <td data-value="4" class="abs medium">3/4</td>
114
114
  <td data-value="0" class="pct low">0%</td>
115
115
  <td data-value="1" class="abs low">0/1</td>
116
- <td data-value="42.86" class="pct low">42.86%</td>
117
- <td data-value="14" class="abs low">6/14</td>
116
+ <td data-value="61.9" class="pct medium">61.9%</td>
117
+ <td data-value="21" class="abs medium">13/21</td>
118
118
  </tr>
119
119
 
120
120
  <tr>
121
121
  <td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
122
- <td data-value="100" class="pic high">
123
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
122
+ <td data-value="87.5" class="pic high">
123
+ <div class="chart"><div class="cover-fill" style="width: 87%"></div><div class="cover-empty" style="width: 13%"></div></div>
124
124
  </td>
125
+ <td data-value="87.5" class="pct high">87.5%</td>
126
+ <td data-value="8" class="abs high">7/8</td>
125
127
  <td data-value="100" class="pct high">100%</td>
126
- <td data-value="26" class="abs high">26/26</td>
127
- <td data-value="100" class="pct high">100%</td>
128
- <td data-value="6" class="abs high">6/6</td>
129
- <td data-value="100" class="pct high">100%</td>
130
- <td data-value="6" class="abs high">6/6</td>
131
- <td data-value="100" class="pct high">100%</td>
132
- <td data-value="26" class="abs high">26/26</td>
128
+ <td data-value="0" class="abs high">0/0</td>
129
+ <td data-value="66.67" class="pct medium">66.67%</td>
130
+ <td data-value="3" class="abs medium">2/3</td>
131
+ <td data-value="87.5" class="pct high">87.5%</td>
132
+ <td data-value="8" class="abs high">7/8</td>
133
133
  </tr>
134
134
 
135
135
  <tr>
136
- <td class="file high" data-value="logic.js"><a href="logic.js.html">logic.js</a></td>
137
- <td data-value="100" class="pic high">
138
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
136
+ <td class="file high" data-value="thread.js"><a href="thread.js.html">thread.js</a></td>
137
+ <td data-value="91.07" class="pic high">
138
+ <div class="chart"><div class="cover-fill" style="width: 91%"></div><div class="cover-empty" style="width: 9%"></div></div>
139
139
  </td>
140
+ <td data-value="91.07" class="pct high">91.07%</td>
141
+ <td data-value="56" class="abs high">51/56</td>
142
+ <td data-value="60" class="pct medium">60%</td>
143
+ <td data-value="15" class="abs medium">9/15</td>
140
144
  <td data-value="100" class="pct high">100%</td>
141
- <td data-value="8" class="abs high">8/8</td>
142
- <td data-value="50" class="pct medium">50%</td>
143
- <td data-value="2" class="abs medium">1/2</td>
144
- <td data-value="100" class="pct high">100%</td>
145
- <td data-value="1" class="abs high">1/1</td>
146
- <td data-value="100" class="pct high">100%</td>
147
- <td data-value="8" class="abs high">8/8</td>
145
+ <td data-value="7" class="abs high">7/7</td>
146
+ <td data-value="91.07" class="pct high">91.07%</td>
147
+ <td data-value="56" class="abs high">51/56</td>
148
148
  </tr>
149
149
 
150
150
  <tr>
151
- <td class="file high" data-value="thread.js"><a href="thread.js.html">thread.js</a></td>
152
- <td data-value="83.64" class="pic high">
153
- <div class="chart"><div class="cover-fill" style="width: 83%"></div><div class="cover-empty" style="width: 17%"></div></div>
151
+ <td class="file high" data-value="triggers.js"><a href="triggers.js.html">triggers.js</a></td>
152
+ <td data-value="95.56" class="pic high">
153
+ <div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
154
154
  </td>
155
- <td data-value="83.64" class="pct high">83.64%</td>
156
- <td data-value="55" class="abs high">46/55</td>
157
- <td data-value="45.45" class="pct low">45.45%</td>
158
- <td data-value="22" class="abs low">10/22</td>
155
+ <td data-value="95.56" class="pct high">95.56%</td>
156
+ <td data-value="45" class="abs high">43/45</td>
157
+ <td data-value="79.17" class="pct medium">79.17%</td>
158
+ <td data-value="24" class="abs medium">19/24</td>
159
159
  <td data-value="100" class="pct high">100%</td>
160
- <td data-value="6" class="abs high">6/6</td>
161
- <td data-value="83.64" class="pct high">83.64%</td>
162
- <td data-value="55" class="abs high">46/55</td>
160
+ <td data-value="7" class="abs high">7/7</td>
161
+ <td data-value="95.56" class="pct high">95.56%</td>
162
+ <td data-value="45" class="abs high">43/45</td>
163
163
  </tr>
164
164
 
165
165
  <tr>
166
- <td class="file high" data-value="triggers.js"><a href="triggers.js.html">triggers.js</a></td>
167
- <td data-value="93.51" class="pic high">
168
- <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
166
+ <td class="file medium" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
167
+ <td data-value="66.13" class="pic medium">
168
+ <div class="chart"><div class="cover-fill" style="width: 66%"></div><div class="cover-empty" style="width: 34%"></div></div>
169
169
  </td>
170
- <td data-value="93.51" class="pct high">93.51%</td>
171
- <td data-value="77" class="abs high">72/77</td>
172
- <td data-value="83.78" class="pct high">83.78%</td>
173
- <td data-value="37" class="abs high">31/37</td>
174
- <td data-value="88.89" class="pct high">88.89%</td>
175
- <td data-value="9" class="abs high">8/9</td>
176
- <td data-value="93.51" class="pct high">93.51%</td>
177
- <td data-value="77" class="abs high">72/77</td>
170
+ <td data-value="66.13" class="pct medium">66.13%</td>
171
+ <td data-value="62" class="abs medium">41/62</td>
172
+ <td data-value="66.67" class="pct medium">66.67%</td>
173
+ <td data-value="36" class="abs medium">24/36</td>
174
+ <td data-value="62.5" class="pct medium">62.5%</td>
175
+ <td data-value="8" class="abs medium">5/8</td>
176
+ <td data-value="66.13" class="pct medium">66.13%</td>
177
+ <td data-value="62" class="abs medium">41/62</td>
178
178
  </tr>
179
179
 
180
180
  </tbody>
@@ -185,7 +185,7 @@
185
185
  <div class='footer quiet pad2 space-top1 center small'>
186
186
  Code coverage generated by
187
187
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
188
- at Tue Sep 21 2021 13:44:17 GMT+0000 (Coordinated Universal Time)
188
+ at Tue Sep 21 2021 20:54:54 GMT+0000 (Coordinated Universal Time)
189
189
  </div>
190
190
  </div>
191
191
  <script src="../prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">87.5% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>26/26</span>
28
+ <span class='fraction'>7/8</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>6/6</span>
35
+ <span class='fraction'>0/0</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">66.67% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>6/6</span>
42
+ <span class='fraction'>2/3</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">87.5% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>26/26</span>
49
+ <span class='fraction'>7/8</span>
50
50
  </div>
51
51
 
52
52
 
@@ -74,142 +74,40 @@
74
74
  <a name='L15'></a><a href='#L15'>15</a>
75
75
  <a name='L16'></a><a href='#L16'>16</a>
76
76
  <a name='L17'></a><a href='#L17'>17</a>
77
- <a name='L18'></a><a href='#L18'>18</a>
78
- <a name='L19'></a><a href='#L19'>19</a>
79
- <a name='L20'></a><a href='#L20'>20</a>
80
- <a name='L21'></a><a href='#L21'>21</a>
81
- <a name='L22'></a><a href='#L22'>22</a>
82
- <a name='L23'></a><a href='#L23'>23</a>
83
- <a name='L24'></a><a href='#L24'>24</a>
84
- <a name='L25'></a><a href='#L25'>25</a>
85
- <a name='L26'></a><a href='#L26'>26</a>
86
- <a name='L27'></a><a href='#L27'>27</a>
87
- <a name='L28'></a><a href='#L28'>28</a>
88
- <a name='L29'></a><a href='#L29'>29</a>
89
- <a name='L30'></a><a href='#L30'>30</a>
90
- <a name='L31'></a><a href='#L31'>31</a>
91
- <a name='L32'></a><a href='#L32'>32</a>
92
- <a name='L33'></a><a href='#L33'>33</a>
93
- <a name='L34'></a><a href='#L34'>34</a>
94
- <a name='L35'></a><a href='#L35'>35</a>
95
- <a name='L36'></a><a href='#L36'>36</a>
96
- <a name='L37'></a><a href='#L37'>37</a>
97
- <a name='L38'></a><a href='#L38'>38</a>
98
- <a name='L39'></a><a href='#L39'>39</a>
99
- <a name='L40'></a><a href='#L40'>40</a>
100
- <a name='L41'></a><a href='#L41'>41</a>
101
- <a name='L42'></a><a href='#L42'>42</a>
102
- <a name='L43'></a><a href='#L43'>43</a>
103
- <a name='L44'></a><a href='#L44'>44</a>
104
- <a name='L45'></a><a href='#L45'>45</a>
105
- <a name='L46'></a><a href='#L46'>46</a>
106
- <a name='L47'></a><a href='#L47'>47</a>
107
- <a name='L48'></a><a href='#L48'>48</a>
108
- <a name='L49'></a><a href='#L49'>49</a>
109
- <a name='L50'></a><a href='#L50'>50</a>
110
- <a name='L51'></a><a href='#L51'>51</a>
111
- <a name='L52'></a><a href='#L52'>52</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
112
- <span class="cline-any cline-yes">23x</span>
113
- <span class="cline-any cline-yes">23x</span>
114
- <span class="cline-any cline-yes">23x</span>
115
- <span class="cline-any cline-yes">23x</span>
116
- <span class="cline-any cline-yes">23x</span>
117
- <span class="cline-any cline-neutral">&nbsp;</span>
118
- <span class="cline-any cline-yes">23x</span>
119
- <span class="cline-any cline-neutral">&nbsp;</span>
120
- <span class="cline-any cline-neutral">&nbsp;</span>
121
- <span class="cline-any cline-yes">2x</span>
122
- <span class="cline-any cline-yes">2x</span>
123
- <span class="cline-any cline-yes">2x</span>
124
- <span class="cline-any cline-yes">1x</span>
125
- <span class="cline-any cline-neutral">&nbsp;</span>
126
- <span class="cline-any cline-yes">1x</span>
127
- <span class="cline-any cline-neutral">&nbsp;</span>
128
- <span class="cline-any cline-neutral">&nbsp;</span>
129
- <span class="cline-any cline-neutral">&nbsp;</span>
130
- <span class="cline-any cline-neutral">&nbsp;</span>
131
- <span class="cline-any cline-neutral">&nbsp;</span>
132
- <span class="cline-any cline-neutral">&nbsp;</span>
133
- <span class="cline-any cline-yes">2x</span>
134
- <span class="cline-any cline-yes">2x</span>
135
- <span class="cline-any cline-neutral">&nbsp;</span>
136
- <span class="cline-any cline-yes">2x</span>
137
- <span class="cline-any cline-yes">2x</span>
77
+ <a name='L18'></a><a href='#L18'>18</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
78
+ <span class="cline-any cline-yes">24x</span>
138
79
  <span class="cline-any cline-neutral">&nbsp;</span>
139
80
  <span class="cline-any cline-neutral">&nbsp;</span>
140
81
  <span class="cline-any cline-neutral">&nbsp;</span>
141
82
  <span class="cline-any cline-neutral">&nbsp;</span>
83
+ <span class="cline-any cline-yes">24x</span>
142
84
  <span class="cline-any cline-neutral">&nbsp;</span>
143
- <span class="cline-any cline-yes">23x</span>
144
- <span class="cline-any cline-yes">28x</span>
145
- <span class="cline-any cline-yes">13x</span>
146
- <span class="cline-any cline-yes">9x</span>
147
- <span class="cline-any cline-yes">9x</span>
148
- <span class="cline-any cline-yes">2x</span>
85
+ <span class="cline-any cline-yes">27x</span>
86
+ <span class="cline-any cline-yes">8x</span>
149
87
  <span class="cline-any cline-neutral">&nbsp;</span>
150
- <span class="cline-any cline-yes">9x</span>
151
- <span class="cline-any cline-yes">2x</span>
152
88
  <span class="cline-any cline-neutral">&nbsp;</span>
153
- <span class="cline-any cline-yes">7x</span>
154
89
  <span class="cline-any cline-neutral">&nbsp;</span>
90
+ <span class="cline-any cline-yes">24x</span>
91
+ <span class="cline-any cline-no">&nbsp;</span>
155
92
  <span class="cline-any cline-neutral">&nbsp;</span>
156
- <span class="cline-any cline-yes">1x</span>
157
- <span class="cline-any cline-neutral">&nbsp;</span>
158
- <span class="cline-any cline-neutral">&nbsp;</span>
159
- <span class="cline-any cline-neutral">&nbsp;</span>
160
- <span class="cline-any cline-neutral">&nbsp;</span>
161
- <span class="cline-any cline-neutral">&nbsp;</span>
162
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const triggers = require("./triggers")
163
- const actions = require("./actions")
164
- const env = require("../environment")
165
- const workerFarm = require("worker-farm")
166
- const singleThread = require("./thread")
167
- const { getAPIKey, update, Properties } = require("../utilities/usageQuota")
168
- &nbsp;
169
- let workers = workerFarm(require.resolve("./thread"))
170
- &nbsp;
171
- function runWorker(job) {
172
- return new Promise((resolve, reject) =&gt; {
173
- workers(job, err =&gt; {
174
- if (err) {
175
- reject(err)
176
- } else {
177
- resolve()
178
- }
179
- })
180
- })
181
- }
182
- &nbsp;
183
- async function updateQuota(automation) {
184
- const appId = automation.appId
185
- const apiObj = await getAPIKey(appId)
186
- // this will fail, causing automation to escape if limits reached
187
- await update(apiObj.apiKey, Properties.AUTOMATION, 1)
188
- return apiObj.apiKey
189
- }
93
+ <span class="cline-any cline-yes">24x</span>
94
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { processEvent } = require("./utils")
95
+ const { queue } = require("./bullboard")
190
96
  &nbsp;
191
97
  /**
192
98
  * This module is built purely to kick off the worker farm and manage the inputs/outputs
193
99
  */
194
- module.exports.init = async function () {
195
- await actions.init()
196
- triggers.automationQueue.process(async job =&gt; {
197
- try {
198
- if (env.USE_QUOTAS) {
199
- job.data.automation.apiKey = await updateQuota(job.data.automation)
200
- }
201
- if (env.isProd()) {
202
- await runWorker(job)
203
- } else {
204
- await singleThread(job)
205
- }
206
- } catch (err) {
207
- console.error(
208
- `${job.data.automation.appId} automation ${job.data.automation._id} was unable to run - ${err}`
209
- )
210
- }
100
+ exports.init = function () {
101
+ // this promise will not complete
102
+ return queue.process(async job =&gt; {
103
+ await processEvent(job)
211
104
  })
212
105
  }
106
+ &nbsp;
107
+ exports.getQueues = <span class="fstat-no" title="function not covered" >()</span> =&gt; {
108
+ <span class="cstat-no" title="statement not covered" > return [queue]</span>
109
+ }
110
+ exports.queue = queue
213
111
  &nbsp;</pre></td></tr></table></pre>
214
112
 
215
113
  <div class='push'></div><!-- for sticky footer -->
@@ -217,7 +115,7 @@ module.exports.init = async function () {
217
115
  <div class='footer quiet pad2 space-top1 center small'>
218
116
  Code coverage generated by
219
117
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
220
- at Tue Sep 21 2021 13:44:17 GMT+0000 (Coordinated Universal Time)
118
+ at Tue Sep 21 2021 20:54:54 GMT+0000 (Coordinated Universal Time)
221
119
  </div>
222
120
  </div>
223
121
  <script src="../prettify.js"></script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">28.57% </span>
26
+ <span class="strong">26.67% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>4/14</span>
28
+ <span class='fraction'>4/15</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">28.57% </span>
47
+ <span class="strong">26.67% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>4/14</span>
49
+ <span class='fraction'>4/15</span>
50
50
  </div>
51
51
 
52
52
 
@@ -119,10 +119,17 @@
119
119
  <a name='L60'></a><a href='#L60'>60</a>
120
120
  <a name='L61'></a><a href='#L61'>61</a>
121
121
  <a name='L62'></a><a href='#L62'>62</a>
122
- <a name='L63'></a><a href='#L63'>63</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
123
- <span class="cline-any cline-yes">33x</span>
122
+ <a name='L63'></a><a href='#L63'>63</a>
123
+ <a name='L64'></a><a href='#L64'>64</a>
124
+ <a name='L65'></a><a href='#L65'>65</a>
125
+ <a name='L66'></a><a href='#L66'>66</a>
126
+ <a name='L67'></a><a href='#L67'>67</a>
127
+ <a name='L68'></a><a href='#L68'>68</a>
128
+ <a name='L69'></a><a href='#L69'>69</a>
129
+ <a name='L70'></a><a href='#L70'>70</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
130
+ <span class="cline-any cline-yes">34x</span>
124
131
  <span class="cline-any cline-neutral">&nbsp;</span>
125
- <span class="cline-any cline-yes">33x</span>
132
+ <span class="cline-any cline-yes">34x</span>
126
133
  <span class="cline-any cline-neutral">&nbsp;</span>
127
134
  <span class="cline-any cline-neutral">&nbsp;</span>
128
135
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -153,7 +160,12 @@
153
160
  <span class="cline-any cline-neutral">&nbsp;</span>
154
161
  <span class="cline-any cline-neutral">&nbsp;</span>
155
162
  <span class="cline-any cline-neutral">&nbsp;</span>
156
- <span class="cline-any cline-yes">33x</span>
163
+ <span class="cline-any cline-neutral">&nbsp;</span>
164
+ <span class="cline-any cline-neutral">&nbsp;</span>
165
+ <span class="cline-any cline-neutral">&nbsp;</span>
166
+ <span class="cline-any cline-neutral">&nbsp;</span>
167
+ <span class="cline-any cline-neutral">&nbsp;</span>
168
+ <span class="cline-any cline-yes">34x</span>
157
169
  <span class="cline-any cline-no">&nbsp;</span>
158
170
  <span class="cline-any cline-no">&nbsp;</span>
159
171
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -166,15 +178,17 @@
166
178
  <span class="cline-any cline-neutral">&nbsp;</span>
167
179
  <span class="cline-any cline-no">&nbsp;</span>
168
180
  <span class="cline-any cline-no">&nbsp;</span>
181
+ <span class="cline-any cline-no">&nbsp;</span>
169
182
  <span class="cline-any cline-neutral">&nbsp;</span>
170
183
  <span class="cline-any cline-no">&nbsp;</span>
184
+ <span class="cline-any cline-no">&nbsp;</span>
171
185
  <span class="cline-any cline-neutral">&nbsp;</span>
172
186
  <span class="cline-any cline-neutral">&nbsp;</span>
173
187
  <span class="cline-any cline-no">&nbsp;</span>
174
188
  <span class="cline-any cline-neutral">&nbsp;</span>
175
189
  <span class="cline-any cline-neutral">&nbsp;</span>
176
190
  <span class="cline-any cline-neutral">&nbsp;</span>
177
- <span class="cline-any cline-no">&nbsp;</span>
191
+ <span class="cline-any cline-neutral">&nbsp;</span>
178
192
  <span class="cline-any cline-no">&nbsp;</span>
179
193
  <span class="cline-any cline-neutral">&nbsp;</span>
180
194
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -184,12 +198,13 @@
184
198
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { execSync } = require("child_process")
185
199
  const { processStringSync } = require("@budibase/string-templates")
186
200
  &nbsp;
187
- module.exports.definition = {
201
+ exports.definition = {
188
202
  name: "Bash Scripting",
189
203
  tagline: "Execute a bash command",
190
- icon: "ri-terminal-box-line",
204
+ icon: "JourneyEvent",
191
205
  description: "Run a bash script",
192
206
  type: "ACTION",
207
+ internal: true,
193
208
  stepId: "EXECUTE_BASH",
194
209
  inputs: {},
195
210
  schema: {
@@ -207,7 +222,11 @@ module.exports.definition = {
207
222
  properties: {
208
223
  stdout: {
209
224
  type: "string",
210
- description: "Standard output of your bash command or script.",
225
+ description: "Standard output of your bash command or script",
226
+ },
227
+ success: {
228
+ type: "boolean",
229
+ description: "Whether the command was successful",
211
230
  },
212
231
  },
213
232
  },
@@ -215,7 +234,7 @@ module.exports.definition = {
215
234
  },
216
235
  }
217
236
  &nbsp;
218
- module.exports.run = <span class="fstat-no" title="function not covered" >as</span>ync function ({ inputs, context }) {
237
+ exports.run = <span class="fstat-no" title="function not covered" >as</span>ync function ({ inputs, context }) {
219
238
  <span class="cstat-no" title="statement not covered" > if (inputs.code == null) {</span>
220
239
  <span class="cstat-no" title="statement not covered" > return {</span>
221
240
  stdout: "Budibase bash automation failed: Invalid inputs",
@@ -225,18 +244,20 @@ module.exports.run = <span class="fstat-no" title="function not covered" >as</sp
225
244
  <span class="cstat-no" title="statement not covered" > try {</span>
226
245
  const command = <span class="cstat-no" title="statement not covered" >processStringSync(inputs.code, context)</span>
227
246
  &nbsp;
228
- let stdout
247
+ let stdout,
248
+ success = <span class="cstat-no" title="statement not covered" >true</span>
229
249
  <span class="cstat-no" title="statement not covered" > try {</span>
230
250
  <span class="cstat-no" title="statement not covered" > stdout = execSync(command, { timeout: 500 }).toString()</span>
231
251
  } catch (err) {
232
252
  <span class="cstat-no" title="statement not covered" > stdout = err.message</span>
253
+ <span class="cstat-no" title="statement not covered" > success = false</span>
233
254
  }
234
255
  &nbsp;
235
256
  <span class="cstat-no" title="statement not covered" > return {</span>
236
257
  stdout,
258
+ success,
237
259
  }
238
260
  } catch (err) {
239
- <span class="cstat-no" title="statement not covered" > console.error(err)</span>
240
261
  <span class="cstat-no" title="statement not covered" > return {</span>
241
262
  success: false,
242
263
  response: err,
@@ -250,7 +271,7 @@ module.exports.run = <span class="fstat-no" title="function not covered" >as</sp
250
271
  <div class='footer quiet pad2 space-top1 center small'>
251
272
  Code coverage generated by
252
273
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
253
- at Tue Sep 21 2021 13:44:17 GMT+0000 (Coordinated Universal Time)
274
+ at Tue Sep 21 2021 20:54:54 GMT+0000 (Coordinated Universal Time)
254
275
  </div>
255
276
  </div>
256
277
  <script src="../../prettify.js"></script>