@budibase/server 0.9.171 → 0.9.173-alpha.2

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 (261) hide show
  1. package/__mocks__/{mysql.ts → mysql2.ts} +0 -0
  2. package/builder/assets/{index.dbc6728e.css → index.7469e1e4.css} +2 -2
  3. package/builder/assets/{index.cf0febb9.js → index.8a8f7849.js} +34 -34
  4. package/builder/assets/{vendor.54435e8f.js → vendor.278a305c.js} +1 -1
  5. package/builder/index.html +3 -3
  6. package/coverage/clover.xml +973 -849
  7. package/coverage/coverage-final.json +47 -46
  8. package/coverage/lcov-report/api/controllers/analytics.js.html +21 -9
  9. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/application.js.html +186 -84
  11. package/coverage/lcov-report/api/controllers/auth.js.html +37 -10
  12. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/backup.js.html +6 -9
  14. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/dev.js.html +41 -17
  18. package/coverage/lcov-report/api/controllers/hosting.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/index.html +71 -71
  20. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/permission.js.html +7 -4
  24. package/coverage/lcov-report/api/controllers/query.js.html +129 -24
  25. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/index.html +5 -5
  29. package/coverage/lcov-report/api/controllers/row/index.js.html +15 -15
  30. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/row/internalSearch.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 +9 -9
  34. package/coverage/lcov-report/api/controllers/script.js.html +12 -57
  35. package/coverage/lcov-report/api/controllers/table/index.html +28 -28
  36. package/coverage/lcov-report/api/controllers/table/index.js.html +16 -37
  37. package/coverage/lcov-report/api/controllers/table/utils.js.html +279 -33
  38. package/coverage/lcov-report/api/controllers/templates.js.html +49 -13
  39. package/coverage/lcov-report/api/controllers/user.js.html +3 -3
  40. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/index.html +19 -19
  42. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/utils.js.html +8 -8
  44. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +54 -15
  45. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  46. package/coverage/lcov-report/api/index.html +1 -1
  47. package/coverage/lcov-report/api/index.js.html +3 -3
  48. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/application.js.html +5 -2
  51. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/dev.js.html +26 -11
  59. package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/index.html +9 -9
  61. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/query.js.html +9 -3
  67. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  78. package/coverage/lcov-report/automations/actions.js.html +31 -10
  79. package/coverage/lcov-report/automations/automationUtils.js.html +14 -86
  80. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  81. package/coverage/lcov-report/automations/index.html +37 -37
  82. package/coverage/lcov-report/automations/index.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/bash.js.html +10 -7
  84. package/coverage/lcov-report/automations/steps/createRow.js.html +2 -2
  85. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/deleteRow.js.html +8 -5
  87. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/executeQuery.js.html +10 -7
  89. package/coverage/lcov-report/automations/steps/executeScript.js.html +10 -7
  90. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/index.html +57 -57
  92. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +10 -7
  94. package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -7
  95. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +10 -7
  96. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/updateRow.js.html +14 -14
  99. package/coverage/lcov-report/automations/steps/utils.js.html +10 -10
  100. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  101. package/coverage/lcov-report/automations/thread.js.html +54 -12
  102. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  105. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  106. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  107. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  108. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  111. package/coverage/lcov-report/automations/utils.js.html +28 -28
  112. package/coverage/lcov-report/constants/index.html +1 -1
  113. package/coverage/lcov-report/constants/index.js.html +5 -2
  114. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  115. package/coverage/lcov-report/constants/screens.js.html +2 -2
  116. package/coverage/lcov-report/db/client.js.html +1 -1
  117. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  118. package/coverage/lcov-report/db/index.html +1 -1
  119. package/coverage/lcov-report/db/index.js.html +1 -1
  120. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +12 -12
  121. package/coverage/lcov-report/db/linkedRows/index.html +18 -18
  122. package/coverage/lcov-report/db/linkedRows/index.js.html +47 -26
  123. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  124. package/coverage/lcov-report/db/newid.js.html +2 -2
  125. package/coverage/lcov-report/db/utils.js.html +17 -17
  126. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  127. package/coverage/lcov-report/events/index.html +1 -1
  128. package/coverage/lcov-report/events/index.js.html +1 -1
  129. package/coverage/lcov-report/events/utils.js.html +1 -1
  130. package/coverage/lcov-report/index.html +107 -107
  131. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  132. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  133. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  134. package/coverage/lcov-report/middleware/authorized.js.html +2 -2
  135. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  136. package/coverage/lcov-report/middleware/currentapp.js.html +52 -25
  137. package/coverage/lcov-report/middleware/index.html +15 -15
  138. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  139. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  140. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  141. package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
  142. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  143. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  144. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  145. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  146. package/coverage/lcov-report/utilities/global.js.html +27 -27
  147. package/coverage/lcov-report/utilities/index.html +32 -17
  148. package/coverage/lcov-report/utilities/index.js.html +4 -4
  149. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +29 -8
  150. package/coverage/lcov-report/utilities/queue/index.html +15 -15
  151. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  152. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  153. package/coverage/lcov-report/utilities/rowProcessor/index.html +14 -14
  154. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +38 -8
  155. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  156. package/coverage/lcov-report/utilities/scriptRunner.js.html +143 -0
  157. package/coverage/lcov-report/utilities/security.js.html +1 -1
  158. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  159. package/coverage/lcov-report/utilities/users.js.html +1 -1
  160. package/coverage/lcov-report/utilities/workerRequests.js.html +19 -19
  161. package/coverage/lcov.info +1692 -1452
  162. package/dist/api/controllers/analytics.js +4 -0
  163. package/dist/api/controllers/application.js +185 -171
  164. package/dist/api/controllers/auth.js +12 -2
  165. package/dist/api/controllers/backup.js +4 -4
  166. package/dist/api/controllers/deploy/index.js +3 -16
  167. package/dist/api/controllers/dev.js +17 -11
  168. package/dist/api/controllers/permission.js +1 -0
  169. package/dist/api/controllers/query.js +26 -8
  170. package/dist/api/controllers/row/ExternalRequest.js +46 -5
  171. package/dist/api/controllers/script.js +4 -16
  172. package/dist/api/controllers/table/index.js +5 -10
  173. package/dist/api/controllers/table/utils.js +83 -10
  174. package/dist/api/controllers/templates.js +18 -3
  175. package/dist/api/controllers/view/viewBuilder.js +15 -1
  176. package/dist/api/routes/application.js +1 -0
  177. package/dist/api/routes/dev.js +8 -4
  178. package/dist/api/routes/query.js +3 -1
  179. package/dist/api/routes/tests/utilities/TestFunctions.js +7 -9
  180. package/dist/automations/actions.js +9 -3
  181. package/dist/automations/automationUtils.js +8 -29
  182. package/dist/automations/steps/bash.js +2 -1
  183. package/dist/automations/steps/createRow.js +1 -1
  184. package/dist/automations/steps/deleteRow.js +2 -1
  185. package/dist/automations/steps/executeQuery.js +2 -1
  186. package/dist/automations/steps/executeScript.js +2 -1
  187. package/dist/automations/steps/outgoingWebhook.js +2 -1
  188. package/dist/automations/steps/queryRows.js +2 -1
  189. package/dist/automations/steps/sendSmtpEmail.js +2 -1
  190. package/dist/automations/steps/updateRow.js +6 -2
  191. package/dist/automations/thread.js +14 -3
  192. package/dist/constants/index.js +1 -0
  193. package/dist/db/linkedRows/index.js +9 -6
  194. package/dist/integrations/base/sql.js +4 -4
  195. package/dist/integrations/mysql.js +1 -1
  196. package/dist/integrations/utils.js +17 -1
  197. package/dist/middleware/currentapp.js +8 -2
  198. package/dist/package.json +7 -6
  199. package/dist/tests/utilities/TestConfiguration.js +34 -19
  200. package/dist/tests/utilities/controllers.js +1 -0
  201. package/dist/tsconfig.tsbuildinfo +1 -1
  202. package/dist/utilities/fileSystem/index.js +49 -33
  203. package/dist/utilities/global.js +1 -1
  204. package/dist/utilities/queue/inMemoryQueue.js +6 -0
  205. package/dist/utilities/rowProcessor/index.js +8 -0
  206. package/dist/utilities/scriptRunner.js +19 -0
  207. package/package.json +8 -7
  208. package/scripts/jestSetup.js +2 -0
  209. package/src/api/controllers/analytics.js +4 -0
  210. package/src/api/controllers/application.js +43 -9
  211. package/src/api/controllers/auth.js +12 -3
  212. package/src/api/controllers/backup.js +4 -5
  213. package/src/api/controllers/deploy/index.js +3 -18
  214. package/src/api/controllers/dev.js +16 -8
  215. package/src/api/controllers/permission.js +1 -0
  216. package/src/api/controllers/query.js +46 -11
  217. package/src/api/controllers/row/ExternalRequest.ts +53 -4
  218. package/src/api/controllers/script.js +4 -19
  219. package/src/api/controllers/table/index.js +5 -12
  220. package/src/api/controllers/table/utils.js +94 -12
  221. package/src/api/controllers/templates.js +17 -5
  222. package/src/api/controllers/view/tests/__snapshots__/viewBuilder.spec.js.snap +1 -1
  223. package/src/api/controllers/view/viewBuilder.js +14 -1
  224. package/src/api/routes/application.js +1 -0
  225. package/src/api/routes/dev.js +9 -4
  226. package/src/api/routes/query.js +3 -1
  227. package/src/api/routes/tests/auth.spec.js +1 -2
  228. package/src/api/routes/tests/permissions.spec.js +3 -0
  229. package/src/api/routes/tests/query.spec.js +2 -2
  230. package/src/api/routes/tests/routing.spec.js +24 -8
  231. package/src/api/routes/tests/user.spec.js +1 -1
  232. package/src/api/routes/tests/utilities/TestFunctions.js +7 -9
  233. package/src/api/routes/tests/webhook.spec.js +4 -1
  234. package/src/automations/actions.js +10 -3
  235. package/src/automations/automationUtils.js +7 -31
  236. package/src/automations/steps/bash.js +2 -1
  237. package/src/automations/steps/createRow.js +1 -1
  238. package/src/automations/steps/deleteRow.js +2 -1
  239. package/src/automations/steps/executeQuery.js +2 -1
  240. package/src/automations/steps/executeScript.js +2 -1
  241. package/src/automations/steps/outgoingWebhook.js +2 -1
  242. package/src/automations/steps/queryRows.js +2 -1
  243. package/src/automations/steps/sendSmtpEmail.js +2 -1
  244. package/src/automations/steps/updateRow.js +6 -6
  245. package/src/automations/thread.js +17 -3
  246. package/src/constants/index.js +1 -0
  247. package/src/db/linkedRows/index.js +14 -7
  248. package/src/integrations/base/sql.ts +11 -3
  249. package/src/integrations/mysql.ts +1 -1
  250. package/src/integrations/tests/mongo.spec.js +10 -6
  251. package/src/integrations/tests/mysql.spec.js +1 -1
  252. package/src/integrations/utils.ts +18 -0
  253. package/src/middleware/currentapp.js +11 -2
  254. package/src/middleware/tests/currentapp.spec.js +3 -3
  255. package/src/tests/utilities/TestConfiguration.js +47 -19
  256. package/src/tests/utilities/controllers.js +1 -0
  257. package/src/utilities/fileSystem/index.js +65 -43
  258. package/src/utilities/global.js +1 -1
  259. package/src/utilities/queue/inMemoryQueue.js +7 -0
  260. package/src/utilities/rowProcessor/index.js +10 -0
  261. package/src/utilities/scriptRunner.js +21 -0
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">30.77% </span>
26
+ <span class="strong">42.86% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>4/13</span>
28
+ <span class='fraction'>3/7</span>
29
29
  </div>
