@budibase/server 1.0.91 → 1.0.94

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 (189) hide show
  1. package/builder/assets/{index.afc77e6b.js → index.305b7738.js} +1 -1
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +217 -207
  4. package/coverage/coverage-final.json +3 -3
  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/application.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/index.html +1 -1
  16. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  22. package/coverage/lcov-report/api/controllers/query/index.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  38. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/table/utils.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  45. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  46. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  47. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  48. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  49. package/coverage/lcov-report/api/index.html +1 -1
  50. package/coverage/lcov-report/api/index.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/index.html +1 -1
  63. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  80. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  82. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  83. package/coverage/lcov-report/automations/actions.js.html +1 -1
  84. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  85. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  86. package/coverage/lcov-report/automations/index.html +11 -11
  87. package/coverage/lcov-report/automations/index.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/index.html +1 -1
  97. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  99. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  100. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  101. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  102. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  103. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  104. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  105. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  106. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  107. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  108. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  111. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  112. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  113. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  114. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  115. package/coverage/lcov-report/automations/utils.js.html +9 -6
  116. package/coverage/lcov-report/constants/index.html +1 -1
  117. package/coverage/lcov-report/constants/index.js.html +1 -1
  118. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  119. package/coverage/lcov-report/constants/screens.js.html +1 -1
  120. package/coverage/lcov-report/db/client.js.html +1 -1
  121. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  122. package/coverage/lcov-report/db/index.html +1 -1
  123. package/coverage/lcov-report/db/index.js.html +1 -1
  124. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  125. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  126. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  127. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  128. package/coverage/lcov-report/db/newid.js.html +1 -1
  129. package/coverage/lcov-report/db/utils.js.html +1 -1
  130. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  131. package/coverage/lcov-report/events/index.html +1 -1
  132. package/coverage/lcov-report/events/index.js.html +1 -1
  133. package/coverage/lcov-report/events/utils.js.html +1 -1
  134. package/coverage/lcov-report/index.html +24 -24
  135. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  136. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  137. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  138. package/coverage/lcov-report/middleware/authorized.js.html +1 -1
  139. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  140. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  141. package/coverage/lcov-report/middleware/index.html +1 -1
  142. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  143. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  144. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  145. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  146. package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
  147. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  148. package/coverage/lcov-report/threads/automation.js.html +9 -30
  149. package/coverage/lcov-report/threads/index.html +26 -26
  150. package/coverage/lcov-report/threads/index.js.html +1 -1
  151. package/coverage/lcov-report/threads/query.js.html +111 -15
  152. package/coverage/lcov-report/threads/utils.js.html +1 -1
  153. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  154. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  155. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  156. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  157. package/coverage/lcov-report/utilities/global.js.html +1 -1
  158. package/coverage/lcov-report/utilities/index.html +1 -1
  159. package/coverage/lcov-report/utilities/index.js.html +1 -1
  160. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  161. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  162. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  163. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  164. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  165. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  166. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  167. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  168. package/coverage/lcov-report/utilities/security.js.html +1 -1
  169. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  170. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  171. package/coverage/lcov-report/utilities/usageQuota/index.js.html +1 -1
  172. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  173. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  174. package/coverage/lcov-report/utilities/users.js.html +1 -1
  175. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  176. package/coverage/lcov.info +376 -364
  177. package/dist/automations/utils.js +1 -0
  178. package/dist/environment.js +1 -0
  179. package/dist/integrations/base/sql.js +5 -1
  180. package/dist/package.json +4 -4
  181. package/dist/threads/automation.js +1 -7
  182. package/dist/threads/query.js +32 -5
  183. package/dist/tsconfig.tsbuildinfo +1 -1
  184. package/package.json +5 -5
  185. package/src/automations/utils.js +1 -0
  186. package/src/environment.js +1 -0
  187. package/src/integrations/base/sql.ts +5 -1
  188. package/src/threads/automation.js +1 -8
  189. package/src/threads/query.js +37 -5
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">79.92% </span>
26
+ <span class="strong">76.12% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>223/279</span>
28
+ <span class='fraction'>220/289</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">63.02% </span>
33
+ <span class="strong">61.34% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>75/119</span>
35
+ <span class='fraction'>73/119</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">92.5% </span>
40
+ <span class="strong">90.24% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>37/40</span>
42
+ <span class='fraction'>37/41</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">80.29% </span>
47
+ <span class="strong">76.67% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>220/274</span>
49
+ <span class='fraction'>217/283</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="automation.js"><a href="automation.js.html">automation.js</a></td>
77
- <td data-value="84.41" class="pic high">
77
+ <td data-value="84.93" class="pic high">
78
78
  <div class="chart"><div class="cover-fill" style="width: 84%"></div><div class="cover-empty" style="width: 16%"></div></div>
