@budibase/server 1.0.48 → 1.0.49-alpha.3

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 (289) hide show
  1. package/builder/assets/{index.e083dcaf.js → index.21e57eb4.js} +234 -231
  2. package/builder/assets/index.83c0944f.css +1 -0
  3. package/builder/assets/{vendor.f9faf6ab.js → vendor.d526bfe8.js} +12 -12
  4. package/builder/index.html +3 -3
  5. package/coverage/clover.xml +2338 -2028
  6. package/coverage/coverage-final.json +100 -95
  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 +210 -126
  10. package/coverage/lcov-report/api/controllers/auth.js.html +18 -6
  11. package/coverage/lcov-report/api/controllers/automation.js.html +21 -21
  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 +4 -4
  15. package/coverage/lcov-report/api/controllers/datasource.js.html +72 -36
  16. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/index.html +53 -53
  18. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/layout.js.html +6 -6
  20. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/migrations.js.html +119 -0
  22. package/coverage/lcov-report/api/controllers/permission.js.html +15 -15
  23. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  24. package/coverage/lcov-report/api/controllers/query/index.js.html +19 -19
  25. package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -6
  26. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  27. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/external.js.html +16 -16
  29. package/coverage/lcov-report/api/controllers/row/index.html +48 -33
  30. package/coverage/lcov-report/api/controllers/row/index.js.html +26 -26
  31. package/coverage/lcov-report/api/controllers/row/internal.js.html +95 -158
  32. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +41 -17
  33. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +551 -0
  34. package/coverage/lcov-report/api/controllers/row/utils.js.html +39 -57
  35. package/coverage/lcov-report/api/controllers/screen.js.html +7 -7
  36. package/coverage/lcov-report/api/controllers/script.js.html +4 -4
  37. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +629 -0
  38. package/coverage/lcov-report/api/controllers/table/external.js.html +12 -12
  39. package/coverage/lcov-report/api/controllers/table/index.html +46 -31
  40. package/coverage/lcov-report/api/controllers/table/index.js.html +53 -77
  41. package/coverage/lcov-report/api/controllers/table/internal.js.html +59 -35
  42. package/coverage/lcov-report/api/controllers/table/utils.js.html +217 -73
  43. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/user.js.html +30 -24
  45. package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
  46. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  47. package/coverage/lcov-report/api/controllers/view/index.js.html +14 -14
  48. package/coverage/lcov-report/api/controllers/view/utils.js.html +11 -11
  49. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
  50. package/coverage/lcov-report/api/controllers/webhook.js.html +15 -15
  51. package/coverage/lcov-report/api/index.html +1 -1
  52. package/coverage/lcov-report/api/index.js.html +8 -8
  53. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/index.html +18 -18
  65. package/coverage/lcov-report/api/routes/index.js.html +3 -3
  66. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/{hosting.js.html → migrations.js.html} +17 -14
  70. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/static.js.html +17 -2
  78. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/user.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 +24 -24
  84. package/coverage/lcov-report/automations/automationUtils.js.html +5 -5
  85. package/coverage/lcov-report/automations/bullboard.js.html +16 -16
  86. package/coverage/lcov-report/automations/index.html +1 -1
  87. package/coverage/lcov-report/automations/index.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
  89. package/coverage/lcov-report/automations/steps/createRow.js.html +13 -19
  90. package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
  91. package/coverage/lcov-report/automations/steps/deleteRow.js.html +11 -20
  92. package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
  93. package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
  94. package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
  95. package/coverage/lcov-report/automations/steps/filter.js.html +7 -7
  96. package/coverage/lcov-report/automations/steps/index.html +13 -13
  97. package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
  98. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
  99. package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -10
  100. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
  101. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
  102. package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
  103. package/coverage/lcov-report/automations/steps/updateRow.js.html +6 -6
  104. package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
  105. package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
  106. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  107. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  108. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  110. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  111. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  112. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  113. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  114. package/coverage/lcov-report/automations/triggers.js.html +18 -18
  115. package/coverage/lcov-report/automations/utils.js.html +32 -32
  116. package/coverage/lcov-report/constants/index.html +5 -5
  117. package/coverage/lcov-report/constants/index.js.html +53 -26
  118. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  119. package/coverage/lcov-report/constants/screens.js.html +4 -4
  120. package/coverage/lcov-report/db/client.js.html +18 -18
  121. package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
  122. package/coverage/lcov-report/db/index.html +15 -15
  123. package/coverage/lcov-report/db/index.js.html +3 -3
  124. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +18 -18
  125. package/coverage/lcov-report/db/linkedRows/index.html +10 -10
  126. package/coverage/lcov-report/db/linkedRows/index.js.html +38 -41
  127. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +15 -15
  128. package/coverage/lcov-report/db/newid.js.html +4 -4
  129. package/coverage/lcov-report/db/utils.js.html +86 -86
  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 +5 -5
  133. package/coverage/lcov-report/events/utils.js.html +3 -3
  134. package/coverage/lcov-report/index.html +114 -99
  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 +166 -64
  139. package/coverage/lcov-report/middleware/builder.js.html +8 -8
  140. package/coverage/lcov-report/middleware/currentapp.js.html +29 -29
  141. package/coverage/lcov-report/middleware/index.html +30 -30
  142. package/coverage/lcov-report/middleware/joi-validator.js.html +3 -3
  143. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  144. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  145. package/coverage/lcov-report/middleware/usageQuota.js.html +270 -42
  146. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  147. package/coverage/lcov-report/threads/automation.js.html +1 -1
  148. package/coverage/lcov-report/threads/index.html +15 -15
  149. package/coverage/lcov-report/threads/index.js.html +10 -10
  150. package/coverage/lcov-report/threads/query.js.html +23 -8
  151. package/coverage/lcov-report/threads/utils.js.html +14 -14
  152. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  153. package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
  154. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  155. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  156. package/coverage/lcov-report/utilities/global.js.html +26 -26
  157. package/coverage/lcov-report/utilities/index.html +19 -19
  158. package/coverage/lcov-report/utilities/index.js.html +25 -25
  159. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +8 -8
  160. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  161. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  162. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  163. package/coverage/lcov-report/utilities/rowProcessor/index.html +27 -27
  164. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +115 -79
  165. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +75 -27
  166. package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
  167. package/coverage/lcov-report/utilities/security.js.html +8 -8
  168. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  169. package/coverage/lcov-report/utilities/usageQuota/index.html +141 -0
  170. package/coverage/lcov-report/utilities/usageQuota/index.js.html +356 -0
  171. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +302 -0
  172. package/coverage/lcov-report/{api/controllers/hosting.js.html → utilities/usageQuota/usageQuoteReset.js.html} +36 -48
  173. package/coverage/lcov-report/utilities/users.js.html +5 -5
  174. package/coverage/lcov-report/utilities/workerRequests.js.html +39 -108
  175. package/coverage/lcov.info +3656 -3057
  176. package/dist/api/controllers/application.js +61 -34
  177. package/dist/api/controllers/auth.js +4 -0
  178. package/dist/api/controllers/datasource.js +11 -0
  179. package/dist/api/controllers/migrations.js +21 -0
  180. package/dist/api/controllers/row/internal.js +30 -53
  181. package/dist/api/controllers/row/internalSearch.js +12 -4
  182. package/dist/api/controllers/row/staticFormula.js +147 -0
  183. package/dist/api/controllers/row/utils.js +6 -8
  184. package/dist/api/controllers/static/index.js +59 -10
  185. package/dist/api/controllers/table/bulkFormula.js +160 -0
  186. package/dist/api/controllers/table/index.js +12 -9
  187. package/dist/api/controllers/table/internal.js +9 -0
  188. package/dist/api/controllers/table/utils.js +41 -12
  189. package/dist/api/controllers/user.js +2 -0
  190. package/dist/api/routes/index.js +2 -2
  191. package/dist/api/routes/migrations.js +9 -0
  192. package/dist/api/routes/static.js +2 -1
  193. package/dist/app.js +35 -5
  194. package/dist/automations/steps/createRow.js +2 -4
  195. package/dist/automations/steps/deleteRow.js +1 -4
  196. package/dist/constants/index.js +7 -0
  197. package/dist/db/linkedRows/index.js +4 -5
  198. package/dist/definitions/datasource.js +1 -0
  199. package/dist/environment.js +2 -0
  200. package/dist/integrations/base/sql.js +13 -6
  201. package/dist/integrations/googlesheets.js +340 -0
  202. package/dist/integrations/index.js +3 -0
  203. package/dist/integrations/utils.js +57 -9
  204. package/dist/middleware/authorized.js +55 -30
  205. package/dist/middleware/usageQuota.js +80 -13
  206. package/dist/migrations/functions/appUrls.js +46 -0
  207. package/dist/migrations/functions/quotas1.js +50 -0
  208. package/dist/migrations/functions/usageQuotas/index.js +20 -0
  209. package/dist/migrations/functions/usageQuotas/syncApps.js +32 -0
  210. package/dist/migrations/functions/usageQuotas/syncRows.js +35 -0
  211. package/dist/migrations/functions/userEmailViewCasing.js +24 -0
  212. package/dist/migrations/index.js +62 -0
  213. package/dist/package.json +8 -5
  214. package/dist/tests/utilities/TestConfiguration.js +13 -6
  215. package/dist/threads/query.js +4 -0
  216. package/dist/tsconfig.tsbuildinfo +1 -1
  217. package/dist/utilities/rowProcessor/index.js +18 -11
  218. package/dist/utilities/rowProcessor/utils.js +14 -4
  219. package/dist/utilities/{usageQuota.js → usageQuota/index.js} +44 -31
  220. package/dist/utilities/usageQuota/rows.js +77 -0
  221. package/dist/utilities/usageQuota/usageQuoteReset.js +16 -0
  222. package/dist/utilities/workerRequests.js +0 -20
  223. package/nodemon.json +1 -1
  224. package/package.json +9 -6
  225. package/src/api/controllers/application.js +52 -24
  226. package/src/api/controllers/auth.js +4 -0
  227. package/src/api/controllers/datasource.js +12 -0
  228. package/src/api/controllers/migrations.js +13 -0
  229. package/src/api/controllers/row/internal.js +29 -50
  230. package/src/api/controllers/row/internalSearch.js +12 -4
  231. package/src/api/controllers/row/staticFormula.js +157 -0
  232. package/src/api/controllers/row/utils.js +6 -12
  233. package/src/api/controllers/static/index.js +63 -10
  234. package/src/api/controllers/table/bulkFormula.js +183 -0
  235. package/src/api/controllers/table/index.js +16 -24
  236. package/src/api/controllers/table/internal.js +9 -1
  237. package/src/api/controllers/table/utils.js +57 -9
  238. package/src/api/controllers/user.js +2 -0
  239. package/src/api/routes/index.js +2 -2
  240. package/src/api/routes/migrations.js +14 -0
  241. package/src/api/routes/static.js +5 -0
  242. package/src/api/routes/tests/application.spec.js +2 -2
  243. package/src/api/routes/tests/auth.spec.js +1 -2
  244. package/src/api/routes/tests/static.spec.js +98 -0
  245. package/src/app.ts +18 -5
  246. package/src/automations/steps/createRow.js +2 -4
  247. package/src/automations/steps/deleteRow.js +1 -4
  248. package/src/constants/index.js +9 -0
  249. package/src/db/linkedRows/index.js +4 -5
  250. package/src/definitions/common.ts +3 -0
  251. package/src/definitions/datasource.ts +3 -0
  252. package/src/environment.js +2 -0
  253. package/src/integrations/base/sql.ts +14 -7
  254. package/src/integrations/googlesheets.ts +353 -0
  255. package/src/integrations/index.ts +3 -0
  256. package/src/integrations/tests/sql.spec.js +16 -0
  257. package/src/integrations/utils.ts +71 -11
  258. package/src/middleware/authorized.js +64 -30
  259. package/src/middleware/tests/authorized.spec.js +6 -4
  260. package/src/middleware/tests/usageQuota.spec.js +18 -24
  261. package/src/middleware/usageQuota.js +91 -15
  262. package/src/migrations/functions/appUrls.ts +34 -0
  263. package/src/migrations/functions/quotas1.ts +20 -0
  264. package/src/migrations/functions/tests/appUrls.spec.js +29 -0
  265. package/src/migrations/functions/tests/quotas1.spec.js +27 -0
  266. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +25 -0
  267. package/src/migrations/functions/usageQuotas/index.ts +8 -0
  268. package/src/migrations/functions/usageQuotas/syncApps.ts +18 -0
  269. package/src/migrations/functions/usageQuotas/syncRows.ts +21 -0
  270. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +37 -0
  271. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +43 -0
  272. package/src/migrations/functions/userEmailViewCasing.ts +13 -0
  273. package/src/migrations/index.ts +56 -0
  274. package/src/tests/utilities/TestConfiguration.js +14 -6
  275. package/src/threads/query.js +5 -0
  276. package/src/utilities/rowProcessor/index.js +24 -12
  277. package/src/utilities/rowProcessor/utils.js +23 -7
  278. package/src/utilities/tests/usageQuota/usageQuota.spec.js +72 -0
  279. package/src/utilities/usageQuota/index.js +92 -0
  280. package/src/utilities/usageQuota/rows.js +74 -0
  281. package/src/utilities/usageQuota/usageQuoteReset.js +18 -0
  282. package/src/utilities/workerRequests.js +0 -23
  283. package/builder/assets/index.39e01193.css +0 -1
  284. package/dist/api/controllers/hosting.js +0 -30
  285. package/dist/api/routes/hosting.js +0 -11
  286. package/src/api/controllers/hosting.js +0 -22
  287. package/src/api/routes/hosting.js +0 -13
  288. package/src/api/routes/tests/hosting.spec.js +0 -36
  289. package/src/utilities/usageQuota.js +0 -73
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">74.6% </span>
26
+ <span class="strong">77.14% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>47/63</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">78.33% </span>
47
+ <span class="strong">80.59% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>47/60</span>
49
+ <span class='fraction'>54/67</span>
50
50
  </div>
