@budibase/server 1.0.123-alpha.0 → 1.0.123

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 (330) hide show
  1. package/builder/assets/index.68a7f4e3.css +6 -0
  2. package/builder/assets/index.8d4a5b33.js +1291 -0
  3. package/builder/assets/{vendor.5240f480.js → vendor.8e34a169.js} +1 -1
  4. package/builder/index.html +3 -3
  5. package/coverage/clover.xml +1763 -758
  6. package/coverage/coverage-final.json +43 -28
  7. package/coverage/lcov-report/api/controllers/analytics.js.html +3 -8
  8. package/coverage/lcov-report/api/controllers/apikeys.js.html +4 -9
  9. package/coverage/lcov-report/api/controllers/application.js.html +1436 -0
  10. package/coverage/lcov-report/api/controllers/auth.js.html +3 -8
  11. package/coverage/lcov-report/api/controllers/automation.js.html +3 -8
  12. package/coverage/lcov-report/api/controllers/backup.js.html +3 -8
  13. package/coverage/lcov-report/api/controllers/cloud.js.html +3 -8
  14. package/coverage/lcov-report/api/controllers/component.js.html +3 -8
  15. package/coverage/lcov-report/api/controllers/datasource.js.html +6 -11
  16. package/coverage/lcov-report/api/controllers/dev.js.html +3 -8
  17. package/coverage/lcov-report/api/controllers/index.html +26 -16
  18. package/coverage/lcov-report/api/controllers/integration.js.html +3 -8
  19. package/coverage/lcov-report/api/controllers/layout.js.html +3 -8
  20. package/coverage/lcov-report/api/controllers/metadata.js.html +3 -8
  21. package/coverage/lcov-report/api/controllers/migrations.js.html +3 -8
  22. package/coverage/lcov-report/api/controllers/permission.js.html +3 -8
  23. package/coverage/lcov-report/api/controllers/query/index.html +26 -16
  24. package/coverage/lcov-report/api/controllers/query/index.js.html +713 -0
  25. package/coverage/lcov-report/api/controllers/query/validation.js.html +3 -8
  26. package/coverage/lcov-report/api/controllers/role.js.html +5 -10
  27. package/coverage/lcov-report/api/controllers/routing.js.html +4 -9
  28. package/coverage/lcov-report/api/controllers/row/external.js.html +3 -8
  29. package/coverage/lcov-report/api/controllers/row/index.html +35 -25
  30. package/coverage/lcov-report/api/controllers/row/index.js.html +524 -0
  31. package/coverage/lcov-report/api/controllers/row/internal.js.html +24 -32
  32. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +16 -21
  33. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +19 -24
  34. package/coverage/lcov-report/api/controllers/row/utils.js.html +19 -33
  35. package/coverage/lcov-report/api/controllers/screen.js.html +4 -9
  36. package/coverage/lcov-report/api/controllers/script.js.html +3 -8
  37. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +50 -55
  38. package/coverage/lcov-report/api/controllers/table/external.js.html +3 -8
  39. package/coverage/lcov-report/api/controllers/table/index.html +44 -19
  40. package/coverage/lcov-report/api/controllers/table/index.js.html +15 -20
  41. package/coverage/lcov-report/api/controllers/table/internal.js.html +620 -0
  42. package/coverage/lcov-report/api/controllers/table/utils.js.html +1331 -0
  43. package/coverage/lcov-report/api/controllers/templates.js.html +3 -8
  44. package/coverage/lcov-report/api/controllers/user.js.html +3 -8
  45. package/coverage/lcov-report/api/controllers/view/exporters.js.html +3 -8
  46. package/coverage/lcov-report/api/controllers/view/index.html +3 -8
  47. package/coverage/lcov-report/api/controllers/view/index.js.html +5 -10
  48. package/coverage/lcov-report/api/controllers/view/utils.js.html +3 -8
  49. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +3 -8
  50. package/coverage/lcov-report/api/controllers/webhook.js.html +5 -10
  51. package/coverage/lcov-report/api/index.html +13 -18
  52. package/coverage/lcov-report/api/index.js.html +8 -28
  53. package/coverage/lcov-report/api/routes/analytics.js.html +3 -8
  54. package/coverage/lcov-report/api/routes/apikeys.js.html +3 -8
  55. package/coverage/lcov-report/api/routes/application.js.html +179 -0
  56. package/coverage/lcov-report/api/routes/auth.js.html +3 -8
  57. package/coverage/lcov-report/api/routes/automation.js.html +3 -8
  58. package/coverage/lcov-report/api/routes/backup.js.html +3 -8
  59. package/coverage/lcov-report/api/routes/cloud.js.html +3 -8
  60. package/coverage/lcov-report/api/routes/component.js.html +3 -8
  61. package/coverage/lcov-report/api/routes/datasource.js.html +3 -8
  62. package/coverage/lcov-report/api/routes/deploy.js.html +3 -8
  63. package/coverage/lcov-report/api/routes/dev.js.html +4 -9
  64. package/coverage/lcov-report/api/routes/index.html +68 -13
  65. package/coverage/lcov-report/api/routes/index.js.html +266 -0
  66. package/coverage/lcov-report/api/routes/integration.js.html +3 -8
  67. package/coverage/lcov-report/api/routes/layout.js.html +3 -8
  68. package/coverage/lcov-report/api/routes/metadata.js.html +3 -8
  69. package/coverage/lcov-report/api/routes/migrations.js.html +3 -8
  70. package/coverage/lcov-report/api/routes/permission.js.html +3 -8
  71. package/coverage/lcov-report/api/routes/query.js.html +3 -8
  72. package/coverage/lcov-report/api/routes/role.js.html +3 -8
  73. package/coverage/lcov-report/api/routes/routing.js.html +3 -8
  74. package/coverage/lcov-report/api/routes/row.js.html +908 -0
  75. package/coverage/lcov-report/api/routes/screen.js.html +3 -8
  76. package/coverage/lcov-report/api/routes/script.js.html +3 -8
  77. package/coverage/lcov-report/{automations/steps/loop.js.html → api/routes/static.js.html} +80 -70
  78. package/coverage/lcov-report/api/routes/table.js.html +3 -8
  79. package/coverage/lcov-report/api/routes/templates.js.html +3 -8
  80. package/coverage/lcov-report/api/routes/user.js.html +3 -8
  81. package/coverage/lcov-report/api/routes/utils/index.html +3 -8
  82. package/coverage/lcov-report/api/routes/utils/validators.js.html +3 -8
  83. package/coverage/lcov-report/api/routes/view.js.html +3 -8
  84. package/coverage/lcov-report/api/routes/webhook.js.html +3 -8
  85. package/coverage/lcov-report/automations/actions.js.html +7 -21
  86. package/coverage/lcov-report/automations/automationUtils.js.html +23 -64
  87. package/coverage/lcov-report/automations/bullboard.js.html +3 -8
  88. package/coverage/lcov-report/automations/index.html +37 -27
  89. package/coverage/lcov-report/automations/index.js.html +3 -8
  90. package/coverage/lcov-report/automations/steps/bash.js.html +3 -8
  91. package/coverage/lcov-report/automations/steps/createRow.js.html +380 -0
  92. package/coverage/lcov-report/automations/steps/delay.js.html +3 -8
  93. package/coverage/lcov-report/automations/steps/deleteRow.js.html +347 -0
  94. package/coverage/lcov-report/automations/steps/discord.js.html +3 -8
  95. package/coverage/lcov-report/automations/steps/executeQuery.js.html +3 -8
  96. package/coverage/lcov-report/automations/steps/executeScript.js.html +3 -8
  97. package/coverage/lcov-report/automations/steps/filter.js.html +3 -8
  98. package/coverage/lcov-report/automations/steps/index.html +41 -31
  99. package/coverage/lcov-report/automations/steps/integromat.js.html +3 -8
  100. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +4 -9
  101. package/coverage/lcov-report/automations/steps/queryRows.js.html +4 -9
  102. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +3 -8
  103. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -8
  104. package/coverage/lcov-report/automations/steps/slack.js.html +3 -8
  105. package/coverage/lcov-report/automations/steps/updateRow.js.html +3 -8
  106. package/coverage/lcov-report/automations/steps/utils.js.html +9 -14
  107. package/coverage/lcov-report/automations/steps/zapier.js.html +3 -8
  108. package/coverage/lcov-report/automations/triggerInfo/app.js.html +3 -8
  109. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +3 -8
  110. package/coverage/lcov-report/automations/triggerInfo/index.html +3 -8
  111. package/coverage/lcov-report/automations/triggerInfo/index.js.html +3 -8
  112. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +3 -8
  113. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +3 -8
  114. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +3 -8
  115. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +3 -8
  116. package/coverage/lcov-report/automations/triggers.js.html +11 -16
  117. package/coverage/lcov-report/automations/utils.js.html +665 -0
  118. package/coverage/lcov-report/block-navigation.js +0 -8
  119. package/coverage/lcov-report/constants/index.html +3 -8
  120. package/coverage/lcov-report/constants/index.js.html +42 -41
  121. package/coverage/lcov-report/constants/layouts.js.html +3 -8
  122. package/coverage/lcov-report/constants/screens.js.html +3 -8
  123. package/coverage/lcov-report/db/inMemoryView.js.html +3 -8
  124. package/coverage/lcov-report/db/index.html +3 -8
  125. package/coverage/lcov-report/db/index.js.html +4 -9
  126. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +23 -25
  127. package/coverage/lcov-report/db/linkedRows/index.html +12 -17
  128. package/coverage/lcov-report/db/linkedRows/index.js.html +17 -22
  129. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +7 -12
  130. package/coverage/lcov-report/db/newid.js.html +6 -11
  131. package/coverage/lcov-report/db/utils.js.html +79 -84
  132. package/coverage/lcov-report/events/AutomationEmitter.js.html +9 -14
  133. package/coverage/lcov-report/events/index.html +3 -8
  134. package/coverage/lcov-report/events/index.js.html +4 -9
  135. package/coverage/lcov-report/events/utils.js.html +13 -18
  136. package/coverage/lcov-report/index.html +132 -137
  137. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +3 -8
  138. package/coverage/lcov-report/integrations/tests/index.html +3 -8
  139. package/coverage/lcov-report/middleware/appInfo.js.html +3 -8
  140. package/coverage/lcov-report/middleware/authorized.js.html +458 -0
  141. package/coverage/lcov-report/middleware/builder.js.html +3 -8
  142. package/coverage/lcov-report/middleware/currentapp.js.html +15 -65
  143. package/coverage/lcov-report/middleware/index.html +50 -25
  144. package/coverage/lcov-report/middleware/joi-validator.js.html +4 -9
  145. package/coverage/lcov-report/middleware/publicApi.js.html +3 -8
  146. package/coverage/lcov-report/middleware/resourceId.js.html +3 -8
  147. package/coverage/lcov-report/middleware/selfhost.js.html +4 -9
  148. package/coverage/lcov-report/middleware/usageQuota.js.html +572 -0
  149. package/coverage/lcov-report/middleware/utils.js.html +3 -8
  150. package/coverage/lcov-report/sorter.js +0 -26
  151. package/coverage/lcov-report/threads/automation.js.html +90 -581
  152. package/coverage/lcov-report/threads/index.html +40 -30
  153. package/coverage/lcov-report/threads/index.js.html +296 -0
  154. package/coverage/lcov-report/threads/query.js.html +4 -9
  155. package/coverage/lcov-report/threads/utils.js.html +9 -17
  156. package/coverage/lcov-report/utilities/bcrypt.js.html +3 -8
  157. package/coverage/lcov-report/utilities/budibaseDir.js.html +3 -8
  158. package/coverage/lcov-report/utilities/centralPath.js.html +3 -8
  159. package/coverage/lcov-report/utilities/csvParser.js.html +5 -10
  160. package/coverage/lcov-report/utilities/global.js.html +4 -9
  161. package/coverage/lcov-report/utilities/index.html +3 -8
  162. package/coverage/lcov-report/utilities/index.js.html +6 -11
  163. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +9 -32
  164. package/coverage/lcov-report/utilities/queue/index.html +7 -12
  165. package/coverage/lcov-report/utilities/routing/index.html +3 -8
  166. package/coverage/lcov-report/utilities/routing/index.js.html +3 -8
  167. package/coverage/lcov-report/utilities/rowProcessor/index.html +27 -32
  168. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +71 -67
  169. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +106 -27
  170. package/coverage/lcov-report/utilities/scriptRunner.js.html +3 -8
  171. package/coverage/lcov-report/utilities/security.js.html +4 -9
  172. package/coverage/lcov-report/utilities/statusCodes.js.html +3 -8
  173. package/coverage/lcov-report/utilities/usageQuota/index.html +34 -24
  174. package/coverage/lcov-report/utilities/usageQuota/index.js.html +359 -0
  175. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +39 -44
  176. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +3 -8
  177. package/coverage/lcov-report/utilities/users.js.html +3 -8
  178. package/coverage/lcov-report/utilities/workerRequests.js.html +4 -9
  179. package/coverage/lcov.info +3061 -1290
  180. package/dist/api/controllers/application.js +73 -145
  181. package/dist/api/controllers/deploy/index.js +36 -68
  182. package/dist/api/controllers/public/applications.js +9 -29
  183. package/dist/api/controllers/public/queries.js +7 -27
  184. package/dist/api/controllers/public/rows.js +12 -32
  185. package/dist/api/controllers/public/tables.js +2 -2
  186. package/dist/api/controllers/public/users.js +8 -8
  187. package/dist/api/controllers/public/utils.js +1 -1
  188. package/dist/api/controllers/query/import/index.js +3 -3
  189. package/dist/api/controllers/query/index.js +44 -57
  190. package/dist/api/controllers/row/ExternalRequest.js +27 -27
  191. package/dist/api/controllers/row/index.js +60 -83
  192. package/dist/api/controllers/row/internal.js +1 -2
  193. package/dist/api/controllers/row/utils.js +1 -2
  194. package/dist/api/controllers/static/templates/BudibaseApp.svelte +0 -3
  195. package/dist/api/controllers/table/bulkFormula.js +1 -2
  196. package/dist/api/controllers/table/internal.js +55 -40
  197. package/dist/api/controllers/table/utils.js +229 -271
  198. package/dist/api/index.js +0 -5
  199. package/dist/api/routes/application.js +13 -39
  200. package/dist/api/routes/index.js +56 -61
  201. package/dist/api/routes/public/index.js +9 -6
  202. package/dist/api/routes/public/queries.js +1 -1
  203. package/dist/api/routes/public/rows.js +1 -1
  204. package/dist/api/routes/public/tables.js +3 -3
  205. package/dist/api/routes/public/users.js +1 -1
  206. package/dist/api/routes/row.js +17 -43
  207. package/dist/api/routes/static.js +13 -40
  208. package/dist/api/routes/tests/utilities/TestFunctions.js +33 -75
  209. package/dist/app.js +4 -8
  210. package/dist/automations/actions.js +0 -3
  211. package/dist/automations/automationUtils.js +0 -10
  212. package/dist/automations/steps/createRow.js +12 -12
  213. package/dist/automations/steps/deleteRow.js +16 -13
  214. package/dist/automations/tests/utilities/index.js +11 -13
  215. package/dist/automations/utils.js +133 -187
  216. package/dist/constants/index.js +7 -5
  217. package/dist/db/linkedRows/LinkController.js +1 -0
  218. package/dist/definitions/datasource.js +0 -1
  219. package/dist/environment.js +3 -2
  220. package/dist/index.js +0 -4
  221. package/dist/integrations/base/sql.js +2 -2
  222. package/dist/integrations/base/sqlTable.js +2 -2
  223. package/dist/integrations/googlesheets.js +1 -1
  224. package/dist/integrations/index.js +0 -4
  225. package/dist/integrations/microsoftSqlServer.js +8 -8
  226. package/dist/integrations/mysql.js +9 -9
  227. package/dist/integrations/oracle.js +7 -7
  228. package/dist/integrations/postgres.js +7 -7
  229. package/dist/integrations/queries/sql.js +2 -2
  230. package/dist/integrations/rest.js +1 -1
  231. package/dist/middleware/authorized.js +51 -51
  232. package/dist/middleware/currentapp.js +1 -15
  233. package/dist/middleware/usageQuota.js +154 -0
  234. package/dist/migrations/functions/appUrls.js +1 -1
  235. package/dist/migrations/functions/quotas1.js +2 -6
  236. package/dist/migrations/functions/usageQuotas/index.js +4 -0
  237. package/dist/migrations/functions/usageQuotas/syncApps.js +7 -4
  238. package/dist/migrations/functions/usageQuotas/syncRows.js +8 -5
  239. package/dist/migrations/index.js +1 -17
  240. package/dist/package.json +4 -10
  241. package/dist/threads/automation.js +27 -149
  242. package/dist/threads/index.js +10 -36
  243. package/dist/threads/utils.js +0 -1
  244. package/dist/tsconfig.tsbuildinfo +1 -0
  245. package/dist/utilities/queue/inMemoryQueue.js +1 -6
  246. package/dist/utilities/rowProcessor/index.js +11 -6
  247. package/dist/utilities/rowProcessor/utils.js +27 -1
  248. package/dist/utilities/usageQuota/index.js +86 -0
  249. package/nodemon.json +1 -1
  250. package/package.json +9 -15
  251. package/scripts/dev/manage.js +0 -2
  252. package/src/api/controllers/{application.ts → application.js} +51 -118
  253. package/src/api/controllers/deploy/{index.ts → index.js} +29 -53
  254. package/src/api/controllers/public/applications.ts +2 -2
  255. package/src/api/controllers/public/queries.ts +1 -1
  256. package/src/api/controllers/public/rows.ts +1 -1
  257. package/src/api/controllers/query/{index.ts → index.js} +48 -51
  258. package/src/api/controllers/row/ExternalRequest.ts +1 -1
  259. package/src/api/controllers/row/{index.ts → index.js} +17 -24
  260. package/src/api/controllers/row/internal.js +1 -2
  261. package/src/api/controllers/row/utils.js +1 -4
  262. package/src/api/controllers/static/templates/BudibaseApp.svelte +0 -3
  263. package/src/api/controllers/table/bulkFormula.js +1 -1
  264. package/src/api/controllers/table/{internal.ts → internal.js} +48 -27
  265. package/src/api/controllers/table/{utils.ts → utils.js} +69 -86
  266. package/src/api/index.js +0 -5
  267. package/src/api/routes/{application.ts → application.js} +14 -8
  268. package/src/api/routes/index.js +62 -0
  269. package/src/api/routes/public/index.ts +4 -1
  270. package/src/api/routes/{row.ts → row.js} +15 -7
  271. package/src/api/routes/{static.ts → static.js} +11 -11
  272. package/src/api/routes/tests/misc.spec.js +37 -39
  273. package/src/api/routes/tests/routing.spec.js +0 -1
  274. package/src/api/routes/tests/utilities/{TestFunctions.ts → TestFunctions.js} +33 -57
  275. package/src/app.ts +2 -1
  276. package/src/automations/actions.js +0 -3
  277. package/src/automations/automationUtils.js +0 -12
  278. package/src/automations/steps/{createRow.ts → createRow.js} +15 -9
  279. package/src/automations/steps/{deleteRow.ts → deleteRow.js} +16 -10
  280. package/src/automations/tests/automation.spec.js +1 -0
  281. package/src/automations/tests/{createRow.spec.ts → createRow.spec.js} +15 -4
  282. package/src/automations/tests/{deleteRow.spec.ts → deleteRow.spec.js} +5 -3
  283. package/src/automations/tests/utilities/index.js +10 -12
  284. package/src/automations/{utils.ts → utils.js} +28 -39
  285. package/src/constants/index.js +8 -6
  286. package/src/db/linkedRows/LinkController.js +1 -0
  287. package/src/definitions/datasource.ts +0 -1
  288. package/src/environment.js +3 -2
  289. package/src/index.ts +0 -3
  290. package/src/integrations/index.ts +0 -4
  291. package/src/middleware/{authorized.ts → authorized.js} +14 -20
  292. package/src/middleware/currentapp.js +1 -16
  293. package/src/middleware/tests/usageQuota.spec.js +120 -0
  294. package/src/middleware/usageQuota.js +164 -0
  295. package/src/migrations/functions/tests/quotas1.spec.js +2 -0
  296. package/src/migrations/functions/usageQuotas/index.ts +5 -0
  297. package/src/migrations/functions/usageQuotas/syncApps.ts +6 -3
  298. package/src/migrations/functions/usageQuotas/syncRows.ts +6 -3
  299. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +41 -0
  300. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +45 -0
  301. package/src/migrations/index.ts +1 -13
  302. package/src/threads/automation.js +34 -196
  303. package/src/threads/{index.ts → index.js} +14 -18
  304. package/src/threads/utils.js +0 -1
  305. package/src/utilities/queue/inMemoryQueue.js +1 -7
  306. package/src/utilities/rowProcessor/index.js +12 -9
  307. package/src/utilities/rowProcessor/utils.js +29 -1
  308. package/src/utilities/tests/usageQuota/usageQuota.spec.js +72 -0
  309. package/src/utilities/usageQuota/index.js +93 -0
  310. package/tsconfig.json +2 -2
  311. package/builder/assets/index.89795487.css +0 -6
  312. package/builder/assets/index.be9a1b80.js +0 -1299
  313. package/dist/automations/steps/loop.js +0 -51
  314. package/dist/integrations/redis.js +0 -158
  315. package/dist/migrations/functions/developerQuota.js +0 -49
  316. package/dist/migrations/functions/publishedAppsQuota.js +0 -47
  317. package/dist/migrations/functions/usageQuotas/syncDevelopers.js +0 -24
  318. package/dist/migrations/functions/usageQuotas/syncPublishedApps.js +0 -26
  319. package/dist/tsconfig.build.tsbuildinfo +0 -1
  320. package/src/api/routes/index.ts +0 -60
  321. package/src/automations/steps/loop.js +0 -50
  322. package/src/integrations/redis.ts +0 -152
  323. package/src/integrations/tests/redis.spec.js +0 -60
  324. package/src/migrations/functions/developerQuota.ts +0 -15
  325. package/src/migrations/functions/publishedAppsQuota.ts +0 -13
  326. package/src/migrations/functions/usageQuotas/syncDevelopers.ts +0 -19
  327. package/src/migrations/functions/usageQuotas/syncPublishedApps.ts +0 -21
  328. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts +0 -34
  329. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +0 -40
  330. package/tsconfig.build.json +0 -10
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">58.01% </span>
26
+ <span class="strong">58.39% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>76/131</span>
28
+ <span class='fraction'>80/137</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">43% </span>
33
+ <span class="strong">46.53% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>43/100</span>
35
+ <span class='fraction'>47/101</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">60.48% </span>
47
+ <span class="strong">60.76% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>75/124</span>
49
+ <span class='fraction'>79/130</span>
50
50
  </div>
