@budibase/server 2.1.44 → 2.1.46-alpha.0

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 (832) hide show
  1. package/__mocks__/aws-sdk.ts +14 -0
  2. package/__mocks__/node-fetch.ts +5 -1
  3. package/builder/assets/index.538092be.css +6 -0
  4. package/builder/assets/index.f3d43c3f.js +1020 -0
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +11101 -3980
  7. package/coverage/coverage-final.json +273 -118
  8. package/coverage/lcov-report/index.html +727 -187
  9. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +190 -0
  10. package/coverage/lcov-report/{api/controllers/apikeys.js.html → src/api/controllers/apikeys.ts.html} +30 -30
  11. package/coverage/lcov-report/src/api/controllers/application.ts.html +1891 -0
  12. package/coverage/lcov-report/src/api/controllers/auth.ts.html +301 -0
  13. package/coverage/lcov-report/{api/controllers/automation.js.html → src/api/controllers/automation.ts.html} +99 -99
  14. package/coverage/lcov-report/src/api/controllers/backup.ts.html +148 -0
  15. package/coverage/lcov-report/{api/controllers/cloud.js.html → src/api/controllers/cloud.ts.html} +61 -58
  16. package/coverage/lcov-report/src/api/controllers/component.ts.html +259 -0
  17. package/coverage/lcov-report/{api/controllers/datasource.js.html → src/api/controllers/datasource.ts.html} +287 -107
  18. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +259 -0
  19. package/coverage/lcov-report/{utilities/rowProcessor → src/api/controllers/deploy}/index.html +40 -40
  20. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +748 -0
  21. package/coverage/lcov-report/{api/controllers/dev.js.html → src/api/controllers/dev.ts.html} +69 -87
  22. package/coverage/lcov-report/src/api/controllers/index.html +431 -0
  23. package/coverage/lcov-report/src/api/controllers/integration.ts.html +124 -0
  24. package/coverage/lcov-report/{api/controllers/layout.js.html → src/api/controllers/layout.ts.html} +31 -31
  25. package/coverage/lcov-report/{api/controllers/metadata.js.html → src/api/controllers/metadata.ts.html} +33 -30
  26. package/coverage/lcov-report/{api/controllers/migrations.js.html → src/api/controllers/migrations.ts.html} +20 -17
  27. package/coverage/lcov-report/{api/controllers/permission.js.html → src/api/controllers/permission.ts.html} +88 -79
  28. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +130 -0
  29. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +310 -0
  30. package/coverage/lcov-report/src/api/controllers/plugin/index.html +206 -0
  31. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +484 -0
  32. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +253 -0
  33. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +97 -0
  34. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +121 -0
  35. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +136 -0
  36. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +334 -0
  37. package/coverage/lcov-report/src/api/controllers/public/index.html +191 -0
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +181 -0
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +191 -0
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +124 -0
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +202 -0
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +178 -0
  43. package/coverage/lcov-report/{utilities/routing/index.js.html → src/api/controllers/public/mapping/tables.ts.html} +46 -43
  44. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +181 -0
  45. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +145 -0
  46. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +328 -0
  47. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +253 -0
  48. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +325 -0
  49. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +220 -0
  50. package/coverage/lcov-report/src/api/controllers/query/import/index.html +116 -0
  51. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +373 -0
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +131 -0
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +379 -0
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +157 -0
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +403 -0
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +146 -0
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +586 -0
  58. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +712 -0
  59. package/coverage/lcov-report/src/api/controllers/query/index.html +131 -0
  60. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +976 -0
  61. package/coverage/lcov-report/{api/controllers/query/validation.js.html → src/api/controllers/query/validation.ts.html} +26 -26
  62. package/coverage/lcov-report/{api/controllers/role.js.html → src/api/controllers/role.ts.html} +51 -63
  63. package/coverage/lcov-report/{api/controllers/routing.js.html → src/api/controllers/routing.ts.html} +67 -58
  64. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +2269 -0
  65. package/coverage/lcov-report/{api/controllers/row/external.js.html → src/api/controllers/row/external.ts.html} +162 -111
  66. package/coverage/lcov-report/{api → src/api}/controllers/row/index.html +82 -52
  67. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +541 -0
  68. package/coverage/lcov-report/{api/controllers/row/internal.js.html → src/api/controllers/row/internal.ts.html} +163 -121
  69. package/coverage/lcov-report/{api/controllers/row/internalSearch.js.html → src/api/controllers/row/internalSearch.ts.html} +189 -117
  70. package/coverage/lcov-report/{api/controllers/row/staticFormula.js.html → src/api/controllers/row/staticFormula.ts.html} +73 -58
  71. package/coverage/lcov-report/{api/controllers/row/utils.js.html → src/api/controllers/row/utils.ts.html} +88 -58
  72. package/coverage/lcov-report/src/api/controllers/screen.ts.html +463 -0
  73. package/coverage/lcov-report/{api/controllers/script.js.html → src/api/controllers/script.ts.html} +19 -16
  74. package/coverage/lcov-report/src/api/controllers/static/index.html +116 -0
  75. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +694 -0
  76. package/coverage/lcov-report/{api/controllers/table/bulkFormula.js.html → src/api/controllers/table/bulkFormula.ts.html} +104 -62
  77. package/coverage/lcov-report/{api/controllers/table/external.js.html → src/api/controllers/table/external.ts.html} +204 -111
  78. package/coverage/lcov-report/src/api/controllers/table/index.html +176 -0
  79. package/coverage/lcov-report/{api/controllers/table/index.js.html → src/api/controllers/table/index.ts.html} +58 -49
  80. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +661 -0
  81. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +1255 -0
  82. package/coverage/lcov-report/{api/controllers/templates.js.html → src/api/controllers/templates.ts.html} +38 -29
  83. package/coverage/lcov-report/{api/controllers/user.js.html → src/api/controllers/user.ts.html} +78 -255
  84. package/coverage/lcov-report/{api/controllers/view/exporters.js.html → src/api/controllers/view/exporters.ts.html} +22 -16
  85. package/coverage/lcov-report/{api → src/api}/controllers/view/index.html +36 -36
  86. package/coverage/lcov-report/{api/controllers/view/index.js.html → src/api/controllers/view/index.ts.html} +91 -64
  87. package/coverage/lcov-report/{api/controllers/view/utils.js.html → src/api/controllers/view/utils.ts.html} +72 -54
  88. package/coverage/lcov-report/{api/controllers/view/viewBuilder.js.html → src/api/controllers/view/viewBuilder.ts.html} +78 -36
  89. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +379 -0
  90. package/coverage/lcov-report/{api → src/api}/index.html +23 -23
  91. package/coverage/lcov-report/{api/index.js.html → src/api/index.ts.html} +63 -84
  92. package/coverage/lcov-report/src/api/routes/analytics.ts.html +112 -0
  93. package/coverage/lcov-report/{api/routes/integration.js.html → src/api/routes/apikeys.ts.html} +25 -25
  94. package/coverage/lcov-report/src/api/routes/application.ts.html +223 -0
  95. package/coverage/lcov-report/src/api/routes/auth.ts.html +109 -0
  96. package/coverage/lcov-report/{api/routes/automation.js.html → src/api/routes/automation.ts.html} +53 -47
  97. package/coverage/lcov-report/{api/routes/cloud.js.html → src/api/routes/backup.ts.html} +28 -28
  98. package/coverage/lcov-report/{api/routes/deploy.js.html → src/api/routes/cloud.ts.html} +31 -28
  99. package/coverage/lcov-report/{api/routes/component.js.html → src/api/routes/component.ts.html} +24 -24
  100. package/coverage/lcov-report/src/api/routes/datasource.ts.html +265 -0
  101. package/coverage/lcov-report/src/api/routes/deploy.ts.html +148 -0
  102. package/coverage/lcov-report/src/api/routes/dev.ts.html +199 -0
  103. package/coverage/lcov-report/{api → src/api}/routes/index.html +167 -47
  104. package/coverage/lcov-report/src/api/routes/index.ts.html +289 -0
  105. package/coverage/lcov-report/src/api/routes/integration.ts.html +133 -0
  106. package/coverage/lcov-report/src/api/routes/layout.ts.html +133 -0
  107. package/coverage/lcov-report/{api/routes/metadata.js.html → src/api/routes/metadata.ts.html} +31 -31
  108. package/coverage/lcov-report/{api/routes/migrations.js.html → src/api/routes/migrations.ts.html} +24 -24
  109. package/coverage/lcov-report/{api/routes/permission.js.html → src/api/routes/permission.ts.html} +55 -31
  110. package/coverage/lcov-report/src/api/routes/plugin.ts.html +151 -0
  111. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +541 -0
  112. package/coverage/lcov-report/src/api/routes/public/index.html +191 -0
  113. package/coverage/lcov-report/src/api/routes/public/index.ts.html +493 -0
  114. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +116 -0
  115. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +328 -0
  116. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +313 -0
  117. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +598 -0
  118. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +586 -0
  119. package/coverage/lcov-report/src/api/routes/public/tests/index.html +116 -0
  120. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +169 -0
  121. package/coverage/lcov-report/src/api/routes/public/users.ts.html +511 -0
  122. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +238 -0
  123. package/coverage/lcov-report/src/api/routes/public/utils/index.html +116 -0
  124. package/coverage/lcov-report/{api/routes/query.js.html → src/api/routes/query.ts.html} +41 -50
  125. package/coverage/lcov-report/src/api/routes/role.ts.html +157 -0
  126. package/coverage/lcov-report/{api/routes/routing.js.html → src/api/routes/routing.ts.html} +24 -24
  127. package/coverage/lcov-report/src/api/routes/row.ts.html +883 -0
  128. package/coverage/lcov-report/{api/routes/screen.js.html → src/api/routes/screen.ts.html} +43 -28
  129. package/coverage/lcov-report/{api/routes/script.js.html → src/api/routes/script.ts.html} +17 -17
  130. package/coverage/lcov-report/src/api/routes/static.ts.html +280 -0
  131. package/coverage/lcov-report/{api/routes/table.js.html → src/api/routes/table.ts.html} +32 -41
  132. package/coverage/lcov-report/src/api/routes/templates.ts.html +133 -0
  133. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +550 -0
  134. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +131 -0
  135. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +367 -0
  136. package/coverage/lcov-report/{api/routes/user.js.html → src/api/routes/user.ts.html} +35 -41
  137. package/coverage/lcov-report/{api → src/api}/routes/utils/index.html +15 -15
  138. package/coverage/lcov-report/{api/routes/utils/validators.js.html → src/api/routes/utils/validators.ts.html} +86 -98
  139. package/coverage/lcov-report/{api/routes/view.js.html → src/api/routes/view.ts.html} +45 -36
  140. package/coverage/lcov-report/src/api/routes/webhook.ts.html +166 -0
  141. package/coverage/lcov-report/src/app.ts.html +406 -0
  142. package/coverage/lcov-report/{automations/actions.js.html → src/automations/actions.ts.html} +69 -60
  143. package/coverage/lcov-report/{automations/automationUtils.js.html → src/automations/automationUtils.ts.html} +36 -33
  144. package/coverage/lcov-report/{automations/bullboard.js.html → src/automations/bullboard.ts.html} +39 -42
  145. package/coverage/lcov-report/{automations → src/automations}/index.html +63 -48
  146. package/coverage/lcov-report/{api/routes/dev.js.html → src/automations/index.ts.html} +46 -46
  147. package/coverage/lcov-report/src/automations/logging/index.html +116 -0
  148. package/coverage/lcov-report/src/automations/logging/index.ts.html +199 -0
  149. package/coverage/lcov-report/{automations/steps/bash.js.html → src/automations/steps/bash.ts.html} +45 -30
  150. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +382 -0
  151. package/coverage/lcov-report/{automations/steps/delay.js.html → src/automations/steps/delay.ts.html} +34 -19
  152. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +349 -0
  153. package/coverage/lcov-report/{automations/steps/discord.js.html → src/automations/steps/discord.ts.html} +43 -28
  154. package/coverage/lcov-report/{automations/steps/executeQuery.js.html → src/automations/steps/executeQuery.ts.html} +45 -30
  155. package/coverage/lcov-report/{automations/steps/executeScript.js.html → src/automations/steps/executeScript.ts.html} +58 -28
  156. package/coverage/lcov-report/{automations/steps/filter.js.html → src/automations/steps/filter.ts.html} +39 -30
  157. package/coverage/lcov-report/src/automations/steps/index.html +371 -0
  158. package/coverage/lcov-report/{automations/steps/integromat.js.html → src/automations/steps/integromat.ts.html} +38 -23
  159. package/coverage/lcov-report/{automations/steps/loop.js.html → src/automations/steps/loop.ts.html} +21 -15
  160. package/coverage/lcov-report/{automations/steps/outgoingWebhook.js.html → src/automations/steps/outgoingWebhook.ts.html} +54 -39
  161. package/coverage/lcov-report/{automations/steps/queryRows.js.html → src/automations/steps/queryRows.ts.html} +102 -66
  162. package/coverage/lcov-report/{automations/steps/sendSmtpEmail.js.html → src/automations/steps/sendSmtpEmail.ts.html} +40 -25
  163. package/coverage/lcov-report/{automations/steps/serverLog.js.html → src/automations/steps/serverLog.ts.html} +40 -22
  164. package/coverage/lcov-report/{automations/steps/slack.js.html → src/automations/steps/slack.ts.html} +38 -23
  165. package/coverage/lcov-report/{automations/steps/updateRow.js.html → src/automations/steps/updateRow.ts.html} +40 -25
  166. package/coverage/lcov-report/{automations/steps/utils.js.html → src/automations/steps/utils.ts.html} +45 -27
  167. package/coverage/lcov-report/{automations/steps/zapier.js.html → src/automations/steps/zapier.ts.html} +41 -23
  168. package/coverage/lcov-report/src/automations/tests/utilities/index.html +116 -0
  169. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +265 -0
  170. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +196 -0
  171. package/coverage/lcov-report/{automations/triggerInfo/cron.js.html → src/automations/triggerInfo/cron.ts.html} +30 -15
  172. package/coverage/lcov-report/{automations → src/automations}/triggerInfo/index.html +31 -31
  173. package/coverage/lcov-report/{automations/triggerInfo/index.js.html → src/automations/triggerInfo/index.ts.html} +24 -24
  174. package/coverage/lcov-report/{automations/triggerInfo/rowDeleted.js.html → src/automations/triggerInfo/rowDeleted.ts.html} +30 -15
  175. package/coverage/lcov-report/{automations/triggerInfo/rowSaved.js.html → src/automations/triggerInfo/rowSaved.ts.html} +30 -15
  176. package/coverage/lcov-report/{automations/triggerInfo/rowUpdated.js.html → src/automations/triggerInfo/rowUpdated.ts.html} +30 -15
  177. package/coverage/lcov-report/{automations/triggerInfo/webhook.js.html → src/automations/triggerInfo/webhook.ts.html} +30 -15
  178. package/coverage/lcov-report/{automations/triggers.js.html → src/automations/triggers.ts.html} +78 -66
  179. package/coverage/lcov-report/src/automations/utils.ts.html +886 -0
  180. package/coverage/lcov-report/{constants → src/constants}/index.html +26 -26
  181. package/coverage/lcov-report/src/constants/index.ts.html +697 -0
  182. package/coverage/lcov-report/{constants/layouts.js.html → src/constants/layouts.ts.html} +18 -36
  183. package/coverage/lcov-report/{constants/screens.js.html → src/constants/screens.ts.html} +64 -58
  184. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +2059 -0
  185. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +541 -0
  186. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +427 -0
  187. package/coverage/lcov-report/src/db/defaultData/index.html +176 -0
  188. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +403 -0
  189. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +559 -0
  190. package/coverage/lcov-report/src/db/dynamoClient.ts.html +526 -0
  191. package/coverage/lcov-report/{db/inMemoryView.js.html → src/db/inMemoryView.ts.html} +47 -29
  192. package/coverage/lcov-report/{db → src/db}/index.html +48 -33
  193. package/coverage/lcov-report/{api/routes/templates.js.html → src/db/index.ts.html} +28 -28
  194. package/coverage/lcov-report/{db/linkedRows/LinkController.js.html → src/db/linkedRows/LinkController.ts.html} +97 -160
  195. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +265 -0
  196. package/coverage/lcov-report/src/db/linkedRows/index.html +161 -0
  197. package/coverage/lcov-report/{db/linkedRows/index.js.html → src/db/linkedRows/index.ts.html} +93 -78
  198. package/coverage/lcov-report/{db/linkedRows/linkUtils.js.html → src/db/linkedRows/linkUtils.ts.html} +83 -56
  199. package/coverage/lcov-report/{db/newid.js.html → src/db/newid.ts.html} +14 -14
  200. package/coverage/lcov-report/{db/utils.js.html → src/db/utils.ts.html} +163 -211
  201. package/coverage/lcov-report/{automations/triggerInfo/app.js.html → src/definitions/automations.ts.html} +42 -42
  202. package/coverage/lcov-report/{api/routes/datasource.js.html → src/definitions/datasource.ts.html} +61 -64
  203. package/coverage/lcov-report/src/definitions/index.html +131 -0
  204. package/coverage/lcov-report/src/environment.ts.html +457 -0
  205. package/coverage/lcov-report/{events/AutomationEmitter.js.html → src/events/AutomationEmitter.ts.html} +40 -25
  206. package/coverage/lcov-report/{events/index.js.html → src/events/BudibaseEmitter.ts.html} +26 -29
  207. package/coverage/lcov-report/{events → src/events}/index.html +48 -33
  208. package/coverage/lcov-report/src/events/index.ts.html +100 -0
  209. package/coverage/lcov-report/src/events/utils.ts.html +319 -0
  210. package/coverage/lcov-report/src/index.html +191 -0
  211. package/coverage/lcov-report/{db/index.js.html → src/index.ts.html} +35 -35
  212. package/coverage/lcov-report/{utilities/queue/inMemoryQueue.js.html → src/integrations/airtable.ts.html} +213 -135
  213. package/coverage/lcov-report/src/integrations/arangodb.ts.html +415 -0
  214. package/coverage/lcov-report/src/integrations/base/index.html +161 -0
  215. package/coverage/lcov-report/src/integrations/base/query.ts.html +133 -0
  216. package/coverage/lcov-report/src/integrations/base/sql.ts.html +1951 -0
  217. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +691 -0
  218. package/coverage/lcov-report/{api/routes/apikeys.js.html → src/integrations/base/utils.ts.html} +30 -30
  219. package/coverage/lcov-report/src/integrations/couchdb.ts.html +406 -0
  220. package/coverage/lcov-report/{constants/index.js.html → src/integrations/dynamodb.ts.html} +263 -227
  221. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +634 -0
  222. package/coverage/lcov-report/src/integrations/firebase.ts.html +646 -0
  223. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +1315 -0
  224. package/coverage/lcov-report/src/integrations/index.html +371 -0
  225. package/coverage/lcov-report/src/integrations/index.ts.html +445 -0
  226. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +1012 -0
  227. package/coverage/lcov-report/src/integrations/mongodb.ts.html +1867 -0
  228. package/coverage/lcov-report/src/integrations/mysql.ts.html +967 -0
  229. package/coverage/lcov-report/src/integrations/oracle.ts.html +1387 -0
  230. package/coverage/lcov-report/src/integrations/postgres.ts.html +1087 -0
  231. package/coverage/lcov-report/src/integrations/queries/index.html +116 -0
  232. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +463 -0
  233. package/coverage/lcov-report/src/integrations/redis.ts.html +550 -0
  234. package/coverage/lcov-report/src/integrations/rest.ts.html +1381 -0
  235. package/coverage/lcov-report/src/integrations/s3.ts.html +862 -0
  236. package/coverage/lcov-report/src/integrations/snowflake.ts.html +376 -0
  237. package/coverage/lcov-report/{integrations → src/integrations}/tests/TestConfiguration.js.html +10 -10
  238. package/coverage/lcov-report/{integrations → src/integrations}/tests/index.html +10 -10
  239. package/coverage/lcov-report/src/integrations/utils.ts.html +1018 -0
  240. package/coverage/lcov-report/{middleware/appInfo.js.html → src/middleware/appInfo.ts.html} +33 -30
  241. package/coverage/lcov-report/src/middleware/authorized.ts.html +460 -0
  242. package/coverage/lcov-report/{middleware/builder.js.html → src/middleware/builder.ts.html} +57 -51
  243. package/coverage/lcov-report/{middleware/currentapp.js.html → src/middleware/currentapp.ts.html} +116 -107
  244. package/coverage/lcov-report/{middleware → src/middleware}/index.html +78 -63
  245. package/coverage/lcov-report/{middleware/joi-validator.js.html → src/middleware/joi-validator.ts.html} +25 -22
  246. package/coverage/lcov-report/{middleware/publicApi.js.html → src/middleware/publicApi.ts.html} +31 -31
  247. package/coverage/lcov-report/{middleware/resourceId.js.html → src/middleware/resourceId.ts.html} +66 -51
  248. package/coverage/lcov-report/{api/controllers/integration.js.html → src/middleware/selfhost.ts.html} +22 -28
  249. package/coverage/lcov-report/{api/routes/analytics.js.html → src/middleware/utils.ts.html} +19 -19
  250. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +166 -0
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +163 -0
  252. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +151 -0
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +206 -0
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +172 -0
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +226 -0
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +151 -0
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +151 -0
  258. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +166 -0
  259. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +532 -0
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +283 -0
  261. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +146 -0
  262. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +265 -0
  263. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +232 -0
  264. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +724 -0
  265. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +161 -0
  266. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +106 -0
  267. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +235 -0
  268. package/coverage/lcov-report/src/migrations/functions/index.html +161 -0
  269. package/coverage/lcov-report/{api/routes/role.js.html → src/migrations/functions/syncQuotas.ts.html} +36 -36
  270. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +520 -0
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +161 -0
  272. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +94 -0
  273. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +127 -0
  274. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +115 -0
  275. package/coverage/lcov-report/{automations/index.js.html → src/migrations/functions/usageQuotas/syncRows.ts.html} +58 -61
  276. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +124 -0
  277. package/coverage/lcov-report/{utilities/queue → src/migrations}/index.html +23 -23
  278. package/coverage/lcov-report/src/migrations/index.ts.html +430 -0
  279. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +205 -0
  280. package/coverage/lcov-report/src/migrations/tests/index.html +131 -0
  281. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +283 -0
  282. package/coverage/lcov-report/src/sdk/app/applications/index.html +146 -0
  283. package/coverage/lcov-report/{middleware/utils.js.html → src/sdk/app/applications/index.ts.html} +19 -19
  284. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +268 -0
  285. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +136 -0
  286. package/coverage/lcov-report/src/sdk/app/automations/index.html +131 -0
  287. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +100 -0
  288. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +214 -0
  289. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +91 -0
  290. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +604 -0
  291. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +682 -0
  292. package/coverage/lcov-report/src/sdk/app/backups/index.html +176 -0
  293. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +112 -0
  294. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +292 -0
  295. package/coverage/lcov-report/src/sdk/app/tables/index.html +116 -0
  296. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +265 -0
  297. package/coverage/lcov-report/{utilities/routing → src/sdk}/index.html +10 -10
  298. package/coverage/lcov-report/{api/routes/layout.js.html → src/sdk/index.ts.html} +24 -24
  299. package/coverage/lcov-report/src/sdk/users/index.html +131 -0
  300. package/coverage/lcov-report/src/sdk/users/index.ts.html +100 -0
  301. package/coverage/lcov-report/src/sdk/users/utils.ts.html +277 -0
  302. package/coverage/lcov-report/src/startup.ts.html +499 -0
  303. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +1966 -0
  304. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +127 -0
  305. package/coverage/lcov-report/src/tests/utilities/index.html +161 -0
  306. package/coverage/lcov-report/{middleware/selfhost.js.html → src/tests/utilities/index.ts.html} +33 -30
  307. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +667 -0
  308. package/coverage/lcov-report/src/threads/automation.ts.html +1594 -0
  309. package/coverage/lcov-report/src/threads/index.html +161 -0
  310. package/coverage/lcov-report/src/threads/index.ts.html +418 -0
  311. package/coverage/lcov-report/src/threads/query.ts.html +961 -0
  312. package/coverage/lcov-report/src/threads/utils.ts.html +373 -0
  313. package/coverage/lcov-report/{utilities/budibaseDir.js.html → src/utilities/budibaseDir.ts.html} +14 -14
  314. package/coverage/lcov-report/{utilities/centralPath.js.html → src/utilities/centralPath.ts.html} +16 -16
  315. package/coverage/lcov-report/{utilities/csvParser.js.html → src/utilities/csvParser.ts.html} +107 -59
  316. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +547 -0
  317. package/coverage/lcov-report/{api/controllers/table → src/utilities/fileSystem}/index.html +44 -44
  318. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1129 -0
  319. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +142 -0
  320. package/coverage/lcov-report/{utilities/global.js.html → src/utilities/global.ts.html} +144 -111
  321. package/coverage/lcov-report/{utilities → src/utilities}/index.html +92 -77
  322. package/coverage/lcov-report/{utilities/index.js.html → src/utilities/index.ts.html} +98 -74
  323. package/coverage/lcov-report/{utilities/plugins.js.html → src/utilities/plugins.ts.html} +25 -22
  324. package/coverage/lcov-report/src/utilities/redis.ts.html +343 -0
  325. package/coverage/lcov-report/{api/controllers/query → src/utilities/routing}/index.html +8 -8
  326. package/coverage/lcov-report/src/utilities/routing/index.ts.html +181 -0
  327. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +146 -0
  328. package/coverage/lcov-report/{utilities/rowProcessor/index.js.html → src/utilities/rowProcessor/index.ts.html} +128 -359
  329. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +373 -0
  330. package/coverage/lcov-report/{utilities/rowProcessor/utils.js.html → src/utilities/rowProcessor/utils.ts.html} +54 -42
  331. package/coverage/lcov-report/{utilities/scriptRunner.js.html → src/utilities/scriptRunner.ts.html} +31 -19
  332. package/coverage/lcov-report/{utilities/security.js.html → src/utilities/security.ts.html} +60 -78
  333. package/coverage/lcov-report/{utilities/statusCodes.js.html → src/utilities/statusCodes.ts.html} +11 -11
  334. package/coverage/lcov-report/{utilities → src/utilities}/usageQuota/index.html +30 -30
  335. package/coverage/lcov-report/{utilities/usageQuota/rows.js.html → src/utilities/usageQuota/rows.ts.html} +42 -54
  336. package/coverage/lcov-report/{utilities/usageQuota/usageQuoteReset.js.html → src/utilities/usageQuota/usageQuoteReset.ts.html} +13 -13
  337. package/coverage/lcov-report/{utilities/users.js.html → src/utilities/users.ts.html} +44 -50
  338. package/coverage/lcov-report/{utilities/workerRequests.js.html → src/utilities/workerRequests.ts.html} +127 -112
  339. package/coverage/lcov-report/{events/utils.js.html → src/watch.ts.html} +68 -71
  340. package/coverage/lcov-report/src/websocket.ts.html +163 -0
  341. package/coverage/lcov.info +19994 -7196
  342. package/dist/api/controllers/apikeys.js +12 -9
  343. package/dist/api/controllers/application.js +430 -446
  344. package/dist/api/controllers/automation.js +122 -82
  345. package/dist/api/controllers/cloud.js +85 -71
  346. package/dist/api/controllers/component.js +4 -2
  347. package/dist/api/controllers/datasource.js +151 -94
  348. package/dist/api/controllers/deploy/Deployment.js +10 -6
  349. package/dist/api/controllers/deploy/index.js +19 -16
  350. package/dist/api/controllers/dev.js +96 -81
  351. package/dist/api/controllers/integration.js +11 -8
  352. package/dist/api/controllers/layout.js +18 -15
  353. package/dist/api/controllers/metadata.js +51 -37
  354. package/dist/api/controllers/migrations.js +19 -11
  355. package/dist/api/controllers/permission.js +52 -43
  356. package/dist/api/controllers/plugin/index.js +6 -7
  357. package/dist/api/controllers/plugin/utils.js +2 -1
  358. package/dist/api/controllers/public/applications.js +17 -9
  359. package/dist/api/controllers/public/tables.js +29 -9
  360. package/dist/api/controllers/public/users.js +18 -0
  361. package/dist/api/controllers/public/utils.js +2 -2
  362. package/dist/api/controllers/query/import/index.js +1 -2
  363. package/dist/api/controllers/query/index.js +10 -13
  364. package/dist/api/controllers/query/validation.js +41 -33
  365. package/dist/api/controllers/role.js +29 -27
  366. package/dist/api/controllers/routing.js +71 -58
  367. package/dist/api/controllers/row/ExternalRequest.js +539 -542
  368. package/dist/api/controllers/row/external.js +258 -190
  369. package/dist/api/controllers/row/index.js +43 -14
  370. package/dist/api/controllers/row/internal.js +354 -295
  371. package/dist/api/controllers/row/internalSearch.js +95 -80
  372. package/dist/api/controllers/row/staticFormula.js +125 -112
  373. package/dist/api/controllers/row/utils.js +122 -84
  374. package/dist/api/controllers/screen.js +81 -66
  375. package/dist/api/controllers/script.js +13 -6
  376. package/dist/api/controllers/static/index.js +11 -14
  377. package/dist/api/controllers/table/bulkFormula.js +47 -35
  378. package/dist/api/controllers/table/external.js +89 -53
  379. package/dist/api/controllers/table/index.js +64 -31
  380. package/dist/api/controllers/table/internal.js +5 -6
  381. package/dist/api/controllers/table/utils.js +39 -35
  382. package/dist/api/controllers/templates.js +17 -10
  383. package/dist/api/controllers/user.js +65 -94
  384. package/dist/api/controllers/view/exporters.js +8 -4
  385. package/dist/api/controllers/view/index.js +201 -153
  386. package/dist/api/controllers/view/utils.js +151 -121
  387. package/dist/api/controllers/view/viewBuilder.js +4 -16
  388. package/dist/api/controllers/webhook.js +25 -2
  389. package/dist/api/index.js +38 -34
  390. package/dist/api/routes/analytics.js +29 -3
  391. package/dist/api/routes/apikeys.js +33 -7
  392. package/dist/api/routes/application.js +8 -9
  393. package/dist/api/routes/auth.js +1 -2
  394. package/dist/api/routes/automation.js +46 -20
  395. package/dist/api/routes/backup.js +3 -4
  396. package/dist/api/routes/cloud.js +32 -6
  397. package/dist/api/routes/component.js +32 -6
  398. package/dist/api/routes/datasource.js +39 -13
  399. package/dist/api/routes/deploy.js +34 -8
  400. package/dist/api/routes/dev.js +36 -10
  401. package/dist/api/routes/integration.js +33 -7
  402. package/dist/api/routes/layout.js +33 -7
  403. package/dist/api/routes/metadata.js +36 -10
  404. package/dist/api/routes/migrations.js +32 -6
  405. package/dist/api/routes/permission.js +38 -12
  406. package/dist/api/routes/plugin.js +5 -5
  407. package/dist/api/routes/public/index.js +11 -11
  408. package/dist/api/routes/public/tests/utils.js +33 -0
  409. package/dist/api/routes/query.js +42 -15
  410. package/dist/api/routes/role.js +36 -10
  411. package/dist/api/routes/routing.js +32 -6
  412. package/dist/api/routes/row.js +12 -11
  413. package/dist/api/routes/screen.js +35 -9
  414. package/dist/api/routes/script.js +32 -6
  415. package/dist/api/routes/static.js +9 -9
  416. package/dist/api/routes/table.js +40 -13
  417. package/dist/api/routes/templates.js +33 -7
  418. package/dist/api/routes/tests/utilities/TestFunctions.js +6 -8
  419. package/dist/api/routes/tests/utilities/index.js +69 -32
  420. package/dist/api/routes/user.js +40 -13
  421. package/dist/api/routes/utils/validators.js +142 -126
  422. package/dist/api/routes/view.js +38 -12
  423. package/dist/api/routes/webhook.js +1 -2
  424. package/dist/app.js +22 -22
  425. package/dist/automations/actions.js +53 -24
  426. package/dist/automations/automationUtils.js +31 -19
  427. package/dist/automations/bullboard.js +59 -29
  428. package/dist/automations/index.js +23 -18
  429. package/dist/automations/steps/bash.js +40 -10
  430. package/dist/automations/steps/createRow.js +2 -1
  431. package/dist/automations/steps/delay.js +9 -5
  432. package/dist/automations/steps/deleteRow.js +2 -1
  433. package/dist/automations/steps/discord.js +14 -7
  434. package/dist/automations/steps/executeQuery.js +34 -7
  435. package/dist/automations/steps/executeScript.js +34 -7
  436. package/dist/automations/steps/filter.js +20 -18
  437. package/dist/automations/steps/integromat.js +14 -7
  438. package/dist/automations/steps/loop.js +4 -1
  439. package/dist/automations/steps/outgoingWebhook.js +45 -14
  440. package/dist/automations/steps/queryRows.js +71 -38
  441. package/dist/automations/steps/sendSmtpEmail.js +33 -6
  442. package/dist/automations/steps/serverLog.js +12 -8
  443. package/dist/automations/steps/slack.js +14 -7
  444. package/dist/automations/steps/updateRow.js +34 -7
  445. package/dist/automations/steps/utils.js +22 -16
  446. package/dist/automations/steps/zapier.js +15 -7
  447. package/dist/automations/tests/utilities/index.js +62 -38
  448. package/dist/automations/triggerInfo/app.js +4 -1
  449. package/dist/automations/triggerInfo/cron.js +4 -1
  450. package/dist/automations/triggerInfo/index.js +31 -6
  451. package/dist/automations/triggerInfo/rowDeleted.js +4 -1
  452. package/dist/automations/triggerInfo/rowSaved.js +4 -1
  453. package/dist/automations/triggerInfo/rowUpdated.js +4 -1
  454. package/dist/automations/triggerInfo/webhook.js +4 -1
  455. package/dist/automations/triggers.js +90 -57
  456. package/dist/automations/utils.js +9 -8
  457. package/dist/constants/index.js +118 -104
  458. package/dist/constants/layouts.js +7 -10
  459. package/dist/constants/screens.js +49 -44
  460. package/dist/db/defaultData/datasource_bb_default.js +573 -0
  461. package/dist/db/defaultData/employeeImport.js +155 -0
  462. package/dist/db/defaultData/expensesImport.js +117 -0
  463. package/dist/db/defaultData/inventoryImport.js +109 -0
  464. package/dist/db/defaultData/jobsImport.js +152 -0
  465. package/dist/db/dynamoClient.js +20 -20
  466. package/dist/db/inMemoryView.js +47 -38
  467. package/dist/db/index.js +7 -4
  468. package/dist/db/linkedRows/LinkController.js +51 -70
  469. package/dist/db/linkedRows/LinkDocument.js +32 -0
  470. package/dist/db/linkedRows/index.js +93 -81
  471. package/dist/db/linkedRows/linkUtils.js +42 -32
  472. package/dist/db/utils.js +146 -119
  473. package/dist/db/views/staticViews.js +91 -74
  474. package/dist/environment.js +9 -6
  475. package/dist/events/AutomationEmitter.js +13 -10
  476. package/dist/events/BudibaseEmitter.js +24 -0
  477. package/dist/events/index.js +5 -23
  478. package/dist/events/utils.js +18 -10
  479. package/dist/integrations/base/types.js +2 -0
  480. package/dist/integrations/elasticsearch.js +26 -2
  481. package/dist/integrations/googlesheets.js +5 -6
  482. package/dist/integrations/index.js +15 -6
  483. package/dist/integrations/microsoftSqlServer.js +8 -3
  484. package/dist/integrations/oracle.js +8 -1
  485. package/dist/integrations/postgres.js +6 -3
  486. package/dist/integrations/s3.js +157 -1
  487. package/dist/middleware/appInfo.js +14 -9
  488. package/dist/middleware/authorized.js +22 -21
  489. package/dist/middleware/builder.js +41 -40
  490. package/dist/middleware/currentapp.js +39 -37
  491. package/dist/middleware/joi-validator.js +17 -10
  492. package/dist/middleware/publicApi.js +5 -6
  493. package/dist/middleware/resourceId.js +16 -9
  494. package/dist/middleware/selfhost.js +5 -4
  495. package/dist/middleware/utils.js +5 -2
  496. package/dist/migrations/functions/appUrls.js +7 -11
  497. package/dist/migrations/functions/backfill/global.js +1 -1
  498. package/dist/migrations/functions/tableSettings.js +130 -0
  499. package/dist/migrations/functions/usageQuotas/syncApps.js +3 -4
  500. package/dist/migrations/functions/usageQuotas/syncRows.js +3 -4
  501. package/dist/migrations/functions/userEmailViewCasing.js +3 -3
  502. package/dist/migrations/index.js +5 -0
  503. package/dist/package.json +11 -45
  504. package/dist/sdk/app/applications/index.js +28 -0
  505. package/dist/sdk/app/applications/sync.js +70 -0
  506. package/dist/sdk/app/applications/utils.js +21 -0
  507. package/dist/sdk/app/backups/exports.js +1 -2
  508. package/dist/sdk/app/backups/imports.js +2 -3
  509. package/dist/sdk/app/tables/index.js +5 -5
  510. package/dist/sdk/index.js +4 -2
  511. package/dist/sdk/users/index.js +27 -0
  512. package/dist/sdk/users/utils.js +65 -0
  513. package/dist/startup.js +10 -10
  514. package/dist/tests/utilities/TestConfiguration.js +111 -87
  515. package/dist/tests/utilities/controllers.js +38 -15
  516. package/dist/tests/utilities/structures.js +72 -53
  517. package/dist/threads/automation.js +49 -27
  518. package/dist/threads/query.js +17 -19
  519. package/dist/threads/utils.js +33 -8
  520. package/dist/tsconfig.build.tsbuildinfo +1 -1
  521. package/dist/utilities/budibaseDir.js +4 -2
  522. package/dist/utilities/centralPath.js +14 -7
  523. package/dist/utilities/csvParser.js +27 -21
  524. package/dist/utilities/fileSystem/clientLibrary.js +87 -73
  525. package/dist/utilities/fileSystem/index.js +203 -175
  526. package/dist/utilities/fileSystem/processor.js +8 -3
  527. package/dist/utilities/global.js +87 -66
  528. package/dist/utilities/index.js +102 -75
  529. package/dist/utilities/plugins.js +15 -9
  530. package/dist/utilities/redis.js +100 -65
  531. package/dist/utilities/routing/index.js +27 -23
  532. package/dist/utilities/rowProcessor/index.js +133 -191
  533. package/dist/utilities/rowProcessor/map.js +99 -0
  534. package/dist/utilities/rowProcessor/utils.js +35 -26
  535. package/dist/utilities/scriptRunner.js +8 -5
  536. package/dist/utilities/security.js +39 -35
  537. package/dist/utilities/usageQuota/rows.js +56 -49
  538. package/dist/utilities/users.js +31 -28
  539. package/dist/utilities/workerRequests.js +115 -82
  540. package/dist/watch.js +1 -2
  541. package/jest.config.ts +33 -0
  542. package/package.json +12 -46
  543. package/scripts/exportAppTemplate.js +2 -2
  544. package/scripts/integrations/mssql/data/setup.sql +3 -3
  545. package/scripts/integrations/postgres/emp-skill.sql +46 -0
  546. package/scripts/localdomain.js +34 -6
  547. package/src/api/controllers/{apikeys.js → apikeys.ts} +10 -10
  548. package/src/api/controllers/application.ts +100 -135
  549. package/src/api/controllers/auth.ts +4 -3
  550. package/src/api/controllers/{automation.js → automation.ts} +48 -48
  551. package/src/api/controllers/{cloud.js → cloud.ts} +25 -24
  552. package/src/api/controllers/component.ts +2 -1
  553. package/src/api/controllers/{datasource.js → datasource.ts} +109 -49
  554. package/src/api/controllers/deploy/{Deployment.js → Deployment.ts} +13 -10
  555. package/src/api/controllers/deploy/index.ts +19 -25
  556. package/src/api/controllers/{dev.js → dev.ts} +31 -37
  557. package/src/api/controllers/integration.ts +13 -0
  558. package/src/api/controllers/{layout.js → layout.ts} +8 -8
  559. package/src/api/controllers/{metadata.js → metadata.ts} +11 -10
  560. package/src/api/controllers/migrations.ts +14 -0
  561. package/src/api/controllers/{permission.js → permission.ts} +49 -46
  562. package/src/api/controllers/plugin/index.ts +4 -5
  563. package/src/api/controllers/plugin/utils.ts +3 -5
  564. package/src/api/controllers/public/applications.ts +15 -9
  565. package/src/api/controllers/public/rows.ts +1 -1
  566. package/src/api/controllers/public/tables.ts +2 -2
  567. package/src/api/controllers/public/users.ts +25 -6
  568. package/src/api/controllers/public/utils.ts +2 -2
  569. package/src/api/controllers/query/import/index.ts +2 -3
  570. package/src/api/controllers/query/index.ts +11 -14
  571. package/src/api/controllers/query/{validation.js → validation.ts} +7 -7
  572. package/src/api/controllers/{role.js → role.ts} +21 -25
  573. package/src/api/controllers/{routing.js → routing.ts} +37 -34
  574. package/src/api/controllers/row/ExternalRequest.ts +605 -624
  575. package/src/api/controllers/row/{external.js → external.ts} +79 -62
  576. package/src/api/controllers/row/index.ts +19 -11
  577. package/src/api/controllers/row/{internal.js → internal.ts} +87 -73
  578. package/src/api/controllers/row/{internalSearch.js → internalSearch.ts} +92 -68
  579. package/src/api/controllers/row/{staticFormula.js → staticFormula.ts} +30 -25
  580. package/src/api/controllers/row/{utils.js → utils.ts} +32 -22
  581. package/src/api/controllers/screen.ts +10 -6
  582. package/src/api/controllers/script.ts +12 -0
  583. package/src/api/controllers/static/index.ts +14 -16
  584. package/src/api/controllers/table/{bulkFormula.js → bulkFormula.ts} +39 -25
  585. package/src/api/controllers/table/{external.js → external.ts} +86 -55
  586. package/src/api/controllers/table/{index.js → index.ts} +21 -18
  587. package/src/api/controllers/table/internal.ts +5 -6
  588. package/src/api/controllers/table/utils.ts +26 -21
  589. package/src/api/controllers/{templates.js → templates.ts} +10 -7
  590. package/src/api/controllers/{user.js → user.ts} +42 -101
  591. package/src/api/controllers/view/{exporters.js → exporters.ts} +5 -3
  592. package/src/api/controllers/view/{index.js → index.ts} +36 -27
  593. package/src/api/controllers/view/{utils.js → utils.ts} +26 -20
  594. package/src/api/controllers/view/{viewBuilder.js → viewBuilder.ts} +25 -11
  595. package/src/api/controllers/webhook.ts +1 -1
  596. package/src/api/{index.js → index.ts} +15 -22
  597. package/src/api/routes/analytics.ts +9 -0
  598. package/src/api/routes/apikeys.ts +12 -0
  599. package/src/api/routes/application.ts +17 -9
  600. package/src/api/routes/auth.ts +2 -2
  601. package/src/api/routes/automation.ts +87 -0
  602. package/src/api/routes/backup.ts +8 -4
  603. package/src/api/routes/cloud.ts +18 -0
  604. package/src/api/routes/component.ts +14 -0
  605. package/src/api/routes/datasource.ts +60 -0
  606. package/src/api/routes/deploy.ts +21 -0
  607. package/src/api/routes/dev.ts +38 -0
  608. package/src/api/routes/integration.ts +16 -0
  609. package/src/api/routes/layout.ts +16 -0
  610. package/src/api/routes/{metadata.js → metadata.ts} +13 -13
  611. package/src/api/routes/migrations.ts +14 -0
  612. package/src/api/routes/permission.ts +41 -0
  613. package/src/api/routes/plugin.ts +14 -6
  614. package/src/api/routes/public/index.ts +11 -14
  615. package/src/api/routes/public/tests/compare.spec.js +3 -21
  616. package/src/api/routes/public/tests/users.spec.js +38 -0
  617. package/src/api/routes/public/tests/utils.ts +28 -0
  618. package/src/api/routes/{query.js → query.ts} +19 -22
  619. package/src/api/routes/role.ts +24 -0
  620. package/src/api/routes/routing.ts +14 -0
  621. package/src/api/routes/row.ts +13 -15
  622. package/src/api/routes/screen.ts +23 -0
  623. package/src/api/routes/script.ts +10 -0
  624. package/src/api/routes/static.ts +7 -10
  625. package/src/api/routes/{table.js → table.ts} +10 -13
  626. package/src/api/routes/templates.ts +16 -0
  627. package/src/api/routes/tests/analytics.spec.js +1 -1
  628. package/src/api/routes/tests/application.spec.js +0 -1
  629. package/src/api/routes/tests/backup.spec.js +9 -1
  630. package/src/api/routes/tests/deployment.spec.ts +1 -1
  631. package/src/api/routes/tests/permissions.spec.js +2 -1
  632. package/src/api/routes/tests/query.spec.js +15 -10
  633. package/src/api/routes/tests/role.spec.js +7 -9
  634. package/src/api/routes/tests/routing.spec.js +2 -1
  635. package/src/api/routes/tests/row.spec.js +3 -4
  636. package/src/api/routes/tests/static.spec.js +2 -2
  637. package/src/api/routes/tests/table.spec.js +40 -36
  638. package/src/api/routes/tests/user.spec.js +2 -1
  639. package/src/api/routes/tests/utilities/TestFunctions.ts +6 -8
  640. package/src/api/routes/tests/utilities/{index.js → index.ts} +12 -12
  641. package/src/api/routes/tests/view.spec.js +3 -3
  642. package/src/api/routes/user.ts +51 -0
  643. package/src/api/routes/utils/{validators.js → validators.ts} +33 -37
  644. package/src/api/routes/view.ts +34 -0
  645. package/src/api/routes/webhook.ts +2 -2
  646. package/src/app.ts +15 -14
  647. package/src/automations/{actions.js → actions.ts} +26 -23
  648. package/src/automations/{automationUtils.js → automationUtils.ts} +13 -12
  649. package/src/automations/bullboard.ts +38 -0
  650. package/src/automations/index.ts +26 -0
  651. package/src/automations/steps/{bash.js → bash.ts} +13 -8
  652. package/src/automations/steps/createRow.ts +8 -3
  653. package/src/automations/steps/{delay.js → delay.ts} +9 -4
  654. package/src/automations/steps/deleteRow.ts +8 -3
  655. package/src/automations/steps/{discord.js → discord.ts} +10 -5
  656. package/src/automations/steps/{executeQuery.js → executeQuery.ts} +12 -7
  657. package/src/automations/steps/{executeScript.js → executeScript.ts} +17 -7
  658. package/src/automations/steps/{filter.js → filter.ts} +12 -9
  659. package/src/automations/steps/{integromat.js → integromat.ts} +10 -5
  660. package/src/automations/steps/{loop.js → loop.ts} +4 -2
  661. package/src/automations/steps/{outgoingWebhook.js → outgoingWebhook.ts} +18 -13
  662. package/src/automations/steps/{queryRows.js → queryRows.ts} +48 -36
  663. package/src/automations/steps/{sendSmtpEmail.js → sendSmtpEmail.ts} +10 -5
  664. package/src/automations/steps/{serverLog.js → serverLog.ts} +9 -3
  665. package/src/automations/steps/{slack.js → slack.ts} +10 -5
  666. package/src/automations/steps/{updateRow.js → updateRow.ts} +12 -7
  667. package/src/automations/steps/{utils.js → utils.ts} +10 -4
  668. package/src/automations/steps/{zapier.js → zapier.ts} +11 -5
  669. package/src/automations/tests/updateRow.spec.js +0 -1
  670. package/src/automations/tests/utilities/index.ts +60 -0
  671. package/src/automations/triggerInfo/{app.js → app.ts} +7 -2
  672. package/src/automations/triggerInfo/{cron.js → cron.ts} +7 -2
  673. package/src/automations/triggerInfo/index.ts +15 -0
  674. package/src/automations/triggerInfo/{rowDeleted.js → rowDeleted.ts} +7 -2
  675. package/src/automations/triggerInfo/{rowSaved.js → rowSaved.ts} +7 -2
  676. package/src/automations/triggerInfo/{rowUpdated.js → rowUpdated.ts} +7 -2
  677. package/src/automations/triggerInfo/{webhook.js → webhook.ts} +7 -2
  678. package/src/automations/{triggers.js → triggers.ts} +30 -26
  679. package/src/automations/utils.ts +9 -12
  680. package/src/constants/index.ts +204 -0
  681. package/src/constants/{layouts.js → layouts.ts} +3 -9
  682. package/src/constants/screens.ts +48 -0
  683. package/src/db/defaultData/datasource_bb_default.ts +658 -0
  684. package/src/db/defaultData/employeeImport.ts +152 -0
  685. package/src/db/defaultData/expensesImport.ts +114 -0
  686. package/src/db/defaultData/inventoryImport.ts +106 -0
  687. package/src/db/defaultData/jobsImport.ts +158 -0
  688. package/src/db/{dynamoClient.js → dynamoClient.ts} +39 -19
  689. package/src/db/{inMemoryView.js → inMemoryView.ts} +15 -9
  690. package/src/db/index.ts +16 -0
  691. package/src/db/linkedRows/{LinkController.js → LinkController.ts} +64 -85
  692. package/src/db/linkedRows/LinkDocument.ts +60 -0
  693. package/src/db/linkedRows/{index.js → index.ts} +43 -38
  694. package/src/db/linkedRows/{linkUtils.js → linkUtils.ts} +33 -24
  695. package/src/db/{newid.js → newid.ts} +1 -1
  696. package/src/db/tests/linkController.spec.js +73 -57
  697. package/src/db/tests/linkTests.spec.js +17 -14
  698. package/src/db/{utils.js → utils.ts} +77 -93
  699. package/src/db/views/{staticViews.js → staticViews.ts} +20 -13
  700. package/src/{environment.js → environment.ts} +11 -7
  701. package/src/events/{AutomationEmitter.js → AutomationEmitter.ts} +12 -7
  702. package/src/events/{index.js → BudibaseEmitter.ts} +7 -8
  703. package/src/events/index.ts +5 -0
  704. package/src/events/utils.ts +78 -0
  705. package/src/integrations/base/sql.ts +1 -1
  706. package/src/integrations/base/sqlTable.ts +1 -1
  707. package/src/integrations/base/types.ts +134 -0
  708. package/src/integrations/elasticsearch.ts +32 -2
  709. package/src/integrations/googlesheets.ts +5 -7
  710. package/src/integrations/index.ts +45 -41
  711. package/src/integrations/microsoftSqlServer.ts +14 -12
  712. package/src/integrations/mysql.ts +4 -3
  713. package/src/integrations/oracle.ts +17 -46
  714. package/src/integrations/postgres.ts +8 -2
  715. package/src/integrations/s3.ts +179 -3
  716. package/src/integrations/tests/s3.spec.ts +85 -1
  717. package/src/integrations/utils.ts +6 -2
  718. package/src/middleware/appInfo.ts +20 -0
  719. package/src/middleware/authorized.ts +21 -28
  720. package/src/middleware/{builder.js → builder.ts} +17 -15
  721. package/src/middleware/{currentapp.js → currentapp.ts} +42 -39
  722. package/src/middleware/{joi-validator.js → joi-validator.ts} +9 -8
  723. package/src/middleware/publicApi.ts +21 -0
  724. package/src/middleware/{resourceId.js → resourceId.ts} +16 -11
  725. package/src/middleware/{selfhost.js → selfhost.ts} +4 -2
  726. package/src/middleware/tests/authorized.spec.js +5 -6
  727. package/src/middleware/tests/currentapp.spec.js +118 -63
  728. package/src/middleware/{utils.js → utils.ts} +3 -1
  729. package/src/migrations/functions/appUrls.ts +4 -11
  730. package/src/migrations/functions/backfill/app/tables.ts +2 -5
  731. package/src/migrations/functions/backfill/global.ts +1 -1
  732. package/src/migrations/functions/tableSettings.ts +145 -0
  733. package/src/migrations/functions/tests/appUrls.spec.js +4 -4
  734. package/src/migrations/functions/tests/tableSettings.spec.ts +144 -0
  735. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +14 -9
  736. package/src/migrations/functions/usageQuotas/syncApps.ts +3 -4
  737. package/src/migrations/functions/usageQuotas/syncRows.ts +4 -5
  738. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +7 -7
  739. package/src/migrations/functions/userEmailViewCasing.ts +3 -3
  740. package/src/migrations/index.ts +9 -0
  741. package/src/migrations/tests/index.spec.ts +1 -1
  742. package/src/sdk/app/applications/index.ts +7 -0
  743. package/src/sdk/app/applications/sync.ts +61 -0
  744. package/src/sdk/app/applications/utils.ts +17 -0
  745. package/src/sdk/app/backups/exports.ts +5 -3
  746. package/src/sdk/app/backups/imports.ts +7 -14
  747. package/src/sdk/app/backups/statistics.ts +9 -18
  748. package/src/sdk/app/tables/index.ts +7 -8
  749. package/src/sdk/index.ts +4 -3
  750. package/src/sdk/users/index.ts +5 -0
  751. package/src/sdk/users/utils.ts +64 -0
  752. package/src/startup.ts +5 -5
  753. package/{scripts/jestSetup.js → src/tests/jestSetup.ts} +11 -2
  754. package/src/tests/utilities/{TestConfiguration.js → TestConfiguration.ts} +111 -78
  755. package/src/tests/utilities/controllers.ts +14 -0
  756. package/src/tests/utilities/{index.js → index.ts} +2 -2
  757. package/src/tests/utilities/{structures.js → structures.ts} +41 -36
  758. package/src/threads/automation.ts +18 -19
  759. package/src/threads/query.ts +11 -16
  760. package/src/threads/utils.ts +4 -5
  761. package/src/utilities/budibaseDir.ts +3 -0
  762. package/src/utilities/{centralPath.js → centralPath.ts} +3 -3
  763. package/src/utilities/{csvParser.js → csvParser.ts} +42 -26
  764. package/src/utilities/fileSystem/{clientLibrary.js → clientLibrary.ts} +20 -20
  765. package/src/utilities/fileSystem/{index.js → index.ts} +61 -65
  766. package/src/utilities/fileSystem/{processor.js → processor.ts} +3 -5
  767. package/src/utilities/global.ts +138 -0
  768. package/src/utilities/{index.js → index.ts} +40 -32
  769. package/src/utilities/{plugins.js → plugins.ts} +5 -4
  770. package/src/utilities/{redis.js → redis.ts} +21 -20
  771. package/src/utilities/routing/index.ts +32 -0
  772. package/src/utilities/rowProcessor/{index.js → index.ts} +67 -144
  773. package/src/utilities/rowProcessor/map.ts +96 -0
  774. package/src/utilities/rowProcessor/{utils.js → utils.ts} +19 -15
  775. package/src/utilities/{scriptRunner.js → scriptRunner.ts} +8 -4
  776. package/src/utilities/security.ts +65 -0
  777. package/src/utilities/{statusCodes.js → statusCodes.ts} +1 -1
  778. package/src/utilities/usageQuota/{rows.js → rows.ts} +14 -18
  779. package/src/utilities/usageQuota/{usageQuoteReset.js → usageQuoteReset.ts} +1 -1
  780. package/src/utilities/{users.js → users.ts} +11 -13
  781. package/src/utilities/{workerRequests.js → workerRequests.ts} +43 -38
  782. package/src/watch.ts +2 -3
  783. package/tsconfig.build.json +1 -2
  784. package/tsconfig.json +3 -1
  785. package/builder/assets/index.2d05742a.js +0 -1021
  786. package/builder/assets/index.534f6c29.css +0 -6
  787. package/coverage/lcov-report/api/controllers/index.html +0 -326
  788. package/coverage/lcov-report/automations/steps/index.html +0 -341
  789. package/coverage/lcov-report/db/linkedRows/index.html +0 -146
  790. package/dist/integrations/tests/TestConfiguration.js +0 -1
  791. package/dist/utilities/fileSystem/utilities.js +0 -22
  792. package/dist/utilities/queue/inMemoryQueue.js +0 -126
  793. package/src/api/controllers/integration.js +0 -14
  794. package/src/api/controllers/migrations.js +0 -13
  795. package/src/api/controllers/script.js +0 -11
  796. package/src/api/routes/analytics.js +0 -9
  797. package/src/api/routes/apikeys.js +0 -12
  798. package/src/api/routes/automation.js +0 -85
  799. package/src/api/routes/cloud.js +0 -14
  800. package/src/api/routes/component.js +0 -14
  801. package/src/api/routes/datasource.js +0 -51
  802. package/src/api/routes/deploy.js +0 -17
  803. package/src/api/routes/dev.js +0 -26
  804. package/src/api/routes/integration.js +0 -12
  805. package/src/api/routes/layout.js +0 -16
  806. package/src/api/routes/migrations.js +0 -14
  807. package/src/api/routes/permission.js +0 -33
  808. package/src/api/routes/role.js +0 -15
  809. package/src/api/routes/routing.js +0 -14
  810. package/src/api/routes/screen.js +0 -18
  811. package/src/api/routes/script.js +0 -10
  812. package/src/api/routes/templates.js +0 -16
  813. package/src/api/routes/user.js +0 -53
  814. package/src/api/routes/view.js +0 -31
  815. package/src/automations/bullboard.js +0 -39
  816. package/src/automations/index.js +0 -29
  817. package/src/automations/tests/utilities/index.js +0 -51
  818. package/src/automations/triggerInfo/index.js +0 -15
  819. package/src/constants/index.js +0 -208
  820. package/src/constants/screens.js +0 -46
  821. package/src/db/index.js +0 -16
  822. package/src/events/utils.js +0 -38
  823. package/src/middleware/appInfo.js +0 -19
  824. package/src/middleware/publicApi.js +0 -21
  825. package/src/module.d.ts +0 -14
  826. package/src/tests/utilities/controllers.js +0 -16
  827. package/src/utilities/budibaseDir.js +0 -3
  828. package/src/utilities/fileSystem/utilities.js +0 -36
  829. package/src/utilities/global.js +0 -127
  830. package/src/utilities/queue/inMemoryQueue.js +0 -122
  831. package/src/utilities/routing/index.js +0 -25
  832. package/src/utilities/security.js +0 -71
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for api/controllers/row/internalSearch.js</title>
6
+ <title>Code coverage report for src/api/controllers/row/internalSearch.ts</title>
7
7
  <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../../prettify.css" />