51
51
 
52
52
 
@@ -208,22 +208,33 @@
208
208
  <a name='L149'></a><a href='#L149'>149</a>
209
209
  <a name='L150'></a><a href='#L150'>150</a>
210
210
  <a name='L151'></a><a href='#L151'>151</a>
211
- <a name='L152'></a><a href='#L152'>152</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
212
- <span class="cline-any cline-yes">34x</span>
213
- <span class="cline-any cline-yes">34x</span>
214
- <span class="cline-any cline-yes">34x</span>
211
+ <a name='L152'></a><a href='#L152'>152</a>
212
+ <a name='L153'></a><a href='#L153'>153</a>
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">39x</span>
220
+ <span class="cline-any cline-yes">39x</span>
221
+ <span class="cline-any cline-yes">39x</span>
222
+ <span class="cline-any cline-yes">39x</span>
215
223
  <span class="cline-any cline-neutral">&nbsp;</span>
216
224
  <span class="cline-any cline-neutral">&nbsp;</span>
217
225
  <span class="cline-any cline-neutral">&nbsp;</span>
218
226
  <span class="cline-any cline-neutral">&nbsp;</span>
219
227
  <span class="cline-any cline-neutral">&nbsp;</span>
220
- <span class="cline-any cline-yes">34x</span>
228
+ <span class="cline-any cline-yes">39x</span>
229
+ <span class="cline-any cline-yes">39x</span>
230
+ <span class="cline-any cline-yes">39x</span>
231
+ <span class="cline-any cline-yes">39x</span>
221
232
  <span class="cline-any cline-neutral">&nbsp;</span>