30
30
 
31
31
 
@@ -39,14 +39,14 @@
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/4</span>
42
+ <span class='fraction'>0/2</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">30.77% </span>
47
+ <span class="strong">42.86% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>4/13</span>
49
+ <span class='fraction'>3/7</span>
50
50
  </div>
51
51
 
52
52
 
@@ -68,68 +68,23 @@
68
68
  <a name='L9'></a><a href='#L9'>9</a>
69
69
  <a name='L10'></a><a href='#L10'>10</a>
70
70
  <a name='L11'></a><a href='#L11'>11</a>
71
- <a name='L12'></a><a href='#L12'>12</a>
72
- <a name='L13'></a><a href='#L13'>13</a>
73
- <a name='L14'></a><a href='#L14'>14</a>
74
- <a name='L15'></a><a href='#L15'>15</a>
75
- <a name='L16'></a><a href='#L16'>16</a>
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
87
- <span class="cline-any cline-yes">34x</span>
88
- <span class="cline-any cline-neutral">&nbsp;</span>
89
- <span class="cline-any cline-neutral">&nbsp;</span>
90
- <span class="cline-any cline-neutral">&nbsp;</span>
91
- <span class="cline-any cline-no">&nbsp;</span>
92
- <span class="cline-any cline-no">&nbsp;</span>
93
- <span class="cline-any cline-no">&nbsp;</span>
94
- <span class="cline-any cline-no">&nbsp;</span>
95
- <span class="cline-any cline-neutral">&nbsp;</span>
96
- <span class="cline-any cline-neutral">&nbsp;</span>
97
- <span class="cline-any cline-neutral">&nbsp;</span>
98
- <span class="cline-any cline-no">&nbsp;</span>
99
- <span class="cline-any cline-no">&nbsp;</span>
100
- <span class="cline-any cline-neutral">&nbsp;</span>
101
- <span class="cline-any cline-neutral">&nbsp;</span>
71
+ <a name='L12'></a><a href='#L12'>12</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
102
72
  <span class="cline-any cline-neutral">&nbsp;</span>