51
51
 
52
52
 
@@ -54,12 +54,6 @@
54
54
  <p class="quiet">
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
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
61
- </div>
62
- </template>
63
57
  </div>
64
58
  <div class='status-line medium'></div>
65
59
  <pre><table class="coverage">
@@ -402,7 +396,10 @@
402
396
  <a name='L337'></a><a href='#L337'>337</a>
403
397
  <a name='L338'></a><a href='#L338'>338</a>
404
398
  <a name='L339'></a><a href='#L339'>339</a>
405
- <a name='L340'></a><a href='#L340'>340</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">41x</span>
399
+ <a name='L340'></a><a href='#L340'>340</a>
400
+ <a name='L341'></a><a href='#L341'>341</a>
401
+ <a name='L342'></a><a href='#L342'>342</a>
402
+ <a name='L343'></a><a href='#L343'>343</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">41x</span>
406
403
  <span class="cline-any cline-yes">41x</span>
407
404
  <span class="cline-any cline-yes">41x</span>
408
405
  <span class="cline-any cline-yes">41x</span>
@@ -415,6 +412,7 @@
415
412
  <span class="cline-any cline-neutral">&nbsp;</span>
416
413
  <span class="cline-any cline-yes">41x</span>
417
414
  <span class="cline-any cline-yes">41x</span>