79
79
  </td>
80
- <td data-value="84.41" class="pct high">84.41%</td>
81
- <td data-value="77" class="abs high">65/77</td>
82
- <td data-value="56.52" class="pct medium">56.52%</td>
83
- <td data-value="23" class="abs medium">13/23</td>
80
+ <td data-value="84.93" class="pct high">84.93%</td>
81
+ <td data-value="73" class="abs high">62/73</td>
82
+ <td data-value="57.89" class="pct medium">57.89%</td>
83
+ <td data-value="19" class="abs medium">11/19</td>
84
84
  <td data-value="90.9" class="pct high">90.9%</td>
85
85
  <td data-value="11" class="abs high">10/11</td>
86
- <td data-value="84.41" class="pct high">84.41%</td>
87
- <td data-value="77" class="abs high">65/77</td>
86
+ <td data-value="84.93" class="pct high">84.93%</td>
87
+ <td data-value="73" class="abs high">62/73</td>
88
88
  </tr>
89
89
 
90
90
  <tr>
@@ -104,17 +104,17 @@
104
104
 
105
105
  <tr>
106
106
  <td class="file medium" data-value="query.js"><a href="query.js.html">query.js</a></td>
107
- <td data-value="77.03" class="pic medium">
108
- <div class="chart"><div class="cover-fill" style="width: 77%"></div><div class="cover-empty" style="width: 23%"></div></div>
107
+ <td data-value="69.79" class="pic medium">
108
+ <div class="chart"><div class="cover-fill" style="width: 69%"></div><div class="cover-empty" style="width: 31%"></div></div>
109
109
  </td>
110
- <td data-value="77.03" class="pct medium">77.03%</td>
111
- <td data-value="135" class="abs medium">104/135</td>
112
- <td data-value="67.18" class="pct medium">67.18%</td>
113
- <td data-value="64" class="abs medium">43/64</td>
114
- <td data-value="93.33" class="pct high">93.33%</td>
115
- <td data-value="15" class="abs high">14/15</td>
116
- <td data-value="77.09" class="pct medium">77.09%</td>
117
- <td data-value="131" class="abs medium">101/131</td>
110
+ <td data-value="69.79" class="pct medium">69.79%</td>
111
+ <td data-value="149" class="abs medium">104/149</td>
112
+ <td data-value="63.23" class="pct medium">63.23%</td>
113
+ <td data-value="68" class="abs medium">43/68</td>
114
+ <td data-value="87.5" class="pct high">87.5%</td>
115
+ <td data-value="16" class="abs high">14/16</td>
116
+ <td data-value="70.13" class="pct medium">70.13%</td>
117
+ <td data-value="144" class="abs medium">101/144</td>
118
118
  </tr>
119
119
 
120
120
  <tr>
@@ -140,7 +140,7 @@
140
140
  <div class='footer quiet pad2 space-top1 center small'>
141
141
  Code coverage generated by
142
142
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
143
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
143
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
144
144
  </div>
145
145
  </div>
146
146
  <script src="../prettify.js"></script>
