@budibase/server 1.0.49-alpha.9 → 1.0.49

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 (379) hide show
  1. package/__mocks__/arangojs.ts +1 -1
  2. package/__mocks__/aws-sdk.ts +4 -4
  3. package/__mocks__/mongodb.ts +5 -4
  4. package/__mocks__/mssql.ts +3 -3
  5. package/__mocks__/node-fetch.ts +1 -2
  6. package/__mocks__/pg.ts +5 -3
  7. package/builder/assets/{index.ad5370ae.js → index.2c37968e.js} +246 -249
  8. package/builder/assets/index.39e01193.css +1 -0
  9. package/builder/assets/{vendor.d526bfe8.js → vendor.f9faf6ab.js} +12 -12
  10. package/builder/index.html +3 -3
  11. package/coverage/clover.xml +2827 -3117
  12. package/coverage/coverage-final.json +101 -106
  13. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/application.js.html +152 -257
  16. package/coverage/lcov-report/api/controllers/auth.js.html +13 -22
  17. package/coverage/lcov-report/api/controllers/automation.js.html +69 -39
  18. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/cloud.js.html +11 -8
  20. package/coverage/lcov-report/api/controllers/component.js.html +16 -13
  21. package/coverage/lcov-report/api/controllers/datasource.js.html +51 -81
  22. package/coverage/lcov-report/api/controllers/dev.js.html +6 -6
  23. package/coverage/lcov-report/{utilities/usageQuota/usageQuoteReset.js.html → api/controllers/hosting.js.html} +48 -36
  24. package/coverage/lcov-report/api/controllers/index.html +76 -76
  25. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/layout.js.html +9 -9
  27. package/coverage/lcov-report/api/controllers/metadata.js.html +21 -6
  28. package/coverage/lcov-report/api/controllers/permission.js.html +19 -19
  29. package/coverage/lcov-report/api/controllers/query/index.html +10 -10
  30. package/coverage/lcov-report/api/controllers/query/index.js.html +35 -38
  31. package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -6
  32. package/coverage/lcov-report/api/controllers/role.js.html +16 -16
  33. package/coverage/lcov-report/api/controllers/routing.js.html +10 -7
  34. package/coverage/lcov-report/api/controllers/row/external.js.html +141 -48
  35. package/coverage/lcov-report/api/controllers/row/index.html +40 -55
  36. package/coverage/lcov-report/api/controllers/row/index.js.html +26 -26
  37. package/coverage/lcov-report/api/controllers/row/internal.js.html +226 -118
  38. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +34 -52
  39. package/coverage/lcov-report/api/controllers/row/utils.js.html +62 -47
  40. package/coverage/lcov-report/api/controllers/screen.js.html +21 -15
  41. package/coverage/lcov-report/api/controllers/script.js.html +4 -4
  42. package/coverage/lcov-report/api/controllers/table/external.js.html +34 -25
  43. package/coverage/lcov-report/api/controllers/table/index.html +43 -58
  44. package/coverage/lcov-report/api/controllers/table/index.js.html +82 -58
  45. package/coverage/lcov-report/api/controllers/table/internal.js.html +66 -81
  46. package/coverage/lcov-report/api/controllers/table/utils.js.html +110 -218
  47. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  48. package/coverage/lcov-report/api/controllers/user.js.html +50 -47
  49. package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
  50. package/coverage/lcov-report/api/controllers/view/index.html +16 -16
  51. package/coverage/lcov-report/api/controllers/view/index.js.html +33 -27
  52. package/coverage/lcov-report/api/controllers/view/utils.js.html +20 -35
  53. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
  54. package/coverage/lcov-report/api/controllers/webhook.js.html +28 -34
  55. package/coverage/lcov-report/api/index.html +1 -1
  56. package/coverage/lcov-report/api/index.js.html +8 -8
  57. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/{migrations.js.html → hosting.js.html} +14 -17
  69. package/coverage/lcov-report/api/routes/index.html +18 -18
  70. package/coverage/lcov-report/api/routes/index.js.html +3 -3
  71. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/static.js.html +2 -17
  82. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  83. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  84. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  85. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  86. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  87. package/coverage/lcov-report/automations/actions.js.html +24 -24
  88. package/coverage/lcov-report/automations/automationUtils.js.html +10 -7
  89. package/coverage/lcov-report/automations/bullboard.js.html +16 -16
  90. package/coverage/lcov-report/automations/index.html +18 -18
  91. package/coverage/lcov-report/automations/index.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
  93. package/coverage/lcov-report/automations/steps/createRow.js.html +22 -13
  94. package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
  95. package/coverage/lcov-report/automations/steps/deleteRow.js.html +20 -11
  96. package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
  97. package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
  98. package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
  99. package/coverage/lcov-report/automations/steps/filter.js.html +7 -7
  100. package/coverage/lcov-report/automations/steps/index.html +13 -13
  101. package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
  102. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
  103. package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -10
  104. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
  105. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
  106. package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
  107. package/coverage/lcov-report/automations/steps/updateRow.js.html +7 -7
  108. package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
  109. package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
  110. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  111. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  112. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  113. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  114. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  115. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  116. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  117. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  118. package/coverage/lcov-report/automations/triggers.js.html +55 -61
  119. package/coverage/lcov-report/automations/utils.js.html +42 -54
  120. package/coverage/lcov-report/constants/index.html +5 -5
  121. package/coverage/lcov-report/constants/index.js.html +26 -53
  122. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  123. package/coverage/lcov-report/constants/screens.js.html +4 -4
  124. package/coverage/lcov-report/db/client.js.html +18 -18
  125. package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
  126. package/coverage/lcov-report/db/index.html +15 -15
  127. package/coverage/lcov-report/db/index.js.html +3 -3
  128. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +37 -25
  129. package/coverage/lcov-report/db/linkedRows/index.html +27 -27
  130. package/coverage/lcov-report/db/linkedRows/index.js.html +96 -51
  131. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +42 -42
  132. package/coverage/lcov-report/db/newid.js.html +4 -4
  133. package/coverage/lcov-report/db/utils.js.html +87 -87
  134. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  135. package/coverage/lcov-report/events/index.html +1 -1
  136. package/coverage/lcov-report/events/index.js.html +5 -5
  137. package/coverage/lcov-report/events/utils.js.html +3 -3
  138. package/coverage/lcov-report/index.html +120 -135
  139. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  140. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  141. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  142. package/coverage/lcov-report/middleware/authorized.js.html +65 -173
  143. package/coverage/lcov-report/middleware/builder.js.html +10 -10
  144. package/coverage/lcov-report/middleware/currentapp.js.html +83 -95
  145. package/coverage/lcov-report/middleware/index.html +38 -38
  146. package/coverage/lcov-report/middleware/joi-validator.js.html +3 -3
  147. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  148. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  149. package/coverage/lcov-report/middleware/usageQuota.js.html +53 -281
  150. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  151. package/coverage/lcov-report/threads/automation.js.html +24 -30
  152. package/coverage/lcov-report/threads/index.html +26 -26
  153. package/coverage/lcov-report/threads/index.js.html +10 -10
  154. package/coverage/lcov-report/threads/query.js.html +24 -39
  155. package/coverage/lcov-report/threads/utils.js.html +14 -14
  156. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  157. package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
  158. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  159. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  160. package/coverage/lcov-report/utilities/global.js.html +49 -58
  161. package/coverage/lcov-report/utilities/index.html +37 -37
  162. package/coverage/lcov-report/utilities/index.js.html +73 -43
  163. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +8 -8
  164. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  165. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  166. package/coverage/lcov-report/utilities/routing/index.js.html +7 -7
  167. package/coverage/lcov-report/utilities/rowProcessor/index.html +27 -27
  168. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +103 -97
  169. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +27 -75
  170. package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
  171. package/coverage/lcov-report/utilities/security.js.html +8 -8
  172. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  173. package/coverage/lcov-report/utilities/users.js.html +9 -9
  174. package/coverage/lcov-report/utilities/workerRequests.js.html +112 -43
  175. package/coverage/lcov.info +4431 -5013
  176. package/dist/api/controllers/application.js +60 -90
  177. package/dist/api/controllers/auth.js +5 -8
  178. package/dist/api/controllers/automation.js +19 -14
  179. package/dist/api/controllers/cloud.js +3 -2
  180. package/dist/api/controllers/component.js +4 -3
  181. package/dist/api/controllers/datasource.js +10 -20
  182. package/dist/api/controllers/deploy/Deployment.js +6 -3
  183. package/dist/api/controllers/deploy/index.js +13 -12
  184. package/dist/api/controllers/dev.js +5 -5
  185. package/dist/api/controllers/hosting.js +30 -0
  186. package/dist/api/controllers/layout.js +3 -3
  187. package/dist/api/controllers/metadata.js +4 -4
  188. package/dist/api/controllers/permission.js +4 -4
  189. package/dist/api/controllers/query/import/index.js +6 -4
  190. package/dist/api/controllers/query/index.js +10 -11
  191. package/dist/api/controllers/role.js +5 -5
  192. package/dist/api/controllers/routing.js +6 -5
  193. package/dist/api/controllers/row/ExternalRequest.js +67 -90
  194. package/dist/api/controllers/row/external.js +22 -14
  195. package/dist/api/controllers/row/internal.js +93 -55
  196. package/dist/api/controllers/row/internalSearch.js +17 -23
  197. package/dist/api/controllers/row/utils.js +14 -13
  198. package/dist/api/controllers/screen.js +7 -5
  199. package/dist/api/controllers/static/index.js +12 -61
  200. package/dist/api/controllers/table/external.js +10 -7
  201. package/dist/api/controllers/table/index.js +13 -16
  202. package/dist/api/controllers/table/internal.js +16 -22
  203. package/dist/api/controllers/table/utils.js +35 -62
  204. package/dist/api/controllers/user.js +20 -18
  205. package/dist/api/controllers/view/index.js +10 -8
  206. package/dist/api/controllers/view/utils.js +4 -9
  207. package/dist/api/controllers/webhook.js +8 -10
  208. package/dist/api/routes/hosting.js +11 -0
  209. package/dist/api/routes/index.js +2 -2
  210. package/dist/api/routes/static.js +1 -2
  211. package/dist/api/routes/tests/utilities/TestFunctions.js +17 -37
  212. package/dist/app.js +5 -35
  213. package/dist/automations/automationUtils.js +3 -2
  214. package/dist/automations/steps/createRow.js +5 -3
  215. package/dist/automations/steps/deleteRow.js +4 -1
  216. package/dist/automations/steps/updateRow.js +1 -1
  217. package/dist/automations/triggers.js +25 -27
  218. package/dist/automations/utils.js +5 -10
  219. package/dist/constants/index.js +0 -7
  220. package/dist/db/linkedRows/LinkController.js +7 -3
  221. package/dist/db/linkedRows/index.js +27 -16
  222. package/dist/db/linkedRows/linkUtils.js +6 -6
  223. package/dist/db/views/staticViews.js +10 -9
  224. package/dist/definitions/datasource.js +0 -1
  225. package/dist/environment.js +1 -4
  226. package/dist/integrations/base/sql.js +14 -56
  227. package/dist/integrations/index.js +0 -3
  228. package/dist/integrations/utils.js +9 -60
  229. package/dist/middleware/authorized.js +30 -57
  230. package/dist/middleware/builder.js +2 -2
  231. package/dist/middleware/currentapp.js +37 -41
  232. package/dist/middleware/usageQuota.js +15 -82
  233. package/dist/package.json +5 -8
  234. package/dist/tests/utilities/TestConfiguration.js +50 -80
  235. package/dist/threads/automation.js +11 -13
  236. package/dist/threads/query.js +11 -15
  237. package/dist/tsconfig.tsbuildinfo +1 -1
  238. package/dist/utilities/fileSystem/index.js +3 -4
  239. package/dist/utilities/global.js +12 -15
  240. package/dist/utilities/index.js +17 -7
  241. package/dist/utilities/routing/index.js +5 -5
  242. package/dist/utilities/rowProcessor/index.js +17 -23
  243. package/dist/utilities/rowProcessor/utils.js +4 -14
  244. package/dist/utilities/{usageQuota/index.js → usageQuota.js} +31 -45
  245. package/dist/utilities/users.js +3 -3
  246. package/dist/utilities/workerRequests.js +24 -4
  247. package/nodemon.json +1 -1
  248. package/package.json +6 -9
  249. package/scripts/integrations/postgres/init.sql +6 -11
  250. package/scripts/likeCypress.ts +1 -1
  251. package/src/api/controllers/application.js +50 -85
  252. package/src/api/controllers/auth.js +5 -8
  253. package/src/api/controllers/automation.js +23 -13
  254. package/src/api/controllers/cloud.js +3 -2
  255. package/src/api/controllers/component.js +4 -3
  256. package/src/api/controllers/datasource.js +11 -21
  257. package/src/api/controllers/deploy/Deployment.js +7 -3
  258. package/src/api/controllers/deploy/index.js +13 -20
  259. package/src/api/controllers/dev.js +5 -5
  260. package/src/api/controllers/hosting.js +22 -0
  261. package/src/api/controllers/layout.js +3 -3
  262. package/src/api/controllers/metadata.js +9 -4
  263. package/src/api/controllers/permission.js +4 -4
  264. package/src/api/controllers/query/import/index.ts +6 -4
  265. package/src/api/controllers/query/import/tests/index.spec.js +1 -2
  266. package/src/api/controllers/query/index.js +10 -11
  267. package/src/api/controllers/role.js +5 -5
  268. package/src/api/controllers/routing.js +6 -5
  269. package/src/api/controllers/row/ExternalRequest.ts +43 -67
  270. package/src/api/controllers/row/external.js +58 -27
  271. package/src/api/controllers/row/internal.js +90 -54
  272. package/src/api/controllers/row/internalSearch.js +17 -23
  273. package/src/api/controllers/row/utils.js +18 -13
  274. package/src/api/controllers/screen.js +7 -5
  275. package/src/api/controllers/static/index.js +12 -65
  276. package/src/api/controllers/table/external.js +10 -7
  277. package/src/api/controllers/table/index.js +28 -20
  278. package/src/api/controllers/table/internal.js +19 -24
  279. package/src/api/controllers/table/utils.js +42 -78
  280. package/src/api/controllers/user.js +20 -19
  281. package/src/api/controllers/view/index.js +10 -8
  282. package/src/api/controllers/view/utils.js +4 -9
  283. package/src/api/controllers/webhook.js +8 -10
  284. package/src/api/routes/hosting.js +13 -0
  285. package/src/api/routes/index.js +2 -2
  286. package/src/api/routes/static.js +0 -5
  287. package/src/api/routes/tests/application.spec.js +2 -2
  288. package/src/api/routes/tests/auth.spec.js +2 -1
  289. package/src/api/routes/tests/automation.spec.js +0 -1
  290. package/src/api/routes/tests/hosting.spec.js +36 -0
  291. package/src/api/routes/tests/misc.spec.js +1 -0
  292. package/src/api/routes/tests/routing.spec.js +12 -21
  293. package/src/api/routes/tests/row.spec.js +4 -7
  294. package/src/api/routes/tests/utilities/TestFunctions.js +17 -39
  295. package/src/app.ts +5 -18
  296. package/src/automations/automationUtils.js +3 -2
  297. package/src/automations/steps/createRow.js +5 -2
  298. package/src/automations/steps/deleteRow.js +4 -1
  299. package/src/automations/steps/updateRow.js +1 -1
  300. package/src/automations/triggers.js +31 -33
  301. package/src/automations/utils.js +5 -9
  302. package/src/constants/index.js +0 -9
  303. package/src/db/linkedRows/LinkController.js +7 -3
  304. package/src/db/linkedRows/index.js +31 -16
  305. package/src/db/linkedRows/linkUtils.js +6 -6
  306. package/src/db/tests/linkController.spec.js +1 -0
  307. package/src/db/tests/linkTests.spec.js +6 -5
  308. package/src/db/views/staticViews.js +10 -8
  309. package/src/definitions/common.ts +0 -3
  310. package/src/definitions/datasource.ts +0 -3
  311. package/src/environment.js +1 -4
  312. package/src/integrations/base/sql.ts +21 -69
  313. package/src/integrations/index.ts +0 -3
  314. package/src/integrations/tests/sql.spec.js +0 -16
  315. package/src/integrations/utils.ts +12 -75
  316. package/src/middleware/authorized.js +30 -66
  317. package/src/middleware/builder.js +2 -2
  318. package/src/middleware/currentapp.js +46 -50
  319. package/src/middleware/tests/authorized.spec.js +6 -13
  320. package/src/middleware/tests/currentapp.spec.js +0 -6
  321. package/src/middleware/tests/usageQuota.spec.js +24 -18
  322. package/src/middleware/usageQuota.js +17 -93
  323. package/src/tests/utilities/TestConfiguration.js +55 -82
  324. package/src/threads/automation.js +15 -17
  325. package/src/threads/query.js +12 -17
  326. package/src/utilities/fileSystem/index.js +3 -4
  327. package/src/utilities/global.js +12 -15
  328. package/src/utilities/index.js +17 -7
  329. package/src/utilities/routing/index.js +5 -5
  330. package/src/utilities/rowProcessor/index.js +27 -25
  331. package/src/utilities/rowProcessor/utils.js +7 -23
  332. package/src/utilities/usageQuota.js +73 -0
  333. package/src/utilities/users.js +3 -3
  334. package/src/utilities/workerRequests.js +27 -4
  335. package/tsconfig.json +1 -2
  336. package/builder/assets/index.83c0944f.css +0 -1
  337. package/coverage/lcov-report/api/controllers/migrations.js.html +0 -119
  338. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +0 -548
  339. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +0 -599
  340. package/coverage/lcov-report/utilities/usageQuota/index.html +0 -141
  341. package/coverage/lcov-report/utilities/usageQuota/index.js.html +0 -359
  342. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +0 -305
  343. package/dist/api/controllers/migrations.js +0 -21
  344. package/dist/api/controllers/row/staticFormula.js +0 -147
  345. package/dist/api/controllers/table/bulkFormula.js +0 -159
  346. package/dist/api/routes/migrations.js +0 -9
  347. package/dist/integrations/googlesheets.js +0 -340
  348. package/dist/migrations/functions/appUrls.js +0 -46
  349. package/dist/migrations/functions/quotas1.js +0 -50
  350. package/dist/migrations/functions/usageQuotas/index.js +0 -20
  351. package/dist/migrations/functions/usageQuotas/syncApps.js +0 -29
  352. package/dist/migrations/functions/usageQuotas/syncRows.js +0 -33
  353. package/dist/migrations/functions/userEmailViewCasing.js +0 -24
  354. package/dist/migrations/index.js +0 -62
  355. package/dist/utilities/usageQuota/rows.js +0 -78
  356. package/dist/utilities/usageQuota/usageQuoteReset.js +0 -16
  357. package/src/api/controllers/migrations.js +0 -13
  358. package/src/api/controllers/row/staticFormula.js +0 -156
  359. package/src/api/controllers/table/bulkFormula.js +0 -173
  360. package/src/api/routes/migrations.js +0 -14
  361. package/src/api/routes/tests/static.spec.js +0 -98
  362. package/src/integrations/googlesheets.ts +0 -353
  363. package/src/migrations/functions/appUrls.ts +0 -34
  364. package/src/migrations/functions/quotas1.ts +0 -20
  365. package/src/migrations/functions/tests/appUrls.spec.js +0 -29
  366. package/src/migrations/functions/tests/quotas1.spec.js +0 -27
  367. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +0 -25
  368. package/src/migrations/functions/usageQuotas/index.ts +0 -8
  369. package/src/migrations/functions/usageQuotas/syncApps.ts +0 -18
  370. package/src/migrations/functions/usageQuotas/syncRows.ts +0 -22
  371. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +0 -37
  372. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +0 -43
  373. package/src/migrations/functions/userEmailViewCasing.ts +0 -13
  374. package/src/migrations/index.ts +0 -56
  375. package/src/module.d.ts +0 -3
  376. package/src/utilities/tests/usageQuota/usageQuota.spec.js +0 -72
  377. package/src/utilities/usageQuota/index.js +0 -93
  378. package/src/utilities/usageQuota/rows.js +0 -75
  379. package/src/utilities/usageQuota/usageQuoteReset.js +0 -18
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">16.12% </span>
26
+ <span class="strong">14.85% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>15/93</span>
28
+ <span class='fraction'>15/101</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">16.48% </span>
47
+ <span class="strong">15.15% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>15/91</span>
49
+ <span class='fraction'>15/99</span>
50
50
  </div>
