@budibase/server 1.0.49-alpha.0 → 1.0.49-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/builder/assets/{index.dd9e386f.css → index.ba78c49d.css} +1 -1
  2. package/builder/assets/{index.8184eed9.js → index.ed1cf508.js} +205 -204
  3. package/builder/assets/{vendor.3bd2f661.js → vendor.d526bfe8.js} +1 -1
  4. package/builder/index.html +3 -3
  5. package/coverage/clover.xml +844 -680
  6. package/coverage/coverage-final.json +12 -10
  7. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/application.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/index.html +1 -1
  18. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  23. package/coverage/lcov-report/api/controllers/query/index.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  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 +40 -25
  29. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/row/internal.js.html +60 -123
  31. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +35 -11
  32. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +551 -0
  33. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +629 -0
  37. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/table/index.html +45 -30
  39. package/coverage/lcov-report/api/controllers/table/index.js.html +11 -53
  40. package/coverage/lcov-report/api/controllers/table/internal.js.html +25 -7
  41. package/coverage/lcov-report/api/controllers/table/utils.js.html +136 -16
  42. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  45. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  46. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  47. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  48. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  49. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  50. package/coverage/lcov-report/api/index.html +1 -1
  51. package/coverage/lcov-report/api/index.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/index.html +1 -1
  64. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/metadata.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/view.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  81. package/coverage/lcov-report/automations/actions.js.html +1 -1
  82. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  83. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  84. package/coverage/lcov-report/automations/index.html +1 -1
  85. package/coverage/lcov-report/automations/index.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/index.html +1 -1
  95. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  99. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  100. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  101. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  102. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  103. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  106. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  107. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  108. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  111. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  112. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  113. package/coverage/lcov-report/automations/utils.js.html +1 -1
  114. package/coverage/lcov-report/constants/index.html +5 -5
  115. package/coverage/lcov-report/constants/index.js.html +19 -4
  116. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  117. package/coverage/lcov-report/constants/screens.js.html +1 -1
  118. package/coverage/lcov-report/db/client.js.html +1 -1
  119. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  120. package/coverage/lcov-report/db/index.html +1 -1
  121. package/coverage/lcov-report/db/index.js.html +1 -1
  122. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  123. package/coverage/lcov-report/db/linkedRows/index.html +10 -10
  124. package/coverage/lcov-report/db/linkedRows/index.js.html +10 -13
  125. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  126. package/coverage/lcov-report/db/newid.js.html +1 -1
  127. package/coverage/lcov-report/db/utils.js.html +5 -5
  128. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  129. package/coverage/lcov-report/events/index.html +1 -1
  130. package/coverage/lcov-report/events/index.js.html +1 -1
  131. package/coverage/lcov-report/events/utils.js.html +1 -1
  132. package/coverage/lcov-report/index.html +44 -44
  133. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  134. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  135. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  136. package/coverage/lcov-report/middleware/authorized.js.html +1 -1
  137. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  138. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  139. package/coverage/lcov-report/middleware/index.html +1 -1
  140. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  141. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  142. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  143. package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
  144. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  145. package/coverage/lcov-report/migrations/usageQuotas/index.html +1 -1
  146. package/coverage/lcov-report/migrations/usageQuotas/index.js.html +1 -1
  147. package/coverage/lcov-report/migrations/usageQuotas/syncApps.js.html +1 -1
  148. package/coverage/lcov-report/migrations/usageQuotas/syncRows.js.html +1 -1
  149. package/coverage/lcov-report/threads/automation.js.html +1 -1
  150. package/coverage/lcov-report/threads/index.html +1 -1
  151. package/coverage/lcov-report/threads/index.js.html +1 -1
  152. package/coverage/lcov-report/threads/query.js.html +1 -1
  153. package/coverage/lcov-report/threads/utils.js.html +1 -1
  154. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  155. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  156. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  157. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  158. package/coverage/lcov-report/utilities/global.js.html +1 -1
  159. package/coverage/lcov-report/utilities/index.html +1 -1
  160. package/coverage/lcov-report/utilities/index.js.html +1 -1
  161. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  162. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  163. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  164. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  165. package/coverage/lcov-report/utilities/rowProcessor/index.html +27 -27
  166. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +65 -29
  167. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +73 -25
  168. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  169. package/coverage/lcov-report/utilities/security.js.html +1 -1
  170. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  171. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  172. package/coverage/lcov-report/utilities/usageQuota/index.js.html +1 -1
  173. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  174. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  175. package/coverage/lcov-report/utilities/users.js.html +1 -1
  176. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  177. package/coverage/lcov.info +1509 -1173
  178. package/dist/api/controllers/row/internal.js +30 -53
  179. package/dist/api/controllers/row/internalSearch.js +12 -4
  180. package/dist/api/controllers/row/staticFormula.js +147 -0
  181. package/dist/api/controllers/table/bulkFormula.js +160 -0
  182. package/dist/api/controllers/table/index.js +3 -6
  183. package/dist/api/controllers/table/internal.js +7 -0
  184. package/dist/api/controllers/table/utils.js +32 -10
  185. package/dist/constants/index.js +4 -0
  186. package/dist/db/linkedRows/index.js +4 -5
  187. package/dist/package.json +4 -4
  188. package/dist/tsconfig.tsbuildinfo +1 -1
  189. package/dist/utilities/rowProcessor/index.js +18 -11
  190. package/dist/utilities/rowProcessor/utils.js +14 -4
  191. package/package.json +5 -5
  192. package/src/api/controllers/row/internal.js +29 -50
  193. package/src/api/controllers/row/internalSearch.js +12 -4
  194. package/src/api/controllers/row/staticFormula.js +157 -0
  195. package/src/api/controllers/table/bulkFormula.js +183 -0
  196. package/src/api/controllers/table/index.js +3 -17
  197. package/src/api/controllers/table/internal.js +7 -1
  198. package/src/api/controllers/table/utils.js +48 -8
  199. package/src/constants/index.js +5 -0
  200. package/src/db/linkedRows/index.js +4 -5
  201. package/src/definitions/common.ts +3 -0
  202. package/src/utilities/rowProcessor/index.js +24 -12
  203. package/src/utilities/rowProcessor/utils.js +23 -7
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">50.33% </span>
26
+ <span class="strong">53.83% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>226/449</span>
28
+ <span class='fraction'>295/548</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">35.21% </span>
33
+ <span class="strong">36.84% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>81/230</span>
35
+ <span class='fraction'>105/285</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">47.36% </span>
40
+ <span class="strong">53.84% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>27/57</span>
42
+ <span class='fraction'>42/78</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">50.79% </span>
47
+ <span class="strong">54.2% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>224/441</span>
49
+ <span class='fraction'>290/535</span>
50
50
  </div>