9
- <link rel="stylesheet" href="../../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
8
+ <link rel="stylesheet" href="../../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.png" />
11
11
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
12
  <style type='text/css'>
13
13
  .coverage-summary .sorter {
14
- background-image: url(../../../sort-arrow-sprite.png);
14
+ background-image: url(../../../../sort-arrow-sprite.png);
15
15
  }
16
16
  </style>
17
17
  </head>
@@ -19,7 +19,7 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../../../index.html">All files</a> / <a href="index.html">api/controllers/row</a> internalSearch.js</h1>
22
+ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">src/api/controllers/row</a> internalSearch.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
@@ -30,23 +30,23 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">69.92% </span>
33
+ <span class="strong">77.41% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>93/133</span>
35
+ <span class='fraction'>72/93</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">68.29% </span>
40
+ <span class="strong">69.04% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>28/41</span>
42
+ <span class='fraction'>29/42</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">78.84% </span>
47
+ <span class="strong">78.74% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>164/208</span>
49
+ <span class='fraction'>163/207</span>
50
50
  </div>
51
51
 
52
52
 
@@ -570,11 +570,38 @@
570
570
  <a name='L505'></a><a href='#L505'>505</a>
571
571
  <a name='L506'></a><a href='#L506'>506</a>
572
572
  <a name='L507'></a><a href='#L507'>507</a>
