@budibase/server 2.1.40-alpha.5 → 2.1.40-alpha.7

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 (339) hide show
  1. package/builder/assets/index.6aaaf0ad.css +6 -0
  2. package/builder/assets/{index.8170ae19.js → index.8b0acb6f.js} +256 -256
  3. package/builder/index.html +2 -2
  4. package/coverage/clover.xml +2676 -2621
  5. package/coverage/coverage-final.json +251 -250
  6. package/coverage/lcov-report/index.html +27 -27
  7. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +7 -7
  8. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +5 -5
  9. package/coverage/lcov-report/src/api/controllers/application.ts.html +103 -103
  10. package/coverage/lcov-report/src/api/controllers/auth.ts.html +9 -9
  11. package/coverage/lcov-report/src/api/controllers/automation.ts.html +27 -27
  12. package/coverage/lcov-report/src/api/controllers/backup.ts.html +6 -6
  13. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +12 -12
  14. package/coverage/lcov-report/src/api/controllers/component.ts.html +8 -8
  15. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +15 -15
  16. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +14 -14
  17. package/coverage/lcov-report/src/api/controllers/deploy/index.html +1 -1
  18. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +81 -81
  19. package/coverage/lcov-report/src/api/controllers/dev.ts.html +18 -18
  20. package/coverage/lcov-report/src/api/controllers/index.html +1 -1
  21. package/coverage/lcov-report/src/api/controllers/integration.ts.html +4 -4
  22. package/coverage/lcov-report/src/api/controllers/layout.ts.html +6 -6
  23. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +9 -9
  24. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +4 -4
  25. package/coverage/lcov-report/src/api/controllers/permission.ts.html +13 -13
  26. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +3 -3
  27. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +6 -6
  28. package/coverage/lcov-report/src/api/controllers/plugin/index.html +1 -1
  29. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +15 -15
  30. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +6 -6
  31. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +5 -5
  32. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +4 -4
  33. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +4 -4
  34. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +10 -10
  35. package/coverage/lcov-report/src/api/controllers/public/index.html +1 -1
  36. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +2 -2
  37. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +7 -7
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +2 -2
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +2 -2
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +2 -2
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +2 -2
  43. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +6 -6
  44. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +10 -10
  45. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +9 -9
  46. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +10 -10
  47. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +6 -6
  48. package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
  49. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +8 -8
  50. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
  51. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +8 -8
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +5 -5
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +8 -8
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +10 -10
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +14 -14
  57. package/coverage/lcov-report/src/api/controllers/query/index.html +1 -1
  58. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +21 -21
  59. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +9 -9
  60. package/coverage/lcov-report/src/api/controllers/role.ts.html +8 -8
  61. package/coverage/lcov-report/src/api/controllers/routing.ts.html +6 -6
  62. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +11 -11
  63. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +20 -20
  64. package/coverage/lcov-report/src/api/controllers/row/index.html +1 -1
  65. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +14 -14
  66. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +29 -29
  67. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +9 -9
  68. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +10 -10
  69. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +13 -13
  70. package/coverage/lcov-report/src/api/controllers/screen.ts.html +24 -24
  71. package/coverage/lcov-report/src/api/controllers/script.ts.html +4 -4
  72. package/coverage/lcov-report/src/api/controllers/static/index.html +1 -1
  73. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +24 -24
  74. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +10 -10
  75. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +14 -14
  76. package/coverage/lcov-report/src/api/controllers/table/index.html +1 -1
  77. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +14 -14
  78. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +17 -17
  79. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +27 -27
  80. package/coverage/lcov-report/src/api/controllers/templates.ts.html +7 -7
  81. package/coverage/lcov-report/src/api/controllers/user.ts.html +16 -16
  82. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +4 -4
  83. package/coverage/lcov-report/src/api/controllers/view/index.html +1 -1
  84. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +17 -17
  85. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +13 -13
  86. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +7 -7
  87. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +14 -14
  88. package/coverage/lcov-report/src/api/index.html +1 -1
  89. package/coverage/lcov-report/src/api/index.ts.html +22 -22
  90. package/coverage/lcov-report/src/api/routes/analytics.ts.html +7 -7
  91. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +8 -8
  92. package/coverage/lcov-report/src/api/routes/application.ts.html +9 -9
  93. package/coverage/lcov-report/src/api/routes/auth.ts.html +6 -6
  94. package/coverage/lcov-report/src/api/routes/automation.ts.html +11 -11
  95. package/coverage/lcov-report/src/api/routes/backup.ts.html +8 -8
  96. package/coverage/lcov-report/src/api/routes/cloud.ts.html +8 -8
  97. package/coverage/lcov-report/src/api/routes/component.ts.html +8 -8
  98. package/coverage/lcov-report/src/api/routes/datasource.ts.html +9 -9
  99. package/coverage/lcov-report/src/api/routes/deploy.ts.html +8 -8
  100. package/coverage/lcov-report/src/api/routes/dev.ts.html +13 -13
  101. package/coverage/lcov-report/src/api/routes/index.html +1 -1
  102. package/coverage/lcov-report/src/api/routes/index.ts.html +34 -34
  103. package/coverage/lcov-report/src/api/routes/integration.ts.html +8 -8
  104. package/coverage/lcov-report/src/api/routes/layout.ts.html +8 -8
  105. package/coverage/lcov-report/src/api/routes/metadata.ts.html +9 -9
  106. package/coverage/lcov-report/src/api/routes/migrations.ts.html +7 -7
  107. package/coverage/lcov-report/src/api/routes/permission.ts.html +9 -9
  108. package/coverage/lcov-report/src/api/routes/plugin.ts.html +8 -8
  109. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +12 -12
  110. package/coverage/lcov-report/src/api/routes/public/index.html +1 -1
  111. package/coverage/lcov-report/src/api/routes/public/index.ts.html +52 -52
  112. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +1 -1
  113. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +10 -10
  114. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +9 -9
  115. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +12 -12
  116. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +12 -12
  117. package/coverage/lcov-report/src/api/routes/public/users.ts.html +12 -12
  118. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +19 -19
  119. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  120. package/coverage/lcov-report/src/api/routes/query.ts.html +11 -11
  121. package/coverage/lcov-report/src/api/routes/role.ts.html +9 -9
  122. package/coverage/lcov-report/src/api/routes/routing.ts.html +8 -8
  123. package/coverage/lcov-report/src/api/routes/row.ts.html +11 -11
  124. package/coverage/lcov-report/src/api/routes/screen.ts.html +9 -9
  125. package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
  126. package/coverage/lcov-report/src/api/routes/static.ts.html +14 -14
  127. package/coverage/lcov-report/src/api/routes/table.ts.html +11 -11
  128. package/coverage/lcov-report/src/api/routes/templates.ts.html +8 -8
  129. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +1 -1
  130. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +1 -1
  131. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +1 -1
  132. package/coverage/lcov-report/src/api/routes/user.ts.html +9 -9
  133. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  134. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +42 -42
  135. package/coverage/lcov-report/src/api/routes/view.ts.html +10 -10
  136. package/coverage/lcov-report/src/api/routes/webhook.ts.html +10 -10
  137. package/coverage/lcov-report/src/app.ts.html +1 -1
  138. package/coverage/lcov-report/src/automations/actions.ts.html +25 -25
  139. package/coverage/lcov-report/src/automations/automationUtils.ts.html +8 -8
  140. package/coverage/lcov-report/src/automations/bullboard.ts.html +11 -11
  141. package/coverage/lcov-report/src/automations/index.html +1 -1
  142. package/coverage/lcov-report/src/automations/index.ts.html +13 -13
  143. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  144. package/coverage/lcov-report/src/automations/logging/index.ts.html +6 -6
  145. package/coverage/lcov-report/src/automations/steps/bash.ts.html +8 -8
  146. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +7 -7
  147. package/coverage/lcov-report/src/automations/steps/delay.ts.html +5 -5
  148. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +7 -7
  149. package/coverage/lcov-report/src/automations/steps/discord.ts.html +8 -8
  150. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +7 -7
  151. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +7 -7
  152. package/coverage/lcov-report/src/automations/steps/filter.ts.html +6 -6
  153. package/coverage/lcov-report/src/automations/steps/index.html +1 -1
  154. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +6 -6
  155. package/coverage/lcov-report/src/automations/steps/loop.ts.html +3 -3
  156. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +14 -14
  157. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +17 -17
  158. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +6 -6
  159. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +4 -4
  160. package/coverage/lcov-report/src/automations/steps/slack.ts.html +6 -6
  161. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +7 -7
  162. package/coverage/lcov-report/src/automations/steps/utils.ts.html +3 -3
  163. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +6 -6
  164. package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
  165. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +1 -1
  166. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +3 -3
  167. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +3 -3
  168. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  169. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +8 -8
  170. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +3 -3
  171. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +3 -3
  172. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +3 -3
  173. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +3 -3
  174. package/coverage/lcov-report/src/automations/triggers.ts.html +21 -21
  175. package/coverage/lcov-report/src/automations/utils.ts.html +45 -45
  176. package/coverage/lcov-report/src/constants/index.html +1 -1
  177. package/coverage/lcov-report/src/constants/index.ts.html +92 -92
  178. package/coverage/lcov-report/src/constants/layouts.ts.html +4 -4
  179. package/coverage/lcov-report/src/constants/screens.ts.html +5 -5
  180. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +23 -23
  181. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +2 -2
  182. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +2 -2
  183. package/coverage/lcov-report/src/db/defaultData/index.html +1 -1
  184. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +2 -2
  185. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +2 -2
  186. package/coverage/lcov-report/src/db/dynamoClient.ts.html +16 -16
  187. package/coverage/lcov-report/src/db/inMemoryView.ts.html +5 -5
  188. package/coverage/lcov-report/src/db/index.html +1 -1
  189. package/coverage/lcov-report/src/db/index.ts.html +9 -9
  190. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +8 -8
  191. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +4 -4
  192. package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
  193. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +15 -15
  194. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +12 -12
  195. package/coverage/lcov-report/src/db/newid.ts.html +4 -4
  196. package/coverage/lcov-report/src/db/utils.ts.html +60 -60
  197. package/coverage/lcov-report/src/definitions/automations.ts.html +4 -4
  198. package/coverage/lcov-report/src/definitions/datasource.ts.html +4 -4
  199. package/coverage/lcov-report/src/definitions/index.html +1 -1
  200. package/coverage/lcov-report/src/environment.ts.html +19 -19
  201. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +6 -6
  202. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +5 -5
  203. package/coverage/lcov-report/src/events/index.html +1 -1
  204. package/coverage/lcov-report/src/events/index.ts.html +4 -4
  205. package/coverage/lcov-report/src/events/utils.ts.html +3 -3
  206. package/coverage/lcov-report/src/index.html +1 -1
  207. package/coverage/lcov-report/src/index.ts.html +1 -1
  208. package/coverage/lcov-report/src/integrations/airtable.ts.html +5 -5
  209. package/coverage/lcov-report/src/integrations/arangodb.ts.html +5 -5
  210. package/coverage/lcov-report/src/integrations/base/index.html +1 -1
  211. package/coverage/lcov-report/src/integrations/base/query.ts.html +3 -3
  212. package/coverage/lcov-report/src/integrations/base/sql.ts.html +12 -12
  213. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +7 -7
  214. package/coverage/lcov-report/src/integrations/base/utils.ts.html +3 -3
  215. package/coverage/lcov-report/src/integrations/couchdb.ts.html +5 -5
  216. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +6 -6
  217. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +5 -5
  218. package/coverage/lcov-report/src/integrations/firebase.ts.html +5 -5
  219. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +11 -11
  220. package/coverage/lcov-report/src/integrations/index.html +1 -1
  221. package/coverage/lcov-report/src/integrations/index.ts.html +30 -30
  222. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +8 -8
  223. package/coverage/lcov-report/src/integrations/mongodb.ts.html +5 -5
  224. package/coverage/lcov-report/src/integrations/mysql.ts.html +10 -10
  225. package/coverage/lcov-report/src/integrations/oracle.ts.html +13 -13
  226. package/coverage/lcov-report/src/integrations/postgres.ts.html +10 -10
  227. package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
  228. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +1 -1
  229. package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
  230. package/coverage/lcov-report/src/integrations/rest.ts.html +16 -16
  231. package/coverage/lcov-report/src/integrations/s3.ts.html +6 -6
  232. package/coverage/lcov-report/src/integrations/snowflake.ts.html +5 -5
  233. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  234. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  235. package/coverage/lcov-report/src/integrations/utils.ts.html +31 -31
  236. package/coverage/lcov-report/src/middleware/appInfo.ts.html +7 -7
  237. package/coverage/lcov-report/src/middleware/authorized.ts.html +9 -9
  238. package/coverage/lcov-report/src/middleware/builder.ts.html +6 -6
  239. package/coverage/lcov-report/src/middleware/currentapp.ts.html +6 -6
  240. package/coverage/lcov-report/src/middleware/index.html +1 -1
  241. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  242. package/coverage/lcov-report/src/middleware/publicApi.ts.html +4 -4
  243. package/coverage/lcov-report/src/middleware/resourceId.ts.html +22 -22
  244. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  245. package/coverage/lcov-report/src/middleware/utils.ts.html +3 -3
  246. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +4 -4
  247. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +5 -5
  248. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +5 -5
  249. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  250. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +5 -5
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +7 -7
  252. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +5 -5
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +5 -5
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +4 -4
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +19 -19
  256. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +6 -6
  257. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  258. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +7 -7
  259. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +6 -6
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +15 -15
  261. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  262. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +5 -5
  263. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +8 -8
  264. package/coverage/lcov-report/src/migrations/functions/index.html +23 -8
  265. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +6 -6
  266. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +520 -0
  267. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  268. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +2 -2
  269. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +5 -5
  270. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +4 -4
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +6 -6
  272. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +3 -3
  273. package/coverage/lcov-report/src/migrations/index.html +17 -17
  274. package/coverage/lcov-report/src/migrations/index.ts.html +63 -36
  275. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  276. package/coverage/lcov-report/src/migrations/tests/index.html +1 -1
  277. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  278. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  279. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +3 -3
  280. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +6 -6
  281. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +3 -3
  282. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +17 -17
  283. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +17 -17
  284. package/coverage/lcov-report/src/sdk/app/backups/index.html +1 -1
  285. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +5 -5
  286. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +7 -7
  287. package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
  288. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +5 -5
  289. package/coverage/lcov-report/src/sdk/index.html +1 -1
  290. package/coverage/lcov-report/src/sdk/index.ts.html +7 -7
  291. package/coverage/lcov-report/src/startup.ts.html +33 -33
  292. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +80 -80
  293. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +15 -15
  294. package/coverage/lcov-report/src/tests/utilities/index.html +1 -1
  295. package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
  296. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +27 -27
  297. package/coverage/lcov-report/src/threads/automation.ts.html +23 -23
  298. package/coverage/lcov-report/src/threads/index.html +1 -1
  299. package/coverage/lcov-report/src/threads/index.ts.html +11 -11
  300. package/coverage/lcov-report/src/threads/query.ts.html +1 -1
  301. package/coverage/lcov-report/src/threads/utils.ts.html +15 -15
  302. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +3 -3
  303. package/coverage/lcov-report/src/utilities/centralPath.ts.html +4 -4
  304. package/coverage/lcov-report/src/utilities/csvParser.ts.html +8 -8
  305. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +11 -11
  306. package/coverage/lcov-report/src/utilities/fileSystem/index.html +1 -1
  307. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +39 -39
  308. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  309. package/coverage/lcov-report/src/utilities/global.ts.html +11 -11
  310. package/coverage/lcov-report/src/utilities/index.html +1 -1
  311. package/coverage/lcov-report/src/utilities/index.ts.html +25 -25
  312. package/coverage/lcov-report/src/utilities/plugins.ts.html +5 -5
  313. package/coverage/lcov-report/src/utilities/redis.ts.html +22 -22
  314. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  315. package/coverage/lcov-report/src/utilities/routing/index.ts.html +5 -5
  316. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +1 -1
  317. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +17 -17
  318. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +3 -3
  319. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +6 -6
  320. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +5 -5
  321. package/coverage/lcov-report/src/utilities/security.ts.html +6 -6
  322. package/coverage/lcov-report/src/utilities/statusCodes.ts.html +1 -1
  323. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  324. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +5 -5
  325. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  326. package/coverage/lcov-report/src/utilities/users.ts.html +6 -6
  327. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +17 -17
  328. package/coverage/lcov-report/src/watch.ts.html +9 -9
  329. package/coverage/lcov-report/src/websocket.ts.html +4 -4
  330. package/coverage/lcov.info +3087 -2980
  331. package/dist/migrations/functions/tableSettings.js +130 -0
  332. package/dist/migrations/index.js +5 -0
  333. package/dist/package.json +6 -6
  334. package/dist/tsconfig.build.tsbuildinfo +1 -1
  335. package/package.json +7 -7
  336. package/src/migrations/functions/tableSettings.ts +145 -0
  337. package/src/migrations/functions/tests/tableSettings.spec.ts +144 -0
  338. package/src/migrations/index.ts +9 -0
  339. package/builder/assets/index.144dddb2.css +0 -6
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/server",
3
3
  "email": "hi@budibase.com",