51
51
 
52
52
 
@@ -73,6 +73,21 @@
73
73
  </tr>
74
74
  </thead>
75
75
  <tbody><tr>
76
+ <td class="file medium" data-value="bulkFormula.js"><a href="bulkFormula.js.html">bulkFormula.js</a></td>
77
+ <td data-value="69.62" class="pic medium">
78
+ <div class="chart"><div class="cover-fill" style="width: 69%"></div><div class="cover-empty" style="width: 31%"></div></div>
79
+ </td>
80
+ <td data-value="69.62" class="pct medium">69.62%</td>
81
+ <td data-value="79" class="abs medium">55/79</td>
82
+ <td data-value="43.63" class="pct low">43.63%</td>
83
+ <td data-value="55" class="abs low">24/55</td>
84
+ <td data-value="81.25" class="pct high">81.25%</td>
85
+ <td data-value="16" class="abs high">13/16</td>
86
+ <td data-value="69.73" class="pct medium">69.73%</td>
87
+ <td data-value="76" class="abs medium">53/76</td>
88
+ </tr>
89
+
90
+ <tr>
76
91
  <td class="file low" data-value="external.js"><a href="external.js.html">external.js</a></td>
77
92
  <td data-value="8.02" class="pic low">
78
93
  <div class="chart"><div class="cover-fill" style="width: 8%"></div><div class="cover-empty" style="width: 92%"></div></div>
@@ -89,47 +104,47 @@
89
104
 
90
105
  <tr>
91
106
  <td class="file medium" data-value="index.js"><a href="index.js.html">index.js</a></td>
92
- <td data-value="77.58" class="pic medium">
93
- <div class="chart"><div class="cover-fill" style="width: 77%"></div><div class="cover-empty" style="width: 23%"></div></div>
107
+ <td data-value="76.78" class="pic medium">
108
+ <div class="chart"><div class="cover-fill" style="width: 76%"></div><div class="cover-empty" style="width: 24%"></div></div>
94
109
  </td>
95
- <td data-value="77.58" class="pct medium">77.58%</td>
96
- <td data-value="58" class="abs medium">45/58</td>
110
+ <td data-value="76.78" class="pct medium">76.78%</td>
111
+ <td data-value="56" class="abs medium">43/56</td>
97
112
  <td data-value="73.91" class="pct medium">73.91%</td>
98
113
  <td data-value="23" class="abs medium">17/23</td>
99
- <td data-value="70" class="pct medium">70%</td>
100
- <td data-value="10" class="abs medium">7/10</td>
101
- <td data-value="78.57" class="pct medium">78.57%</td>
102
- <td data-value="56" class="abs medium">44/56</td>
114
+ <td data-value="66.66" class="pct medium">66.66%</td>
115
+ <td data-value="9" class="abs medium">6/9</td>
116
+ <td data-value="78.18" class="pct medium">78.18%</td>
117
+ <td data-value="55" class="abs medium">43/55</td>
103
118
  </tr>