415
+ <span class="cline-any cline-yes">41x</span>
418
416
  <span class="cline-any cline-neutral">&nbsp;</span>
419
417
  <span class="cline-any cline-yes">41x</span>
420
418
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -540,23 +538,25 @@
540
538
  <span class="cline-any cline-neutral">&nbsp;</span>
541
539
  <span class="cline-any cline-neutral">&nbsp;</span>
542
540
  <span class="cline-any cline-neutral">&nbsp;</span>
543
- <span class="cline-any cline-yes">77x</span>
544
- <span class="cline-any cline-yes">77x</span>
545
- <span class="cline-any cline-neutral">&nbsp;</span>
546
- <span class="cline-any cline-yes">77x</span>
547
- <span class="cline-any cline-yes">77x</span>
548
- <span class="cline-any cline-yes">214x</span>
549
- <span class="cline-any cline-yes">214x</span>
550
- <span class="cline-any cline-neutral">&nbsp;</span>
551
- <span class="cline-any cline-no">&nbsp;</span>
541
+ <span class="cline-any cline-yes">78x</span>
542
+ <span class="cline-any cline-yes">78x</span>
543
+ <span class="cline-any cline-yes">78x</span>
552
544
  <span class="cline-any cline-neutral">&nbsp;</span>
553
- <span class="cline-any cline-no">&nbsp;</span>
545
+ <span class="cline-any cline-yes">78x</span>
554
546
  <span class="cline-any cline-neutral">&nbsp;</span>