51
51
 
52
52
 
@@ -257,18 +257,49 @@
257
257
  <a name='L198'></a><a href='#L198'>198</a>
258
258
  <a name='L199'></a><a href='#L199'>199</a>
259
259
  <a name='L200'></a><a href='#L200'>200</a>
260
- <a name='L201'></a><a href='#L201'>201</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
260
+ <a name='L201'></a><a href='#L201'>201</a>
261
+ <a name='L202'></a><a href='#L202'>202</a>
262
+ <a name='L203'></a><a href='#L203'>203</a>
263
+ <a name='L204'></a><a href='#L204'>204</a>
264
+ <a name='L205'></a><a href='#L205'>205</a>
265
+ <a name='L206'></a><a href='#L206'>206</a>
266
+ <a name='L207'></a><a href='#L207'>207</a>
267
+ <a name='L208'></a><a href='#L208'>208</a>
268
+ <a name='L209'></a><a href='#L209'>209</a>
269
+ <a name='L210'></a><a href='#L210'>210</a>
270
+ <a name='L211'></a><a href='#L211'>211</a>
271
+ <a name='L212'></a><a href='#L212'>212</a>
272
+ <a name='L213'></a><a href='#L213'>213</a>
273
+ <a name='L214'></a><a href='#L214'>214</a>
274
+ <a name='L215'></a><a href='#L215'>215</a>
275
+ <a name='L216'></a><a href='#L216'>216</a>
276
+ <a name='L217'></a><a href='#L217'>217</a>
277
+ <a name='L218'></a><a href='#L218'>218</a>
278
+ <a name='L219'></a><a href='#L219'>219</a>
279
+ <a name='L220'></a><a href='#L220'>220</a>
280
+ <a name='L221'></a><a href='#L221'>221</a>
281
+ <a name='L222'></a><a href='#L222'>222</a>
282
+ <a name='L223'></a><a href='#L223'>223</a>
283
+ <a name='L224'></a><a href='#L224'>224</a>
284
+ <a name='L225'></a><a href='#L225'>225</a>
285
+ <a name='L226'></a><a href='#L226'>226</a>
286
+ <a name='L227'></a><a href='#L227'>227</a>
287
+ <a name='L228'></a><a href='#L228'>228</a>
288
+ <a name='L229'></a><a href='#L229'>229</a>
289
+ <a name='L230'></a><a href='#L230'>230</a>
290
+ <a name='L231'></a><a href='#L231'>231</a>
291
+ <a name='L232'></a><a href='#L232'>232</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
261
292
  <span class="cline-any cline-neutral">&nbsp;</span>