222
- <span class="cline-any cline-yes">34x</span>
223
- <span class="cline-any cline-yes">99x</span>
224
- <span class="cline-any cline-yes">99x</span>
225
- <span class="cline-any cline-yes">99x</span>
226
- <span class="cline-any cline-yes">99x</span>
233
+ <span class="cline-any cline-yes">39x</span>
234
+ <span class="cline-any cline-yes">101x</span>
235
+ <span class="cline-any cline-yes">101x</span>
236
+ <span class="cline-any cline-yes">101x</span>
237
+ <span class="cline-any cline-yes">101x</span>
227
238
  <span class="cline-any cline-neutral">&nbsp;</span>
228
239
  <span class="cline-any cline-neutral">&nbsp;</span>
229
240
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -232,27 +243,27 @@
232
243
  <span class="cline-any cline-neutral">&nbsp;</span>
233
244
  <span class="cline-any cline-neutral">&nbsp;</span>
234
245
  <span class="cline-any cline-neutral">&nbsp;</span>
235
- <span class="cline-any cline-yes">99x</span>
246
+ <span class="cline-any cline-yes">101x</span>
236
247
  <span class="cline-any cline-yes">4x</span>
237
248
  <span class="cline-any cline-neutral">&nbsp;</span>
238
249
  <span class="cline-any cline-neutral">&nbsp;</span>