555
547
  <span class="cline-any cline-neutral">&nbsp;</span>
548
+ <span class="cline-any cline-yes">78x</span>
549
+ <span class="cline-any cline-yes">78x</span>
550
+ <span class="cline-any cline-yes">216x</span>
551
+ <span class="cline-any cline-yes">216x</span>
556
552
  <span class="cline-any cline-neutral">&nbsp;</span>
553
+ <span class="cline-any cline-no">&nbsp;</span>
554
+ <span class="cline-any cline-no">&nbsp;</span>
557
555
  <span class="cline-any cline-neutral">&nbsp;</span>
556
+ <span class="cline-any cline-no">&nbsp;</span>
558
557
  <span class="cline-any cline-neutral">&nbsp;</span>
559
558
  <span class="cline-any cline-no">&nbsp;</span>
559
+ <span class="cline-any cline-no">&nbsp;</span>
560
560
  <span class="cline-any cline-neutral">&nbsp;</span>
561
561
  <span class="cline-any cline-no">&nbsp;</span>
562
562
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -580,10 +580,10 @@
580
580
  <span class="cline-any cline-no">&nbsp;</span>
581
581
  <span class="cline-any cline-neutral">&nbsp;</span>
582
582
  <span class="cline-any cline-neutral">&nbsp;</span>