262
293
  <span class="cline-any cline-neutral">&nbsp;</span>
263
294
  <span class="cline-any cline-neutral">&nbsp;</span>
264
295
  <span class="cline-any cline-neutral">&nbsp;</span>
265
- <span class="cline-any cline-yes">39x</span>
296
+ <span class="cline-any cline-yes">34x</span>
266
297
  <span class="cline-any cline-neutral">&nbsp;</span>
267
298
  <span class="cline-any cline-neutral">&nbsp;</span>
268
299
  <span class="cline-any cline-neutral">&nbsp;</span>
269
- <span class="cline-any cline-yes">39x</span>
270
- <span class="cline-any cline-yes">39x</span>
271
- <span class="cline-any cline-yes">39x</span>
300
+ <span class="cline-any cline-yes">34x</span>
301
+ <span class="cline-any cline-yes">34x</span>
302
+ <span class="cline-any cline-yes">34x</span>
272
303
  <span class="cline-any cline-neutral">&nbsp;</span>
273
304
  <span class="cline-any cline-neutral">&nbsp;</span>
274
305
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -287,9 +318,12 @@
287
318
  <span class="cline-any cline-no">&nbsp;</span>
288
319
  <span class="cline-any cline-neutral">&nbsp;</span>
289
320
  <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-yes">39x</span>