@@ -262,7 +262,7 @@ module.exports.ThreadType = ThreadType
262
262
  <div class='footer quiet pad2 space-top1 center small'>
263
263
  Code coverage generated by
264
264
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
265
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
265
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
266
266
  </div>
267
267
  </div>
268
268
  <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">77.03% </span>
26
+ <span class="strong">69.79% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>104/135</span>
28
+ <span class='fraction'>104/149</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">67.18% </span>
33
+ <span class="strong">63.23% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>43/64</span>
35
+ <span class='fraction'>43/68</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">93.33% </span>
40
+ <span class="strong">87.5% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>14/15</span>
42
+ <span class='fraction'>14/16</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">77.09% </span>
47
+ <span class="strong">70.13% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>101/131</span>
49
+ <span class='fraction'>101/144</span>
50
50
  </div>
51
51
 
52
52
 
@@ -332,7 +332,39 @@
332
332
  <a name='L273'></a><a href='#L273'>273</a>
333
333
  <a name='L274'></a><a href='#L274'>274</a>
334
334
  <a name='L275'></a><a href='#L275'>275</a>
335
- <a name='L276'></a><a href='#L276'>276</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
335
+ <a name='L276'></a><a href='#L276'>276</a>
336
+ <a name='L277'></a><a href='#L277'>277</a>
337
+ <a name='L278'></a><a href='#L278'>278</a>
338
+ <a name='L279'></a><a href='#L279'>279</a>
339
+ <a name='L280'></a><a href='#L280'>280</a>
340
+ <a name='L281'></a><a href='#L281'>281</a>
341
+ <a name='L282'></a><a href='#L282'>282</a>
342
+ <a name='L283'></a><a href='#L283'>283</a>
343
+ <a name='L284'></a><a href='#L284'>284</a>
344
+ <a name='L285'></a><a href='#L285'>285</a>
345
+ <a name='L286'></a><a href='#L286'>286</a>
346
+ <a name='L287'></a><a href='#L287'>287</a>
347
+ <a name='L288'></a><a href='#L288'>288</a>
348
+ <a name='L289'></a><a href='#L289'>289</a>
349
+ <a name='L290'></a><a href='#L290'>290</a>
350
+ <a name='L291'></a><a href='#L291'>291</a>
351
+ <a name='L292'></a><a href='#L292'>292</a>
352
+ <a name='L293'></a><a href='#L293'>293</a>
353
+ <a name='L294'></a><a href='#L294'>294</a>
354
+ <a name='L295'></a><a href='#L295'>295</a>
355
+ <a name='L296'></a><a href='#L296'>296</a>
356
+ <a name='L297'></a><a href='#L297'>297</a>
357
+ <a name='L298'></a><a href='#L298'>298</a>
358
+ <a name='L299'></a><a href='#L299'>299</a>
359
+ <a name='L300'></a><a href='#L300'>300</a>
360
+ <a name='L301'></a><a href='#L301'>301</a>
361
+ <a name='L302'></a><a href='#L302'>302</a>
362
+ <a name='L303'></a><a href='#L303'>303</a>
363
+ <a name='L304'></a><a href='#L304'>304</a>
364
+ <a name='L305'></a><a href='#L305'>305</a>
365
+ <a name='L306'></a><a href='#L306'>306</a>
366
+ <a name='L307'></a><a href='#L307'>307</a>
367
+ <a name='L308'></a><a href='#L308'>308</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
336
368
  <span class="cline-any cline-yes">2x</span>
337
369
  <span class="cline-any cline-yes">2x</span>
338
370
  <span class="cline-any cline-yes">2x</span>
@@ -370,6 +402,8 @@
370
402
  <span class="cline-any cline-no">&nbsp;</span>
371
403
  <span class="cline-any cline-no">&nbsp;</span>
372
404
  <span class="cline-any cline-no">&nbsp;</span>
405
+ <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-no">&nbsp;</span>
373
407
  <span class="cline-any cline-no">&nbsp;</span>