573
- <a name='L508'></a><a href='#L508'>508</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">45x</span>
574
- <span class="cline-any cline-yes">45x</span>
575
- <span class="cline-any cline-yes">45x</span>
576
- <span class="cline-any cline-yes">45x</span>
577
- <span class="cline-any cline-yes">45x</span>
573
+ <a name='L508'></a><a href='#L508'>508</a>
574
+ <a name='L509'></a><a href='#L509'>509</a>
575
+ <a name='L510'></a><a href='#L510'>510</a>
576
+ <a name='L511'></a><a href='#L511'>511</a>
577
+ <a name='L512'></a><a href='#L512'>512</a>
578
+ <a name='L513'></a><a href='#L513'>513</a>
579
+ <a name='L514'></a><a href='#L514'>514</a>
580
+ <a name='L515'></a><a href='#L515'>515</a>
581
+ <a name='L516'></a><a href='#L516'>516</a>
582
+ <a name='L517'></a><a href='#L517'>517</a>
583
+ <a name='L518'></a><a href='#L518'>518</a>
584
+ <a name='L519'></a><a href='#L519'>519</a>
585
+ <a name='L520'></a><a href='#L520'>520</a>
586
+ <a name='L521'></a><a href='#L521'>521</a>
587
+ <a name='L522'></a><a href='#L522'>522</a>
588
+ <a name='L523'></a><a href='#L523'>523</a>
589
+ <a name='L524'></a><a href='#L524'>524</a>
590
+ <a name='L525'></a><a href='#L525'>525</a>
591
+ <a name='L526'></a><a href='#L526'>526</a>
592
+ <a name='L527'></a><a href='#L527'>527</a>
593
+ <a name='L528'></a><a href='#L528'>528</a>
594
+ <a name='L529'></a><a href='#L529'>529</a>
595
+ <a name='L530'></a><a href='#L530'>530</a>
596
+ <a name='L531'></a><a href='#L531'>531</a>
597
+ <a name='L532'></a><a href='#L532'>532</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">47x</span>
598
+ <span class="cline-any cline-yes">47x</span>
599
+ <span class="cline-any cline-yes">47x</span>
600
+ <span class="cline-any cline-yes">47x</span>
601
+ <span class="cline-any cline-neutral">&nbsp;</span>
602
+ <span class="cline-any cline-neutral">&nbsp;</span>
603
+ <span class="cline-any cline-neutral">&nbsp;</span>
604
+ <span class="cline-any cline-neutral">&nbsp;</span>
578
605
  <span class="cline-any cline-neutral">&nbsp;</span>