104
119
 
105
120
  <tr>
106
121
  <td class="file medium" data-value="internal.js"><a href="internal.js.html">internal.js</a></td>
107
- <td data-value="75.38" class="pic medium">
108
- <div class="chart"><div class="cover-fill" style="width: 75%"></div><div class="cover-empty" style="width: 25%"></div></div>
122
+ <td data-value="77.14" class="pic medium">
123
+ <div class="chart"><div class="cover-fill" style="width: 77%"></div><div class="cover-empty" style="width: 23%"></div></div>
109
124
  </td>
110
- <td data-value="75.38" class="pct medium">75.38%</td>
111
- <td data-value="65" class="abs medium">49/65</td>
125
+ <td data-value="77.14" class="pct medium">77.14%</td>
126
+ <td data-value="70" class="abs medium">54/70</td>
112
127
  <td data-value="71.87" class="pct medium">71.87%</td>
113
128
  <td data-value="32" class="abs medium">23/32</td>
114
129
  <td data-value="60" class="pct medium">60%</td>
115
130
  <td data-value="5" class="abs medium">3/5</td>
116
- <td data-value="79.03" class="pct medium">79.03%</td>
117
- <td data-value="62" class="abs medium">49/62</td>
131
+ <td data-value="80.59" class="pct high">80.59%</td>
132
+ <td data-value="67" class="abs high">54/67</td>
118
133
  </tr>
119
134
 
120
135
  <tr>
121
136
  <td class="file medium" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
122
- <td data-value="64.02" class="pic medium">
137
+ <td data-value="64.07" class="pic medium">
123
138
  <div class="chart"><div class="cover-fill" style="width: 64%"></div><div class="cover-empty" style="width: 36%"></div></div>
124
139
  </td>
125
- <td data-value="64.02" class="pct medium">64.02%</td>
126
- <td data-value="189" class="abs medium">121/189</td>
140
+ <td data-value="64.07" class="pct medium">64.07%</td>
141
+ <td data-value="206" class="abs medium">132/206</td>
127
142
  <td data-value="41.41" class="pct low">41.41%</td>
128
143
  <td data-value="99" class="abs low">41/99</td>
129
- <td data-value="60.71" class="pct medium">60.71%</td>
130
- <td data-value="28" class="abs medium">17/28</td>
131
- <td data-value="64.51" class="pct medium">64.51%</td>
132
- <td data-value="186" class="abs medium">120/186</td>
144
+ <td data-value="58.82" class="pct medium">58.82%</td>
145
+ <td data-value="34" class="abs medium">20/34</td>
146
+ <td data-value="64.5" class="pct medium">64.5%</td>
147
+ <td data-value="200" class="abs medium">129/200</td>
133
148
  </tr>
134
149
 
135
150
  </tbody>
@@ -140,7 +155,7 @@
140
155
  <div class='footer quiet pad2 space-top1 center small'>
141
156
  Code coverage generated by
142
157
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
143
- at Mon Jan 31 2022 14:38:52 GMT+0000 (Coordinated Universal Time)
158
+ at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
144
159
  </div>
145
160
  </div>
146
161
  <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">77.58% </span>
26
+ <span class="strong">76.78% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>45/58</span>
28
+ <span class='fraction'>43/56</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">70% </span>
40
+ <span class="strong">66.66% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>7/10</span>
42
+ <span class='fraction'>6/9</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">78.57% </span>
47
+ <span class="strong">78.18% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>44/56</span>
49
+ <span class='fraction'>43/55</span>
50
50
  </div>
51
51
 
52
52
 
@@ -155,29 +155,11 @@
155
155
  <a name='L96'></a><a href='#L96'>96</a>
156
156
  <a name='L97'></a><a href='#L97'>97</a>
157
157
  <a name='L98'></a><a href='#L98'>98</a>
158
- <a name='L99'></a><a href='#L99'>99</a>
159
- <a name='L100'></a><a href='#L100'>100</a>
160
- <a name='L101'></a><a href='#L101'>101</a>
161
- <a name='L102'></a><a href='#L102'>102</a>
162
- <a name='L103'></a><a href='#L103'>103</a>
163
- <a name='L104'></a><a href='#L104'>104</a>
164
- <a name='L105'></a><a href='#L105'>105</a>
165
- <a name='L106'></a><a href='#L106'>106</a>
166
- <a name='L107'></a><a href='#L107'>107</a>
167
- <a name='L108'></a><a href='#L108'>108</a>
168
- <a name='L109'></a><a href='#L109'>109</a>
169
- <a name='L110'></a><a href='#L110'>110</a>
170
- <a name='L111'></a><a href='#L111'>111</a>
171
- <a name='L112'></a><a href='#L112'>112</a>
172
- <a name='L113'></a><a href='#L113'>113</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">37x</span>
158
+ <a name='L99'></a><a href='#L99'>99</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">37x</span>
173
159
  <span class="cline-any cline-yes">37x</span>