583
- <span class="cline-any cline-yes">77x</span>
583
+ <span class="cline-any cline-yes">78x</span>
584
584
  <span class="cline-any cline-neutral">&nbsp;</span>
585
585
  <span class="cline-any cline-yes">41x</span>
586
- <span class="cline-any cline-neutral">&nbsp;</span>
586
+ <span class="cline-any cline-yes">41x</span>
587
587
  <span class="cline-any cline-yes">41x</span>
588
588
  <span class="cline-any cline-neutral">&nbsp;</span>
589
589
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -594,17 +594,17 @@
594
594
  <span class="cline-any cline-neutral">&nbsp;</span>
595
595
  <span class="cline-any cline-yes">41x</span>
596
596
  <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-yes">180x</span>
597
+ <span class="cline-any cline-yes">182x</span>
598
598
  <span class="cline-any cline-no">&nbsp;</span>
599
599
  <span class="cline-any cline-neutral">&nbsp;</span>
600
600
  <span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-yes">180x</span>
601
+ <span class="cline-any cline-yes">182x</span>
602
602
  <span class="cline-any cline-yes">16x</span>
603
- <span class="cline-any cline-yes">164x</span>
603
+ <span class="cline-any cline-yes">166x</span>
604
604
  <span class="cline-any cline-yes">22x</span>
605
605
  <span class="cline-any cline-neutral">&nbsp;</span>
606
606
  <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-yes">142x</span>
607
+ <span class="cline-any cline-yes">144x</span>
608
608
  <span class="cline-any cline-neutral">&nbsp;</span>
609
609
  <span class="cline-any cline-neutral">&nbsp;</span>
610
610
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -622,36 +622,36 @@
622
622
  <span class="cline-any cline-neutral">&nbsp;</span>
623
623
  <span class="cline-any cline-neutral">&nbsp;</span>
624
624
  <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-yes">77x</span>
625
+ <span class="cline-any cline-yes">78x</span>
626
626
  <span class="cline-any cline-neutral">&nbsp;</span>
627
- <span class="cline-any cline-yes">77x</span>
628
- <span class="cline-any cline-yes">77x</span>
629
- <span class="cline-any cline-yes">77x</span>
630
- <span class="cline-any cline-yes">349x</span>
627
+ <span class="cline-any cline-yes">78x</span>
628
+ <span class="cline-any cline-yes">78x</span>
629
+ <span class="cline-any cline-yes">78x</span>
630
+ <span class="cline-any cline-yes">353x</span>
631
631
  <span class="cline-any cline-neutral">&nbsp;</span>
632
- <span class="cline-any cline-yes">349x</span>
633
- <span class="cline-any cline-yes">170x</span>
632
+ <span class="cline-any cline-yes">353x</span>
633
+ <span class="cline-any cline-yes">172x</span>
634
634
  <span class="cline-any cline-yes">3x</span>
635
635
  <span class="cline-any cline-neutral">&nbsp;</span>
636
- <span class="cline-any cline-yes">170x</span>
636
+ <span class="cline-any cline-yes">172x</span>
637
637
  <span class="cline-any cline-neutral">&nbsp;</span>
638
638
  <span class="cline-any cline-neutral">&nbsp;</span>
639
- <span class="cline-any cline-yes">179x</span>
639
+ <span class="cline-any cline-yes">181x</span>
640
640
  <span class="cline-any cline-no">&nbsp;</span>
641
641
  <span class="cline-any cline-neutral">&nbsp;</span>
642
642
  <span class="cline-any cline-neutral">&nbsp;</span>
643
643
  <span class="cline-any cline-neutral">&nbsp;</span>
644
- <span class="cline-any cline-yes">179x</span>
644
+ <span class="cline-any cline-yes">181x</span>
645
645
  <span class="cline-any cline-neutral">&nbsp;</span>
646
646
  <span class="cline-any cline-neutral">&nbsp;</span>
647
647
  <span class="cline-any cline-neutral">&nbsp;</span>
648
- <span class="cline-any cline-yes">77x</span>
649
- <span class="cline-any cline-yes">71x</span>
650
- <span class="cline-any cline-yes">71x</span>
648
+ <span class="cline-any cline-yes">78x</span>
649
+ <span class="cline-any cline-yes">72x</span>
650
+ <span class="cline-any cline-yes">72x</span>
651
651
  <span class="cline-any cline-neutral">&nbsp;</span>
652
652
  <span class="cline-any cline-neutral">&nbsp;</span>
653
653
  <span class="cline-any cline-neutral">&nbsp;</span>
654
- <span class="cline-any cline-yes">77x</span>
654
+ <span class="cline-any cline-yes">78x</span>
655
655
  <span class="cline-any cline-neutral">&nbsp;</span>
656
656
  <span class="cline-any cline-neutral">&nbsp;</span>
657
657
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -664,20 +664,20 @@
664
664
  <span class="cline-any cline-neutral">&nbsp;</span>
665
665
  <span class="cline-any cline-neutral">&nbsp;</span>
666
666
  <span class="cline-any cline-yes">41x</span>
667
- <span class="cline-any cline-yes">112x</span>
668
- <span class="cline-any cline-yes">112x</span>
669
- <span class="cline-any cline-yes">98x</span>
670
- <span class="cline-any cline-yes">98x</span>
667
+ <span class="cline-any cline-yes">113x</span>
668
+ <span class="cline-any cline-yes">113x</span>
669
+ <span class="cline-any cline-yes">99x</span>
670
+ <span class="cline-any cline-yes">99x</span>
671
671
  <span class="cline-any cline-neutral">&nbsp;</span>
672
672
  <span class="cline-any cline-neutral">&nbsp;</span>
673
- <span class="cline-any cline-yes">112x</span>
673
+ <span class="cline-any cline-yes">113x</span>
674
674
  <span class="cline-any cline-neutral">&nbsp;</span>
675
675
  <span class="cline-any cline-neutral">&nbsp;</span>
676
- <span class="cline-any cline-yes">112x</span>
676
+ <span class="cline-any cline-yes">113x</span>
677
677
  <span class="cline-any cline-neutral">&nbsp;</span>
678
678
  <span class="cline-any cline-neutral">&nbsp;</span>
679
- <span class="cline-any cline-yes">112x</span>
680
- <span class="cline-any cline-yes">320x</span>
679
+ <span class="cline-any cline-yes">113x</span>
680
+ <span class="cline-any cline-yes">322x</span>
681
681
  <span class="cline-any cline-yes">8x</span>