103
73
  <span class="cline-any cline-yes">34x</span>
104
74
  <span class="cline-any cline-no">&nbsp;</span>
105
- <span class="cline-any cline-neutral">&nbsp;</span>
75
+ <span class="cline-any cline-no">&nbsp;</span>
106
76
  <span class="cline-any cline-no">&nbsp;</span>
107
77
  <span class="cline-any cline-neutral">&nbsp;</span>
108
78
  <span class="cline-any cline-neutral">&nbsp;</span>
109
79
  <span class="cline-any cline-yes">34x</span>
110
80
  <span class="cline-any cline-no">&nbsp;</span>
111
81
  <span class="cline-any cline-neutral">&nbsp;</span>
112
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const fetch = require("node-fetch")
113
- const vm = require("vm")
114
- &nbsp;
115
- class ScriptExecutor {
116
- <span class="fstat-no" title="function not covered" > co</span>nstructor(body) {
117
- const code = <span class="cstat-no" title="statement not covered" >`let fn = () =&gt; {\n${body.script}\n}; out = fn();`</span>
118
- <span class="cstat-no" title="statement not covered" > this.script = new vm.Script(code)</span>
119
- <span class="cstat-no" title="statement not covered" > this.context = vm.createContext(body.context)</span>
120
- <span class="cstat-no" title="statement not covered" > this.context.fetch = fetch</span>
121
- }
122
- &nbsp;
123
- <span class="fstat-no" title="function not covered" > ex</span>ecute() {
124
- <span class="cstat-no" title="statement not covered" > this.script.runInContext(this.context)</span>
125
- <span class="cstat-no" title="statement not covered" > return this.context.out</span>
126
- }
127
- }
82
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const ScriptRunner = require("../../utilities/scriptRunner")
128
83
  &nbsp;