291
321
  <span class="cline-any cline-neutral">&nbsp;</span>
292
- <span class="cline-any cline-yes">39x</span>
322
+ <span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-yes">34x</span>
324
+ <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-yes">34x</span>
326
+ <span class="cline-any cline-no">&nbsp;</span>
293
327
  <span class="cline-any cline-no">&nbsp;</span>
294
328
  <span class="cline-any cline-no">&nbsp;</span>
295
329
  <span class="cline-any cline-no">&nbsp;</span>
@@ -301,7 +335,8 @@
301
335
  <span class="cline-any cline-neutral">&nbsp;</span>
302
336
  <span class="cline-any cline-neutral">&nbsp;</span>
303
337
  <span class="cline-any cline-neutral">&nbsp;</span>
304
- <span class="cline-any cline-yes">39x</span>
338
+ <span class="cline-any cline-yes">34x</span>
339
+ <span class="cline-any cline-no">&nbsp;</span>
305
340
  <span class="cline-any cline-no">&nbsp;</span>
306
341
  <span class="cline-any cline-no">&nbsp;</span>
307
342
  <span class="cline-any cline-no">&nbsp;</span>
@@ -309,7 +344,7 @@
309
344
  <span class="cline-any cline-neutral">&nbsp;</span>
310
345
  <span class="cline-any cline-neutral">&nbsp;</span>
