@budibase/server 2.1.46-alpha.12 → 2.1.46-alpha.14

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 (393) hide show
  1. package/__mocks__/aws-sdk.ts +19 -0
  2. package/builder/assets/{index.50dfbb5d.js → index.d0383787.js} +194 -194
  3. package/builder/index.html +1 -1
  4. package/coverage/clover.xml +1404 -1399
  5. package/coverage/coverage-final.json +26 -23
  6. package/coverage/lcov-report/index.html +68 -68
  7. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +1 -1
  8. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +1 -1
  9. package/coverage/lcov-report/src/api/controllers/application.ts.html +33 -21
  10. package/coverage/lcov-report/src/api/controllers/auth.ts.html +3 -3
  11. package/coverage/lcov-report/src/api/controllers/automation.ts.html +1 -1
  12. package/coverage/lcov-report/src/api/controllers/backup.ts.html +1 -1
  13. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +27 -15
  14. package/coverage/lcov-report/src/api/controllers/component.ts.html +1 -1
  15. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +1 -1
  16. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +1 -1
  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 +1 -1
  19. package/coverage/lcov-report/src/api/controllers/dev.ts.html +1 -1
  20. package/coverage/lcov-report/src/api/controllers/index.html +17 -17
  21. package/coverage/lcov-report/src/api/controllers/integration.ts.html +1 -1
  22. package/coverage/lcov-report/src/api/controllers/layout.ts.html +1 -1
  23. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +1 -1
  24. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +1 -1
  25. package/coverage/lcov-report/src/api/controllers/permission.ts.html +1 -1
  26. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +1 -1
  27. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +1 -1
  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 +27 -12
  30. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +1 -1
  31. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +1 -1
  32. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +1 -1
  33. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +1 -1
  34. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +1 -1
  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 +1 -1
  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 +1 -1
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +1 -1
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +1 -1
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +1 -1
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +1 -1
  43. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +1 -1
  44. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +1 -1
  45. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +1 -1
  46. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +1 -1
  47. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +1 -1
  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 +1 -1
  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 +1 -1
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +1 -1
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +1 -1
  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 +1 -1
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +1 -1
  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 +1 -1
  59. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +1 -1
  60. package/coverage/lcov-report/src/api/controllers/role.ts.html +1 -1
  61. package/coverage/lcov-report/src/api/controllers/routing.ts.html +1 -1
  62. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +2 -5
  63. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +1 -1
  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 +1 -1
  66. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +27 -24
  67. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +1 -1
  68. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +13 -4
  69. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +6 -3
  70. package/coverage/lcov-report/src/api/controllers/screen.ts.html +1 -1
  71. package/coverage/lcov-report/src/api/controllers/script.ts.html +1 -1
  72. package/coverage/lcov-report/src/api/controllers/static/index.html +11 -11
  73. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +13 -25
  74. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +1 -1
  75. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +1 -1
  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 +1 -1
  78. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +1 -1
  79. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +1 -1
  80. package/coverage/lcov-report/src/api/controllers/templates.ts.html +1 -1
  81. package/coverage/lcov-report/src/api/controllers/user.ts.html +1 -1
  82. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +1 -1
  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 +1 -1
  85. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +1 -1
  86. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +1 -1
  87. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +1 -1
  88. package/coverage/lcov-report/src/api/index.html +1 -1
  89. package/coverage/lcov-report/src/api/index.ts.html +1 -1
  90. package/coverage/lcov-report/src/api/routes/analytics.ts.html +1 -1
  91. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +1 -1
  92. package/coverage/lcov-report/src/api/routes/application.ts.html +1 -1
  93. package/coverage/lcov-report/src/api/routes/auth.ts.html +1 -1
  94. package/coverage/lcov-report/src/api/routes/automation.ts.html +1 -1
  95. package/coverage/lcov-report/src/api/routes/backup.ts.html +1 -1
  96. package/coverage/lcov-report/src/api/routes/cloud.ts.html +1 -1
  97. package/coverage/lcov-report/src/api/routes/component.ts.html +1 -1
  98. package/coverage/lcov-report/src/api/routes/datasource.ts.html +1 -1
  99. package/coverage/lcov-report/src/api/routes/deploy.ts.html +1 -1
  100. package/coverage/lcov-report/src/api/routes/dev.ts.html +1 -1
  101. package/coverage/lcov-report/src/api/routes/index.html +1 -1
  102. package/coverage/lcov-report/src/api/routes/index.ts.html +8 -5
  103. package/coverage/lcov-report/src/api/routes/integration.ts.html +1 -1
  104. package/coverage/lcov-report/src/api/routes/layout.ts.html +1 -1
  105. package/coverage/lcov-report/src/api/routes/metadata.ts.html +1 -1
  106. package/coverage/lcov-report/src/api/routes/migrations.ts.html +1 -1
  107. package/coverage/lcov-report/src/api/routes/permission.ts.html +1 -1
  108. package/coverage/lcov-report/src/api/routes/plugin.ts.html +1 -1
  109. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +1 -1
  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 +1 -1
  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 +1 -1
  114. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +1 -1
  115. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +1 -1
  116. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +1 -1
  117. package/coverage/lcov-report/src/api/routes/public/tests/index.html +1 -1
  118. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +1 -1
  119. package/coverage/lcov-report/src/api/routes/public/users.ts.html +1 -1
  120. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +1 -1
  121. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  122. package/coverage/lcov-report/src/api/routes/query.ts.html +1 -1
  123. package/coverage/lcov-report/src/api/routes/role.ts.html +1 -1
  124. package/coverage/lcov-report/src/api/routes/routing.ts.html +1 -1
  125. package/coverage/lcov-report/src/api/routes/row.ts.html +1 -1
  126. package/coverage/lcov-report/src/api/routes/screen.ts.html +1 -1
  127. package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
  128. package/coverage/lcov-report/src/api/routes/static.ts.html +1 -1
  129. package/coverage/lcov-report/src/api/routes/table.ts.html +1 -1
  130. package/coverage/lcov-report/src/api/routes/templates.ts.html +1 -1
  131. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +1 -1
  132. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +1 -1
  133. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +1 -1
  134. package/coverage/lcov-report/src/api/routes/user.ts.html +1 -1
  135. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  136. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +1 -1
  137. package/coverage/lcov-report/src/api/routes/view.ts.html +1 -1
  138. package/coverage/lcov-report/src/api/routes/webhook.ts.html +1 -1
  139. package/coverage/lcov-report/src/app.ts.html +1 -1
  140. package/coverage/lcov-report/src/automations/actions.ts.html +1 -1
  141. package/coverage/lcov-report/src/automations/automationUtils.ts.html +1 -1
  142. package/coverage/lcov-report/src/automations/bullboard.ts.html +1 -1
  143. package/coverage/lcov-report/src/automations/index.html +1 -1
  144. package/coverage/lcov-report/src/automations/index.ts.html +1 -1
  145. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  146. package/coverage/lcov-report/src/automations/logging/index.ts.html +1 -1
  147. package/coverage/lcov-report/src/automations/steps/bash.ts.html +1 -1
  148. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +1 -1
  149. package/coverage/lcov-report/src/automations/steps/delay.ts.html +1 -1
  150. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +1 -1
  151. package/coverage/lcov-report/src/automations/steps/discord.ts.html +1 -1
  152. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +1 -1
  153. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +1 -1
  154. package/coverage/lcov-report/src/automations/steps/filter.ts.html +1 -1
  155. package/coverage/lcov-report/src/automations/steps/index.html +1 -1
  156. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +1 -1
  157. package/coverage/lcov-report/src/automations/steps/loop.ts.html +1 -1
  158. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +1 -1
  159. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +1 -1
  160. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +1 -1
  161. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +1 -1
  162. package/coverage/lcov-report/src/automations/steps/slack.ts.html +1 -1
  163. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +1 -1
  164. package/coverage/lcov-report/src/automations/steps/utils.ts.html +1 -1
  165. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +1 -1
  166. package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
  167. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +1 -1
  168. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +1 -1
  169. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +1 -1
  170. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  171. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +1 -1
  172. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +1 -1
  173. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +1 -1
  174. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +1 -1
  175. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +1 -1
  176. package/coverage/lcov-report/src/automations/triggers.ts.html +1 -1
  177. package/coverage/lcov-report/src/automations/utils.ts.html +1 -1
  178. package/coverage/lcov-report/src/constants/index.html +1 -1
  179. package/coverage/lcov-report/src/constants/index.ts.html +92 -92
  180. package/coverage/lcov-report/src/constants/layouts.ts.html +1 -1
  181. package/coverage/lcov-report/src/constants/screens.ts.html +1 -1
  182. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +1 -1
  183. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +1 -1
  184. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +1 -1
  185. package/coverage/lcov-report/src/db/defaultData/index.html +1 -1
  186. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +1 -1
  187. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +1 -1
  188. package/coverage/lcov-report/src/db/dynamoClient.ts.html +1 -1
  189. package/coverage/lcov-report/src/db/inMemoryView.ts.html +1 -1
  190. package/coverage/lcov-report/src/db/index.html +1 -1
  191. package/coverage/lcov-report/src/db/index.ts.html +1 -1
  192. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +1 -1
  193. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +1 -1
  194. package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
  195. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +1 -1
  196. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +1 -1
  197. package/coverage/lcov-report/src/db/newid.ts.html +3 -3
  198. package/coverage/lcov-report/src/db/utils.ts.html +56 -56
  199. package/coverage/lcov-report/src/definitions/automations.ts.html +1 -1
  200. package/coverage/lcov-report/src/definitions/datasource.ts.html +1 -1
  201. package/coverage/lcov-report/src/definitions/index.html +1 -1
  202. package/coverage/lcov-report/src/environment.ts.html +43 -28
  203. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +1 -1
  204. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +1 -1
  205. package/coverage/lcov-report/src/events/index.html +1 -1
  206. package/coverage/lcov-report/src/events/index.ts.html +1 -1
  207. package/coverage/lcov-report/src/events/utils.ts.html +1 -1
  208. package/coverage/lcov-report/src/index.html +16 -16
  209. package/coverage/lcov-report/src/index.ts.html +1 -1
  210. package/coverage/lcov-report/src/integrations/airtable.ts.html +1 -1
  211. package/coverage/lcov-report/src/integrations/arangodb.ts.html +1 -1
  212. package/coverage/lcov-report/src/integrations/base/index.html +1 -1
  213. package/coverage/lcov-report/src/integrations/base/query.ts.html +1 -1
  214. package/coverage/lcov-report/src/integrations/base/sql.ts.html +1 -1
  215. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +1 -1
  216. package/coverage/lcov-report/src/integrations/base/utils.ts.html +1 -1
  217. package/coverage/lcov-report/src/integrations/couchdb.ts.html +1 -1
  218. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +1 -1
  219. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +1 -1
  220. package/coverage/lcov-report/src/integrations/firebase.ts.html +1 -1
  221. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +1 -1
  222. package/coverage/lcov-report/src/integrations/index.html +5 -5
  223. package/coverage/lcov-report/src/integrations/index.ts.html +5 -17
  224. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +1 -1
  225. package/coverage/lcov-report/src/integrations/mongodb.ts.html +1 -1
  226. package/coverage/lcov-report/src/integrations/mysql.ts.html +1 -1
  227. package/coverage/lcov-report/src/integrations/oracle.ts.html +1 -1
  228. package/coverage/lcov-report/src/integrations/postgres.ts.html +1 -1
  229. package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
  230. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +1 -1
  231. package/coverage/lcov-report/src/integrations/redis.ts.html +1 -1
  232. package/coverage/lcov-report/src/integrations/rest.ts.html +1 -1
  233. package/coverage/lcov-report/src/integrations/s3.ts.html +1 -1
  234. package/coverage/lcov-report/src/integrations/snowflake.ts.html +1 -1
  235. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  236. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  237. package/coverage/lcov-report/src/integrations/utils.ts.html +1 -1
  238. package/coverage/lcov-report/src/middleware/appInfo.ts.html +1 -1
  239. package/coverage/lcov-report/src/middleware/authorized.ts.html +1 -1
  240. package/coverage/lcov-report/src/middleware/builder.ts.html +1 -1
  241. package/coverage/lcov-report/src/middleware/currentapp.ts.html +1 -1
  242. package/coverage/lcov-report/src/middleware/index.html +1 -1
  243. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  244. package/coverage/lcov-report/src/middleware/publicApi.ts.html +1 -1
  245. package/coverage/lcov-report/src/middleware/resourceId.ts.html +1 -1
  246. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  247. package/coverage/lcov-report/src/middleware/utils.ts.html +1 -1
  248. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +1 -1
  249. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +1 -1
  250. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +1 -1
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  252. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +1 -1
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +1 -1
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +1 -1
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +1 -1
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +1 -1
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +1 -1
  258. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +9 -6
  259. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +1 -1
  261. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +1 -1
  262. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +1 -1
  263. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  264. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +1 -1
  265. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +1 -1
  266. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  267. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +1 -1
  268. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +1 -1
  269. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  270. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +1 -1
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +1 -1
  272. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +1 -1
  273. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +1 -1
  274. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +1 -1
  275. package/coverage/lcov-report/src/migrations/index.html +1 -1
  276. package/coverage/lcov-report/src/migrations/index.ts.html +1 -1
  277. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  278. package/coverage/lcov-report/src/migrations/tests/index.html +1 -1
  279. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  280. package/coverage/lcov-report/src/sdk/app/applications/index.html +1 -1
  281. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +1 -1
  282. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +1 -1
  283. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +1 -1
  284. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  285. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +1 -1
  286. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +1 -1
  287. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +1 -1
  288. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +1 -1
  289. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +9 -21
  290. package/coverage/lcov-report/src/sdk/app/backups/index.html +11 -11
  291. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +1 -1
  292. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +1 -1
  293. package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
  294. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +1 -1
  295. package/coverage/lcov-report/src/sdk/index.html +1 -1
  296. package/coverage/lcov-report/src/sdk/index.ts.html +1 -1
  297. package/coverage/lcov-report/src/sdk/users/index.html +1 -1
  298. package/coverage/lcov-report/src/sdk/users/index.ts.html +1 -1
  299. package/coverage/lcov-report/src/sdk/users/utils.ts.html +1 -1
  300. package/coverage/lcov-report/src/startup.ts.html +1 -1
  301. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +3 -3
  302. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +1 -1
  303. package/coverage/lcov-report/src/tests/utilities/index.html +1 -1
  304. package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
  305. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +1 -1
  306. package/coverage/lcov-report/src/threads/automation.ts.html +1 -1
  307. package/coverage/lcov-report/src/threads/index.html +1 -1
  308. package/coverage/lcov-report/src/threads/index.ts.html +1 -1
  309. package/coverage/lcov-report/src/threads/query.ts.html +1 -1
  310. package/coverage/lcov-report/src/threads/utils.ts.html +1 -1
  311. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +1 -1
  312. package/coverage/lcov-report/src/utilities/centralPath.ts.html +1 -1
  313. package/coverage/lcov-report/src/utilities/csvParser.ts.html +1 -1
  314. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +343 -0
  315. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +2 -2
  316. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +595 -0
  317. package/coverage/lcov-report/src/utilities/fileSystem/index.html +81 -21
  318. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +16 -1045
  319. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +280 -0
  320. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  321. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +193 -0
  322. package/coverage/lcov-report/src/utilities/global.ts.html +1 -1
  323. package/coverage/lcov-report/src/utilities/index.html +19 -34
  324. package/coverage/lcov-report/src/utilities/index.ts.html +31 -163
  325. package/coverage/lcov-report/src/utilities/redis.ts.html +1 -1
  326. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  327. package/coverage/lcov-report/src/utilities/routing/index.ts.html +1 -1
  328. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +19 -19
  329. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +46 -19
  330. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +1 -1
  331. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +1 -1
  332. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +1 -1
  333. package/coverage/lcov-report/src/utilities/security.ts.html +1 -1
  334. package/coverage/lcov-report/src/utilities/statusCodes.ts.html +1 -1
  335. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  336. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +1 -1
  337. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  338. package/coverage/lcov-report/src/utilities/users.ts.html +1 -1
  339. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +1 -1
  340. package/coverage/lcov-report/src/watch.ts.html +1 -1
  341. package/coverage/lcov-report/src/websocket.ts.html +1 -1
  342. package/coverage/lcov.info +2322 -2298
  343. package/dist/api/controllers/application.js +9 -10
  344. package/dist/api/controllers/cloud.js +6 -2
  345. package/dist/api/controllers/plugin/index.js +6 -6
  346. package/dist/api/controllers/row/ExternalRequest.js +0 -1
  347. package/dist/api/controllers/row/internal.js +11 -11
  348. package/dist/api/controllers/row/staticFormula.js +1 -1
  349. package/dist/api/controllers/static/index.js +8 -11
  350. package/dist/environment.js +6 -1
  351. package/dist/integrations/index.js +1 -2
  352. package/dist/migrations/functions/backfill/global/configs.js +4 -4
  353. package/dist/package.json +9 -7
  354. package/dist/sdk/app/backups/imports.js +3 -7
  355. package/dist/tsconfig.build.tsbuildinfo +1 -1
  356. package/dist/utilities/fileSystem/app.js +97 -0
  357. package/dist/utilities/fileSystem/clientLibrary.js +3 -3
  358. package/dist/utilities/fileSystem/filesystem.js +182 -0
  359. package/dist/utilities/fileSystem/index.js +18 -342
  360. package/dist/utilities/fileSystem/plugin.js +63 -0
  361. package/dist/utilities/fileSystem/template.js +44 -0
  362. package/dist/utilities/index.js +1 -44
  363. package/dist/utilities/rowProcessor/index.js +12 -4
  364. package/package.json +10 -8
  365. package/src/api/controllers/application.ts +16 -12
  366. package/src/api/controllers/auth.ts +2 -2
  367. package/src/api/controllers/cloud.ts +10 -6
  368. package/src/api/controllers/plugin/index.ts +14 -9
  369. package/src/api/controllers/row/ExternalRequest.ts +0 -1
  370. package/src/api/controllers/row/internal.ts +23 -22
  371. package/src/api/controllers/row/staticFormula.ts +5 -2
  372. package/src/api/controllers/row/utils.ts +2 -1
  373. package/src/api/controllers/static/index.ts +6 -10
  374. package/src/api/routes/index.ts +4 -3
  375. package/src/api/routes/tests/row.spec.js +4 -2
  376. package/src/api/routes/tests/static.spec.js +2 -17
  377. package/src/environment.ts +6 -1
  378. package/src/integrations/index.ts +1 -5
  379. package/src/migrations/functions/backfill/global/configs.ts +5 -4
  380. package/src/sdk/app/backups/imports.ts +3 -7
  381. package/src/tests/jestSetup.ts +4 -1
  382. package/src/utilities/fileSystem/app.ts +86 -0
  383. package/src/utilities/fileSystem/clientLibrary.ts +1 -1
  384. package/src/utilities/fileSystem/filesystem.ts +170 -0
  385. package/src/utilities/fileSystem/index.ts +5 -348
  386. package/src/utilities/fileSystem/plugin.ts +65 -0
  387. package/src/utilities/fileSystem/template.ts +36 -0
  388. package/src/utilities/index.ts +1 -45
  389. package/src/utilities/rowProcessor/index.ts +17 -8
  390. package/coverage/lcov-report/src/utilities/plugins.ts.html +0 -151
  391. package/dist/utilities/plugins.js +0 -26
  392. package/src/utilities/plugins.ts +0 -22
  393. package/src/utilities/tests/plugins.spec.ts +0 -23