129
84
  exports.execute = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
130
- const executor = <span class="cstat-no" title="statement not covered" >new ScriptExecutor(ctx.request.body)</span>
131
- &nbsp;
132
- <span class="cstat-no" title="statement not covered" > ctx.body = executor.execute()</span>
85
+ const { script, context } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
86
+ const runner = <span class="cstat-no" title="statement not covered" >new ScriptRunner(script, context)</span>
87
+ <span class="cstat-no" title="statement not covered" > ctx.body = runner.execute()</span>
133
88
  }
134
89
  &nbsp;
135
90
  exports.save = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
@@ -142,7 +97,7 @@ exports.save = <span class="fstat-no" title="function not covered" >as</span>ync
142
97
  <div class='footer quiet pad2 space-top1 center small'>
143
98
  Code coverage generated by
144
99
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
145
- at Wed Oct 20 2021 13:34:18 GMT+0000 (Coordinated Universal Time)
100
+ at Wed Oct 27 2021 08:59:08 GMT+0000 (Coordinated Universal Time)
146
101
  </div>
147
102
  </div>
148
103
  <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">85.71% </span>
26
+ <span class="strong">72.77% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>162/189</span>
28
+ <span class='fraction'>171/235</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">68.89% </span>
33
+ <span class="strong">54.17% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>62/90</span>
35
+ <span class='fraction'>65/120</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">77.78% </span>
40
+ <span class="strong">69.7% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>21/27</span>
42
+ <span class='fraction'>23/33</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">87.91% </span>
47
+ <span class="strong">74.45% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>160/182</span>
49
+ <span class='fraction'>169/227</span>
50
50
  </div>