4
- "version": "2.1.40-alpha.5",
4
+ "version": "2.1.40-alpha.7",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -43,11 +43,11 @@
43
43
  "license": "GPL-3.0",
44
44
  "dependencies": {
45
45
  "@apidevtools/swagger-parser": "10.0.3",
46
- "@budibase/backend-core": "2.1.40-alpha.5",
47
- "@budibase/client": "2.1.40-alpha.5",
48
- "@budibase/pro": "2.1.40-alpha.4",
49
- "@budibase/string-templates": "2.1.40-alpha.5",
50
- "@budibase/types": "2.1.40-alpha.5",
46
+ "@budibase/backend-core": "2.1.40-alpha.7",
47
+ "@budibase/client": "2.1.40-alpha.7",
48
+ "@budibase/pro": "2.1.40-alpha.6",
49
+ "@budibase/string-templates": "2.1.40-alpha.7",
50
+ "@budibase/types": "2.1.40-alpha.7",
51
51
  "@bull-board/api": "3.7.0",
52
52
  "@bull-board/koa": "3.9.4",
53
53
  "@elastic/elasticsearch": "7.10.0",
@@ -165,5 +165,5 @@
165
165
  "optionalDependencies": {
166
166
  "oracledb": "5.3.0"
167
167
  },
168
- "gitHead": "b9a56cbf4c9044ef49d6cea53e429e74baacda98"
168
+ "gitHead": "254d7d3a69e88042f2cca9ead848afbe5bf6bcea"
169
169
  }