579
606
  <span class="cline-any cline-neutral">&nbsp;</span>
580
607
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -582,13 +609,15 @@
582
609
  <span class="cline-any cline-neutral">&nbsp;</span>
583
610
  <span class="cline-any cline-neutral">&nbsp;</span>
584
611
  <span class="cline-any cline-neutral">&nbsp;</span>
585
- <span class="cline-any cline-yes">17x</span>
586
612
  <span class="cline-any cline-neutral">&nbsp;</span>
587
613
  <span class="cline-any cline-neutral">&nbsp;</span>
588
614
  <span class="cline-any cline-neutral">&nbsp;</span>
589
615
  <span class="cline-any cline-neutral">&nbsp;</span>
590
616
  <span class="cline-any cline-neutral">&nbsp;</span>
591
617
  <span class="cline-any cline-neutral">&nbsp;</span>
618
+ <span class="cline-any cline-yes">47x</span>
619
+ <span class="cline-any cline-neutral">&nbsp;</span>
620
+ <span class="cline-any cline-neutral">&nbsp;</span>
592
621
  <span class="cline-any cline-neutral">&nbsp;</span>
593
622
  <span class="cline-any cline-neutral">&nbsp;</span>
594
623
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -598,6 +627,20 @@
598
627
  <span class="cline-any cline-neutral">&nbsp;</span>