374
408
  <span class="cline-any cline-neutral">&nbsp;</span>
375
409
  <span class="cline-any cline-no">&nbsp;</span>
@@ -383,11 +417,41 @@
383
417
  <span class="cline-any cline-neutral">&nbsp;</span>
384
418
  <span class="cline-any cline-neutral">&nbsp;</span>
385
419
  <span class="cline-any cline-neutral">&nbsp;</span>
420
+ <span class="cline-any cline-neutral">&nbsp;</span>
421
+ <span class="cline-any cline-neutral">&nbsp;</span>
422
+ <span class="cline-any cline-neutral">&nbsp;</span>
423
+ <span class="cline-any cline-neutral">&nbsp;</span>
424
+ <span class="cline-any cline-neutral">&nbsp;</span>
425
+ <span class="cline-any cline-no">&nbsp;</span>
426
+ <span class="cline-any cline-no">&nbsp;</span>
427
+ <span class="cline-any cline-neutral">&nbsp;</span>
386
428
  <span class="cline-any cline-no">&nbsp;</span>
387
429
  <span class="cline-any cline-neutral">&nbsp;</span>
388
430
  <span class="cline-any cline-neutral">&nbsp;</span>
389
431
  <span class="cline-any cline-neutral">&nbsp;</span>
390
432
  <span class="cline-any cline-no">&nbsp;</span>
433
+ <span class="cline-any cline-neutral">&nbsp;</span>
434
+ <span class="cline-any cline-neutral">&nbsp;</span>
435
+ <span class="cline-any cline-no">&nbsp;</span>
436
+ <span class="cline-any cline-neutral">&nbsp;</span>
437
+ <span class="cline-any cline-neutral">&nbsp;</span>
438
+ <span class="cline-any cline-neutral">&nbsp;</span>
439
+ <span class="cline-any cline-no">&nbsp;</span>
440
+ <span class="cline-any cline-neutral">&nbsp;</span>
441
+ <span class="cline-any cline-no">&nbsp;</span>
442
+ <span class="cline-any cline-neutral">&nbsp;</span>
443
+ <span class="cline-any cline-neutral">&nbsp;</span>
444
+ <span class="cline-any cline-no">&nbsp;</span>
445
+ <span class="cline-any cline-no">&nbsp;</span>
446
+ <span class="cline-any cline-neutral">&nbsp;</span>
447
+ <span class="cline-any cline-no">&nbsp;</span>
448
+ <span class="cline-any cline-no">&nbsp;</span>
449
+ <span class="cline-any cline-no">&nbsp;</span>
450
+ <span class="cline-any cline-no">&nbsp;</span>
451
+ <span class="cline-any cline-neutral">&nbsp;</span>
452
+ <span class="cline-any cline-no">&nbsp;</span>
453
+ <span class="cline-any cline-neutral">&nbsp;</span>
454
+ <span class="cline-any cline-neutral">&nbsp;</span>
391
455
  <span class="cline-any cline-no">&nbsp;</span>
392
456
  <span class="cline-any cline-no">&nbsp;</span>
393
457
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -642,10 +706,12 @@ class QueryRunner {
642
706
  return fields
643
707
  }
644
708
  const bindings = <span class="cstat-no" title="statement not covered" >findHBSBlocks(sql)</span>