174
160
  <span class="cline-any cline-yes">37x</span>
175
161
  <span class="cline-any cline-yes">37x</span>
176
162
  <span class="cline-any cline-yes">37x</span>
177
- <span class="cline-any cline-neutral">&nbsp;</span>
178
- <span class="cline-any cline-neutral">&nbsp;</span>
179
- <span class="cline-any cline-neutral">&nbsp;</span>
180
- <span class="cline-any cline-neutral">&nbsp;</span>
181
163
  <span class="cline-any cline-yes">37x</span>
182
164
  <span class="cline-any cline-yes">37x</span>
183
165
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -199,16 +181,6 @@
199
181
  <span class="cline-any cline-neutral">&nbsp;</span>
200
182
  <span class="cline-any cline-yes">1x</span>
201
183
  <span class="cline-any cline-neutral">&nbsp;</span>
202
- <span class="cline-any cline-neutral">&nbsp;</span>
203
- <span class="cline-any cline-neutral">&nbsp;</span>
204
- <span class="cline-any cline-neutral">&nbsp;</span>
205
- <span class="cline-any cline-neutral">&nbsp;</span>
206
- <span class="cline-any cline-yes">2x</span>
207
- <span class="cline-any cline-neutral">&nbsp;</span>
208
- <span class="cline-any cline-neutral">&nbsp;</span>
209
- <span class="cline-any cline-neutral">&nbsp;</span>
210
- <span class="cline-any cline-neutral">&nbsp;</span>
211
- <span class="cline-any cline-neutral">&nbsp;</span>
212
184
  <span class="cline-any cline-yes">1x</span>
213
185
  <span class="cline-any cline-neutral">&nbsp;</span>
214
186
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -286,12 +258,8 @@ const internal = require("./internal")
286
258
  const external = require("./external")
287
259
  const csvParser = require("../../../utilities/csvParser")
288
260
  const { isExternalTable, isSQL } = require("../../../integrations/utils")
289
- const {
290
- getTableParams,
291
- getDatasourceParams,
292
- BudibaseInternalDB,
293
- } = require("../../../db/utils")
294
- const { getTable } = require("./utils")
261
+ const { getDatasourceParams } = require("../../../db/utils")
262
+ const { getTable, getAllInternalTables } = require("./utils")
295
263
  &nbsp;