51
51
 
52
52
 
@@ -55,7 +55,7 @@
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
57
  </div>
58
- <div class='status-line high'></div>
58
+ <div class='status-line medium'></div>
59
59
  <div class="pad1">
60
60
  <table class="coverage-summary">
61
61
  <thead>
@@ -74,32 +74,32 @@
74
74
  </thead>
75
75
  <tbody><tr>
76
76
  <td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
77
- <td data-value="83.33" class="pic high">
77
+ <td data-value="83.95" class="pic high">
78
78
  <div class="chart"><div class="cover-fill" style="width: 83%"></div><div class="cover-empty" style="width: 17%"></div></div>
79
79
  </td>
80
- <td data-value="83.33" class="pct high">83.33%</td>
81
- <td data-value="84" class="abs high">70/84</td>
82
- <td data-value="71.79" class="pct medium">71.79%</td>
83
- <td data-value="39" class="abs medium">28/39</td>
80
+ <td data-value="83.95" class="pct high">83.95%</td>
81
+ <td data-value="81" class="abs high">68/81</td>
82
+ <td data-value="73.17" class="pct medium">73.17%</td>
83
+ <td data-value="41" class="abs medium">30/41</td>
84
84
  <td data-value="70" class="pct medium">70%</td>
85
85
  <td data-value="10" class="abs medium">7/10</td>
86
- <td data-value="87.34" class="pct high">87.34%</td>
87
- <td data-value="79" class="abs high">69/79</td>
86
+ <td data-value="88.16" class="pct high">88.16%</td>
87
+ <td data-value="76" class="abs high">67/76</td>
88
88
  </tr>
89
89
 
90
90
  <tr>
91
- <td class="file high" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
92
- <td data-value="87.62" class="pic high">
93
- <div class="chart"><div class="cover-fill" style="width: 87%"></div><div class="cover-empty" style="width: 13%"></div></div>
91
+ <td class="file medium" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
92
+ <td data-value="66.88" class="pic medium">
93
+ <div class="chart"><div class="cover-fill" style="width: 66%"></div><div class="cover-empty" style="width: 34%"></div></div>
94
94
  </td>