645
- let variables = <span class="cstat-no" title="statement not covered" >[]</span>
709
+ let variables = <span class="cstat-no" title="statement not covered" >[],</span>
710
+ arrays = <span class="cstat-no" title="statement not covered" >[]</span>
646
711
  <span class="cstat-no" title="statement not covered" > for (let binding of bindings) {</span>
647
- let variable = <span class="cstat-no" title="statement not covered" >integration.getBindingIdentifier()</span>
648
- <span class="cstat-no" title="statement not covered" > variables.push(binding)</span>
712
+ // look for array/list operations in the SQL statement, which will need handled later
713
+ const listRegex = <span class="cstat-no" title="statement not covered" >new RegExp(`(in|IN|In|iN)( )+${binding}`)</span>
714
+ const listRegexMatch = <span class="cstat-no" title="statement not covered" >sql.match(listRegex)</span>
649
715
  // check if the variable was used as part of a string concat e.g. 'Hello {{binding}}'
650
716
  const charConstRegex = <span class="cstat-no" title="statement not covered" >new RegExp(`'[^']*${binding}[^']*'`)</span>
651
717
  const charConstMatch = <span class="cstat-no" title="statement not covered" >sql.match(charConstRegex)</span>
@@ -655,15 +721,45 @@ class QueryRunner {
655
721
  <span class="cstat-no" title="statement not covered" > part2 = `'${part2.substring(0, part2.length - 1)}'`</span>
656
722
  <span class="cstat-no" title="statement not covered" > sql = sql.replace(</span>
657
723
  charConstMatch[0],
658
- integration.getStringConcat([part1, variable, part2])
724
+ integration.getStringConcat([
725
+ part1,
726
+ integration.getBindingIdentifier(),
727
+ part2,
728
+ ])
729
+ )
730
+ }
731
+ // generate SQL parameterised array
732
+ else <span class="cstat-no" title="statement not covered" >if (listRegexMatch) {</span>
733
+ <span class="cstat-no" title="statement not covered" > arrays.push(binding)</span>
734
+ // determine the length of the array
735
+ const value = <span class="cstat-no" title="statement not covered" >this.enrichQueryFields([binding], parameters)[0].split(</span>
736
+ ","
737
+ )
738
+ // build a string like ($1, $2, $3)
739
+ <span class="cstat-no" title="statement not covered" > sql = sql.replace(</span>
740
+ binding,
741
+ `(${Array.apply(null, Array(value.length))
742
+ .map(<span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >integration.getBindingIdentifier())</span>
743
+ .join(",")})`
659
744
  )
660
745
  } else {
661
- <span class="cstat-no" title="statement not covered" > sql = sql.replace(binding, variable)</span>
746
+ <span class="cstat-no" title="statement not covered" > sql = sql.replace(binding, integration.getBindingIdentifier())</span>
662
747
  }
748
+ <span class="cstat-no" title="statement not covered" > variables.push(binding)</span>
663
749
  }
664
750
  // replicate the knex structure
665
751
  <span class="cstat-no" title="statement not covered" > fields.sql = sql</span>
666
752
  <span class="cstat-no" title="statement not covered" > fields.bindings = this.enrichQueryFields(variables, parameters)</span>
753
+ // check for arrays in the data
754
+ let updated = <span class="cstat-no" title="statement not covered" >[]</span>
755
+ <span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i &lt; variables.length; i++) {</span>
756
+ <span class="cstat-no" title="statement not covered" > if (arrays.includes(variables[i])) {</span>
757
+ <span class="cstat-no" title="statement not covered" > updated = updated.concat(fields.bindings[i].split(","))</span>
758
+ } else {
759
+ <span class="cstat-no" title="statement not covered" > updated.push(fields.bindings[i])</span>
760
+ }
761
+ }
762
+ <span class="cstat-no" title="statement not covered" > fields.bindings = updated</span>
667
763
  <span class="cstat-no" title="statement not covered" > return fields</span>
668
764
  }
669
765
  &nbsp;