296
264
  function pickApi({ tableId, table }) {
297
265
  if (table &amp;&amp; !tableId) {
@@ -309,17 +277,7 @@ function pickApi({ tableId, table }) {
309
277
  exports.fetch = async function (ctx) {
310
278
  const db = new CouchDB(ctx.appId)
311
279
  &nbsp;
312
- const internalTables = await db.allDocs(
313
- getTableParams(null, {
314
- include_docs: true,
315
- })
316
- )
317
- &nbsp;
318
- const internal = internalTables.rows.map(tableDoc =&gt; ({
319
- ...tableDoc.doc,
320
- type: "internal",
321
- sourceId: BudibaseInternalDB._id,
322
- }))
280
+ const internal = await getAllInternalTables(ctx.appId)
323
281
  &nbsp;
324
282
  const externalTables = await db.allDocs(
325
283
  getDatasourceParams("plus", {
@@ -400,7 +358,7 @@ exports.validateCSVSchema = async function (ctx) {
400
358
  <div class='footer quiet pad2 space-top1 center small'>
401
359
  Code coverage generated by
402
360
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
403
- at Mon Jan 31 2022 14:38:52 GMT+0000 (Coordinated Universal Time)
361
+ at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
404
362
  </div>
405
363
  </div>
406
364
  <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">75.38% </span>
26
+ <span class="strong">77.14% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>49/65</span>
28
+ <span class='fraction'>54/70</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">79.03% </span>
47
+ <span class="strong">80.59% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>49/62</span>
49
+ <span class='fraction'>54/67</span>
50
50
  </div>
51
51
 
52
52
 
@@ -210,7 +210,13 @@
210
210
  <a name='L151'></a><a href='#L151'>151</a>
211
211
  <a name='L152'></a><a href='#L152'>152</a>
212
212
  <a name='L153'></a><a href='#L153'>153</a>
213
- <a name='L154'></a><a href='#L154'>154</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">37x</span>
213
+ <a name='L154'></a><a href='#L154'>154</a>
214
+ <a name='L155'></a><a href='#L155'>155</a>
215
+ <a name='L156'></a><a href='#L156'>156</a>
216
+ <a name='L157'></a><a href='#L157'>157</a>
217
+ <a name='L158'></a><a href='#L158'>158</a>
218
+ <a name='L159'></a><a href='#L159'>159</a>
219
+ <a name='L160'></a><a href='#L160'>160</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">37x</span>
214
220
  <span class="cline-any cline-yes">37x</span>
215
221
  <span class="cline-any cline-yes">37x</span>
216
222
  <span class="cline-any cline-yes">37x</span>
@@ -221,6 +227,8 @@
221
227
  <span class="cline-any cline-neutral">&nbsp;</span>
222
228
  <span class="cline-any cline-yes">37x</span>
223
229
  <span class="cline-any cline-yes">37x</span>
230
+ <span class="cline-any cline-yes">37x</span>
231
+ <span class="cline-any cline-yes">37x</span>
224
232
  <span class="cline-any cline-neutral">&nbsp;</span>
225
233
  <span class="cline-any cline-yes">37x</span>
226
234
  <span class="cline-any cline-yes">101x</span>
@@ -318,6 +326,7 @@
318
326
  <span class="cline-any cline-yes">101x</span>
319
327
  <span class="cline-any cline-neutral">&nbsp;</span>
320
328
  <span class="cline-any cline-yes">101x</span>
329
+ <span class="cline-any cline-yes">101x</span>
321
330
  <span class="cline-any cline-neutral">&nbsp;</span>
322
331
  <span class="cline-any cline-neutral">&nbsp;</span>
323
332
  <span class="cline-any cline-yes">37x</span>
@@ -353,6 +362,9 @@
353
362
  <span class="cline-any cline-no">&nbsp;</span>
354
363
  <span class="cline-any cline-neutral">&nbsp;</span>
355
364
  <span class="cline-any cline-neutral">&nbsp;</span>
365
+ <span class="cline-any cline-neutral">&nbsp;</span>
366
+ <span class="cline-any cline-yes">2x</span>
367
+ <span class="cline-any cline-yes">2x</span>
356
368
  <span class="cline-any cline-yes">2x</span>
357
369
  <span class="cline-any cline-neutral">&nbsp;</span>
358
370
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -374,6 +386,8 @@ const {
374
386
  handleDataImport,
375
387
  } = require("./utils")
376
388
  const usageQuota = require("../../../utilities/usageQuota")
389
+ const { cleanupAttachments } = require("../../../utilities/rowProcessor")
390
+ const { runStaticFormulaChecks } = require("./bulkFormula")
377
391
  &nbsp;
378
392
  exports.save = async function (ctx) {
379
393
  const appId = ctx.appId
@@ -469,7 +483,8 @@ exports.save = async function (ctx) {
469
483
  tableToSave._rev = result.rev
470
484
  &nbsp;
471
485
  tableToSave = await tableSaveFunctions.after(tableToSave)
472
- &nbsp;
486
+ // has to run after, make sure it has _id
487
+ await runStaticFormulaChecks(appId, tableToSave, { oldTable })
473
488
  return tableToSave
474
489
  }
475
490
  &nbsp;
@@ -506,6 +521,9 @@ exports.destroy = async function (ctx) {
506
521
  <span class="cstat-no" title="statement not covered" > await db.deleteIndex(existingIndex)</span>
507
522
  }
508
523
  &nbsp;
524
+ // has to run after, make sure it has _id
525
+ await runStaticFormulaChecks(appId, tableToDelete, { deletion: true })
526
+ await cleanupAttachments(appId, tableToDelete, { rows })
509
527
  return tableToDelete
510
528
  }
511
529
  &nbsp;
@@ -523,7 +541,7 @@ exports.bulkImport = <span class="fstat-no" title="function not covered" >as</sp
523
541
  <div class='footer quiet pad2 space-top1 center small'>
524
542
  Code coverage generated by
525
543
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
526
- at Mon Jan 31 2022 14:38:52 GMT+0000 (Coordinated Universal Time)
544
+ at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
527
545
  </div>
528
546
  </div>
529
547
  <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">64.02% </span>
26
+ <span class="strong">64.07% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>121/189</span>
28
+ <span class='fraction'>132/206</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">60.71% </span>
40
+ <span class="strong">58.82% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>17/28</span>
42
+ <span class='fraction'>20/34</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">64.51% </span>
47
+ <span class="strong">64.5% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>120/186</span>
49
+ <span class='fraction'>129/200</span>
50
50
  </div>
51
51
 
52
52
 
@@ -446,15 +446,60 @@
446
446
  <a name='L387'></a><a href='#L387'>387</a>
447
447
  <a name='L388'></a><a href='#L388'>388</a>
448
448
  <a name='L389'></a><a href='#L389'>389</a>
449
- <a name='L390'></a><a href='#L390'>390</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">37x</span>
449
+ <a name='L390'></a><a href='#L390'>390</a>
450
+ <a name='L391'></a><a href='#L391'>391</a>
451
+ <a name='L392'></a><a href='#L392'>392</a>
452
+ <a name='L393'></a><a href='#L393'>393</a>
453
+ <a name='L394'></a><a href='#L394'>394</a>
454
+ <a name='L395'></a><a href='#L395'>395</a>
455
+ <a name='L396'></a><a href='#L396'>396</a>
456
+ <a name='L397'></a><a href='#L397'>397</a>
457
+ <a name='L398'></a><a href='#L398'>398</a>
458
+ <a name='L399'></a><a href='#L399'>399</a>
459
+ <a name='L400'></a><a href='#L400'>400</a>
460
+ <a name='L401'></a><a href='#L401'>401</a>
461
+ <a name='L402'></a><a href='#L402'>402</a>
462
+ <a name='L403'></a><a href='#L403'>403</a>
463
+ <a name='L404'></a><a href='#L404'>404</a>
464
+ <a name='L405'></a><a href='#L405'>405</a>
465
+ <a name='L406'></a><a href='#L406'>406</a>
466
+ <a name='L407'></a><a href='#L407'>407</a>
467
+ <a name='L408'></a><a href='#L408'>408</a>
468
+ <a name='L409'></a><a href='#L409'>409</a>
469
+ <a name='L410'></a><a href='#L410'>410</a>
470
+ <a name='L411'></a><a href='#L411'>411</a>
471
+ <a name='L412'></a><a href='#L412'>412</a>
472
+ <a name='L413'></a><a href='#L413'>413</a>
473
+ <a name='L414'></a><a href='#L414'>414</a>
474
+ <a name='L415'></a><a href='#L415'>415</a>
475
+ <a name='L416'></a><a href='#L416'>416</a>
476
+ <a name='L417'></a><a href='#L417'>417</a>
477
+ <a name='L418'></a><a href='#L418'>418</a>
478
+ <a name='L419'></a><a href='#L419'>419</a>
479
+ <a name='L420'></a><a href='#L420'>420</a>
480
+ <a name='L421'></a><a href='#L421'>421</a>
481
+ <a name='L422'></a><a href='#L422'>422</a>
482
+ <a name='L423'></a><a href='#L423'>423</a>
483
+ <a name='L424'></a><a href='#L424'>424</a>
484
+ <a name='L425'></a><a href='#L425'>425</a>
485
+ <a name='L426'></a><a href='#L426'>426</a>
486
+ <a name='L427'></a><a href='#L427'>427</a>
487
+ <a name='L428'></a><a href='#L428'>428</a>
488
+ <a name='L429'></a><a href='#L429'>429</a>
489
+ <a name='L430'></a><a href='#L430'>430</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">37x</span>
450
490
  <span class="cline-any cline-yes">37x</span>
451
491
  <span class="cline-any cline-neutral">&nbsp;</span>
452
492
  <span class="cline-any cline-neutral">&nbsp;</span>
453
493
  <span class="cline-any cline-neutral">&nbsp;</span>
454
494
  <span class="cline-any cline-neutral">&nbsp;</span>
495
+ <span class="cline-any cline-neutral">&nbsp;</span>
496
+ <span class="cline-any cline-neutral">&nbsp;</span>
455
497
  <span class="cline-any cline-yes">37x</span>
456
498
  <span class="cline-any cline-yes">37x</span>
457
499
  <span class="cline-any cline-yes">37x</span>
500
+ <span class="cline-any cline-neutral">&nbsp;</span>
501
+ <span class="cline-any cline-neutral">&nbsp;</span>
502
+ <span class="cline-any cline-neutral">&nbsp;</span>
458
503
  <span class="cline-any cline-yes">37x</span>
459
504
  <span class="cline-any cline-neutral">&nbsp;</span>
460
505
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -469,6 +514,22 @@
469
514
  <span class="cline-any cline-yes">37x</span>
470
515
  <span class="cline-any cline-yes">37x</span>
471
516
  <span class="cline-any cline-yes">37x</span>
517
+ <span class="cline-any cline-yes">37x</span>
518
+ <span class="cline-any cline-neutral">&nbsp;</span>
519
+ <span class="cline-any cline-yes">37x</span>
520
+ <span class="cline-any cline-no">&nbsp;</span>
521
+ <span class="cline-any cline-no">&nbsp;</span>
522
+ <span class="cline-any cline-neutral">&nbsp;</span>
523
+ <span class="cline-any cline-neutral">&nbsp;</span>
524
+ <span class="cline-any cline-neutral">&nbsp;</span>
525
+ <span class="cline-any cline-neutral">&nbsp;</span>
526
+ <span class="cline-any cline-no">&nbsp;</span>
527
+ <span class="cline-any cline-neutral">&nbsp;</span>
528
+ <span class="cline-any cline-no">&nbsp;</span>
529
+ <span class="cline-any cline-no">&nbsp;</span>
530
+ <span class="cline-any cline-neutral">&nbsp;</span>
531
+ <span class="cline-any cline-neutral">&nbsp;</span>
532
+ <span class="cline-any cline-neutral">&nbsp;</span>
472
533
  <span class="cline-any cline-neutral">&nbsp;</span>
473
534
  <span class="cline-any cline-yes">37x</span>
474
535
  <span class="cline-any cline-yes">101x</span>
@@ -491,6 +552,8 @@
491
552
  <span class="cline-any cline-yes">1x</span>
492
553
  <span class="cline-any cline-yes">1x</span>
493
554
  <span class="cline-any cline-yes">1x</span>
555
+ <span class="cline-any cline-yes">1x</span>
556
+ <span class="cline-any cline-yes">1x</span>
494
557
  <span class="cline-any cline-no">&nbsp;</span>
495
558
  <span class="cline-any cline-no">&nbsp;</span>
496
559
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -499,6 +562,8 @@
499
562
  <span class="cline-any cline-neutral">&nbsp;</span>
500
563
  <span class="cline-any cline-neutral">&nbsp;</span>
501
564
  <span class="cline-any cline-yes">1x</span>
565
+ <span class="cline-any cline-neutral">&nbsp;</span>
566
+ <span class="cline-any cline-yes">1x</span>
502
567
  <span class="cline-any cline-yes">1x</span>
503
568
  <span class="cline-any cline-neutral">&nbsp;</span>
504
569
  <span class="cline-any cline-yes">101x</span>
@@ -661,6 +726,7 @@
661
726
  <span class="cline-any cline-neutral">&nbsp;</span>
662
727
  <span class="cline-any cline-neutral">&nbsp;</span>
663
728
  <span class="cline-any cline-neutral">&nbsp;</span>
729
+ <span class="cline-any cline-neutral">&nbsp;</span>
664
730
  <span class="cline-any cline-yes">101x</span>
665
731
  <span class="cline-any cline-yes">101x</span>
666
732
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -683,6 +749,20 @@
683
749
  <span class="cline-any cline-neutral">&nbsp;</span>
684
750
  <span class="cline-any cline-neutral">&nbsp;</span>
685
751
  <span class="cline-any cline-yes">37x</span>
752
+ <span class="cline-any cline-yes">207x</span>
753
+ <span class="cline-any cline-yes">207x</span>
754
+ <span class="cline-any cline-neutral">&nbsp;</span>
755
+ <span class="cline-any cline-neutral">&nbsp;</span>
756
+ <span class="cline-any cline-neutral">&nbsp;</span>
757
+ <span class="cline-any cline-neutral">&nbsp;</span>
758
+ <span class="cline-any cline-yes">474x</span>
759
+ <span class="cline-any cline-neutral">&nbsp;</span>
760
+ <span class="cline-any cline-neutral">&nbsp;</span>
761
+ <span class="cline-any cline-neutral">&nbsp;</span>
762
+ <span class="cline-any cline-neutral">&nbsp;</span>
763
+ <span class="cline-any cline-neutral">&nbsp;</span>
764
+ <span class="cline-any cline-neutral">&nbsp;</span>
765
+ <span class="cline-any cline-yes">37x</span>
686
766
  <span class="cline-any cline-no">&nbsp;</span>
687
767
  <span class="cline-any cline-no">&nbsp;</span>
688
768
  <span class="cline-any cline-no">&nbsp;</span>
@@ -841,10 +921,15 @@ const {
841
921
  getRowParams,
842
922
  generateRowID,
843
923
  InternalTables,
924
+ getTableParams,
925
+ BudibaseInternalDB,
844
926
  } = require("../../../db/utils")
845
- const { isEqual } = require("lodash/fp")
927
+ const { isEqual } = require("lodash")
846
928
  const { AutoFieldSubTypes, FieldTypes } = require("../../../constants")
847
- const { inputProcessing } = require("../../../utilities/rowProcessor")
929
+ const {
930
+ inputProcessing,
931
+ cleanupAttachments,
932
+ } = require("../../../utilities/rowProcessor")
848
933
  const {
849
934
  USERS_TABLE_SCHEMA,
850
935
  SwitchableTypes,
@@ -858,8 +943,24 @@ const {
858
943
  const { getViews, saveView } = require("../view/utils")
859
944
  const viewTemplate = require("../view/viewBuilder")
860
945
  const usageQuota = require("../../../utilities/usageQuota")
946
+ const { cloneDeep } = require("lodash/fp")
947
+ &nbsp;
948
+ exports.clearColumns = <span class="fstat-no" title="function not covered" >as</span>ync (appId, table, columnNames) =&gt; {
949
+ const db = <span class="cstat-no" title="statement not covered" >new CouchDB(appId)</span>
950
+ const rows = <span class="cstat-no" title="statement not covered" >await db.allDocs(</span>
951
+ getRowParams(table._id, null, {
952
+ include_docs: true,
953
+ })
954
+ )
955
+ <span class="cstat-no" title="statement not covered" > return db.bulkDocs(</span>
956
+ rows.rows.map(<span class="fstat-no" title="function not covered" >({</span> doc }) =&gt; {
957
+ <span class="cstat-no" title="statement not covered" > columnNames.forEach(<span class="fstat-no" title="function not covered" >co</span>lName =&gt; <span class="cstat-no" title="statement not covered" >delete doc[colName])</span></span>
958
+ <span class="cstat-no" title="statement not covered" > return doc</span>
959
+ })
960
+ )
961
+ }
861
962
  &nbsp;
862
- exports.checkForColumnUpdates = async (db, oldTable, updatedTable) =&gt; {
963
+ exports.checkForColumnUpdates = async (appId, db, oldTable, updatedTable) =&gt; {
863
964
  let updatedRows = []
864
965
  const rename = updatedTable._rename
865
966
  let deletedColumns = []
@@ -876,16 +977,20 @@ exports.checkForColumnUpdates = async (db, oldTable, updatedTable) =&gt; {
876
977
  include_docs: true,
877
978
  })
878
979
  )
879
- updatedRows = rows.rows.map(({ doc }) =&gt; {
980
+ const rawRows = rows.rows.map(({ doc }) =&gt; doc)
981
+ updatedRows = rawRows.map(row =&gt; {
982
+ row = cloneDeep(row)
880
983
  if (rename) {
881
- doc[rename.updated] = doc[rename.old]
882
- delete doc[rename.old]
984
+ row[rename.updated] = row[rename.old]
985
+ delete row[rename.old]
883
986
  } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="else path not taken" >E</span>if (deletedColumns.length !== 0) {</span>
884
- <span class="cstat-no" title="statement not covered" > deletedColumns.forEach(<span class="fstat-no" title="function not covered" >co</span>lName =&gt; <span class="cstat-no" title="statement not covered" >delete doc[colName])</span></span>
987
+ <span class="cstat-no" title="statement not covered" > deletedColumns.forEach(<span class="fstat-no" title="function not covered" >co</span>lName =&gt; <span class="cstat-no" title="statement not covered" >delete row[colName])</span></span>
885
988
  }
886
- return doc
989
+ return row
887
990
  })
888
991
  &nbsp;
992
+ // cleanup any attachments from object storage for deleted attachment columns
993
+ await cleanupAttachments(appId, updatedTable, { oldTable, rows: rawRows })
889
994
  // Update views
890
995
  await exports.checkForViewUpdates(db, updatedTable, rename, deletedColumns)
891
996
  delete updatedTable._rename
@@ -1046,6 +1151,7 @@ class TableSaveFunctions {
1046
1151
  // when confirmed valid
1047
1152
  async mid(table) {
1048
1153
  let response = await exports.checkForColumnUpdates(
1154
+ this.appId,
1049
1155
  this.db,
1050
1156
  this.oldTable,
1051
1157
  table
@@ -1071,6 +1177,20 @@ class TableSaveFunctions {
1071
1177
  }
1072
1178
  }
1073
1179
  &nbsp;
1180
+ exports.getAllInternalTables = async appId =&gt; {
1181
+ const db = new CouchDB(appId)
1182
+ const internalTables = await db.allDocs(
1183
+ getTableParams(null, {
1184
+ include_docs: true,
1185
+ })
1186
+ )
1187
+ return internalTables.rows.map(tableDoc =&gt; ({
1188
+ ...tableDoc.doc,
1189
+ type: "internal",
1190
+ sourceId: BudibaseInternalDB._id,
1191
+ }))
1192
+ }
1193
+ &nbsp;
1074
1194
  exports.getAllExternalTables = <span class="fstat-no" title="function not covered" >as</span>ync (appId, datasourceId) =&gt; {
1075
1195
  const db = <span class="cstat-no" title="statement not covered" >new CouchDB(appId)</span>
1076
1196
  const datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
@@ -1231,7 +1351,7 @@ exports.TableSaveFunctions = TableSaveFunctions
1231
1351
  <div class='footer quiet pad2 space-top1 center small'>
1232
1352
  Code coverage generated by
1233
1353
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1234
- at Mon Jan 31 2022 14:38:52 GMT+0000 (Coordinated Universal Time)
1354
+ at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
1235
1355
  </div>
1236
1356
  </div>
1237
1357
  <script src="../../../prettify.js"></script>