95
- <td data-value="87.62" class="pct high">87.62%</td>
96
- <td data-value="105" class="abs high">92/105</td>
97
- <td data-value="66.67" class="pct medium">66.67%</td>
98
- <td data-value="51" class="abs medium">34/51</td>
99
- <td data-value="82.35" class="pct high">82.35%</td>
100
- <td data-value="17" class="abs high">14/17</td>
101
- <td data-value="88.35" class="pct high">88.35%</td>
102
- <td data-value="103" class="abs high">91/103</td>
95
+ <td data-value="66.88" class="pct medium">66.88%</td>
96
+ <td data-value="154" class="abs medium">103/154</td>
97
+ <td data-value="44.3" class="pct low">44.3%</td>
98
+ <td data-value="79" class="abs low">35/79</td>
99
+ <td data-value="69.57" class="pct medium">69.57%</td>
100
+ <td data-value="23" class="abs medium">16/23</td>
101
+ <td data-value="67.55" class="pct medium">67.55%</td>
102
+ <td data-value="151" class="abs medium">102/151</td>
103
103
  </tr>
104
104
 
105
105
  </tbody>
@@ -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 Wed Oct 20 2021 13:34:18 GMT+0000 (Coordinated Universal Time)
113
+ at Wed Oct 27 2021 08:59:08 GMT+0000 (Coordinated Universal Time)
114
114
  </div>
115
115
  </div>
116
116
  <script src="../../../prettify.js"></script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">83.33% </span>
26
+ <span class="strong">83.95% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>70/84</span>
28
+ <span class='fraction'>68/81</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">71.79% </span>
33
+ <span class="strong">73.17% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>28/39</span>
35
+ <span class='fraction'>30/41</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">87.34% </span>
47
+ <span class="strong">88.16% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>69/79</span>
49
+ <span class='fraction'>67/76</span>
50
50
  </div>
51
51
 
52
52
 
@@ -253,14 +253,7 @@
253
253
  <a name='L194'></a><a href='#L194'>194</a>
254
254
  <a name='L195'></a><a href='#L195'>195</a>
255
255
  <a name='L196'></a><a href='#L196'>196</a>
256
- <a name='L197'></a><a href='#L197'>197</a>
257
- <a name='L198'></a><a href='#L198'>198</a>
258
- <a name='L199'></a><a href='#L199'>199</a>
259
- <a name='L200'></a><a href='#L200'>200</a>
260
- <a name='L201'></a><a href='#L201'>201</a>
261
- <a name='L202'></a><a href='#L202'>202</a>
262
- <a name='L203'></a><a href='#L203'>203</a>
263
- <a name='L204'></a><a href='#L204'>204</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
256
+ <a name='L197'></a><a href='#L197'>197</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
264
257
  <span class="cline-any cline-yes">34x</span>
265
258
  <span class="cline-any cline-yes">34x</span>
266
259
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -273,10 +266,6 @@
273
266
  <span class="cline-any cline-yes">34x</span>
274
267
  <span class="cline-any cline-yes">34x</span>
275
268
  <span class="cline-any cline-neutral">&nbsp;</span>
276
- <span class="cline-any cline-neutral">&nbsp;</span>
277
- <span class="cline-any cline-neutral">&nbsp;</span>
278
- <span class="cline-any cline-yes">34x</span>
279
- <span class="cline-any cline-neutral">&nbsp;</span>
280
269
  <span class="cline-any cline-yes">34x</span>
281
270
  <span class="cline-any cline-yes">1x</span>
282
271
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -312,12 +301,6 @@
312
301
  <span class="cline-any cline-yes">34x</span>
313
302
  <span class="cline-any cline-yes">19x</span>
314
303
  <span class="cline-any cline-yes">19x</span>