311
346
  <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-yes">39x</span>
347
+ <span class="cline-any cline-yes">34x</span>
313
348
  <span class="cline-any cline-neutral">&nbsp;</span>
314
349
  <span class="cline-any cline-neutral">&nbsp;</span>
315
350
  <span class="cline-any cline-no">&nbsp;</span>
@@ -317,30 +352,44 @@
317
352
  <span class="cline-any cline-no">&nbsp;</span>
318
353
  <span class="cline-any cline-neutral">&nbsp;</span>
319
354
  <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-yes">39x</span>
355
+ <span class="cline-any cline-yes">34x</span>
356
+ <span class="cline-any cline-no">&nbsp;</span>
321
357
  <span class="cline-any cline-no">&nbsp;</span>
322
358
  <span class="cline-any cline-no">&nbsp;</span>
323
359
  <span class="cline-any cline-neutral">&nbsp;</span>
324
360
  <span class="cline-any cline-neutral">&nbsp;</span>
325
- <span class="cline-any cline-yes">39x</span>
361
+ <span class="cline-any cline-yes">34x</span>
362
+ <span class="cline-any cline-no">&nbsp;</span>
326
363
  <span class="cline-any cline-no">&nbsp;</span>
327
364
  <span class="cline-any cline-no">&nbsp;</span>
328
365
  <span class="cline-any cline-no">&nbsp;</span>
329
366
  <span class="cline-any cline-neutral">&nbsp;</span>
330
367
  <span class="cline-any cline-neutral">&nbsp;</span>
368
+ <span class="cline-any cline-neutral">&nbsp;</span>
369
+ <span class="cline-any cline-neutral">&nbsp;</span>
370
+ <span class="cline-any cline-neutral">&nbsp;</span>
371
+ <span class="cline-any cline-neutral">&nbsp;</span>
372
+ <span class="cline-any cline-neutral">&nbsp;</span>
331
373
  <span class="cline-any cline-no">&nbsp;</span>
332
374
  <span class="cline-any cline-neutral">&nbsp;</span>
333
375
  <span class="cline-any cline-neutral">&nbsp;</span>
334
- <span class="cline-any cline-yes">39x</span>
376
+ <span class="cline-any cline-yes">34x</span>
377
+ <span class="cline-any cline-no">&nbsp;</span>
335
378
  <span class="cline-any cline-no">&nbsp;</span>
336
379
  <span class="cline-any cline-no">&nbsp;</span>
337
380
  <span class="cline-any cline-no">&nbsp;</span>
338
381
  <span class="cline-any cline-neutral">&nbsp;</span>
339
382
  <span class="cline-any cline-neutral">&nbsp;</span>
383
+ <span class="cline-any cline-neutral">&nbsp;</span>
384
+ <span class="cline-any cline-neutral">&nbsp;</span>
385
+ <span class="cline-any cline-neutral">&nbsp;</span>
386
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
340
388
  <span class="cline-any cline-no">&nbsp;</span>
341
389
  <span class="cline-any cline-neutral">&nbsp;</span>
342
390
  <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-yes">39x</span>
391
+ <span class="cline-any cline-yes">34x</span>
392
+ <span class="cline-any cline-no">&nbsp;</span>
344
393
  <span class="cline-any cline-no">&nbsp;</span>
345
394
  <span class="cline-any cline-no">&nbsp;</span>
346
395
  <span class="cline-any cline-no">&nbsp;</span>
@@ -355,7 +404,8 @@
355
404
  <span class="cline-any cline-no">&nbsp;</span>
356
405
  <span class="cline-any cline-neutral">&nbsp;</span>
357
406
  <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-yes">39x</span>
407
+ <span class="cline-any cline-yes">34x</span>
408
+ <span class="cline-any cline-no">&nbsp;</span>
359
409
  <span class="cline-any cline-no">&nbsp;</span>
360
410
  <span class="cline-any cline-no">&nbsp;</span>
361
411
  <span class="cline-any cline-no">&nbsp;</span>
@@ -400,18 +450,24 @@
400
450
  <span class="cline-any cline-neutral">&nbsp;</span>
401
451
  <span class="cline-any cline-neutral">&nbsp;</span>
402
452
  <span class="cline-any cline-neutral">&nbsp;</span>
453
+ <span class="cline-any cline-neutral">&nbsp;</span>
454
+ <span class="cline-any cline-neutral">&nbsp;</span>
455
+ <span class="cline-any cline-neutral">&nbsp;</span>
456
+ <span class="cline-any cline-neutral">&nbsp;</span>
457
+ <span class="cline-any cline-neutral">&nbsp;</span>
403
458
  <span class="cline-any cline-no">&nbsp;</span>
404
459
  <span class="cline-any cline-neutral">&nbsp;</span>
405
460
  <span class="cline-any cline-neutral">&nbsp;</span>
406
461
  <span class="cline-any cline-no">&nbsp;</span>
407
462
  <span class="cline-any cline-neutral">&nbsp;</span>
408
463
  <span class="cline-any cline-neutral">&nbsp;</span>
409
- <span class="cline-any cline-yes">39x</span>
464
+ <span class="cline-any cline-yes">34x</span>
410
465
  <span class="cline-any cline-neutral">&nbsp;</span>
411
466
  <span class="cline-any cline-no">&nbsp;</span>