239
- <span class="cline-any cline-yes">99x</span>
250
+ <span class="cline-any cline-yes">101x</span>
240
251
  <span class="cline-any cline-no">&nbsp;</span>
241
252
  <span class="cline-any cline-neutral">&nbsp;</span>
242
253
  <span class="cline-any cline-neutral">&nbsp;</span>
243
254
  <span class="cline-any cline-neutral">&nbsp;</span>
244
255
  <span class="cline-any cline-neutral">&nbsp;</span>
245
- <span class="cline-any cline-yes">99x</span>
256
+ <span class="cline-any cline-yes">101x</span>
246
257
  <span class="cline-any cline-neutral">&nbsp;</span>
247
258
  <span class="cline-any cline-neutral">&nbsp;</span>
248
259
  <span class="cline-any cline-neutral">&nbsp;</span>
249
260
  <span class="cline-any cline-neutral">&nbsp;</span>
250
261
  <span class="cline-any cline-neutral">&nbsp;</span>
251
- <span class="cline-any cline-yes">99x</span>
262
+ <span class="cline-any cline-yes">101x</span>
252
263
  <span class="cline-any cline-neutral">&nbsp;</span>
253
264
  <span class="cline-any cline-neutral">&nbsp;</span>
254
265
  <span class="cline-any cline-neutral">&nbsp;</span>