599
628
  <span class="cline-any cline-neutral">&nbsp;</span>
600
629
  <span class="cline-any cline-yes">17x</span>
630
+ <span class="cline-any cline-neutral">&nbsp;</span>
631
+ <span class="cline-any cline-neutral">&nbsp;</span>
632
+ <span class="cline-any cline-neutral">&nbsp;</span>
633
+ <span class="cline-any cline-neutral">&nbsp;</span>
634
+ <span class="cline-any cline-neutral">&nbsp;</span>
635
+ <span class="cline-any cline-neutral">&nbsp;</span>
636
+ <span class="cline-any cline-neutral">&nbsp;</span>
637
+ <span class="cline-any cline-neutral">&nbsp;</span>
638
+ <span class="cline-any cline-neutral">&nbsp;</span>
639
+ <span class="cline-any cline-neutral">&nbsp;</span>
640
+ <span class="cline-any cline-neutral">&nbsp;</span>
641
+ <span class="cline-any cline-neutral">&nbsp;</span>
642
+ <span class="cline-any cline-neutral">&nbsp;</span>
643
+ <span class="cline-any cline-neutral">&nbsp;</span>
601
644
  <span class="cline-any cline-yes">17x</span>
602
645
  <span class="cline-any cline-yes">17x</span>
603
646
  <span class="cline-any cline-yes">17x</span>