412
467
  <span class="cline-any cline-neutral">&nbsp;</span>
413
468
  <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-yes">39x</span>
469
+ <span class="cline-any cline-yes">34x</span>
470
+ <span class="cline-any cline-no">&nbsp;</span>
415
471
  <span class="cline-any cline-no">&nbsp;</span>
416
472
  <span class="cline-any cline-no">&nbsp;</span>
417
473
  <span class="cline-any cline-no">&nbsp;</span>
@@ -425,6 +481,11 @@
425
481
  <span class="cline-any cline-neutral">&nbsp;</span>
426
482
  <span class="cline-any cline-neutral">&nbsp;</span>
427
483
  <span class="cline-any cline-neutral">&nbsp;</span>
484
+ <span class="cline-any cline-neutral">&nbsp;</span>
485
+ <span class="cline-any cline-neutral">&nbsp;</span>
486
+ <span class="cline-any cline-neutral">&nbsp;</span>
487
+ <span class="cline-any cline-neutral">&nbsp;</span>
488
+ <span class="cline-any cline-neutral">&nbsp;</span>
428
489
  <span class="cline-any cline-no">&nbsp;</span>
429
490
  <span class="cline-any cline-no">&nbsp;</span>
430
491
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -455,6 +516,7 @@
455
516
  <span class="cline-any cline-neutral">&nbsp;</span>
456
517
  <span class="cline-any cline-neutral">&nbsp;</span>
457
518
  <span class="cline-any cline-neutral">&nbsp;</span>
519
+ <span class="cline-any cline-neutral">&nbsp;</span>
458
520
  <span class="cline-any cline-no">&nbsp;</span>
459
521
  <span class="cline-any cline-neutral">&nbsp;</span>
460
522
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const {
@@ -468,9 +530,9 @@ const {
468
530
  breakRowIdField,
469
531
  } = require("../../../integrations/utils")
470
532
  const ExternalRequest = require("./ExternalRequest")
471
- const { getAppDB } = require("@budibase/backend-core/context")
533
+ const CouchDB = require("../../../db")
472
534
  &nbsp;
473
- async function <span class="fstat-no" title="function not covered" >handleRequest(</span>operation, tableId, opts = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
535
+ async function <span class="fstat-no" title="function not covered" >handleRequest(</span>appId, operation, tableId, opts = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
474
536
  // make sure the filters are cleaned up, no empty strings for equals, fuzzy or string
475
537
  <span class="cstat-no" title="statement not covered" > if (opts &amp;&amp; opts.filters) {</span>
476
538
  <span class="cstat-no" title="statement not covered" > for (let filterField of NoEmptyFilterStrings) {</span>
@@ -484,27 +546,31 @@ async function <span class="fstat-no" title="function not covered" >handleReques
484
546
  }
485
547
  }
486
548
  }
487
- <span class="cstat-no" title="statement not covered" > return new ExternalRequest(operation, tableId, opts.datasource).run(opts)</span>
549
+ <span class="cstat-no" title="statement not covered" > return new ExternalRequest(appId, operation, tableId, opts.datasource).run(</span>
550
+ opts
551
+ )
488
552
  }
489
553
  &nbsp;
490
554
  exports.handleRequest = handleRequest
491
555
  &nbsp;
492
556
  exports.patch = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
557
+ const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
493
558
  const inputs = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
494
559
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
495
560
  const id = <span class="cstat-no" title="statement not covered" >breakRowIdField(inputs._id)</span>
496
561
  // don't save the ID to db
497
562
  <span class="cstat-no" title="statement not covered" > delete inputs._id</span>
498
- <span class="cstat-no" title="statement not covered" > return handleRequest(DataSourceOperation.UPDATE, tableId, {</span>
563
+ <span class="cstat-no" title="statement not covered" > return handleRequest(appId, DataSourceOperation.UPDATE, tableId, {</span>
499
564
  id,
500
565
  row: inputs,
501
566
  })
502
567
  }
503
568
  &nbsp;
504
569
  exports.save = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
570
+ const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
505
571
  const inputs = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
506
572
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
507
- <span class="cstat-no" title="statement not covered" > return handleRequest(DataSourceOperation.CREATE, tableId, {</span>
573
+ <span class="cstat-no" title="statement not covered" > return handleRequest(appId, DataSourceOperation.CREATE, tableId, {</span>
508
574
  row: inputs,
509
575
  })
510
576
  }
@@ -518,35 +584,49 @@ exports.fetchView = <span class="fstat-no" title="function not covered" >as</spa
518
584
  }
519
585
  &nbsp;
520
586
  exports.fetch = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
587
+ const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
521
588
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
522
- <span class="cstat-no" title="statement not covered" > return handleRequest(DataSourceOperation.READ, tableId)</span>
589
+ <span class="cstat-no" title="statement not covered" > return handleRequest(appId, DataSourceOperation.READ, tableId)</span>
523
590
  }
524
591
  &nbsp;
525
592
  exports.find = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
593
+ const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
526
594
  const id = <span class="cstat-no" title="statement not covered" >ctx.params.rowId</span>
527
595
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
528
- const response = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.READ, tableId, {</span>
529
- id,
530
- })
596
+ const response = <span class="cstat-no" title="statement not covered" >await handleRequest(</span>
597
+ appId,
598
+ DataSourceOperation.READ,
599
+ tableId,
600
+ {
601
+ id,
602
+ }
603
+ )
531
604
  <span class="cstat-no" title="statement not covered" > return response ? response[0] : response</span>
532
605
  }
533
606
  &nbsp;
534
607
  exports.destroy = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
608
+ const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
535
609
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
536
610
  const id = <span class="cstat-no" title="statement not covered" >ctx.request.body._id</span>
537
- const { row } = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.DELETE, tableId, {</span>
538
- id,
539
- })
611
+ const { row } = <span class="cstat-no" title="statement not covered" >await handleRequest(</span>
612
+ appId,
613
+ DataSourceOperation.DELETE,
614
+ tableId,
615
+ {
616
+ id,
617
+ }
618
+ )
540
619
  <span class="cstat-no" title="statement not covered" > return { response: { ok: true }, row }</span>
541
620
  }
542
621
  &nbsp;
543
622
  exports.bulkDestroy = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
623
+ const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
544
624
  const { rows } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