682
682
  <span class="cline-any cline-yes">8x</span>
683
683
  <span class="cline-any cline-yes">6x</span>
@@ -688,10 +688,10 @@
688
688
  <span class="cline-any cline-neutral">&nbsp;</span>
689
689
  <span class="cline-any cline-neutral">&nbsp;</span>
690
690
  <span class="cline-any cline-neutral">&nbsp;</span>
691
- <span class="cline-any cline-yes">112x</span>
691
+ <span class="cline-any cline-yes">113x</span>
692
692
  <span class="cline-any cline-yes">33x</span>
693
693
  <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-yes">112x</span>
694
+ <span class="cline-any cline-yes">113x</span>
695
695
  <span class="cline-any cline-neutral">&nbsp;</span>
696
696
  <span class="cline-any cline-neutral">&nbsp;</span>
697
697
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -745,7 +745,7 @@
745
745
  const { cloneDeep } = require("lodash/fp")
746
746
  const { FieldTypes, AutoFieldSubTypes } = require("../../constants")
747
747
  const { attachmentsRelativeURL } = require("../index")
748
- const { processFormulas } = require("./utils")
748
+ const { processFormulas, fixAutoColumnSubType } = require("./utils")
749
749
  const { deleteFiles } = require("../../utilities/fileSystem/utilities")
750
750
  const { ObjectStoreBuckets } = require("../../constants")