@@ -889,7 +985,7 @@ module.exports = (input, callback) =&gt; {
889
985
  <div class='footer quiet pad2 space-top1 center small'>
890
986
  Code coverage generated by
891
987
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
892
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
988
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
893
989
  </div>
894
990
  </div>
895
991
  <script src="../prettify.js"></script>
@@ -298,7 +298,7 @@ exports.hasExtraData = response =&gt; {
298
298
  <div class='footer quiet pad2 space-top1 center small'>
299
299
  Code coverage generated by
300
300
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
301
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
301
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
302
302
  </div>
303
303
  </div>
304
304
  <script src="../prettify.js"></script>
@@ -109,7 +109,7 @@ const SALT_ROUNDS = <span class="cstat-no" title="statement not covered" >env.SA
109
109
  <div class='footer quiet pad2 space-top1 center small'>
110
110
  Code coverage generated by
111
111
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
112
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
112
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
113
113
  </div>
114
114
  </div>
115
115
  <script src="../prettify.js"></script>
@@ -94,7 +94,7 @@ module.exports.budibaseTempDir = budibaseTempDir
94
94
  <div class='footer quiet pad2 space-top1 center small'>
95
95
  Code coverage generated by
96
96
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
97
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
97
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
98
98
  </div>
99
99
  </div>
100
100
  <script src="../prettify.js"></script>
@@ -130,7 +130,7 @@ exports.resolve = <span class="fstat-no" title="function not covered" >fu</span>
130
130
  <div class='footer quiet pad2 space-top1 center small'>
131
131
  Code coverage generated by
132
132
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
133
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
133
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
134
134
  </div>
135
135
  </div>
136
136
  <script src="../prettify.js"></script>
@@ -496,7 +496,7 @@ module.exports = {
496
496
  <div class='footer quiet pad2 space-top1 center small'>
497
497
  Code coverage generated by
498
498
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
499
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
499
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
500
500
  </div>
501
501
  </div>
502
502
  <script src="../prettify.js"></script>
@@ -385,7 +385,7 @@ exports.getGlobalUsersFromMetadata = async users =&gt; {
385
385
  <div class='footer quiet pad2 space-top1 center small'>
386
386
  Code coverage generated by
387
387
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
388
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
388
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
389
389
  </div>
390
390
  </div>
391
391
  <script src="../prettify.js"></script>
@@ -245,7 +245,7 @@
245
245
  <div class='footer quiet pad2 space-top1 center small'>
246
246
  Code coverage generated by
247
247
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
248
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
248
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
249
249
  </div>
250
250
  </div>
251
251
  <script src="../prettify.js"></script>
@@ -547,7 +547,7 @@ exports.convertBookmark = bookmark =&gt; {
547
547
  <div class='footer quiet pad2 space-top1 center small'>
548
548
  Code coverage generated by
549
549
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
550
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
550
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
551
551
  </div>
552
552
  </div>
553
553
  <script src="../prettify.js"></script>
@@ -367,7 +367,7 @@ module.exports = InMemoryQueue
367
367
  <div class='footer quiet pad2 space-top1 center small'>
368
368
  Code coverage generated by
369
369
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
370
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
370
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
371
371
  </div>
372
372
  </div>
373
373
  <script src="../../prettify.js"></script>
@@ -95,7 +95,7 @@
95
95
  <div class='footer quiet pad2 space-top1 center small'>
96
96
  Code coverage generated by
97
97
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
98
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
99
99
  </div>
100
100
  </div>
101
101
  <script src="../../prettify.js"></script>
@@ -95,7 +95,7 @@
95
95
  <div class='footer quiet pad2 space-top1 center small'>
96
96
  Code coverage generated by
97
97
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
98
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
99
99
  </div>
100
100
  </div>
101
101
  <script src="../../prettify.js"></script>
@@ -139,7 +139,7 @@ exports.createRoutingView = createRoutingView
139
139
  <div class='footer quiet pad2 space-top1 center small'>
140
140
  Code coverage generated by
141
141
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
142
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
142
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
143
143
  </div>
144
144
  </div>
145
145
  <script src="../../prettify.js"></script>
@@ -110,7 +110,7 @@
110
110
  <div class='footer quiet pad2 space-top1 center small'>
111
111
  Code coverage generated by
112
112
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
113
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
113
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
114
114
  </div>
115
115
  </div>
116
116
  <script src="../../prettify.js"></script>
@@ -1081,7 +1081,7 @@ exports.cleanupAttachments = async (table, { row, rows, oldRow, oldTable }) =&gt
1081
1081
  <div class='footer quiet pad2 space-top1 center small'>
1082
1082
  Code coverage generated by
1083
1083
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1084
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
1084
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
1085
1085
  </div>
1086
1086
  </div>
1087
1087
  <script src="../../prettify.js"></script>
@@ -181,7 +181,7 @@ exports.processFormulas = (
181
181
  <div class='footer quiet pad2 space-top1 center small'>
182
182
  Code coverage generated by
183
183
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
184
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
184
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
185
185
  </div>
186
186
  </div>
187
187
  <script src="../../prettify.js"></script>
@@ -136,7 +136,7 @@ module.exports = ScriptRunner
136
136
  <div class='footer quiet pad2 space-top1 center small'>
137
137
  Code coverage generated by
138
138
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
139
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
139
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
140
140
  </div>
141
141
  </div>
142
142
  <script src="../prettify.js"></script>
@@ -274,7 +274,7 @@ exports.CURRENTLY_SUPPORTED_LEVELS = CURRENTLY_SUPPORTED_LEVELS
274
274
  <div class='footer quiet pad2 space-top1 center small'>
275
275
  Code coverage generated by
276
276
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
277
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
277
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
278
278
  </div>
279
279
  </div>
280
280
  <script src="../prettify.js"></script>
@@ -85,7 +85,7 @@
85
85
  <div class='footer quiet pad2 space-top1 center small'>
86
86
  Code coverage generated by
87
87
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
88
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
88
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
89
89
  </div>
90
90
  </div>
91
91
  <script src="../prettify.js"></script>
@@ -125,7 +125,7 @@
125
125
  <div class='footer quiet pad2 space-top1 center small'>
126
126
  Code coverage generated by
127
127
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
128
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
128
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
129
129
  </div>
130
130
  </div>
131
131
  <script src="../../prettify.js"></script>
@@ -343,7 +343,7 @@ exports.update = async (property, usage, opts = { dryRun: false }) =&gt; {
343
343
  <div class='footer quiet pad2 space-top1 center small'>
344
344
  Code coverage generated by
345
345
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
346
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
346
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
347
347
  </div>
348
348
  </div>
349
349
  <script src="../../prettify.js"></script>
@@ -289,7 +289,7 @@ exports.getUniqueRows = async appIds =&gt; {
289
289
  <div class='footer quiet pad2 space-top1 center small'>
290
290
  Code coverage generated by
291
291
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
292
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
292
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
293
293
  </div>
294
294
  </div>
295
295
  <script src="../../prettify.js"></script>
@@ -118,7 +118,7 @@ function <span class="fstat-no" title="function not covered" >resetQuotasIfRequi
118
118
  <div class='footer quiet pad2 space-top1 center small'>
119
119
  Code coverage generated by
120
120
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
121
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
121
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
122
122
  </div>
123
123
  </div>
124
124
  <script src="../../prettify.js"></script>
@@ -136,7 +136,7 @@ exports.getFullUser = async (ctx, userId) =&gt; {
136
136
  <div class='footer quiet pad2 space-top1 center small'>
137
137
  Code coverage generated by
138
138
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
139
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
139
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
140
140
  </div>
141
141
  </div>
142
142
  <script src="../prettify.js"></script>
@@ -481,7 +481,7 @@ exports.readGlobalUser = <span class="fstat-no" title="function not covered" >as
481
481
  <div class='footer quiet pad2 space-top1 center small'>
482
482
  Code coverage generated by
483
483
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
484
- at Fri Mar 18 2022 16:04:41 GMT+0000 (Coordinated Universal Time)
484
+ at Tue Mar 22 2022 13:08:21 GMT+0000 (Coordinated Universal Time)
485
485
  </div>
486
486
  </div>
487
487
  <script src="../prettify.js"></script>