@@ -606,6 +649,8 @@
606
649
  <span class="cline-any cline-neutral">&nbsp;</span>
607
650
  <span class="cline-any cline-neutral">&nbsp;</span>
608
651
  <span class="cline-any cline-yes">17x</span>
652
+ <span class="cline-any cline-yes">15x</span>
653
+ <span class="cline-any cline-neutral">&nbsp;</span>
609
654
  <span class="cline-any cline-yes">17x</span>
610
655
  <span class="cline-any cline-neutral">&nbsp;</span>
611
656
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -644,6 +689,8 @@
644
689
  <span class="cline-any cline-neutral">&nbsp;</span>
645
690
  <span class="cline-any cline-neutral">&nbsp;</span>
646
691
  <span class="cline-any cline-yes">33x</span>
692
+ <span class="cline-any cline-yes">17x</span>
693
+ <span class="cline-any cline-neutral">&nbsp;</span>
647
694
  <span class="cline-any cline-yes">33x</span>
648
695
  <span class="cline-any cline-neutral">&nbsp;</span>
649
696
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -775,6 +822,7 @@
775
822
  <span class="cline-any cline-neutral">&nbsp;</span>
776
823
  <span class="cline-any cline-neutral">&nbsp;</span>
777
824
  <span class="cline-any cline-yes">33x</span>
825
+ <span class="cline-any cline-neutral">&nbsp;</span>
778
826
  <span class="cline-any cline-yes">2x</span>
779
827
  <span class="cline-any cline-yes">2x</span>
780
828
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -927,16 +975,13 @@
927
975
  <span class="cline-any cline-neutral">&nbsp;</span>
928
976
  <span class="cline-any cline-neutral">&nbsp;</span>
929
977
  <span class="cline-any cline-neutral">&nbsp;</span>
930
- <span class="cline-any cline-yes">45x</span>
931
- <span class="cline-any cline-neutral">&nbsp;</span>
932
978
  <span class="cline-any cline-neutral">&nbsp;</span>
933
979
  <span class="cline-any cline-neutral">&nbsp;</span>
934
980
  <span class="cline-any cline-neutral">&nbsp;</span>
935
981
  <span class="cline-any cline-neutral">&nbsp;</span>
936
982
  <span class="cline-any cline-neutral">&nbsp;</span>
937
983
  <span class="cline-any cline-neutral">&nbsp;</span>
938
- <span class="cline-any cline-neutral">&nbsp;</span>
939
- <span class="cline-any cline-yes">45x</span>
984
+ <span class="cline-any cline-yes">47x</span>
940
985
  <span class="cline-any cline-yes">33x</span>
941
986
  <span class="cline-any cline-neutral">&nbsp;</span>
942
987
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -974,7 +1019,7 @@
974
1019
  <span class="cline-any cline-neutral">&nbsp;</span>
975
1020
  <span class="cline-any cline-neutral">&nbsp;</span>
976
1021
  <span class="cline-any cline-neutral">&nbsp;</span>
977
- <span class="cline-any cline-yes">45x</span>
1022
+ <span class="cline-any cline-neutral">&nbsp;</span>
978
1023
  <span class="cline-any cline-yes">1x</span>
979
1024
  <span class="cline-any cline-yes">1x</span>
980
1025
  <span class="cline-any cline-yes">1x</span>
@@ -1022,7 +1067,10 @@
1022
1067
  <span class="cline-any cline-neutral">&nbsp;</span>
1023
1068
  <span class="cline-any cline-neutral">&nbsp;</span>
1024
1069
  <span class="cline-any cline-neutral">&nbsp;</span>
1025
- <span class="cline-any cline-yes">45x</span>
1070
+ <span class="cline-any cline-yes">47x</span>
1071
+ <span class="cline-any cline-neutral">&nbsp;</span>
1072
+ <span class="cline-any cline-neutral">&nbsp;</span>
1073
+ <span class="cline-any cline-neutral">&nbsp;</span>
1026
1074
  <span class="cline-any cline-yes">16x</span>
1027
1075
  <span class="cline-any cline-yes">16x</span>
1028
1076
  <span class="cline-any cline-yes">15x</span>
@@ -1068,7 +1116,7 @@
1068
1116
  <span class="cline-any cline-neutral">&nbsp;</span>
1069
1117
  <span class="cline-any cline-neutral">&nbsp;</span>
1070
1118
  <span class="cline-any cline-neutral">&nbsp;</span>
1071
- <span class="cline-any cline-yes">45x</span>
1119
+ <span class="cline-any cline-yes">47x</span>
1072
1120
  <span class="cline-any cline-yes">1x</span>
1073
1121
  <span class="cline-any cline-yes">1x</span>
1074
1122
  <span class="cline-any cline-yes">1x</span>
@@ -1077,18 +1125,38 @@
1077
1125
  <span class="cline-any cline-yes">1x</span>
1078
1126
  <span class="cline-any cline-yes">1x</span>
1079
1127
  <span class="cline-any cline-neutral">&nbsp;</span>
1080
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { SearchIndexes } = require("../../../db/utils")
1081
- const { removeKeyNumbering } = require("./utils")
1082
- const fetch = require("node-fetch")
1083
- const { getCouchInfo } = require("@budibase/backend-core/db")
1084
- const { getAppId } = require("@budibase/backend-core/context")
1128
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { SearchIndexes } from "../../../db/utils"
1129
+ import { removeKeyNumbering } from "./utils"
1130
+ import fetch from "node-fetch"
1131
+ import { db as dbCore, context } from "@budibase/backend-core"
1132
+ import { SearchFilters, Row } from "@budibase/types"
1133
+ &nbsp;
1134
+ type SearchParams = {
1135
+ tableId: string
1136
+ sort?: string
1137
+ sortOrder?: string
1138
+ sortType?: string
1139
+ limit?: number
1140
+ bookmark?: string
1141
+ version?: string
1142
+ rows?: Row[]
1143
+ }
1085
1144
  &nbsp;