255
- <span class="cline-any cline-yes">99x</span>
266
+ <span class="cline-any cline-yes">101x</span>
256
267
  <span class="cline-any cline-yes">4x</span>
257
268
  <span class="cline-any cline-yes">13x</span>
258
269
  <span class="cline-any cline-yes">13x</span>
@@ -262,7 +273,7 @@
262
273
  <span class="cline-any cline-neutral">&nbsp;</span>
263
274
  <span class="cline-any cline-neutral">&nbsp;</span>
264
275
  <span class="cline-any cline-neutral">&nbsp;</span>
265
- <span class="cline-any cline-yes">99x</span>
276
+ <span class="cline-any cline-yes">101x</span>
266
277
  <span class="cline-any cline-neutral">&nbsp;</span>
267
278
  <span class="cline-any cline-neutral">&nbsp;</span>
268
279
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -275,10 +286,10 @@
275
286
  <span class="cline-any cline-neutral">&nbsp;</span>
276
287
  <span class="cline-any cline-neutral">&nbsp;</span>
277
288
  <span class="cline-any cline-neutral">&nbsp;</span>
278
- <span class="cline-any cline-yes">99x</span>
289
+ <span class="cline-any cline-yes">101x</span>
279
290
  <span class="cline-any cline-neutral">&nbsp;</span>
280
291
  <span class="cline-any cline-neutral">&nbsp;</span>
281
- <span class="cline-any cline-yes">99x</span>
292
+ <span class="cline-any cline-yes">101x</span>
282
293
  <span class="cline-any cline-no">&nbsp;</span>
283
294
  <span class="cline-any cline-no">&nbsp;</span>
284
295
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -287,8 +298,8 @@
287
298
  <span class="cline-any cline-neutral">&nbsp;</span>
288
299
  <span class="cline-any cline-neutral">&nbsp;</span>
289
300
  <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-yes">99x</span>
291
- <span class="cline-any cline-yes">99x</span>
301
+ <span class="cline-any cline-yes">101x</span>
302
+ <span class="cline-any cline-yes">101x</span>
292
303
  <span class="cline-any cline-neutral">&nbsp;</span>
293
304
  <span class="cline-any cline-neutral">&nbsp;</span>
294
305
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -296,7 +307,7 @@
296
307
  <span class="cline-any cline-neutral">&nbsp;</span>
297
308
  <span class="cline-any cline-neutral">&nbsp;</span>
298
309
  <span class="cline-any cline-neutral">&nbsp;</span>
299
- <span class="cline-any cline-yes">99x</span>
310
+ <span class="cline-any cline-yes">101x</span>
300
311
  <span class="cline-any cline-yes">4x</span>
301
312
  <span class="cline-any cline-neutral">&nbsp;</span>
302
313
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -305,19 +316,20 @@
305
316
  <span class="cline-any cline-neutral">&nbsp;</span>
306
317
  <span class="cline-any cline-neutral">&nbsp;</span>
307
318
  <span class="cline-any cline-neutral">&nbsp;</span>
308
- <span class="cline-any cline-yes">99x</span>
309
- <span class="cline-any cline-yes">99x</span>
319
+ <span class="cline-any cline-yes">101x</span>
320
+ <span class="cline-any cline-yes">101x</span>
310
321
  <span class="cline-any cline-yes">1x</span>
311
322
  <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-yes">99x</span>