545
625
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
546
626
  let promises = <span class="cstat-no" title="statement not covered" >[]</span>
547
627
  <span class="cstat-no" title="statement not covered" > for (let row of rows) {</span>
548
628
  <span class="cstat-no" title="statement not covered" > promises.push(</span>
549
- handleRequest(DataSourceOperation.DELETE, tableId, {
629
+ handleRequest(appId, DataSourceOperation.DELETE, tableId, {
550
630
  id: breakRowIdField(row._id),
551
631
  })
552
632
  )
@@ -556,6 +636,7 @@ exports.bulkDestroy = <span class="fstat-no" title="function not covered" >as</s
556
636
  }
557
637
  &nbsp;
558
638
  exports.search = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
639
+ const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
559
640
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
560
641
  const { paginate, query, ...params } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
561
642
  let { bookmark, limit } = <span class="cstat-no" title="statement not covered" >params</span>
@@ -585,21 +666,26 @@ exports.search = <span class="fstat-no" title="function not covered" >as</span>y
585
666
  [params.sort]: direction,
586
667
  }
587
668
  }
588
- const rows = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.READ, tableId, {</span>
669
+ const rows = <span class="cstat-no" title="statement not covered" >await handleRequest(appId, DataSourceOperation.READ, tableId, {</span>
589
670
  filters: query,
590
671
  sort,
591
672
  paginate: paginateObj,
592
673
  })
593
674
  let hasNextPage = <span class="cstat-no" title="statement not covered" >false</span>
594
675
  <span class="cstat-no" title="statement not covered" > if (paginate &amp;&amp; rows.length === limit) {</span>
595
- const nextRows = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.READ, tableId, {</span>
596
- filters: query,
597
- sort,
598
- paginate: {
599
- limit: 1,
600
- page: bookmark * limit + 1,
601
- },
602
- })
676
+ const nextRows = <span class="cstat-no" title="statement not covered" >await handleRequest(</span>
677
+ appId,
678
+ DataSourceOperation.READ,
679
+ tableId,
680
+ {
681
+ filters: query,
682
+ sort,
683
+ paginate: {
684
+ limit: 1,
685
+ page: bookmark * limit + 1,
686
+ },
687
+ }
688
+ )
603
689
  <span class="cstat-no" title="statement not covered" > hasNextPage = nextRows.length &gt; 0</span>
604
690
  }
605
691
  // need wrapper object for bookmarks etc when paginating
@@ -612,19 +698,25 @@ exports.validate = <span class="fstat-no" title="function not covered" >as</span
612
698
  }
613
699
  &nbsp;
614
700
  exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
701
+ const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
615
702
  const id = <span class="cstat-no" title="statement not covered" >ctx.params.rowId</span>
616
703
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
617
704
  const { datasourceId, tableName } = <span class="cstat-no" title="statement not covered" >breakExternalTableId(tableId)</span>
618
- const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
705
+ const db = <span class="cstat-no" title="statement not covered" >new CouchDB(appId)</span>
619
706
  const datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
620
707
  <span class="cstat-no" title="statement not covered" > if (!datasource || !datasource.entities) {</span>
621
708
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Datasource has not been configured for plus API.")</span>
622
709
  }
623
710
  const tables = <span class="cstat-no" title="statement not covered" >datasource.entities</span>
624
- const response = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.READ, tableId, {</span>
625
- id,
626
- datasource,
627
- })
711
+ const response = <span class="cstat-no" title="statement not covered" >await handleRequest(</span>
712
+ appId,
713
+ DataSourceOperation.READ,
714
+ tableId,
715
+ {
716
+ id,
717
+ datasource,
718
+ }
719
+ )
628
720
  const table = <span class="cstat-no" title="statement not covered" >tables[tableName]</span>
629
721
  const row = <span class="cstat-no" title="statement not covered" >response[0]</span>
630
722
  // this seems like a lot of work, but basically we need to dig deeper for the enrich
@@ -643,6 +735,7 @@ exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >
643
735
  // don't support composite keys right now
644
736
  const linkedIds = <span class="cstat-no" title="statement not covered" >links.map(<span class="fstat-no" title="function not covered" >li</span>nk =&gt; <span class="cstat-no" title="statement not covered" >breakRowIdField(link._id)[0])</span></span>