751
751
  const {
@@ -754,6 +754,7 @@ const {
754
754
  dbExists,
755
755
  } = require("@budibase/backend-core/db")
756
756
  const { getAppId } = require("@budibase/backend-core/context")
757
+ const { InternalTables } = require("../../db/utils")
757
758
  &nbsp;
758
759
  const BASE_AUTO_ID = 1
759
760
  &nbsp;
@@ -880,21 +881,23 @@ function processAutoColumn(
880
881
  opts = <span class="branch-0 cbranch-no" title="branch not covered" >{ reprocessing: false, noAutoRelationships: false }</span>
881
882
  ) {
882
883
  let noUser = !user || !user.userId
884
+ let isUserTable = table._id === InternalTables.USER_METADATA
883
885
  let now = new Date().toISOString()
884
886
  // if a row doesn't have a revision then it doesn't exist yet
885
887
  const creating = !row._rev
888
+ // check its not user table, or whether any of the processing options have been disabled
889
+ const shouldUpdateUserFields =
890
+ !isUserTable &amp;&amp; !opts.reprocessing &amp;&amp; !opts.noAutoRelationships &amp;&amp; !noUser
886
891
  for (let [key, schema] of Object.entries(table.schema)) {
887
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!schema.autocolumn) {
892
+ if (!schema.autocolumn) {
888
893
  continue
889
894
  }
895
+ <span class="cstat-no" title="statement not covered" > if (!schema.subtype) {</span>
896
+ <span class="cstat-no" title="statement not covered" > schema = fixAutoColumnSubType(schema)</span>
897
+ }
890
898
  <span class="cstat-no" title="statement not covered" > switch (schema.subtype) {</span>
891
899
  case AutoFieldSubTypes.CREATED_BY:
892
- <span class="cstat-no" title="statement not covered" > if (</span>
893
- creating &amp;&amp;
894
- !opts.reprocessing &amp;&amp;
895
- !opts.noAutoRelationships &amp;&amp;
896
- !noUser
897
- ) {
900
+ <span class="cstat-no" title="statement not covered" > if (creating &amp;&amp; shouldUpdateUserFields) {</span>
898
901
  <span class="cstat-no" title="statement not covered" > row[key] = [user.userId]</span>
899
902
  }
900
903
  <span class="cstat-no" title="statement not covered" > break</span>
@@ -904,7 +907,7 @@ function processAutoColumn(
904
907
  }
905
908
  <span class="cstat-no" title="statement not covered" > break</span>
906
909
  case AutoFieldSubTypes.UPDATED_BY:
907
- <span class="cstat-no" title="statement not covered" > if (!opts.reprocessing &amp;&amp; !opts.noAutoRelationships &amp;&amp; !noUser) {</span>
910
+ <span class="cstat-no" title="statement not covered" > if (shouldUpdateUserFields) {</span>
908
911
  <span class="cstat-no" title="statement not covered" > row[key] = [user.userId]</span>
909
912
  }
910
913
  <span class="cstat-no" title="statement not covered" > break</span>
@@ -922,7 +925,7 @@ function processAutoColumn(
922
925
  return { table, row }
923
926
  }
924
927
  exports.processAutoColumn = processAutoColumn
925
- &nbsp;
928
+ exports.fixAutoColumnSubType = fixAutoColumnSubType
926
929
  exports.processFormulas = processFormulas
927
930
  &nbsp;
928
931
  /**
@@ -1045,11 +1048,11 @@ exports.outputProcessing = async (table, rows, opts = { squash: true }) =&gt; {
1045
1048
  */
1046
1049
  exports.cleanupAttachments = async (table, { row, rows, oldRow, oldTable }) =&gt; {
1047
1050
  const appId = getAppId()
1048
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!isProdAppID(appId)) {
1051
+ if (!isProdAppID(appId)) {
1049
1052
  const prodAppId = getProdAppID(appId)
1050
1053
  // if prod exists, then don't allow deleting
1051
1054
  const exists = await dbExists(prodAppId)
1052
- <span class="missing-if-branch" title="else path not taken" >E</span>if (exists) {
1055
+ if (exists) {
1053
1056
  return
1054
1057
  }
1055
1058
  }
@@ -1086,9 +1089,10 @@ exports.cleanupAttachments = async (table, { row, rows, oldRow, oldTable }) =&gt
1086
1089
  </div><!-- /wrapper -->
1087
1090
  <div class='footer quiet pad2 space-top1 center small'>
1088
1091
  Code coverage generated by
1089
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1090
- at Tue Apr 26 2022 16:11:58 GMT+0000 (Coordinated Universal Time)
1092
+ <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1093
+ at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
1091
1094
  </div>
1095
+ </div>
1092
1096
  <script src="../../prettify.js"></script>
1093
1097
  <script>
1094
1098
  window.onload = function () {
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">66.66% </span>
26
+ <span class="strong">62.5% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>12/18</span>
28
+ <span class='fraction'>20/32</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">50% </span>
33
+ <span class="strong">54.54% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>9/18</span>
35
+ <span class='fraction'>18/33</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>1/1</span>
42
+ <span class='fraction'>2/2</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">70.58% </span>
47
+ <span class="strong">64.51% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>12/17</span>
49
+ <span class='fraction'>20/31</span>
50
50
  </div>
51
51
 
52
52
 
@@ -54,12 +54,6 @@
54
54
  <p class="quiet">
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
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
61
- </div>
62
- </template>
63
57
  </div>
64
58
  <div class='status-line medium'></div>
65
59
  <pre><table class="coverage">
@@ -102,30 +96,86 @@
102
96
  <a name='L37'></a><a href='#L37'>37</a>
103
97
  <a name='L38'></a><a href='#L38'>38</a>
104
98
  <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">41x</span>
99
+ <a name='L40'></a><a href='#L40'>40</a>
100
+ <a name='L41'></a><a href='#L41'>41</a>
101
+ <a name='L42'></a><a href='#L42'>42</a>
102
+ <a name='L43'></a><a href='#L43'>43</a>
103
+ <a name='L44'></a><a href='#L44'>44</a>
104
+ <a name='L45'></a><a href='#L45'>45</a>
105
+ <a name='L46'></a><a href='#L46'>46</a>
106
+ <a name='L47'></a><a href='#L47'>47</a>
107
+ <a name='L48'></a><a href='#L48'>48</a>
108
+ <a name='L49'></a><a href='#L49'>49</a>
109
+ <a name='L50'></a><a href='#L50'>50</a>
110
+ <a name='L51'></a><a href='#L51'>51</a>
111
+ <a name='L52'></a><a href='#L52'>52</a>
112
+ <a name='L53'></a><a href='#L53'>53</a>
113
+ <a name='L54'></a><a href='#L54'>54</a>
114
+ <a name='L55'></a><a href='#L55'>55</a>
115
+ <a name='L56'></a><a href='#L56'>56</a>
116
+ <a name='L57'></a><a href='#L57'>57</a>
117
+ <a name='L58'></a><a href='#L58'>58</a>
118
+ <a name='L59'></a><a href='#L59'>59</a>
119
+ <a name='L60'></a><a href='#L60'>60</a>
120
+ <a name='L61'></a><a href='#L61'>61</a>
121
+ <a name='L62'></a><a href='#L62'>62</a>
122
+ <a name='L63'></a><a href='#L63'>63</a>
123
+ <a name='L64'></a><a href='#L64'>64</a>
124
+ <a name='L65'></a><a href='#L65'>65</a>
125
+ <a name='L66'></a><a href='#L66'>66</a>
126
+ <a name='L67'></a><a href='#L67'>67</a>
127
+ <a name='L68'></a><a href='#L68'>68</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
128
+ <span class="cline-any cline-neutral">&nbsp;</span>
129
+ <span class="cline-any cline-neutral">&nbsp;</span>
130
+ <span class="cline-any cline-neutral">&nbsp;</span>
131
+ <span class="cline-any cline-neutral">&nbsp;</span>
132
+ <span class="cline-any cline-yes">41x</span>
106
133
  <span class="cline-any cline-yes">41x</span>
107
134
  <span class="cline-any cline-neutral">&nbsp;</span>
108
135
  <span class="cline-any cline-neutral">&nbsp;</span>
109
136
  <span class="cline-any cline-neutral">&nbsp;</span>
110
137
  <span class="cline-any cline-neutral">&nbsp;</span>
138
+ <span class="cline-any cline-neutral">&nbsp;</span>
111
139
  <span class="cline-any cline-yes">41x</span>
140
+ <span class="cline-any cline-yes">2x</span>
141
+ <span class="cline-any cline-no">&nbsp;</span>
112
142
  <span class="cline-any cline-neutral">&nbsp;</span>
113
143
  <span class="cline-any cline-neutral">&nbsp;</span>
144
+ <span class="cline-any cline-yes">2x</span>
145
+ <span class="cline-any cline-no">&nbsp;</span>
146
+ <span class="cline-any cline-yes">2x</span>
147
+ <span class="cline-any cline-no">&nbsp;</span>
148
+ <span class="cline-any cline-yes">2x</span>
149
+ <span class="cline-any cline-no">&nbsp;</span>
150
+ <span class="cline-any cline-yes">2x</span>
151
+ <span class="cline-any cline-no">&nbsp;</span>
152
+ <span class="cline-any cline-yes">2x</span>
153
+ <span class="cline-any cline-no">&nbsp;</span>
154
+ <span class="cline-any cline-neutral">&nbsp;</span>
155
+ <span class="cline-any cline-yes">2x</span>
114
156
  <span class="cline-any cline-neutral">&nbsp;</span>
115
157
  <span class="cline-any cline-neutral">&nbsp;</span>
116
- <span class="cline-any cline-yes">278x</span>
117
- <span class="cline-any cline-yes">278x</span>
118
- <span class="cline-any cline-yes">166x</span>
119
- <span class="cline-any cline-yes">166x</span>
120
158
  <span class="cline-any cline-neutral">&nbsp;</span>
121
- <span class="cline-any cline-yes">278x</span>
122
- <span class="cline-any cline-yes">798x</span>
123
- <span class="cline-any cline-yes">798x</span>
124
159
  <span class="cline-any cline-neutral">&nbsp;</span>
125
160
  <span class="cline-any cline-neutral">&nbsp;</span>
161
+ <span class="cline-any cline-yes">41x</span>
126
162
  <span class="cline-any cline-neutral">&nbsp;</span>
127
163
  <span class="cline-any cline-neutral">&nbsp;</span>
128
- <span class="cline-any cline-yes">798x</span>
164
+ <span class="cline-any cline-neutral">&nbsp;</span>
165
+ <span class="cline-any cline-neutral">&nbsp;</span>
166
+ <span class="cline-any cline-yes">281x</span>
167
+ <span class="cline-any cline-yes">281x</span>
168
+ <span class="cline-any cline-yes">168x</span>
169
+ <span class="cline-any cline-yes">168x</span>
170
+ <span class="cline-any cline-neutral">&nbsp;</span>
171
+ <span class="cline-any cline-yes">281x</span>
172
+ <span class="cline-any cline-yes">804x</span>
173
+ <span class="cline-any cline-yes">804x</span>
174
+ <span class="cline-any cline-neutral">&nbsp;</span>
175
+ <span class="cline-any cline-neutral">&nbsp;</span>
176
+ <span class="cline-any cline-neutral">&nbsp;</span>
177
+ <span class="cline-any cline-neutral">&nbsp;</span>
178
+ <span class="cline-any cline-yes">804x</span>
129
179
  <span class="cline-any cline-neutral">&nbsp;</span>
130
180
  <span class="cline-any cline-neutral">&nbsp;</span>
131
181
  <span class="cline-any cline-no">&nbsp;</span>
@@ -139,11 +189,39 @@
139
189
  <span class="cline-any cline-neutral">&nbsp;</span>
140
190
  <span class="cline-any cline-neutral">&nbsp;</span>
141
191
  <span class="cline-any cline-neutral">&nbsp;</span>
142
- <span class="cline-any cline-yes">278x</span>
192
+ <span class="cline-any cline-yes">281x</span>
143
193
  <span class="cline-any cline-neutral">&nbsp;</span>
144
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { FieldTypes, FormulaTypes } = require("../../constants")
194
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const {
195
+ FieldTypes,
196
+ FormulaTypes,
197
+ AutoFieldDefaultNames,
198
+ AutoFieldSubTypes,
199
+ } = require("../../constants")
145
200
  const { processStringSync } = require("@budibase/string-templates")
146
201
  &nbsp;
202
+ /**
203
+ * If the subtype has been lost for any reason this works out what
204
+ * subtype the auto column should be.
205
+ */
206
+ exports.fixAutoColumnSubType = column =&gt; {
207
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!column.autocolumn || !column.name || column.subtype) {
208
+ <span class="cstat-no" title="statement not covered" > return column</span>
209
+ }
210
+ // the columns which get auto generated
211
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (column.name.endsWith(AutoFieldDefaultNames.CREATED_BY)) {
212
+ <span class="cstat-no" title="statement not covered" > column.subtype = AutoFieldSubTypes.CREATED_BY</span>
213
+ } else <span class="missing-if-branch" title="if path not taken" >I</span>if (column.name.endsWith(AutoFieldDefaultNames.UPDATED_BY)) {
214
+ <span class="cstat-no" title="statement not covered" > column.subtype = AutoFieldSubTypes.UPDATED_BY</span>
215
+ } else <span class="missing-if-branch" title="if path not taken" >I</span>if (column.name.endsWith(AutoFieldDefaultNames.CREATED_AT)) {
216
+ <span class="cstat-no" title="statement not covered" > column.subtype = AutoFieldSubTypes.CREATED_AT</span>
217
+ } else <span class="missing-if-branch" title="if path not taken" >I</span>if (column.name.endsWith(AutoFieldDefaultNames.UPDATED_AT)) {
218
+ <span class="cstat-no" title="statement not covered" > column.subtype = AutoFieldSubTypes.UPDATED_AT</span>
219
+ } else <span class="missing-if-branch" title="if path not taken" >I</span>if (column.name.endsWith(AutoFieldDefaultNames.AUTO_ID)) {
220
+ <span class="cstat-no" title="statement not covered" > column.subtype = AutoFieldSubTypes.AUTO_ID</span>
221
+ }
222
+ return column
223
+ }
224
+ &nbsp;
147
225
  /**
148
226
  * Looks through the rows provided and finds formulas - which it then processes.
149
227
  */
@@ -159,7 +237,7 @@ exports.processFormulas = (
159
237
  }
160
238
  for (let [column, schema] of Object.entries(table.schema)) {
161
239
  const isStatic = schema.formulaType === FormulaTypes.STATIC
162
- <span class="missing-if-branch" title="else path not taken" >E</span>if (
240
+ if (
163
241
  schema.type !== FieldTypes.FORMULA ||
164
242
  (<span class="branch-1 cbranch-no" title="branch not covered" >dynamic </span>&amp;&amp; <span class="branch-2 cbranch-no" title="branch not covered" >isStatic)</span> ||
165
243
  (<span class="branch-3 cbranch-no" title="branch not covered" >!dynamic </span>&amp;&amp; <span class="branch-4 cbranch-no" title="branch not covered" >!isStatic)</span>
@@ -186,9 +264,10 @@ exports.processFormulas = (
186
264
  </div><!-- /wrapper -->
187
265
  <div class='footer quiet pad2 space-top1 center small'>
188
266
  Code coverage generated by
189
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
190
- at Tue Apr 26 2022 16:11:58 GMT+0000 (Coordinated Universal Time)
267
+ <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
268
+ at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
191
269
  </div>
270
+ </div>
192
271
  <script src="../../prettify.js"></script>
193
272
  <script>
194
273
  window.onload = function () {
@@ -54,12 +54,6 @@
54
54
  <p class="quiet">
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
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
61
- </div>
62
- </template>
63
57
  </div>
64
58
  <div class='status-line low'></div>
65
59
  <pre><table class="coverage">
@@ -141,9 +135,10 @@ module.exports = ScriptRunner
141
135
  </div><!-- /wrapper -->
142
136
  <div class='footer quiet pad2 space-top1 center small'>
143
137
  Code coverage generated by
144
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
145
- at Tue Apr 26 2022 16:11:58 GMT+0000 (Coordinated Universal Time)
138
+ <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
139
+ at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
146
140
  </div>
141
+ </div>
147
142
  <script src="../prettify.js"></script>
148
143
  <script>
149
144
  window.onload = function () {
@@ -54,12 +54,6 @@
54
54
  <p class="quiet">
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
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
61
- </div>
62
- </template>
63
57
  </div>
64
58
  <div class='status-line high'></div>
65
59
  <pre><table class="coverage">
@@ -261,7 +255,7 @@ exports.getBasePermissions = resourceId =&gt; {
261
255
  ) {
262
256
  const level = typedPermission.level
263
257
  permissions[level] = lowerBuiltinRoleID(permissions[level], roleId)
264
- <span class="missing-if-branch" title="else path not taken" >E</span>if (isPermissionLevelHigherThanRead(level)) {
258
+ if (isPermissionLevelHigherThanRead(level)) {
265
259
  permissions[PermissionLevels.READ] = lowerBuiltinRoleID(
266
260
  permissions[PermissionLevels.READ],
267
261
  roleId
@@ -279,9 +273,10 @@ exports.CURRENTLY_SUPPORTED_LEVELS = CURRENTLY_SUPPORTED_LEVELS
279
273
  </div><!-- /wrapper -->
280
274
  <div class='footer quiet pad2 space-top1 center small'>
281
275
  Code coverage generated by
282
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
283
- at Tue Apr 26 2022 16:11:58 GMT+0000 (Coordinated Universal Time)
276
+ <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
277
+ at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
284
278
  </div>
279
+ </div>
285
280
  <script src="../prettify.js"></script>
286
281
  <script>
287
282
  window.onload = function () {
@@ -54,12 +54,6 @@
54
54
  <p class="quiet">
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
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
61
- </div>
62
- </template>
63
57
  </div>
64
58
  <div class='status-line low'></div>
65
59
  <pre><table class="coverage">
@@ -90,9 +84,10 @@
90
84
  </div><!-- /wrapper -->
91
85
  <div class='footer quiet pad2 space-top1 center small'>
92
86
  Code coverage generated by
93
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
94
- at Tue Apr 26 2022 16:11:58 GMT+0000 (Coordinated Universal Time)
87
+ <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
88
+ at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
95
89
  </div>
90
+ </div>
96
91
  <script src="../prettify.js"></script>
97
92
  <script>
98
93
  window.onload = function () {