@@ -0,0 +1,145 @@
1
+ import { getScreenParams } from "../../db/utils"
2
+ import { Screen } from "@budibase/types"
3
+ import { makePropSafe as safe } from "@budibase/string-templates"
4
+ /**
5
+ * Date:
6
+ * November 2022
7
+ *
8
+ * Description:
9
+ * Update table settings to use actions instead of links. We do not remove the
10
+ * legacy values here as we cannot guarantee that their apps are up-t-date.
11
+ * It is safe to simply save both the new and old structure in the definition.
12
+ *
13
+ * Migration 1:
14
+ * Legacy "linkRows", "linkURL", "linkPeek" and "linkColumn" settings on tables
15
+ * and table blocks are migrated into a "Navigate To" action under the new
16
+ * "onClick" setting.
17
+ *
18
+ * Migration 2:
19
+ * Legacy "titleButtonURL" and "titleButtonPeek" settings on table blocks are
20
+ * migrated into a "Navigate To" action under the new "onClickTitleButton"
21
+ * setting.
22
+ */
23
+ export const run = async (appDb: any) => {
24
+ // Get all app screens
25
+ let screens: Screen[]
26
+ try {
27
+ screens = (
28
+ await appDb.allDocs(
29
+ getScreenParams(null, {
30
+ include_docs: true,
31
+ })
32
+ )
33
+ ).rows.map((row: any) => row.doc)
34
+ } catch (e) {
35
+ // sometimes the metadata document doesn't exist
36
+ // exit early instead of failing the migration
37
+ console.error("Error retrieving app metadata. Skipping", e)
38
+ return
39
+ }
40
+
41
+ // Recursively update any relevant components and mutate the screen docs
42
+ for (let screen of screens) {
43
+ const changed = migrateTableSettings(screen.props)
44
+
45
+ // Save screen if we updated it
46
+ if (changed) {
47
+ await appDb.put(screen)
48
+ console.log(
49
+ `Screen ${screen.routing?.route} contained table settings which were migrated`
50
+ )
51
+ }
52
+ }
53
+ }
54
+
55
+ // Recursively searches and mutates a screen doc to migrate table component
56
+ // and table block settings
57
+ const migrateTableSettings = (component: any) => {
58
+ let changed = false
59
+ if (!component) {
60
+ return changed
61
+ }
62
+
63
+ // Migration 1: migrate table row click settings
64
+ if (
65
+ component._component.endsWith("/table") ||
66
+ component._component.endsWith("/tableblock")
67
+ ) {
68
+ const { linkRows, linkURL, linkPeek, linkColumn, onClick } = component
69
+ if (linkRows && !onClick) {
70
+ const column = linkColumn || "_id"
71
+ const action = convertLinkSettingToAction(linkURL, !!linkPeek, column)
72
+ if (action) {
73
+ changed = true
74
+ component.onClick = action
75
+ if (component._component.endsWith("/tableblock")) {
76
+ component.clickBehaviour = "actions"
77
+ }
78
+ }
79
+ }
80
+ }
81
+
82
+ // Migration 2: migrate table block title button settings
83
+ if (component._component.endsWith("/tableblock")) {
84
+ const {
85
+ showTitleButton,
86
+ titleButtonURL,
87
+ titleButtonPeek,
88
+ onClickTitleButton,
89
+ } = component
90
+ if (showTitleButton && !onClickTitleButton) {
91
+ const action = convertLinkSettingToAction(
92
+ titleButtonURL,
93
+ !!titleButtonPeek
94
+ )
95
+ if (action) {
96
+ changed = true
97
+ component.onClickTitleButton = action
98
+ component.titleButtonClickBehaviour = "actions"
99
+ }
100
+ }
101
+ }
102
+
103
+ // Recurse down the tree as needed
104
+ component._children?.forEach((child: any) => {
105
+ const childChanged = migrateTableSettings(child)
106
+ changed = changed || childChanged
107
+ })
108
+ return changed
109
+ }
110
+
111
+ // Util ti convert the legacy settings into a navigation action structure
112
+ const convertLinkSettingToAction = (
113
+ linkURL: string,
114
+ linkPeek: boolean,
115
+ linkColumn?: string
116
+ ) => {
117
+ // Sanity check we have a URL
118
+ if (!linkURL) {
119
+ return null
120
+ }
121
+
122
+ // Default URL to the old URL setting
123
+ let url = linkURL
124
+
125
+ // If we enriched the old URL with a column, update the url
126
+ if (linkColumn && linkURL.includes("/:")) {
127
+ // Convert old link URL setting, which is a screen URL, into a valid
128
+ // binding using the new clicked row binding
129
+ const split = linkURL.split("/:")
130
+ const col = linkColumn || "_id"
131
+ const binding = `{{ ${safe("eventContext")}.${safe("row")}.${safe(col)} }}`
132
+ url = `${split[0]}/${binding}`
133
+ }
134
+
135
+ // Create action structure
136
+ return [
137
+ {
138
+ "##eventHandlerType": "Navigate To",
139
+ parameters: {
140
+ url,
141
+ peek: linkPeek,
142
+ },
143
+ },
144
+ ]
145
+ }
@@ -0,0 +1,144 @@
1
+ import { App, Screen } from "@budibase/types"
2
+
3
+ import { db as dbCore } from "@budibase/backend-core"
4
+ import TestConfig from "../../../tests/utilities/TestConfiguration"
5
+ import { run as runMigration } from "../tableSettings"
6
+
7
+ describe("run", () => {
8
+ const config = new TestConfig(false)
9
+ let app: App
10
+ let screen: Screen
11
+
12
+ beforeAll(async () => {
13
+ await config.init()
14
+ app = await config.createApp("testApp")
15
+ screen = await config.createScreen()
16
+ })
17
+
18
+ afterAll(config.end)
19
+
20
+ it("migrates table block row on click settings", async () => {
21
+ // Add legacy table block as first child
22
+ screen.props._children = [
23
+ {
24
+ _instanceName: "Table Block",
25
+ _styles: {},
26
+ _component: "@budibase/standard-components/tableblock",
27
+ _id: "foo",
28
+ linkRows: true,
29
+ linkURL: "/rows/:id",
30
+ linkPeek: true,
31
+ linkColumn: "name",
32
+ },
33
+ ]
34
+ await config.createScreen(screen)
35
+
36
+ // Run migration
37
+ screen = await dbCore.doWithDB(app.appId, async (db: any) => {
38
+ await runMigration(db)
39
+ return await db.get(screen._id)
40
+ })
41
+
42
+ // Verify new "onClick" setting
43
+ const onClick = screen.props._children?.[0].onClick
44
+ expect(onClick).toBeDefined()
45
+ expect(onClick.length).toBe(1)
46
+ expect(onClick[0]["##eventHandlerType"]).toBe("Navigate To")
47
+ expect(onClick[0].parameters.url).toBe(
48
+ `/rows/{{ [eventContext].[row].[name] }}`
49
+ )
50
+ expect(onClick[0].parameters.peek).toBeTruthy()
51
+ })
52
+
53
+ it("migrates table row on click settings", async () => {
54
+ // Add legacy table block as first child
55
+ screen.props._children = [
56
+ {
57
+ _instanceName: "Table",
58
+ _styles: {},
59
+ _component: "@budibase/standard-components/table",
60
+ _id: "foo",
61
+ linkRows: true,
62
+ linkURL: "/rows/:id",
63
+ linkPeek: true,
64
+ linkColumn: "name",
65
+ },
66
+ ]
67
+ await config.createScreen(screen)
68
+
69
+ // Run migration
70
+ screen = await dbCore.doWithDB(app.appId, async (db: any) => {
71
+ await runMigration(db)
72
+ return await db.get(screen._id)
73
+ })
74
+
75
+ // Verify new "onClick" setting
76
+ const onClick = screen.props._children?.[0].onClick
77
+ expect(onClick).toBeDefined()
78
+ expect(onClick.length).toBe(1)
79
+ expect(onClick[0]["##eventHandlerType"]).toBe("Navigate To")
80
+ expect(onClick[0].parameters.url).toBe(
81
+ `/rows/{{ [eventContext].[row].[name] }}`
82
+ )
83
+ expect(onClick[0].parameters.peek).toBeTruthy()
84
+ })
85
+
86
+ it("migrates table block title button settings", async () => {
87
+ // Add legacy table block as first child
88
+ screen.props._children = [
89
+ {
90
+ _instanceName: "Table Block",
91
+ _styles: {},
92
+ _component: "@budibase/standard-components/tableblock",
93
+ _id: "foo",
94
+ showTitleButton: true,
95
+ titleButtonURL: "/url",
96
+ titleButtonPeek: true,
97
+ },
98
+ ]
99
+ await config.createScreen(screen)
100
+
101
+ // Run migration
102
+ screen = await dbCore.doWithDB(app.appId, async (db: any) => {
103
+ await runMigration(db)
104
+ return await db.get(screen._id)
105
+ })
106
+
107
+ // Verify new "onClickTitleButton" setting
108
+ const onClick = screen.props._children?.[0].onClickTitleButton
109
+ expect(onClick).toBeDefined()
110
+ expect(onClick.length).toBe(1)
111
+ expect(onClick[0]["##eventHandlerType"]).toBe("Navigate To")
112
+ expect(onClick[0].parameters.url).toBe("/url")
113
+ expect(onClick[0].parameters.peek).toBeTruthy()
114
+ })
115
+
116
+ it("ignores components that have already been migrated", async () => {
117
+ // Add legacy table block as first child
118
+ screen.props._children = [
119
+ {
120
+ _instanceName: "Table Block",
121
+ _styles: {},
122
+ _component: "@budibase/standard-components/tableblock",
123
+ _id: "foo",
124
+ linkRows: true,
125
+ linkURL: "/rows/:id",
126
+ linkPeek: true,
127
+ linkColumn: "name",
128
+ onClick: "foo",
129
+ },
130
+ ]
131
+ const initialDefinition = JSON.stringify(screen.props._children?.[0])
132
+ await config.createScreen(screen)
133
+
134
+ // Run migration
135
+ screen = await dbCore.doWithDB(app.appId, async (db: any) => {
136
+ await runMigration(db)
137
+ return await db.get(screen._id)
138
+ })
139
+
140
+ // Verify new "onClick" setting
141
+ const newDefinition = JSON.stringify(screen.props._children?.[0])
142
+ expect(initialDefinition).toEqual(newDefinition)
143
+ })
144
+ })
@@ -12,6 +12,7 @@ import env from "../environment"
12
12
  import * as userEmailViewCasing from "./functions/userEmailViewCasing"
13
13
  import * as syncQuotas from "./functions/syncQuotas"
14
14
  import * as appUrls from "./functions/appUrls"
15
+ import * as tableSettings from "./functions/tableSettings"
15
16
  import * as backfill from "./functions/backfill"
16
17
  /**
17
18
  * Populate the migration function and additional configuration from
@@ -73,6 +74,14 @@ export const buildMigrations = () => {
73
74
  })
74
75
  break
75
76
  }
77
+ case MigrationName.TABLE_SETTINGS_LINKS_TO_ACTIONS: {
78
+ serverMigrations.push({
79
+ ...definition,
80
+ appOpts: { dev: true },
81
+ fn: tableSettings.run,
82
+ })
83
+ break
84
+ }
76
85
  }
77
86
  }
78
87