1086
1145
  /**
1087
1146
  * Class to build lucene query URLs.
1088
1147
  * Optionally takes a base lucene query object.
1089
1148
  */
1090
- class QueryBuilder {
1091
- constructor(base) {
1149
+ export class QueryBuilder {
1150
+ query: SearchFilters
1151
+ limit: number
1152
+ sort?: string
1153
+ bookmark?: string
1154
+ sortOrder: string
1155
+ sortType: string
1156
+ includeDocs: boolean
1157
+ version?: string
1158
+ &nbsp;
1159
+ constructor(base?: SearchFilters) {
1092
1160
  this.query = {
1093
1161
  allOr: false,
1094
1162
  string: {},
@@ -1108,112 +1176,115 @@ class QueryBuilder {
1108
1176
  this.sortOrder = "ascending"
1109
1177
  this.sortType = "string"
1110
1178
  this.includeDocs = true
1111
- this.version = null
1112
1179
  }
1113
1180
  &nbsp;
1114
- setVersion(version) {
1115
- this.version = version
1181
+ setVersion(version?: string) {
1182
+ if (version != null) {
1183
+ this.version = version
1184
+ }
1116
1185
  return this
1117
1186
  }
1118
1187
  &nbsp;
1119
- setTable(tableId) {
1120
- this.query.equal.tableId = tableId
1188
+ setTable(tableId: string) {
1189
+ this.query.equal!.tableId = tableId
1121
1190
  return this
1122
1191
  }
1123
1192
  &nbsp;
1124
- setLimit(limit) {
1125
- <span class="missing-if-branch" title="else path not taken" >E</span>if (limit != null) {
1193
+ setLimit(limit?: number) {
1194
+ if (limit != null) {
1126
1195
  this.limit = limit
1127
1196
  }
1128
1197
  return this
1129
1198
  }
1130
1199
  &nbsp;
1131
- setSort(sort) {
1200
+ setSort(sort?: string) {
1132
1201
  if (sort != null) {
1133
1202
  this.sort = sort
1134
1203
  }
1135
1204
  return this
1136
1205
  }
1137
1206
  &nbsp;
1138
- setSortOrder(sortOrder) {
1207
+ setSortOrder(sortOrder?: string) {
1139
1208
  if (sortOrder != null) {
1140
1209
  this.sortOrder = sortOrder
1141
1210
  }
1142
1211
  return this
1143
1212
  }
1144
1213
  &nbsp;
1145
- setSortType(sortType) {
1214
+ setSortType(sortType?: string) {
1146
1215
  if (sortType != null) {
1147
1216
  this.sortType = sortType
1148
1217
  }
1149
1218
  return this
1150
1219
  }
1151
1220
  &nbsp;
1152
- setBookmark(bookmark) {
1153
- this.bookmark = bookmark
1221
+ setBookmark(bookmark?: string) {
1222
+ if (bookmark != null) {
1223
+ this.bookmark = bookmark
1224
+ }
1154
1225
  return this
1155
1226
  }
1156
1227
  &nbsp;
1157
- <span class="fstat-no" title="function not covered" > ex</span>cludeDocs() {
1228
+ <span class="fstat-no" title="function not covered" > excludeDocs(</span>) {
1158
1229
  <span class="cstat-no" title="statement not covered" > this.includeDocs = false</span>
1159
1230
  <span class="cstat-no" title="statement not covered" > return this</span>
1160
1231
  }
1161
1232
  &nbsp;
1162
- <span class="fstat-no" title="function not covered" > ad</span>dString(key, partial) {
1163
- <span class="cstat-no" title="statement not covered" > this.query.string[key] = partial</span>
1233
+ <span class="fstat-no" title="function not covered" > addString(</span>key: string, partial: string) {
1234
+ <span class="cstat-no" title="statement not covered" > this.query.string![key] = partial</span>
1164
1235
  <span class="cstat-no" title="statement not covered" > return this</span>
1165
1236
  }
1166
1237
  &nbsp;
1167
- <span class="fstat-no" title="function not covered" > ad</span>dFuzzy(key, fuzzy) {
1168
- <span class="cstat-no" title="statement not covered" > this.query.fuzzy[key] = fuzzy</span>
1238
+ <span class="fstat-no" title="function not covered" > addFuzzy(</span>key: string, fuzzy: string) {
1239
+ <span class="cstat-no" title="statement not covered" > this.query.fuzzy![key] = fuzzy</span>
1169
1240
  <span class="cstat-no" title="statement not covered" > return this</span>
1170
1241
  }
1171
1242
  &nbsp;
1172
- <span class="fstat-no" title="function not covered" > ad</span>dRange(key, low, high) {
1173
- <span class="cstat-no" title="statement not covered" > this.query.range = {</span>
1243
+ <span class="fstat-no" title="function not covered" > addRange(</span>key: string, low: string | number, high: string | number) {
1244
+ <span class="cstat-no" title="statement not covered" > this.query.range![key] = {</span>
1174
1245
  low,
1175
1246
  high,
1176
1247
  }
1177
1248
  <span class="cstat-no" title="statement not covered" > return this</span>
1178
1249
  }
1179
1250
  &nbsp;
1180
- <span class="fstat-no" title="function not covered" > ad</span>dEqual(key, value) {
1181
- <span class="cstat-no" title="statement not covered" > this.query.equal[key] = value</span>
1251
+ <span class="fstat-no" title="function not covered" > addEqual(</span>key: string, value: any) {
1252
+ <span class="cstat-no" title="statement not covered" > this.query.equal![key] = value</span>
1182
1253
  <span class="cstat-no" title="statement not covered" > return this</span>
1183
1254
  }
1184
1255
  &nbsp;
1185
- <span class="fstat-no" title="function not covered" > ad</span>dNotEqual(key, value) {
1186
- <span class="cstat-no" title="statement not covered" > this.query.notEqual[key] = value</span>
1256
+ <span class="fstat-no" title="function not covered" > addNotEqual(</span>key: string, value: any) {
1257
+ <span class="cstat-no" title="statement not covered" > this.query.notEqual![key] = value</span>
1187
1258
  <span class="cstat-no" title="statement not covered" > return this</span>
1188
1259
  }
1189
1260
  &nbsp;
1190
- <span class="fstat-no" title="function not covered" > ad</span>dEmpty(key, value) {
1191
- <span class="cstat-no" title="statement not covered" > this.query.empty[key] = value</span>
1261
+ <span class="fstat-no" title="function not covered" > addEmpty(</span>key: string, value: any) {
1262
+ <span class="cstat-no" title="statement not covered" > this.query.empty![key] = value</span>
1192
1263
  <span class="cstat-no" title="statement not covered" > return this</span>
1193
1264
  }
1194
1265
  &nbsp;
1195
- <span class="fstat-no" title="function not covered" > ad</span>dNotEmpty(key, value) {
1196
- <span class="cstat-no" title="statement not covered" > this.query.notEmpty[key] = value</span>
1266
+ <span class="fstat-no" title="function not covered" > addNotEmpty(</span>key: string, value: any) {
1267
+ <span class="cstat-no" title="statement not covered" > this.query.notEmpty![key] = value</span>
1197
1268
  <span class="cstat-no" title="statement not covered" > return this</span>
1198
1269
  }
1199
1270
  &nbsp;
1200
- <span class="fstat-no" title="function not covered" > ad</span>dOneOf(key, value) {
1201
- <span class="cstat-no" title="statement not covered" > this.query.oneOf[key] = value</span>
1271
+ <span class="fstat-no" title="function not covered" > addOneOf(</span>key: string, value: any) {
1272
+ <span class="cstat-no" title="statement not covered" > this.query.oneOf![key] = value</span>
1202
1273
  <span class="cstat-no" title="statement not covered" > return this</span>
1203
1274
  }
1204
1275
  &nbsp;
1205
- <span class="fstat-no" title="function not covered" > ad</span>dContains(key, value) {
1206
- <span class="cstat-no" title="statement not covered" > this.query.contains[key] = value</span>
1276
+ <span class="fstat-no" title="function not covered" > addContains(</span>key: string, value: any) {
1277
+ <span class="cstat-no" title="statement not covered" > this.query.contains![key] = value</span>
1207
1278
  <span class="cstat-no" title="statement not covered" > return this</span>
1208
1279
  }
1209
1280
  &nbsp;
1210
- <span class="fstat-no" title="function not covered" > ad</span>dNotContains(key, value) {
1211
- <span class="cstat-no" title="statement not covered" > this.query.notContains[key] = value</span>
1281
+ <span class="fstat-no" title="function not covered" > addNotContains(</span>key: string, value: any) {
1282
+ <span class="cstat-no" title="statement not covered" > this.query.notContains![key] = value</span>
1212
1283
  <span class="cstat-no" title="statement not covered" > return this</span>
1213
1284
  }
1214
1285
  &nbsp;
1215
- <span class="fstat-no" title="function not covered" > ad</span>dContainsAny(key, value) {
1216
- <span class="cstat-no" title="statement not covered" > this.query.containsAny[key] = value</span>
1286
+ <span class="fstat-no" title="function not covered" > addContainsAny(</span>key: string, value: any) {
1287
+ <span class="cstat-no" title="statement not covered" > this.query.containsAny![key] = value</span>
1217
1288
  <span class="cstat-no" title="statement not covered" > return this</span>
1218
1289
  }
1219
1290
  &nbsp;
@@ -1224,7 +1295,7 @@ class QueryBuilder {
1224
1295
  * @param options The preprocess options
1225
1296
  * @returns {string|*}
1226
1297
  */
1227
- preprocess(value, { escape, lowercase, wrap, type } = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
1298
+ preprocess(value: any, { escape, lowercase, wrap, type }: any = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
1228
1299
  const hasVersion = !!this.version
1229
1300
  // Determine if type needs wrapped
1230
1301
  const originalType = typeof value
@@ -1252,12 +1323,12 @@ class QueryBuilder {
1252
1323
  let query = allOr ? "" : "*:*"
1253
1324
  const allPreProcessingOpts = { escape: true, lowercase: true, wrap: true }
1254
1325
  let tableId
1255
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.equal.tableId) {
1256
- tableId = this.query.equal.tableId
1257
- delete this.query.equal.tableId
1326
+ if (this.query.equal!.tableId) {
1327
+ tableId = this.query.equal!.tableId
1328
+ delete this.query.equal!.tableId
1258
1329
  }
1259
1330
  &nbsp;
1260
- const equal = (key, value) =&gt; {
1331
+ const equal = (key: string, value: any) =&gt; {
1261
1332
  // 0 evaluates to false, which means we would return all rows if we don't check it
1262
1333
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!value &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >value !== 0)</span> {
1263
1334
  <span class="cstat-no" title="statement not covered" > return null</span>
@@ -1265,7 +1336,7 @@ class QueryBuilder {
1265
1336
  return `${key}:${builder.preprocess(value, allPreProcessingOpts)}`
1266
1337
  }
1267
1338
  &nbsp;
1268
- const contains = (key, value, mode = "AND") =&gt; {
1339
+ const contains = (key: string, value: any, mode = "AND") =&gt; {
1269
1340
  <span class="missing-if-branch" title="if path not taken" >I</span>if (Array.isArray(value) &amp;&amp; value.length === 0) {
1270
1341
  <span class="cstat-no" title="statement not covered" > return null</span>
1271
1342
  }
@@ -1281,16 +1352,17 @@ class QueryBuilder {
1281
1352
  return `${key}:(${statement})`
1282
1353
  }
1283
1354
  &nbsp;
1284
- const notContains = (key, value) =&gt; {
1355
+ const notContains = (key: string, value: any) =&gt; {
1356
+ // @ts-ignore
1285
1357
  const allPrefix = allOr === "" ? <span class="branch-0 cbranch-no" title="branch not covered" >"*:* AND" </span>: ""
1286
1358
  return allPrefix + "NOT " + contains(key, value)
1287
1359
  }
1288
1360
  &nbsp;
1289
- const containsAny = (key, value) =&gt; {
1361
+ const containsAny = (key: string, value: any) =&gt; {
1290
1362
  return contains(key, value, "OR")
1291
1363
  }
1292
1364
  &nbsp;
1293
- const oneOf = (key, value) =&gt; {
1365
+ const oneOf = (key: string, value: any) =&gt; {
1294
1366
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!Array.isArray(value)) {
1295
1367
  <span class="cstat-no" title="statement not covered" > if (typeof value === "string") {</span>
1296
1368
  <span class="cstat-no" title="statement not covered" > value = value.split(",")</span>
@@ -1308,7 +1380,7 @@ class QueryBuilder {
1308
1380
  return `${key}:(${orStatement})`
1309
1381
  }
1310
1382
  &nbsp;
1311
- function build(structure, queryFn) {
1383
+ function build(structure: any, queryFn: any) {
1312
1384
  for (let [key, value] of Object.entries(structure)) {
1313
1385
  // check for new format - remove numbering if needed
1314
1386
  key = removeKeyNumbering(key)
@@ -1327,8 +1399,8 @@ class QueryBuilder {
1327
1399
  }
1328
1400
  &nbsp;
1329
1401
  // Construct the actual lucene search query string from JSON structure
1330
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.string) {
1331
- build(this.query.string, (key, value) =&gt; {
1402
+ if (this.query.string) {
1403
+ build(this.query.string, (key: string, value: any) =&gt; {
1332
1404
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!value) {
1333
1405
  <span class="cstat-no" title="statement not covered" > return null</span>
1334
1406
  }
@@ -1340,8 +1412,8 @@ class QueryBuilder {
1340
1412
  return `${key}:${value}*`
1341
1413
  })
1342
1414
  }
1343
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.range) {
1344
- build(this.query.range, (key, value) =&gt; {
1415
+ if (this.query.range) {
1416
+ build(this.query.range, (key: string, value: any) =&gt; {
1345
1417
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!value) {
1346
1418
  <span class="cstat-no" title="statement not covered" > return null</span>
1347
1419
  }
@@ -1356,9 +1428,9 @@ class QueryBuilder {
1356
1428
  return `${key}:[${low} TO ${high}]`
1357
1429
  })
1358
1430
  }
1359
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.fuzzy) {
1360
- build(this.query.fuzzy, <span class="fstat-no" title="function not covered" >(k</span>ey, value) =&gt; {
1361
- <span class="cstat-no" title="statement not covered" > if (!value) {</span>
1431
+ if (this.query.fuzzy) {
1432
+ build(this.query.fuzzy, <span class="fstat-no" title="function not covered" >(k</span>ey: string, value: any) =&gt; {
1433
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!value) {</span>
1362
1434
  <span class="cstat-no" title="statement not covered" > return null</span>
1363
1435
  }
1364
1436
  <span class="cstat-no" title="statement not covered" > value = builder.preprocess(value, {</span>
@@ -1369,37 +1441,37 @@ class QueryBuilder {
1369
1441
  <span class="cstat-no" title="statement not covered" > return `${key}:${value}~`</span>
1370
1442
  })
1371
1443
  }
1372
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.equal) {
1444
+ if (this.query.equal) {
1373
1445
  build(this.query.equal, equal)
1374
1446
  }
1375
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.notEqual) {
1376
- build(this.query.notEqual, (key, value) =&gt; {
1447
+ if (this.query.notEqual) {
1448
+ build(this.query.notEqual, (key: string, value: any) =&gt; {
1377
1449
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!value) {
1378
1450
  <span class="cstat-no" title="statement not covered" > return null</span>
1379
1451
  }
1380
1452
  return `!${key}:${builder.preprocess(value, allPreProcessingOpts)}`
1381
1453
  })
1382
1454
  }
1383
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.empty) {
1384
- build(this.query.empty, key =&gt; `!${key}:["" TO *]`)
1455
+ if (this.query.empty) {
1456
+ build(this.query.empty, (key: string) =&gt; `!${key}:["" TO *]`)
1385
1457
  }
1386
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.notEmpty) {
1387
- build(this.query.notEmpty, key =&gt; `${key}:["" TO *]`)
1458
+ if (this.query.notEmpty) {
1459
+ build(this.query.notEmpty, (key: string) =&gt; `${key}:["" TO *]`)
1388
1460
  }
1389
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.oneOf) {
1461
+ if (this.query.oneOf) {
1390
1462
  build(this.query.oneOf, oneOf)
1391
1463
  }
1392
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.contains) {
1464
+ if (this.query.contains) {
1393
1465
  build(this.query.contains, contains)
1394
1466
  }
1395
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.notContains) {
1467
+ if (this.query.notContains) {
1396
1468
  build(this.query.notContains, notContains)
1397
1469
  }
1398
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.containsAny) {
1470
+ if (this.query.containsAny) {
1399
1471
  build(this.query.containsAny, containsAny)
1400
1472
  }
1401
1473
  // make sure table ID is always added as an AND
1402
- <span class="missing-if-branch" title="else path not taken" >E</span>if (tableId) {
1474
+ if (tableId) {
1403
1475
  query = `(${query})`
1404
1476
  allOr = false
1405
1477
  build({ tableId }, equal)
@@ -1408,7 +1480,7 @@ class QueryBuilder {
1408
1480
  }
1409
1481
  &nbsp;
1410
1482
  buildSearchBody() {
1411
- let body = {
1483
+ let body: any = {
1412
1484
  q: this.buildSearchQuery(),
1413
1485
  limit: Math.min(this.limit, 200),
1414
1486
  include_docs: this.includeDocs,
@@ -1425,17 +1497,14 @@ class QueryBuilder {
1425
1497
  }
1426
1498
  &nbsp;
1427
1499
  async run() {
1428
- const appId = getAppId()
1429
- const { url, cookie } = getCouchInfo()
1500
+ const appId = context.getAppId()
1501
+ const { url, cookie } = dbCore.getCouchInfo()
1430
1502
  const fullPath = `${url}/${appId}/_design/database/_search/${SearchIndexes.ROWS}`
1431
1503
  const body = this.buildSearchBody()
1432
1504
  return await runQuery(fullPath, body, cookie)
1433
1505
  }
1434
1506
  }
1435
1507
  &nbsp;
1436
- // exported for unit testing
1437
- exports.QueryBuilder = QueryBuilder
1438
- &nbsp;
1439
1508
  /**
1440
1509
  * Executes a lucene search query.
1441
1510
  * @param url The query URL
@@ -1443,7 +1512,7 @@ exports.QueryBuilder = QueryBuilder
1443
1512
  * @param cookie The auth cookie for CouchDB
1444
1513
  * @returns {Promise&lt;{rows: []}&gt;}
1445
1514
  */
1446
- const runQuery = async (url, body, cookie) =&gt; {
1515
+ const runQuery = async (url: string, body: any, cookie: string) =&gt; {
1447
1516
  const response = await fetch(url, {
1448
1517
  body: JSON.stringify(body),
1449
1518
  method: "POST",
@@ -1453,13 +1522,13 @@ const runQuery = async (url, body, cookie) =&gt; {
1453
1522
  })
1454
1523
  const json = await response.json()
1455
1524
  &nbsp;
1456
- let output = {
1525
+ let output: any = {
1457
1526
  rows: [],
1458
1527
  }
1459
- <span class="missing-if-branch" title="else path not taken" >E</span>if (json.rows != null &amp;&amp; json.rows.length &gt; 0) {
1460
- output.rows = json.rows.map(row =&gt; row.doc)
1528
+ if (json.rows != null &amp;&amp; json.rows.length &gt; 0) {
1529
+ output.rows = json.rows.map((row: any) =&gt; row.doc)
1461
1530
  }
1462
- <span class="missing-if-branch" title="else path not taken" >E</span>if (json.bookmark) {
1531
+ if (json.bookmark) {
1463
1532
  output.bookmark = json.bookmark
1464
1533
  }
1465
1534
  return output
@@ -1481,7 +1550,7 @@ const runQuery = async (url, body, cookie) =&gt; {
1481
1550
  * rows {array|null} Current results in the recursive search
1482
1551
  * @returns {Promise&lt;*[]|*&gt;}
1483
1552
  */
1484
- const recursiveSearch = async (query, params) =&gt; {
1553
+ async function recursiveSearch(query: any, params: any): Promise&lt;any&gt; {
1485
1554
  const bookmark = params.bookmark
1486
1555
  const rows = params.rows || []
1487
1556
  <span class="missing-if-branch" title="if path not taken" >I</span>if (rows.length &gt;= params.limit) {
@@ -1503,10 +1572,10 @@ const recursiveSearch = async (query, params) =&gt; {
1503
1572
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!page.rows.length) {
1504
1573
  <span class="cstat-no" title="statement not covered" > return rows</span>
1505
1574
  }
1506
- <span class="missing-if-branch" title="else path not taken" >E</span>if (page.rows.length &lt; 200) {
1575
+ if (page.rows.length &lt; 200) {
1507
1576
  return [...rows, ...page.rows]
1508
1577
  }
1509
- const newParams = <span class="cstat-no" title="statement not covered" >{</span>
1578
+ const newParams<span class="cstat-no" title="statement not covered" > = {</span>
1510
1579
  ...params,
1511
1580
  bookmark: page.bookmark,
1512
1581
  rows: [...rows, ...page.rows],
@@ -1529,7 +1598,10 @@ const recursiveSearch = async (query, params) =&gt; {
1529
1598
  * bookmark {string} The bookmark to resume from
1530
1599
  * @returns {Promise&lt;{hasNextPage: boolean, rows: *[]}&gt;}
1531
1600
  */
1532
- exports.paginatedSearch = async (query, params) =&gt; {
1601
+ export async function paginatedSearch(
1602
+ query: SearchFilters,
1603
+ params: SearchParams
1604
+ ) {
1533
1605
  let limit = params.limit
1534
1606
  if (limit == null || isNaN(limit) || limit &lt; 0) {
1535
1607
  limit = 50
@@ -1575,9 +1647,9 @@ exports.paginatedSearch = async (query, params) =&gt; {
1575
1647
  * limit {number} The desired number of results
1576
1648
  * @returns {Promise&lt;{rows: *}&gt;}
1577
1649
  */
1578
- exports.fullSearch = async (query, params) =&gt; {
1650
+ export async function fullSearch(query: SearchFilters, params: SearchParams) {
1579
1651
  let limit = params.limit
1580
- <span class="missing-if-branch" title="else path not taken" >E</span>if (limit == null || <span class="branch-1 cbranch-no" title="branch not covered" >isNaN(limit) </span>|| <span class="branch-2 cbranch-no" title="branch not covered" >limit &lt; 0)</span> {
1652
+ if (limit == null || <span class="branch-1 cbranch-no" title="branch not covered" >isNaN(limit) </span>|| <span class="branch-2 cbranch-no" title="branch not covered" >limit &lt; 0)</span> {
1581
1653
  limit = 1000
1582
1654
  }
1583
1655
  params.limit = Math.min(limit, 1000)
@@ -1591,16 +1663,16 @@ exports.fullSearch = async (query, params) =&gt; {
1591
1663
  <div class='footer quiet pad2 space-top1 center small'>
1592
1664
  Code coverage generated by
1593
1665
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1594
- at Mon Dec 05 2022 18:40:03 GMT+0000 (Coordinated Universal Time)
1666
+ at Fri Dec 09 2022 13:50:48 GMT+0000 (Coordinated Universal Time)
1595
1667
  </div>
1596
- <script src="../../../prettify.js"></script>
1668
+ <script src="../../../../prettify.js"></script>
1597
1669
  <script>
1598
1670
  window.onload = function () {
1599
1671
  prettyPrint();
1600
1672
  };
1601
1673
  </script>
1602
- <script src="../../../sorter.js"></script>
1603
- <script src="../../../block-navigation.js"></script>
1674
+ <script src="../../../../sorter.js"></script>
1675
+ <script src="../../../../block-navigation.js"></script>
1604
1676
  </body>
1605
1677
  </html>
1606
1678