645
737
  <span class="cstat-no" title="statement not covered" > row[fieldName] = await handleRequest(</span>
738
+ appId,
646
739
  DataSourceOperation.READ,
647
740
  linkedTableId,
648
741
  {
@@ -664,7 +757,7 @@ exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >
664
757
  <div class='footer quiet pad2 space-top1 center small'>
665
758
  Code coverage generated by
666
759
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
667
- at Thu Feb 03 2022 20:58:15 GMT+0000 (Coordinated Universal Time)
760
+ at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
668
761
  </div>
669
762
  </div>
670
763
  <script src="../../../prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">51.15% </span>
26
+ <span class="strong">52.54% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>332/649</span>
28
+ <span class='fraction'>320/609</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">30.13% </span>
33
+ <span class="strong">32.29% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>88/292</span>
35
+ <span class='fraction'>83/257</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">41.93% </span>
40
+ <span class="strong">43.18% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>39/93</span>
42
+ <span class='fraction'>38/88</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">51.25% </span>
47
+ <span class="strong">52.59% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>326/636</span>
49
+ <span class='fraction'>314/597</span>
50
50
  </div>
51
51
 
52
52
 
@@ -74,17 +74,17 @@
74
74
  </thead>
75
75
  <tbody><tr>
76
76
  <td class="file low" data-value="external.js"><a href="external.js.html">external.js</a></td>
77
- <td data-value="16.12" class="pic low">
78
- <div class="chart"><div class="cover-fill" style="width: 16%"></div><div class="cover-empty" style="width: 84%"></div></div>
77
+ <td data-value="14.85" class="pic low">
78
+ <div class="chart"><div class="cover-fill" style="width: 14%"></div><div class="cover-empty" style="width: 86%"></div></div>
79
79
  </td>
80
- <td data-value="16.12" class="pct low">16.12%</td>
81
- <td data-value="93" class="abs low">15/93</td>
80
+ <td data-value="14.85" class="pct low">14.85%</td>
81
+ <td data-value="101" class="abs low">15/101</td>
82
82
  <td data-value="0" class="pct low">0%</td>
83
83
  <td data-value="42" class="abs low">0/42</td>
84
84
  <td data-value="0" class="pct low">0%</td>
85
85
  <td data-value="13" class="abs low">0/13</td>
86
- <td data-value="16.48" class="pct low">16.48%</td>
87
- <td data-value="91" class="abs low">15/91</td>
86
+ <td data-value="15.15" class="pct low">15.15%</td>
87
+ <td data-value="99" class="abs low">15/99</td>
88
88
  </tr>
89
89
 
90
90
  <tr>
@@ -104,62 +104,47 @@
104
104
 
105
105
  <tr>
106
106
  <td class="file high" data-value="internal.js"><a href="internal.js.html">internal.js</a></td>
107
- <td data-value="85.42" class="pic high">
108
- <div class="chart"><div class="cover-fill" style="width: 85%"></div><div class="cover-empty" style="width: 15%"></div></div>
107
+ <td data-value="83.18" class="pic high">
108
+ <div class="chart"><div class="cover-fill" style="width: 83%"></div><div class="cover-empty" style="width: 17%"></div></div>
109
109
  </td>
110
- <td data-value="85.42" class="pct high">85.42%</td>
111
- <td data-value="199" class="abs high">170/199</td>
112
- <td data-value="63.33" class="pct medium">63.33%</td>
113
- <td data-value="60" class="abs medium">38/60</td>
114
- <td data-value="91.66" class="pct high">91.66%</td>
115
- <td data-value="24" class="abs high">22/24</td>
116
- <td data-value="85.49" class="pct high">85.49%</td>
117
- <td data-value="193" class="abs high">165/193</td>
110
+ <td data-value="83.18" class="pct high">83.18%</td>
111
+ <td data-value="220" class="abs high">183/220</td>
112
+ <td data-value="60.93" class="pct medium">60.93%</td>
113
+ <td data-value="64" class="abs medium">39/64</td>
114
+ <td data-value="92" class="pct high">92%</td>
115
+ <td data-value="25" class="abs high">23/25</td>
116
+ <td data-value="83.17" class="pct high">83.17%</td>
117
+ <td data-value="214" class="abs high">178/214</td>
118
118
  </tr>
119
119
 
120
120
  <tr>
121
121
  <td class="file low" data-value="internalSearch.js"><a href="internalSearch.js.html">internalSearch.js</a></td>
122
- <td data-value="5.16" class="pic low">
123
- <div class="chart"><div class="cover-fill" style="width: 5%"></div><div class="cover-empty" style="width: 95%"></div></div>
122
+ <td data-value="4.66" class="pic low">
123
+ <div class="chart"><div class="cover-fill" style="width: 4%"></div><div class="cover-empty" style="width: 96%"></div></div>
124
124
  </td>
125
- <td data-value="5.16" class="pct low">5.16%</td>
126
- <td data-value="155" class="abs low">8/155</td>
125
+ <td data-value="4.66" class="pct low">4.66%</td>
126
+ <td data-value="150" class="abs low">7/150</td>
127
127
  <td data-value="0" class="pct low">0%</td>
128
- <td data-value="95" class="abs low">0/95</td>
128
+ <td data-value="87" class="abs low">0/87</td>
129
129
  <td data-value="0" class="pct low">0%</td>
130
130
  <td data-value="33" class="abs low">0/33</td>
131
- <td data-value="5.26" class="pct low">5.26%</td>
132
- <td data-value="152" class="abs low">8/152</td>
133
- </tr>
134
-
135
- <tr>
136
- <td class="file low" data-value="staticFormula.js"><a href="staticFormula.js.html">staticFormula.js</a></td>
137
- <td data-value="35.93" class="pic low">
138
- <div class="chart"><div class="cover-fill" style="width: 35%"></div><div class="cover-empty" style="width: 65%"></div></div>
139
- </td>
140
- <td data-value="35.93" class="pct low">35.93%</td>
141
- <td data-value="64" class="abs low">23/64</td>
142
- <td data-value="16.12" class="pct low">16.12%</td>
143
- <td data-value="31" class="abs low">5/31</td>
144
- <td data-value="33.33" class="pct low">33.33%</td>
145
- <td data-value="6" class="abs low">2/6</td>
146
- <td data-value="36.5" class="pct low">36.5%</td>
147
- <td data-value="63" class="abs low">23/63</td>
131
+ <td data-value="4.76" class="pct low">4.76%</td>
132
+ <td data-value="147" class="abs low">7/147</td>
148
133
  </tr>
149
134
 
150
135
  <tr>
151
136
  <td class="file medium" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
152
- <td data-value="69.81" class="pic medium">
153
- <div class="chart"><div class="cover-fill" style="width: 69%"></div><div class="cover-empty" style="width: 31%"></div></div>
137
+ <td data-value="67.92" class="pic medium">
138
+ <div class="chart"><div class="cover-fill" style="width: 67%"></div><div class="cover-empty" style="width: 33%"></div></div>
154
139
  </td>
155
- <td data-value="69.81" class="pct medium">69.81%</td>
156
- <td data-value="53" class="abs medium">37/53</td>
157
- <td data-value="43.33" class="pct low">43.33%</td>
158
- <td data-value="30" class="abs low">13/30</td>
140
+ <td data-value="67.92" class="pct medium">67.92%</td>
141
+ <td data-value="53" class="abs medium">36/53</td>
142
+ <td data-value="40" class="pct low">40%</td>
143
+ <td data-value="30" class="abs low">12/30</td>
159
144
  <td data-value="66.66" class="pct medium">66.66%</td>
160
145
  <td data-value="6" class="abs medium">4/6</td>
161
- <td data-value="69.23" class="pct medium">69.23%</td>
162
- <td data-value="52" class="abs medium">36/52</td>
146
+ <td data-value="67.3" class="pct medium">67.3%</td>
147
+ <td data-value="52" class="abs medium">35/52</td>
163
148
  </tr>
164
149
 
165
150
  </tbody>
@@ -170,7 +155,7 @@
170
155
  <div class='footer quiet pad2 space-top1 center small'>
171
156
  Code coverage generated by
172
157
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
173
- at Thu Feb 03 2022 20:58:15 GMT+0000 (Coordinated Universal Time)
158
+ at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
174
159
  </div>
175
160
  </div>
176
161
  <script src="../../../prettify.js"></script>