315
- <span class="cline-any cline-yes">19x</span>
316
- <span class="cline-any cline-no">&nbsp;</span>
317
- <span class="cline-any cline-no">&nbsp;</span>
318
- <span class="cline-any cline-neutral">&nbsp;</span>
319
- <span class="cline-any cline-yes">19x</span>
320
- <span class="cline-any cline-neutral">&nbsp;</span>
321
304
  <span class="cline-any cline-neutral">&nbsp;</span>
322
305
  <span class="cline-any cline-neutral">&nbsp;</span>
323
306
  <span class="cline-any cline-yes">34x</span>
@@ -356,6 +339,9 @@
356
339
  <span class="cline-any cline-yes">13x</span>
357
340
  <span class="cline-any cline-no">&nbsp;</span>
358
341
  <span class="cline-any cline-neutral">&nbsp;</span>
342
+ <span class="cline-any cline-yes">13x</span>
343
+ <span class="cline-any cline-no">&nbsp;</span>
344
+ <span class="cline-any cline-neutral">&nbsp;</span>
359
345
  <span class="cline-any cline-neutral">&nbsp;</span>
360
346
  <span class="cline-any cline-neutral">&nbsp;</span>
361
347
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -474,11 +460,7 @@ const {
474
460
  BudibaseInternalDB,
475
461
  } = require("../../../db/utils")
476
462
  const { FieldTypes } = require("../../../constants")
477
- const { TableSaveFunctions, getExternalTable } = require("./utils")
478
- const {
479
- isExternalTable,
480
- breakExternalTableId,
481
- } = require("../../../integrations/utils")
463
+ const { TableSaveFunctions, getTable } = require("./utils")
482
464
  &nbsp;
483
465
  exports.fetch = async function (ctx) {
484
466
  const db = new CouchDB(ctx.appId)
@@ -513,14 +495,8 @@ exports.fetch = async function (ctx) {
513
495
  }
514
496
  &nbsp;
515
497
  exports.find = async function (ctx) {
516
- const db = new CouchDB(ctx.appId)
517
498
  const tableId = ctx.params.id
518
- <span class="missing-if-branch" title="if path not taken" >I</span>if (isExternalTable(tableId)) {
519
- let { datasourceId, tableName } = <span class="cstat-no" title="statement not covered" >breakExternalTableId(tableId)</span>
520
- <span class="cstat-no" title="statement not covered" > ctx.body = await getExternalTable(ctx.appId, datasourceId, tableName)</span>
521
- } else {
522
- ctx.body = await db.get(ctx.params.id)
523
- }
499
+ ctx.body = await getTable(ctx.appId, tableId)
524
500
  }
525
501
  &nbsp;
526
502
  exports.save = async function (ctx) {
@@ -556,6 +532,9 @@ exports.save = async function (ctx) {
556
532
  for (let propKey of Object.keys(tableToSave.schema)) {
557
533
  let column = tableToSave.schema[propKey]
558
534
  let oldColumn = oldTable.schema[propKey]
535
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (oldColumn &amp;&amp; oldColumn.type === "internal") {
536
+ <span class="cstat-no" title="statement not covered" > oldColumn.type = "auto"</span>
537
+ }
559
538
  <span class="missing-if-branch" title="if path not taken" >I</span>if (oldColumn &amp;&amp; oldColumn.type !== column.type) {
560
539
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Cannot change the type of a column")</span>
561
540
  }
@@ -673,7 +652,7 @@ exports.validateCSVSchema = async function (ctx) {
673
652
  <div class='footer quiet pad2 space-top1 center small'>
674
653
  Code coverage generated by
675
654
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
676
- at Wed Oct 20 2021 13:34:18 GMT+0000 (Coordinated Universal Time)
655
+ at Wed Oct 27 2021 08:59:08 GMT+0000 (Coordinated Universal Time)
677
656
  </div>
678
657
  </div>
679
658
  <script src="../../../prettify.js"></script>