313
- <span class="cline-any cline-yes">99x</span>
323
+ <span class="cline-any cline-yes">101x</span>
324
+ <span class="cline-any cline-yes">101x</span>
314
325
  <span class="cline-any cline-neutral">&nbsp;</span>
315
- <span class="cline-any cline-yes">99x</span>
326
+ <span class="cline-any cline-yes">101x</span>
316
327
  <span class="cline-any cline-neutral">&nbsp;</span>
317
- <span class="cline-any cline-yes">99x</span>
328
+ <span class="cline-any cline-yes">101x</span>
329
+ <span class="cline-any cline-yes">101x</span>
318
330
  <span class="cline-any cline-neutral">&nbsp;</span>
319
331
  <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-yes">34x</span>
332
+ <span class="cline-any cline-yes">39x</span>
321
333
  <span class="cline-any cline-yes">2x</span>
322
334
  <span class="cline-any cline-yes">2x</span>
323
335
  <span class="cline-any cline-yes">2x</span>
@@ -329,6 +341,7 @@
329
341
  <span class="cline-any cline-neutral">&nbsp;</span>
330
342
  <span class="cline-any cline-neutral">&nbsp;</span>
331
343
  <span class="cline-any cline-yes">2x</span>
344
+ <span class="cline-any cline-yes">2x</span>
332
345
  <span class="cline-any cline-neutral">&nbsp;</span>
333
346
  <span class="cline-any cline-neutral">&nbsp;</span>
334
347
  <span class="cline-any cline-yes">2x</span>
@@ -349,10 +362,13 @@
349
362
  <span class="cline-any cline-no">&nbsp;</span>
350
363
  <span class="cline-any cline-neutral">&nbsp;</span>
351
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>
352
368
  <span class="cline-any cline-yes">2x</span>
353
369
  <span class="cline-any cline-neutral">&nbsp;</span>
354
370
  <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-yes">34x</span>
371
+ <span class="cline-any cline-yes">39x</span>
356
372
  <span class="cline-any cline-no">&nbsp;</span>
357
373
  <span class="cline-any cline-no">&nbsp;</span>
358
374
  <span class="cline-any cline-no">&nbsp;</span>
@@ -369,6 +385,9 @@ const {
369
385
  getTable,
370
386
  handleDataImport,
371
387
  } = require("./utils")
388
+ const usageQuota = require("../../../utilities/usageQuota")
389
+ const { cleanupAttachments } = require("../../../utilities/rowProcessor")
390
+ const { runStaticFormulaChecks } = require("./bulkFormula")
372
391
  &nbsp;
373
392
  exports.save = async function (ctx) {
374
393
  const appId = ctx.appId
@@ -464,7 +483,8 @@ exports.save = async function (ctx) {
464
483
  tableToSave._rev = result.rev
465
484
  &nbsp;
466
485
  tableToSave = await tableSaveFunctions.after(tableToSave)
467
- &nbsp;
486
+ // has to run after, make sure it has _id
487
+ await runStaticFormulaChecks(appId, tableToSave, { oldTable })
468
488
  return tableToSave
469
489
  }
470
490
  &nbsp;
@@ -480,6 +500,7 @@ exports.destroy = async function (ctx) {
480
500
  })
481
501
  )
482
502
  await db.bulkDocs(rows.rows.map(<span class="fstat-no" title="function not covered" >ro</span>w =&gt; (<span class="cstat-no" title="statement not covered" >{ ...row.doc, _deleted: true })</span>))
503
+ await usageQuota.update(usageQuota.Properties.ROW, -rows.rows.length)
483
504
  &nbsp;
484
505
  // update linked rows
485
506
  await linkRows.updateLinks({
@@ -500,6 +521,9 @@ exports.destroy = async function (ctx) {
500
521
  <span class="cstat-no" title="statement not covered" > await db.deleteIndex(existingIndex)</span>
501
522
  }
502
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 })
503
527
  return tableToDelete
504
528
  }
505
529
  &nbsp;
@@ -517,7 +541,7 @@ exports.bulkImport = <span class="fstat-no" title="function not covered" >as</sp
517
541
  <div class='footer quiet pad2 space-top1 center small'>
518
542
  Code coverage generated by
519
543
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
520
- at Mon Jan 31 2022 13:42:59 GMT+0000 (Coordinated Universal Time)
544
+ at Mon Jan 31 2022 17:55:41 GMT+0000 (Coordinated Universal Time)
521
545
  </div>
522
546
  </div>
523
547
  <script src="../../../prettify.js"></script>