@@ -961,7 +961,7 @@ export async function destroy(ctx: any) {
961
961
  <div class='footer quiet pad2 space-top1 center small'>
962
962
  Code coverage generated by
963
963
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
964
- at Wed Dec 14 2022 22:06:49 GMT+0000 (Coordinated Universal Time)
964
+ at Thu Dec 15 2022 11:56:57 GMT+0000 (Coordinated Universal Time)
965
965
  </div>
966
966
  <script src="../../../../prettify.js"></script>
967
967
  <script>
@@ -220,7 +220,7 @@ export function generateQueryPreviewValidation() {
220
220
  <div class='footer quiet pad2 space-top1 center small'>
221
221
  Code coverage generated by
222
222
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
223
- at Wed Dec 14 2022 22:06:49 GMT+0000 (Coordinated Universal Time)
223
+ at Thu Dec 15 2022 11:56:57 GMT+0000 (Coordinated Universal Time)
224
224
  </div>
225
225
  <script src="../../../../prettify.js"></script>
226
226
  <script>
@@ -382,7 +382,7 @@ export async function destroy(ctx: BBContext) {
382
382
  <div class='footer quiet pad2 space-top1 center small'>
383
383
  Code coverage generated by
384
384
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
385
- at Wed Dec 14 2022 22:06:49 GMT+0000 (Coordinated Universal Time)
385
+ at Thu Dec 15 2022 11:56:57 GMT+0000 (Coordinated Universal Time)
386
386
  </div>
387
387
  <script src="../../../prettify.js"></script>
388
388
  <script>
@@ -355,7 +355,7 @@ export async function clientFetch(ctx: BBContext) {
355
355
  <div class='footer quiet pad2 space-top1 center small'>
356
356
  Code coverage generated by
357
357
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
358
- at Wed Dec 14 2022 22:06:49 GMT+0000 (Coordinated Universal Time)
358
+ at Thu Dec 15 2022 11:56:57 GMT+0000 (Coordinated Universal Time)
359
359
  </div>
360
360
  <script src="../../../prettify.js"></script>
361
361
  <script>
@@ -790,8 +790,7 @@
790
790
  <a name='L725'></a><a href='#L725'>725</a>
791
791
  <a name='L726'></a><a href='#L726'>726</a>
792
792
  <a name='L727'></a><a href='#L727'>727</a>
793
- <a name='L728'></a><a href='#L728'>728</a>
794
- <a name='L729'></a><a href='#L729'>729</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">56x</span>
793
+ <a name='L728'></a><a href='#L728'>728</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">56x</span>
795
794
  <span class="cline-any cline-neutral">&nbsp;</span>
796
795
  <span class="cline-any cline-neutral">&nbsp;</span>
797
796
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -814,7 +813,6 @@
814
813
  <span class="cline-any cline-yes">56x</span>
815
814
  <span class="cline-any cline-yes">56x</span>
816
815
  <span class="cline-any cline-yes">56x</span>
817
- <span class="cline-any cline-neutral">&nbsp;</span>
818
816
  <span class="cline-any cline-yes">56x</span>
819
817
  <span class="cline-any cline-yes">56x</span>
820
818
  <span class="cline-any cline-yes">56x</span>
@@ -1542,7 +1540,6 @@ import { getDatasourceAndQuery } from "./utils"
1542
1540
  import { FieldTypes, RelationshipTypes } from "../../../constants"
1543
1541
  import { breakExternalTableId, isSQL } from "../../../integrations/utils"
1544
1542
  import { processObjectSync } from "@budibase/string-templates"
1545
- // @ts-ignore
1546
1543
  import { cloneDeep } from "lodash/fp"
1547
1544
  import { processFormulas, processDates } from "../../../utilities/rowProcessor"
1548
1545
  import { context } from "@budibase/backend-core"
@@ -2254,7 +2251,7 @@ export class ExternalRequest {
2254
2251
  <div class='footer quiet pad2 space-top1 center small'>
2255
2252
  Code coverage generated by
2256
2253
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2257
- at Wed Dec 14 2022 22:06:49 GMT+0000 (Coordinated Universal Time)
2254
+ at Thu Dec 15 2022 11:56:57 GMT+0000 (Coordinated Universal Time)
2258
2255
  </div>
2259
2256
  <script src="../../../../prettify.js"></script>
2260
2257
  <script>
@@ -880,7 +880,7 @@ export async function <span class="fstat-no" title="function not covered" >fetch
880
880
  <div class='footer quiet pad2 space-top1 center small'>
881
881
  Code coverage generated by
882
882
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
883
- at Wed Dec 14 2022 22:06:49 GMT+0000 (Coordinated Universal Time)
883
+ at Thu Dec 15 2022 11:56:57 GMT+0000 (Coordinated Universal Time)
884
884
  </div>
885
885
  <script src="../../../../prettify.js"></script>
886
886
  <script>
@@ -191,7 +191,7 @@
191
191
  <div class='footer quiet pad2 space-top1 center small'>
192
192
  Code coverage generated by
193
193
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
194
- at Wed Dec 14 2022 22:06:49 GMT+0000 (Coordinated Universal Time)
194
+ at Thu Dec 15 2022 11:56:57 GMT+0000 (Coordinated Universal Time)
195
195
  </div>
196
196
  <script src="../../../../prettify.js"></script>
197
197
  <script>
@@ -526,7 +526,7 @@ export const exportRows = async (ctx: any) =&gt; {
526
526
  <div class='footer quiet pad2 space-top1 center small'>
527
527
  Code coverage generated by
528
528
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
529
- at Wed Dec 14 2022 22:06:49 GMT+0000 (Coordinated Universal Time)
529
+ at Thu Dec 15 2022 11:56:57 GMT+0000 (Coordinated Universal Time)
530
530
  </div>
531
531
  <script src="../../../../prettify.js"></script>
532
532
  <script>
@@ -546,7 +546,8 @@
546
546
  <a name='L481'></a><a href='#L481'>481</a>
547
547
  <a name='L482'></a><a href='#L482'>482</a>
548
548
  <a name='L483'></a><a href='#L483'>483</a>
549
- <a name='L484'></a><a href='#L484'>484</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">56x</span>
549
+ <a name='L484'></a><a href='#L484'>484</a>
550
+ <a name='L485'></a><a href='#L485'>485</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">56x</span>
550
551
  <span class="cline-any cline-yes">56x</span>
551
552
  <span class="cline-any cline-neutral">&nbsp;</span>
552
553
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -585,6 +586,7 @@
585
586
  <span class="cline-any cline-neutral">&nbsp;</span>
586
587
  <span class="cline-any cline-neutral">&nbsp;</span>
587
588
  <span class="cline-any cline-neutral">&nbsp;</span>
589
+ <span class="cline-any cline-neutral">&nbsp;</span>
588
590
  <span class="cline-any cline-yes">56x</span>
589
591
  <span class="cline-any cline-neutral">&nbsp;</span>
590
592
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1044,7 +1046,7 @@ import {
1044
1046
  cleanupAttachments,
1045
1047
  } from "../../../utilities/rowProcessor"
1046
1048
  import { FieldTypes } from "../../../constants"
1047
- import { validate as rowValidate, findRow } from "./utils"
1049
+ import * as utils from "./utils"
1048
1050
  import { fullSearch, paginatedSearch } from "./internalSearch"
1049
1051
  import { getGlobalUsersFromMetadata } from "../../../utilities/global"
1050
1052
  import * as inMemoryViews from "../../../db/inMemoryView"
@@ -1061,7 +1063,8 @@ import { finaliseRow, updateRelatedFormula } from "./staticFormula"
1061
1063
  import * as exporters from "../view/exporters"
1062
1064
  import { apiFileReturn } from "../../../utilities/fileSystem"
1063
1065
  import {
1064
- BBContext,
1066
+ Ctx,
1067
+ UserCtx,
1065
1068
  Database,
1066
1069
  LinkDocumentValue,
1067
1070
  Row,
@@ -1100,7 +1103,7 @@ async function getView(db: Database, viewName: string) {
1100
1103
  return viewInfo
1101
1104
  }
1102
1105
  &nbsp;
1103
- async function getRawTableData(ctx: BBContext, db: Database, tableId: string) {
1106
+ async function getRawTableData(ctx: Ctx, db: Database, tableId: string) {
1104
1107
  let rows
1105
1108
  <span class="missing-if-branch" title="if path not taken" >I</span>if (tableId === InternalTables.USER_METADATA) {
1106
1109
  <span class="cstat-no" title="statement not covered" > await userController.fetchMetadata(ctx)</span>
@@ -1116,7 +1119,7 @@ async function getRawTableData(ctx: BBContext, db: Database, tableId: string) {
1116
1119
  return rows as Row[]
1117
1120
  }
1118
1121
  &nbsp;
1119
- export async function patch(ctx: BBContext) {
1122
+ export async function patch(ctx: UserCtx) {
1120
1123
  const db = context.getAppDB()
1121
1124
  const inputs = ctx.request.body
1122
1125
  const tableId = inputs.tableId
@@ -1126,7 +1129,7 @@ export async function patch(ctx: BBContext) {
1126
1129
  let dbTable = await db.get(tableId)
1127
1130
  oldRow = await outputProcessing(
1128
1131
  dbTable,
1129
- await findRow(ctx, tableId, inputs._id)
1132
+ await utils.findRow(ctx, tableId, inputs._id)
1130
1133
  )
1131
1134
  } catch (err) {
1132
1135
  <span class="cstat-no" title="statement not covered" > if (isUserTable) {</span>
@@ -1148,8 +1151,8 @@ export async function patch(ctx: BBContext) {
1148
1151
  }
1149
1152
  &nbsp;
1150
1153
  // this returns the table and row incase they have been updated
1151
- let { table, row } = inputProcessing(ctx.user!, dbTable, combinedRow)
1152
- const validateResult = await rowValidate({
1154
+ let { table, row } = inputProcessing(ctx.user, dbTable, combinedRow)
1155
+ const validateResult = await utils.validate({
1153
1156
  row,
1154
1157
  table,
1155
1158
  })
@@ -1181,7 +1184,7 @@ export async function patch(ctx: BBContext) {
1181
1184
  })
1182
1185
  }
1183
1186
  &nbsp;
1184
- export async function save(ctx: BBContext) {
1187
+ export async function save(ctx: UserCtx) {
1185
1188
  const db = context.getAppDB()
1186
1189
  let inputs = ctx.request.body
1187
1190
  inputs.tableId = ctx.params.tableId
@@ -1192,8 +1195,8 @@ export async function save(ctx: BBContext) {
1192
1195
  &nbsp;
1193
1196
  // this returns the table and row incase they have been updated
1194
1197
  const dbTable = await db.get(inputs.tableId)
1195
- let { table, row } = inputProcessing(ctx.user!, dbTable, inputs)
1196
- const validateResult = await rowValidate({
1198
+ let { table, row } = inputProcessing(ctx.user, dbTable, inputs)
1199
+ const validateResult = await utils.validate({
1197
1200
  row,
1198
1201
  table,
1199
1202
  })
@@ -1216,7 +1219,7 @@ export async function save(ctx: BBContext) {
1216
1219
  })
1217
1220
  }
1218
1221
  &nbsp;
1219
- export async function fetchView(ctx: BBContext) {
1222
+ export async function fetchView(ctx: Ctx) {
1220
1223
  const viewName = ctx.params.viewName
1221
1224
  &nbsp;
1222
1225
  // if this is a table view being looked for just transfer to that
@@ -1283,7 +1286,7 @@ export async function fetchView(ctx: BBContext) {
1283
1286
  return rows
1284
1287
  }
1285
1288
  &nbsp;
1286
- export async function fetch(ctx: BBContext) {
1289
+ export async function fetch(ctx: Ctx) {
1287
1290
  const db = context.getAppDB()
1288
1291
  &nbsp;
1289
1292
  const tableId = ctx.params.tableId
@@ -1292,15 +1295,15 @@ export async function fetch(ctx: BBContext) {
1292
1295
  return outputProcessing(table, rows)
1293
1296
  }
1294
1297
  &nbsp;
1295
- export async function find(ctx: BBContext) {
1298
+ export async function find(ctx: Ctx) {
1296
1299
  const db = dbCore.getDB(ctx.appId)
1297
1300
  const table = await db.get(ctx.params.tableId)
1298
- let row = await findRow(ctx, ctx.params.tableId, ctx.params.rowId)
1301
+ let row = await utils.findRow(ctx, ctx.params.tableId, ctx.params.rowId)
1299
1302
  row = await outputProcessing(table, row)
1300
1303
  return row
1301
1304
  }
1302
1305
  &nbsp;
1303
- export async function destroy(ctx: BBContext) {
1306
+ export async function destroy(ctx: Ctx) {
1304
1307
  const db = context.getAppDB()
1305
1308
  const { _id } = ctx.request.body
1306
1309
  let row = await db.get(_id)
@@ -1336,7 +1339,7 @@ export async function destroy(ctx: BBContext) {
1336
1339
  return { response, row }
1337
1340
  }
1338
1341
  &nbsp;
1339
- export async function bulkDestroy(ctx: BBContext) {
1342
+ export async function bulkDestroy(ctx: Ctx) {
1340
1343
  const db = context.getAppDB()
1341
1344
  const tableId = ctx.params.tableId
1342
1345
  const table = await db.get(tableId)
@@ -1375,7 +1378,7 @@ export async function bulkDestroy(ctx: BBContext) {
1375
1378
  return { response: { ok: true }, rows: processedRows }
1376
1379
  }
1377
1380
  &nbsp;
1378
- export async function search(ctx: BBContext) {
1381
+ export async function search(ctx: Ctx) {
1379
1382
  // Fetch the whole table when running in cypress, as search doesn't work
1380
1383
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!env.COUCH_DB_URL &amp;&amp; env.isCypress()) {
1381
1384
  <span class="cstat-no" title="statement not covered" > return { rows: await fetch(ctx) }</span>
@@ -1407,14 +1410,14 @@ export async function search(ctx: BBContext) {
1407
1410
  return response
1408
1411
  }
1409
1412
  &nbsp;
1410
- export async function validate(ctx: BBContext) {
1411
- return rowValidate({
1413
+ export async function validate(ctx: Ctx) {
1414
+ return utils.validate({
1412
1415
  tableId: ctx.params.tableId,
1413
1416
  row: ctx.request.body,
1414
1417
  })
1415
1418
  }
1416
1419
  &nbsp;
1417
- export async function exportRows(ctx: BBContext) {
1420
+ export async function exportRows(ctx: Ctx) {
1418
1421
  const db = context.getAppDB()
1419
1422
  const table = await db.get(ctx.params.tableId)
1420
1423
  const rowIds = ctx.request.body.rows
@@ -1452,14 +1455,14 @@ export async function exportRows(ctx: BBContext) {
1452
1455
  return apiFileReturn(exporter(headers, rows))
1453
1456
  }
1454
1457
  &nbsp;
1455
- export async function fetchEnrichedRow(ctx: BBContext) {
1458
+ export async function fetchEnrichedRow(ctx: Ctx) {
1456
1459
  const db = context.getAppDB()
1457
1460
  const tableId = ctx.params.tableId
1458
1461
  const rowId = ctx.params.rowId
1459
1462
  // need table to work out where links go in row
1460
1463
  let [table, row] = await Promise.all([
1461
1464
  db.get(tableId),
1462
- findRow(ctx, tableId, rowId),
1465
+ utils.findRow(ctx, tableId, rowId),
1463
1466
  ])
1464
1467
  // get the link docs
1465
1468
  const linkVals = (await linkRows.getLinkDocuments({
@@ -1519,7 +1522,7 @@ export async function fetchEnrichedRow(ctx: BBContext) {
1519
1522
  <div class='footer quiet pad2 space-top1 center small'>
1520
1523
  Code coverage generated by
1521
1524
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1522
- at Wed Dec 14 2022 22:06:49 GMT+0000 (Coordinated Universal Time)
1525
+ at Thu Dec 15 2022 11:56:57 GMT+0000 (Coordinated Universal Time)
1523
1526
  </div>
1524
1527
  <script src="../../../../prettify.js"></script>
1525
1528
  <script>
@@ -1663,7 +1663,7 @@ export async function fullSearch(query: SearchFilters, params: SearchParams) {
1663
1663
  <div class='footer quiet pad2 space-top1 center small'>
1664
1664
  Code coverage generated by
1665
1665
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1666
- at Wed Dec 14 2022 22:06:49 GMT+0000 (Coordinated Universal Time)
1666
+ at Thu Dec 15 2022 11:56:57 GMT+0000 (Coordinated Universal Time)
1667
1667
  </div>
1668
1668
  <script src="../../../../prettify.js"></script>
1669
1669
  <script>
@@ -224,7 +224,10 @@
224
224
  <a name='L159'></a><a href='#L159'>159</a>
225
225
  <a name='L160'></a><a href='#L160'>160</a>
226
226
  <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">56x</span>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">56x</span>
228
231
  <span class="cline-any cline-yes">56x</span>
229
232
  <span class="cline-any cline-neutral">&nbsp;</span>
230
233
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -243,6 +246,9 @@
243
246
  <span class="cline-any cline-neutral">&nbsp;</span>
244
247
  <span class="cline-any cline-neutral">&nbsp;</span>
245
248
  <span class="cline-any cline-yes">56x</span>
249
+ <span class="cline-any cline-neutral">&nbsp;</span>
250
+ <span class="cline-any cline-neutral">&nbsp;</span>
251
+ <span class="cline-any cline-neutral">&nbsp;</span>
246
252
  <span class="cline-any cline-yes">86x</span>
247
253
  <span class="cline-any cline-neutral">&nbsp;</span>
248
254
  <span class="cline-any cline-yes">86x</span>
@@ -403,7 +409,10 @@ const { cloneDeep } = require("lodash/fp")
403
409
  * updated.
404
410
  * NOTE: this will only for affect static formulas.
405
411
  */
406
- export async function updateRelatedFormula(table: Table, enrichedRows: Row[]) {
412
+ export async function updateRelatedFormula(
413
+ table: Table,
414
+ enrichedRows: Row[] | Row
415
+ ) {
407
416
  const db = context.getAppDB()
408
417
  // no formula to update, we're done
409
418
  if (!table.relatedFormula) {
@@ -542,7 +551,7 @@ export async function finaliseRow(
542
551
  enrichedRow = await processFormulas(table, enrichedRow, { dynamic: false })
543
552
  // this updates the related formulas in other rows based on the relations to this row
544
553
  if (updateFormula) {
545
- await exports.updateRelatedFormula(table, enrichedRow)
554
+ await updateRelatedFormula(table, enrichedRow)
546
555
  }
547
556
  return { row: enrichedRow, table }
548
557
  }
@@ -553,7 +562,7 @@ export async function finaliseRow(
553
562
  <div class='footer quiet pad2 space-top1 center small'>
554
563
  Code coverage generated by
555
564
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
556
- at Wed Dec 14 2022 22:06:49 GMT+0000 (Coordinated Universal Time)
565
+ at Thu Dec 15 2022 11:56:57 GMT+0000 (Coordinated Universal Time)
557
566
  </div>
558
567
  <script src="../../../../prettify.js"></script>
559
568
  <script>
@@ -181,7 +181,8 @@
181
181
  <a name='L116'></a><a href='#L116'>116</a>
182
182
  <a name='L117'></a><a href='#L117'>117</a>
183
183
  <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">57x</span>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">57x</span>
185
186
  <span class="cline-any cline-yes">57x</span>
186
187
  <span class="cline-any cline-yes">57x</span>
187
188
  <span class="cline-any cline-yes">57x</span>
@@ -191,6 +192,7 @@
191
192
  <span class="cline-any cline-yes">57x</span>
192
193
  <span class="cline-any cline-yes">57x</span>
193
194
  <span class="cline-any cline-neutral">&nbsp;</span>
195
+ <span class="cline-any cline-neutral">&nbsp;</span>
194
196
  <span class="cline-any cline-yes">57x</span>
195
197
  <span class="cline-any cline-neutral">&nbsp;</span>
196
198
  <span class="cline-any cline-yes">2x</span>
@@ -308,6 +310,7 @@ import { BBContext, Row, Table } from "@budibase/types"
308
310
  export { removeKeyNumbering } from "../../../integrations/base/utils"
309
311
  const validateJs = require("validate.js")
310
312
  const { cloneDeep } = require("lodash/fp")
313
+ import { Ctx } from "@budibase/types"
311
314
  &nbsp;
312
315
  validateJs.extend(validateJs.validators.datetime, {
313
316
  parse: function (value: string) {
@@ -326,7 +329,7 @@ export async function getDatasourceAndQuery(json: any) {
326
329
  return makeExternalQuery(datasource, json)
327
330
  }
328
331
  &nbsp;
329
- export async function findRow(ctx: BBContext, tableId: string, rowId: string) {
332
+ export async function findRow(ctx: Ctx, tableId: string, rowId: string) {
330
333
  const db = context.getAppDB()
331
334
  let row
332
335
  // TODO remove special user case in future
@@ -424,7 +427,7 @@ export async function validate({
424
427
  <div class='footer quiet pad2 space-top1 center small'>
425
428
  Code coverage generated by
426
429
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
427
- at Wed Dec 14 2022 22:06:49 GMT+0000 (Coordinated Universal Time)
430
+ at Thu Dec 15 2022 11:56:57 GMT+0000 (Coordinated Universal Time)
428
431
  </div>
429
432
  <script src="../../../../prettify.js"></script>
430
433
  <script>
@@ -448,7 +448,7 @@ function findPlugins(component: ScreenProps, foundPlugins: string[]) {
448
448
  <div class='footer quiet pad2 space-top1 center small'>
449
449
  Code coverage generated by
450
450
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
451
- at Wed Dec 14 2022 22:06:49 GMT+0000 (Coordinated Universal Time)
451
+ at Thu Dec 15 2022 11:56:57 GMT+0000 (Coordinated Universal Time)
452
452
  </div>
453
453
  <script src="../../../prettify.js"></script>
454
454
  <script>
@@ -106,7 +106,7 @@ export async function <span class="fstat-no" title="function not covered" >save(
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
- at Wed Dec 14 2022 22:06:49 GMT+0000 (Coordinated Universal Time)
109
+ at Thu Dec 15 2022 11:56:57 GMT+0000 (Coordinated Universal Time)
110
110
  </div>
111
111
  <script src="../../../prettify.js"></script>
112
112
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">63.82% </span>
26
+ <span class="strong">62.63% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>60/94</span>
28
+ <span class='fraction'>57/91</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">61.17% </span>
47
+ <span class="strong">59.75% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>52/85</span>
49
+ <span class='fraction'>49/82</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,17 +80,17 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file medium" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
83
- <td data-value="63.82" class="pic medium">
84
- <div class="chart"><div class="cover-fill" style="width: 63%"></div><div class="cover-empty" style="width: 37%"></div></div>
83
+ <td data-value="62.63" class="pic medium">
84
+ <div class="chart"><div class="cover-fill" style="width: 62%"></div><div class="cover-empty" style="width: 38%"></div></div>
85
85
  </td>
86
- <td data-value="63.82" class="pct medium">63.82%</td>
87
- <td data-value="94" class="abs medium">60/94</td>
86
+ <td data-value="62.63" class="pct medium">62.63%</td>
87
+ <td data-value="91" class="abs medium">57/91</td>
88
88
  <td data-value="66" class="pct medium">66%</td>
89
89
  <td data-value="50" class="abs medium">33/50</td>
90
90
  <td data-value="36.36" class="pct low">36.36%</td>
91
91
  <td data-value="11" class="abs low">4/11</td>
92
- <td data-value="61.17" class="pct medium">61.17%</td>
93
- <td data-value="85" class="abs medium">52/85</td>
92
+ <td data-value="59.75" class="pct medium">59.75%</td>
93
+ <td data-value="82" class="abs medium">49/82</td>
94
94
  </tr>
95
95
 
96
96
  </tbody>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Wed Dec 14 2022 22:06:49 GMT+0000 (Coordinated Universal Time)
104
+ at Thu Dec 15 2022 11:56:57 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../../prettify.js"></script>
107
107
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">63.82% </span>
26
+ <span class="strong">62.63% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>60/94</span>
28
+ <span class='fraction'>57/91</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">61.17% </span>
47
+ <span class="strong">59.75% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>52/85</span>
49
+ <span class='fraction'>49/82</span>
50
50
  </div>
51
51
 
52
52
 
@@ -262,13 +262,7 @@
262
262
  <a name='L197'></a><a href='#L197'>197</a>
263
263
  <a name='L198'></a><a href='#L198'>198</a>
264
264
  <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">55x</span>
270
- <span class="cline-any cline-neutral">&nbsp;</span>
271
- <span class="cline-any cline-yes">55x</span>
265
+ <a name='L200'></a><a href='#L200'>200</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">55x</span>
272
266
  <span class="cline-any cline-neutral">&nbsp;</span>
273
267
  <span class="cline-any cline-yes">55x</span>
274
268
  <span class="cline-any cline-yes">55x</span>
@@ -285,8 +279,6 @@
285
279
  <span class="cline-any cline-yes">55x</span>
286
280
  <span class="cline-any cline-yes">55x</span>
287
281
  <span class="cline-any cline-yes">55x</span>
288
- <span class="cline-any cline-yes">55x</span>
289
- <span class="cline-any cline-yes">55x</span>
290
282
  <span class="cline-any cline-neutral">&nbsp;</span>
291
283
  <span class="cline-any cline-neutral">&nbsp;</span>
292
284
  <span class="cline-any cline-no">&nbsp;</span>
@@ -469,14 +461,12 @@
469
461
  <span class="cline-any cline-neutral">&nbsp;</span>
470
462
  <span class="cline-any cline-yes">1x</span>
471
463
  <span class="cline-any cline-neutral">&nbsp;</span>
472
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { enrichPluginURLs } from "../../../utilities/plugins"
473
- &nbsp;
474
- require("svelte/register")
464
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">require("svelte/register")
475
465
  &nbsp;
476
466
  const send = require("koa-send")
477
467
  const { resolve, join } = require("../../../utilities/centralPath")
478
468
  const uuid = require("uuid")
479
- const { ObjectStoreBuckets } = require("../../../constants")
469
+ import { ObjectStoreBuckets } from "../../../constants"
480
470
  const { processString } = require("@budibase/string-templates")
481
471
  const {
482
472
  loadHandlebarsFile,
@@ -484,8 +474,6 @@ const {
484
474
  TOP_LEVEL_PATH,
485
475
  } = require("../../../utilities/fileSystem")
486
476
  const env = require("../../../environment")
487
- const { clientLibraryPath } = require("../../../utilities")
488
- const { attachmentsRelativeURL } = require("../../../utilities")
489
477
  const { DocumentType } = require("../../../db/utils")
490
478
  const { context, objectStore, utils } = require("@budibase/backend-core")
491
479
  const AWS = require("aws-sdk")
@@ -504,7 +492,7 @@ async function <span class="fstat-no" title="function not covered" >prepareUploa
504
492
  <span class="cstat-no" title="statement not covered" > return {</span>
505
493
  size: file.size,
506
494
  name: file.name,
507
- url: attachmentsRelativeURL(response.Key),
495
+ url: objectStore.getAppFileUrl(s3Key),
508
496
  extension: [...file.name.split(".")].pop(),
509
497
  key: response.Key,
510
498
  }
@@ -556,7 +544,7 @@ export const uploadFile = <span class="fstat-no" title="function not covered" >a
556
544
  &nbsp;
557
545
  <span class="cstat-no" title="statement not covered" > return prepareUpload({</span>
558
546
  file,
559
- s3Key: `${ctx.appId}/attachments/${processedFileName}`,
547
+ s3Key: `${context.getProdAppId()}/attachments/${processedFileName}`,
560
548
  bucket: ObjectStoreBuckets.APPS,
561
549
  })
562
550
  })
@@ -578,14 +566,14 @@ export const serveApp = async function (ctx: any) {
578
566
  &nbsp;
579
567
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!env.isJest()) {
580
568
  const App = <span class="cstat-no" title="statement not covered" >require("./templates/BudibaseApp.svelte").default</span>
581
- const plugins = <span class="cstat-no" title="statement not covered" >enrichPluginURLs(appInfo.usedPlugins)</span>
569
+ const plugins = <span class="cstat-no" title="statement not covered" >objectStore.enrichPluginURLs(appInfo.usedPlugins)</span>
582
570
  const { head, html, css } = <span class="cstat-no" title="statement not covered" >App.render({</span>
583
571
  metaImage:
584
572
  "https://res.cloudinary.com/daog6scxm/image/upload/v1666109324/meta-images/budibase-meta-image_uukc1m.png",
585
573
  title: appInfo.name,
586
574
  production: env.isProd(),
587
575
  appId,
588
- clientLibPath: clientLibraryPath(appId, appInfo.version, ctx),
576
+ clientLibPath: objectStore.clientLibraryUrl(appId, appInfo.version),
589
577
  usedPlugins: plugins,
590
578
  })
591
579
  &nbsp;
@@ -610,7 +598,7 @@ export const serveBuilderPreview = async function (ctx: any) {
610
598
  let appId = <span class="cstat-no" title="statement not covered" >context.getAppId()</span>
611
599
  const previewHbs = <span class="cstat-no" title="statement not covered" >loadHandlebarsFile(`${__dirname}/templates/preview.hbs`)</span>
612
600
  <span class="cstat-no" title="statement not covered" > ctx.body = await processString(previewHbs, {</span>
613
- clientLibPath: clientLibraryPath(appId, appInfo.version, ctx),
601
+ clientLibPath: objectStore.clientLibraryUrl(appId, appInfo.version),
614
602
  })
615
603
  } else {
616
604
  // just return the app info for jest to assert on
@@ -679,7 +667,7 @@ export const getSignedUploadURL = async function (ctx: any) {
679
667
  <div class='footer quiet pad2 space-top1 center small'>
680
668
  Code coverage generated by
681
669
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
682
- at Wed Dec 14 2022 22:06:49 GMT+0000 (Coordinated Universal Time)
670
+ at Thu Dec 15 2022 11:56:57 GMT+0000 (Coordinated Universal Time)
683
671
  </div>
684
672
  <script src="../../../../prettify.js"></script>
685
673
  <script>
@@ -634,7 +634,7 @@ export async function runStaticFormulaChecks(
634
634
  <div class='footer quiet pad2 space-top1 center small'>
635
635
  Code coverage generated by
636
636
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
637
- at Wed Dec 14 2022 22:06:49 GMT+0000 (Coordinated Universal Time)
637
+ at Thu Dec 15 2022 11:56:57 GMT+0000 (Coordinated Universal Time)
638
638
  </div>
639
639
  <script src="../../../../prettify.js"></script>
640
640
  <script>
@@ -1132,7 +1132,7 @@ export async function <span class="fstat-no" title="function not covered" >bulkI
1132
1132
  <div class='footer quiet pad2 space-top1 center small'>
1133
1133
  Code coverage generated by
1134
1134
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1135
- at Wed Dec 14 2022 22:06:49 GMT+0000 (Coordinated Universal Time)
1135
+ at Thu Dec 15 2022 11:56:57 GMT+0000 (Coordinated Universal Time)
1136
1136
  </div>
1137
1137
  <script src="../../../../prettify.js"></script>
1138
1138
  <script>