@budibase/server 2.1.32-alpha.7 → 2.1.32

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 (663) hide show
  1. package/__mocks__/aws-sdk.ts +0 -14
  2. package/__mocks__/node-fetch.ts +1 -5
  3. package/builder/assets/{index.7176fd99.css → index.534f6c29.css} +1 -1
  4. package/builder/assets/{index.e0fdcf54.js → index.968304ca.js} +316 -316
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +3681 -10588
  7. package/coverage/coverage-final.json +77 -225
  8. package/coverage/lcov-report/{src/api/controllers/apikeys.ts.html → api/controllers/apikeys.js.html} +26 -26
  9. package/coverage/lcov-report/{src/api/controllers/automation.ts.html → api/controllers/automation.js.html} +75 -75
  10. package/coverage/lcov-report/{src/api/controllers/cloud.ts.html → api/controllers/cloud.js.html} +47 -47
  11. package/coverage/lcov-report/{src/api/controllers/datasource.ts.html → api/controllers/datasource.js.html} +87 -246
  12. package/coverage/lcov-report/{src/api/controllers/dev.ts.html → api/controllers/dev.js.html} +71 -53
  13. package/coverage/lcov-report/api/controllers/index.html +326 -0
  14. package/coverage/lcov-report/{src/api → api}/controllers/integration.js.html +10 -10
  15. package/coverage/lcov-report/{src/api/controllers/layout.ts.html → api/controllers/layout.js.html} +26 -26
  16. package/coverage/lcov-report/{src/api/controllers/metadata.ts.html → api/controllers/metadata.js.html} +23 -26
  17. package/coverage/lcov-report/{src/api → api}/controllers/migrations.js.html +10 -10
  18. package/coverage/lcov-report/{src/api/controllers/permission.ts.html → api/controllers/permission.js.html} +71 -80
  19. package/coverage/lcov-report/{src/utilities/routing → api/controllers/query}/index.html +8 -8
  20. package/coverage/lcov-report/{src/api/controllers/query/validation.ts.html → api/controllers/query/validation.js.html} +17 -17
  21. package/coverage/lcov-report/{src/api/controllers/role.ts.html → api/controllers/role.js.html} +56 -44
  22. package/coverage/lcov-report/{src/api/controllers/routing.ts.html → api/controllers/routing.js.html} +56 -65
  23. package/coverage/lcov-report/{src/api → api}/controllers/row/external.js.html +13 -13
  24. package/coverage/lcov-report/{src/api → api}/controllers/row/index.html +46 -76
  25. package/coverage/lcov-report/{src/api → api}/controllers/row/internal.js.html +29 -26
  26. package/coverage/lcov-report/{src/api/controllers/row/internalSearch.ts.html → api/controllers/row/internalSearch.js.html} +110 -182
  27. package/coverage/lcov-report/{src/api/controllers/row/staticFormula.ts.html → api/controllers/row/staticFormula.js.html} +54 -69
  28. package/coverage/lcov-report/{src/api/controllers/row/utils.ts.html → api/controllers/row/utils.js.html} +43 -64
  29. package/coverage/lcov-report/{src/api/controllers/script.ts.html → api/controllers/script.js.html} +14 -17
  30. package/coverage/lcov-report/{src/api/controllers/table/bulkFormula.ts.html → api/controllers/table/bulkFormula.js.html} +54 -96
  31. package/coverage/lcov-report/{src/api/controllers/table/external.ts.html → api/controllers/table/external.js.html} +100 -196
  32. package/coverage/lcov-report/{src/utilities/fileSystem → api/controllers/table}/index.html +44 -44
  33. package/coverage/lcov-report/{src/api/controllers/table/index.ts.html → api/controllers/table/index.js.html} +35 -35
  34. package/coverage/lcov-report/{src/api/controllers/templates.ts.html → api/controllers/templates.js.html} +25 -34
  35. package/coverage/lcov-report/{src/api/controllers/user.ts.html → api/controllers/user.js.html} +85 -79
  36. package/coverage/lcov-report/{src/api/controllers/view/exporters.ts.html → api/controllers/view/exporters.js.html} +14 -20
  37. package/coverage/lcov-report/{src/api → api}/controllers/view/index.html +30 -30
  38. package/coverage/lcov-report/{src/api/controllers/view/index.ts.html → api/controllers/view/index.js.html} +48 -75
  39. package/coverage/lcov-report/{src/api/controllers/view/utils.ts.html → api/controllers/view/utils.js.html} +43 -61
  40. package/coverage/lcov-report/{src/api → api}/controllers/view/viewBuilder.js.html +10 -10
  41. package/coverage/lcov-report/{src/api → api}/index.html +23 -23
  42. package/coverage/lcov-report/{src/api/index.ts.html → api/index.js.html} +56 -35
  43. package/coverage/lcov-report/{src/api/routes/analytics.ts.html → api/routes/analytics.js.html} +14 -14
  44. package/coverage/lcov-report/{src/middleware/selfhost.ts.html → api/routes/apikeys.js.html} +27 -27
  45. package/coverage/lcov-report/{src/api/routes/automation.ts.html → api/routes/automation.js.html} +42 -48
  46. package/coverage/lcov-report/{src/api/routes/backup.ts.html → api/routes/cloud.js.html} +21 -21
  47. package/coverage/lcov-report/{src/api/routes/component.ts.html → api/routes/component.js.html} +17 -17
  48. package/coverage/lcov-report/{src/api/routes/datasource.ts.html → api/routes/datasource.js.html} +33 -60
  49. package/coverage/lcov-report/{src/api/routes/cloud.ts.html → api/routes/deploy.js.html} +22 -25
  50. package/coverage/lcov-report/{src/api/routes/webhook.ts.html → api/routes/dev.js.html} +43 -46
  51. package/coverage/lcov-report/{src/api → api}/routes/index.html +47 -167
  52. package/coverage/lcov-report/{src/api/routes/apikeys.ts.html → api/routes/integration.js.html} +18 -18
  53. package/coverage/lcov-report/{src/api/routes/layout.ts.html → api/routes/layout.js.html} +18 -18
  54. package/coverage/lcov-report/{src/api/routes/metadata.ts.html → api/routes/metadata.js.html} +24 -24
  55. package/coverage/lcov-report/{src/sdk/index.ts.html → api/routes/migrations.js.html} +21 -24
  56. package/coverage/lcov-report/{src/api/routes/view.ts.html → api/routes/permission.js.html} +37 -40
  57. package/coverage/lcov-report/{src/api/routes/query.ts.html → api/routes/query.js.html} +42 -33
  58. package/coverage/lcov-report/api/routes/role.js.html +130 -0
  59. package/coverage/lcov-report/{src/api/routes/routing.ts.html → api/routes/routing.js.html} +17 -17
  60. package/coverage/lcov-report/api/routes/screen.js.html +139 -0
  61. package/coverage/lcov-report/{src/api/routes/script.ts.html → api/routes/script.js.html} +17 -17
  62. package/coverage/lcov-report/{src/api/routes/table.ts.html → api/routes/table.js.html} +33 -24
  63. package/coverage/lcov-report/{src/api/routes/templates.ts.html → api/routes/templates.js.html} +18 -18
  64. package/coverage/lcov-report/{src/api/routes/user.ts.html → api/routes/user.js.html} +35 -29
  65. package/coverage/lcov-report/{src/api → api}/routes/utils/index.html +15 -15
  66. package/coverage/lcov-report/{src/api/routes/utils/validators.ts.html → api/routes/utils/validators.js.html} +58 -46
  67. package/coverage/lcov-report/{src/definitions/automations.ts.html → api/routes/view.js.html} +41 -44
  68. package/coverage/lcov-report/{src/automations → automations}/actions.js.html +10 -10
  69. package/coverage/lcov-report/{src/automations → automations}/automationUtils.js.html +10 -10
  70. package/coverage/lcov-report/{src/automations → automations}/bullboard.js.html +10 -10
  71. package/coverage/lcov-report/{src/automations → automations}/index.html +24 -39
  72. package/coverage/lcov-report/{src/automations → automations}/index.js.html +10 -10
  73. package/coverage/lcov-report/{src/automations → automations}/steps/bash.js.html +10 -10
  74. package/coverage/lcov-report/{src/automations → automations}/steps/delay.js.html +10 -10
  75. package/coverage/lcov-report/{src/automations → automations}/steps/discord.js.html +10 -10
  76. package/coverage/lcov-report/{src/automations → automations}/steps/executeQuery.js.html +10 -10
  77. package/coverage/lcov-report/{src/automations → automations}/steps/executeScript.js.html +10 -10
  78. package/coverage/lcov-report/{src/automations → automations}/steps/filter.js.html +10 -10
  79. package/coverage/lcov-report/{src/automations → automations}/steps/index.html +26 -56
  80. package/coverage/lcov-report/{src/automations → automations}/steps/integromat.js.html +10 -10
  81. package/coverage/lcov-report/{src/automations → automations}/steps/loop.js.html +10 -10
  82. package/coverage/lcov-report/{src/automations → automations}/steps/outgoingWebhook.js.html +10 -10
  83. package/coverage/lcov-report/{src/automations → automations}/steps/queryRows.js.html +10 -10
  84. package/coverage/lcov-report/{src/automations → automations}/steps/sendSmtpEmail.js.html +10 -10
  85. package/coverage/lcov-report/{src/automations → automations}/steps/serverLog.js.html +10 -10
  86. package/coverage/lcov-report/{src/automations → automations}/steps/slack.js.html +10 -10
  87. package/coverage/lcov-report/{src/automations → automations}/steps/updateRow.js.html +10 -10
  88. package/coverage/lcov-report/{src/automations → automations}/steps/utils.js.html +19 -19
  89. package/coverage/lcov-report/{src/automations → automations}/steps/zapier.js.html +10 -10
  90. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/app.js.html +10 -10
  91. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/cron.js.html +10 -10
  92. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/index.html +10 -10
  93. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/index.js.html +10 -10
  94. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/rowDeleted.js.html +10 -10
  95. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/rowSaved.js.html +10 -10
  96. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/rowUpdated.js.html +10 -10
  97. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/webhook.js.html +10 -10
  98. package/coverage/lcov-report/{src/automations → automations}/triggers.js.html +23 -20
  99. package/coverage/lcov-report/{src/constants → constants}/index.html +14 -14
  100. package/coverage/lcov-report/{src/constants → constants}/index.js.html +22 -16
  101. package/coverage/lcov-report/{src/constants → constants}/layouts.js.html +10 -10
  102. package/coverage/lcov-report/{src/constants → constants}/screens.js.html +12 -12
  103. package/coverage/lcov-report/{src/db → db}/inMemoryView.js.html +13 -13
  104. package/coverage/lcov-report/{src/db → db}/index.html +27 -42
  105. package/coverage/lcov-report/{src/db → db}/index.js.html +18 -18
  106. package/coverage/lcov-report/{src/db → db}/linkedRows/LinkController.js.html +160 -22
  107. package/coverage/lcov-report/{src/db → db}/linkedRows/index.html +22 -37
  108. package/coverage/lcov-report/{src/db → db}/linkedRows/index.js.html +12 -12
  109. package/coverage/lcov-report/{src/db → db}/linkedRows/linkUtils.js.html +13 -13
  110. package/coverage/lcov-report/{src/db → db}/newid.js.html +10 -10
  111. package/coverage/lcov-report/{src/db/utils.ts.html → db/utils.js.html} +153 -105
  112. package/coverage/lcov-report/{src/events → events}/AutomationEmitter.js.html +10 -10
  113. package/coverage/lcov-report/{src/events → events}/index.html +10 -10
  114. package/coverage/lcov-report/{src/events → events}/index.js.html +10 -10
  115. package/coverage/lcov-report/{src/events → events}/utils.js.html +10 -10
  116. package/coverage/lcov-report/index.html +161 -671
  117. package/coverage/lcov-report/{src/integrations → integrations}/tests/TestConfiguration.js.html +10 -10
  118. package/coverage/lcov-report/{src/integrations → integrations}/tests/index.html +10 -10
  119. package/coverage/lcov-report/{src/middleware/appInfo.ts.html → middleware/appInfo.js.html} +28 -31
  120. package/coverage/lcov-report/{src/middleware/builder.ts.html → middleware/builder.js.html} +37 -43
  121. package/coverage/lcov-report/{src/middleware/currentapp.ts.html → middleware/currentapp.js.html} +68 -77
  122. package/coverage/lcov-report/{src/middleware → middleware}/index.html +63 -78
  123. package/coverage/lcov-report/{src/middleware/joi-validator.ts.html → middleware/joi-validator.js.html} +22 -25
  124. package/coverage/lcov-report/{src/middleware/publicApi.ts.html → middleware/publicApi.js.html} +24 -24
  125. package/coverage/lcov-report/{src/middleware/resourceId.ts.html → middleware/resourceId.js.html} +25 -40
  126. package/coverage/lcov-report/{src/tests/utilities/index.js.html → middleware/selfhost.js.html} +30 -33
  127. package/coverage/lcov-report/{src/middleware/utils.ts.html → middleware/utils.js.html} +13 -19
  128. package/coverage/lcov-report/{src/utilities/budibaseDir.ts.html → utilities/budibaseDir.js.html} +12 -12
  129. package/coverage/lcov-report/{src/utilities → utilities}/centralPath.js.html +10 -10
  130. package/coverage/lcov-report/{src/utilities → utilities}/csvParser.js.html +10 -10
  131. package/coverage/lcov-report/{src/utilities/global.ts.html → utilities/global.js.html} +74 -107
  132. package/coverage/lcov-report/{src/utilities → utilities}/index.html +61 -76
  133. package/coverage/lcov-report/{src/utilities/index.ts.html → utilities/index.js.html} +53 -77
  134. package/coverage/lcov-report/{src/utilities → utilities}/plugins.js.html +10 -10
  135. package/coverage/lcov-report/{src/utilities → utilities}/queue/inMemoryQueue.js.html +10 -10
  136. package/coverage/lcov-report/{src/utilities → utilities}/queue/index.html +10 -10
  137. package/coverage/lcov-report/{src/sdk → utilities/routing}/index.html +10 -10
  138. package/coverage/lcov-report/{src/api/routes/role.ts.html → utilities/routing/index.js.html} +42 -39
  139. package/coverage/lcov-report/{src/migrations → utilities/rowProcessor}/index.html +37 -22
  140. package/coverage/lcov-report/{src/utilities/rowProcessor/index.ts.html → utilities/rowProcessor/index.js.html} +344 -113
  141. package/coverage/lcov-report/{src/utilities/rowProcessor/utils.ts.html → utilities/rowProcessor/utils.js.html} +38 -50
  142. package/coverage/lcov-report/{src/utilities → utilities}/scriptRunner.js.html +10 -10
  143. package/coverage/lcov-report/{src/utilities/security.ts.html → utilities/security.js.html} +74 -56
  144. package/coverage/lcov-report/{src/utilities → utilities}/statusCodes.js.html +10 -10
  145. package/coverage/lcov-report/{src/utilities → utilities}/usageQuota/index.html +27 -27
  146. package/coverage/lcov-report/{src/utilities/usageQuota/rows.ts.html → utilities/usageQuota/rows.js.html} +46 -34
  147. package/coverage/lcov-report/{src/utilities → utilities}/usageQuota/usageQuoteReset.js.html +10 -10
  148. package/coverage/lcov-report/{src/utilities/users.ts.html → utilities/users.js.html} +35 -29
  149. package/coverage/lcov-report/{src/utilities/workerRequests.ts.html → utilities/workerRequests.js.html} +61 -76
  150. package/coverage/lcov.info +6772 -19273
  151. package/dist/api/controllers/apikeys.js +9 -12
  152. package/dist/api/controllers/application.js +45 -48
  153. package/dist/api/controllers/automation.js +84 -104
  154. package/dist/api/controllers/cloud.js +71 -84
  155. package/dist/api/controllers/component.js +2 -4
  156. package/dist/api/controllers/datasource.js +92 -144
  157. package/dist/api/controllers/deploy/Deployment.js +6 -10
  158. package/dist/api/controllers/deploy/index.js +16 -13
  159. package/dist/api/controllers/dev.js +81 -96
  160. package/dist/api/controllers/layout.js +15 -18
  161. package/dist/api/controllers/metadata.js +37 -51
  162. package/dist/api/controllers/permission.js +43 -52
  163. package/dist/api/controllers/plugin/index.js +7 -6
  164. package/dist/api/controllers/public/applications.js +9 -17
  165. package/dist/api/controllers/public/tables.js +9 -29
  166. package/dist/api/controllers/query/import/index.js +2 -1
  167. package/dist/api/controllers/query/index.js +13 -10
  168. package/dist/api/controllers/query/validation.js +33 -41
  169. package/dist/api/controllers/role.js +27 -29
  170. package/dist/api/controllers/routing.js +58 -71
  171. package/dist/api/controllers/row/ExternalRequest.js +8 -12
  172. package/dist/api/controllers/row/external.js +3 -3
  173. package/dist/api/controllers/row/index.js +7 -16
  174. package/dist/api/controllers/row/internal.js +12 -11
  175. package/dist/api/controllers/row/internalSearch.js +80 -95
  176. package/dist/api/controllers/row/staticFormula.js +75 -85
  177. package/dist/api/controllers/row/utils.js +84 -118
  178. package/dist/api/controllers/screen.js +66 -81
  179. package/dist/api/controllers/script.js +6 -13
  180. package/dist/api/controllers/static/index.js +11 -9
  181. package/dist/api/controllers/table/bulkFormula.js +35 -47
  182. package/dist/api/controllers/table/external.js +57 -67
  183. package/dist/api/controllers/table/index.js +33 -66
  184. package/dist/api/controllers/table/internal.js +6 -5
  185. package/dist/api/controllers/table/utils.js +35 -39
  186. package/dist/api/controllers/templates.js +10 -17
  187. package/dist/api/controllers/user.js +70 -82
  188. package/dist/api/controllers/view/exporters.js +4 -8
  189. package/dist/api/controllers/view/index.js +153 -201
  190. package/dist/api/controllers/view/utils.js +121 -151
  191. package/dist/api/index.js +34 -38
  192. package/dist/api/routes/analytics.js +3 -29
  193. package/dist/api/routes/apikeys.js +7 -33
  194. package/dist/api/routes/application.js +9 -8
  195. package/dist/api/routes/auth.js +2 -1
  196. package/dist/api/routes/automation.js +20 -46
  197. package/dist/api/routes/backup.js +4 -3
  198. package/dist/api/routes/cloud.js +6 -32
  199. package/dist/api/routes/component.js +6 -32
  200. package/dist/api/routes/datasource.js +13 -39
  201. package/dist/api/routes/deploy.js +8 -34
  202. package/dist/api/routes/dev.js +10 -36
  203. package/dist/api/routes/integration.js +7 -10
  204. package/dist/api/routes/layout.js +7 -33
  205. package/dist/api/routes/metadata.js +10 -36
  206. package/dist/api/routes/migrations.js +6 -32
  207. package/dist/api/routes/permission.js +12 -38
  208. package/dist/api/routes/plugin.js +5 -5
  209. package/dist/api/routes/public/index.js +9 -9
  210. package/dist/api/routes/query.js +15 -42
  211. package/dist/api/routes/role.js +10 -36
  212. package/dist/api/routes/routing.js +6 -32
  213. package/dist/api/routes/row.js +11 -12
  214. package/dist/api/routes/screen.js +9 -35
  215. package/dist/api/routes/script.js +6 -32
  216. package/dist/api/routes/static.js +9 -9
  217. package/dist/api/routes/table.js +13 -40
  218. package/dist/api/routes/templates.js +7 -33
  219. package/dist/api/routes/tests/utilities/TestFunctions.js +8 -6
  220. package/dist/api/routes/user.js +13 -40
  221. package/dist/api/routes/utils/validators.js +126 -142
  222. package/dist/api/routes/view.js +12 -38
  223. package/dist/api/routes/webhook.js +2 -1
  224. package/dist/app.js +4 -3
  225. package/dist/automations/tests/utilities/index.js +12 -21
  226. package/dist/automations/triggers.js +6 -5
  227. package/dist/automations/utils.js +8 -9
  228. package/dist/constants/index.js +5 -3
  229. package/dist/constants/screens.js +2 -2
  230. package/dist/db/inMemoryView.js +3 -3
  231. package/dist/db/linkedRows/LinkController.js +31 -4
  232. package/dist/db/linkedRows/index.js +2 -2
  233. package/dist/db/linkedRows/linkUtils.js +3 -3
  234. package/dist/db/utils.js +119 -146
  235. package/dist/db/views/staticViews.js +4 -4
  236. package/dist/integrations/elasticsearch.js +2 -26
  237. package/dist/integrations/googlesheets.js +6 -4
  238. package/dist/integrations/index.js +6 -15
  239. package/dist/integrations/s3.js +1 -157
  240. package/dist/middleware/appInfo.js +9 -14
  241. package/dist/middleware/authorized.js +21 -22
  242. package/dist/middleware/builder.js +40 -41
  243. package/dist/middleware/currentapp.js +37 -39
  244. package/dist/middleware/joi-validator.js +10 -17
  245. package/dist/middleware/publicApi.js +6 -5
  246. package/dist/middleware/resourceId.js +9 -16
  247. package/dist/middleware/selfhost.js +4 -5
  248. package/dist/middleware/utils.js +2 -5
  249. package/dist/migrations/functions/appUrls.js +2 -2
  250. package/dist/migrations/functions/backfill/global.js +1 -1
  251. package/dist/migrations/functions/usageQuotas/syncApps.js +4 -3
  252. package/dist/migrations/functions/usageQuotas/syncRows.js +4 -3
  253. package/dist/migrations/functions/userEmailViewCasing.js +3 -3
  254. package/dist/package.json +44 -10
  255. package/dist/sdk/app/backups/exports.js +2 -1
  256. package/dist/sdk/app/backups/imports.js +3 -2
  257. package/dist/sdk/app/tables/index.js +5 -5
  258. package/dist/startup.js +4 -4
  259. package/dist/tests/utilities/TestConfiguration.js +36 -30
  260. package/dist/tests/utilities/structures.js +4 -3
  261. package/dist/threads/automation.js +16 -15
  262. package/dist/threads/query.js +19 -17
  263. package/dist/threads/utils.js +9 -11
  264. package/dist/tsconfig.build.tsbuildinfo +1 -1
  265. package/dist/utilities/budibaseDir.js +2 -4
  266. package/dist/utilities/fileSystem/clientLibrary.js +12 -12
  267. package/dist/utilities/fileSystem/index.js +3 -3
  268. package/dist/utilities/fileSystem/utilities.js +22 -0
  269. package/dist/utilities/global.js +66 -87
  270. package/dist/utilities/index.js +75 -102
  271. package/dist/utilities/redis.js +65 -100
  272. package/dist/utilities/routing/index.js +23 -27
  273. package/dist/utilities/rowProcessor/index.js +191 -124
  274. package/dist/utilities/rowProcessor/utils.js +26 -35
  275. package/dist/utilities/security.js +35 -39
  276. package/dist/utilities/usageQuota/rows.js +49 -56
  277. package/dist/utilities/users.js +28 -31
  278. package/dist/utilities/workerRequests.js +82 -115
  279. package/dist/watch.js +2 -1
  280. package/package.json +45 -11
  281. package/scripts/exportAppTemplate.js +2 -2
  282. package/{src/tests/jestSetup.ts → scripts/jestSetup.js} +2 -11
  283. package/scripts/localdomain.js +6 -34
  284. package/src/api/controllers/{apikeys.ts → apikeys.js} +10 -10
  285. package/src/api/controllers/application.ts +42 -56
  286. package/src/api/controllers/auth.ts +3 -4
  287. package/src/api/controllers/{automation.ts → automation.js} +48 -48
  288. package/src/api/controllers/{cloud.ts → cloud.js} +24 -24
  289. package/src/api/controllers/component.ts +1 -2
  290. package/src/api/controllers/{datasource.ts → datasource.js} +47 -100
  291. package/src/api/controllers/deploy/{Deployment.ts → Deployment.js} +10 -13
  292. package/src/api/controllers/deploy/index.ts +25 -13
  293. package/src/api/controllers/{dev.ts → dev.js} +37 -31
  294. package/src/api/controllers/{layout.ts → layout.js} +8 -8
  295. package/src/api/controllers/{metadata.ts → metadata.js} +10 -11
  296. package/src/api/controllers/{permission.ts → permission.js} +46 -49
  297. package/src/api/controllers/plugin/index.ts +5 -4
  298. package/src/api/controllers/public/applications.ts +9 -15
  299. package/src/api/controllers/public/tables.ts +2 -2
  300. package/src/api/controllers/query/import/index.ts +3 -2
  301. package/src/api/controllers/query/index.ts +14 -11
  302. package/src/api/controllers/query/{validation.ts → validation.js} +7 -7
  303. package/src/api/controllers/{role.ts → role.js} +25 -21
  304. package/src/api/controllers/{routing.ts → routing.js} +34 -37
  305. package/src/api/controllers/row/ExternalRequest.ts +11 -9
  306. package/src/api/controllers/row/external.js +3 -3
  307. package/src/api/controllers/row/index.ts +9 -17
  308. package/src/api/controllers/row/internal.js +12 -11
  309. package/src/api/controllers/row/{internalSearch.ts → internalSearch.js} +68 -92
  310. package/src/api/controllers/row/{staticFormula.ts → staticFormula.js} +23 -28
  311. package/src/api/controllers/row/{utils.ts → utils.js} +18 -25
  312. package/src/api/controllers/screen.ts +6 -10
  313. package/src/api/controllers/script.js +11 -0
  314. package/src/api/controllers/static/index.ts +13 -9
  315. package/src/api/controllers/table/{bulkFormula.ts → bulkFormula.js} +25 -39
  316. package/src/api/controllers/table/{external.ts → external.js} +54 -86
  317. package/src/api/controllers/table/{index.ts → index.js} +17 -17
  318. package/src/api/controllers/table/internal.ts +6 -5
  319. package/src/api/controllers/table/utils.ts +21 -26
  320. package/src/api/controllers/{templates.ts → templates.js} +7 -10
  321. package/src/api/controllers/{user.ts → user.js} +49 -47
  322. package/src/api/controllers/view/{exporters.ts → exporters.js} +3 -5
  323. package/src/api/controllers/view/{index.ts → index.js} +27 -36
  324. package/src/api/controllers/view/{utils.ts → utils.js} +20 -26
  325. package/src/api/{index.ts → index.js} +22 -15
  326. package/src/api/routes/analytics.js +9 -0
  327. package/src/api/routes/apikeys.js +12 -0
  328. package/src/api/routes/application.ts +9 -17
  329. package/src/api/routes/auth.ts +2 -2
  330. package/src/api/routes/automation.js +85 -0
  331. package/src/api/routes/backup.ts +4 -8
  332. package/src/api/routes/cloud.js +14 -0
  333. package/src/api/routes/component.js +14 -0
  334. package/src/api/routes/datasource.js +51 -0
  335. package/src/api/routes/deploy.js +17 -0
  336. package/src/api/routes/dev.js +26 -0
  337. package/src/api/routes/integration.js +12 -0
  338. package/src/api/routes/layout.js +16 -0
  339. package/src/api/routes/{metadata.ts → metadata.js} +13 -13
  340. package/src/api/routes/migrations.js +14 -0
  341. package/src/api/routes/permission.js +33 -0
  342. package/src/api/routes/plugin.ts +6 -14
  343. package/src/api/routes/public/index.ts +10 -10
  344. package/src/api/routes/public/tests/compare.spec.js +1 -1
  345. package/src/api/routes/{query.ts → query.js} +22 -19
  346. package/src/api/routes/role.js +15 -0
  347. package/src/api/routes/routing.js +14 -0
  348. package/src/api/routes/row.ts +15 -13
  349. package/src/api/routes/screen.js +18 -0
  350. package/src/api/routes/script.js +10 -0
  351. package/src/api/routes/static.ts +10 -7
  352. package/src/api/routes/{table.ts → table.js} +13 -10
  353. package/src/api/routes/templates.js +16 -0
  354. package/src/api/routes/tests/analytics.spec.js +1 -1
  355. package/src/api/routes/tests/backup.spec.js +1 -9
  356. package/src/api/routes/tests/permissions.spec.js +1 -2
  357. package/src/api/routes/tests/query.spec.js +10 -15
  358. package/src/api/routes/tests/role.spec.js +9 -7
  359. package/src/api/routes/tests/routing.spec.js +1 -2
  360. package/src/api/routes/tests/row.spec.js +4 -3
  361. package/src/api/routes/tests/static.spec.js +2 -2
  362. package/src/api/routes/tests/table.spec.js +35 -38
  363. package/src/api/routes/tests/user.spec.js +1 -2
  364. package/src/api/routes/tests/utilities/TestFunctions.ts +8 -6
  365. package/src/api/routes/user.js +53 -0
  366. package/src/api/routes/utils/{validators.ts → validators.js} +37 -33
  367. package/src/api/routes/view.js +31 -0
  368. package/src/api/routes/webhook.ts +2 -2
  369. package/src/app.ts +4 -3
  370. package/src/automations/tests/updateRow.spec.js +1 -0
  371. package/src/automations/tests/utilities/index.js +4 -10
  372. package/src/automations/triggers.js +6 -5
  373. package/src/automations/utils.ts +12 -9
  374. package/src/constants/index.js +5 -3
  375. package/src/constants/screens.js +2 -2
  376. package/src/db/inMemoryView.js +3 -3
  377. package/src/db/linkedRows/LinkController.js +50 -4
  378. package/src/db/linkedRows/index.js +2 -2
  379. package/src/db/linkedRows/linkUtils.js +3 -3
  380. package/src/db/tests/linkController.spec.js +57 -73
  381. package/src/db/tests/linkTests.spec.js +14 -17
  382. package/src/db/{utils.ts → utils.js} +93 -77
  383. package/src/db/views/staticViews.js +4 -4
  384. package/src/integrations/base/sql.ts +1 -1
  385. package/src/integrations/base/sqlTable.ts +1 -1
  386. package/src/integrations/elasticsearch.ts +2 -32
  387. package/src/integrations/googlesheets.ts +7 -4
  388. package/src/integrations/index.ts +41 -45
  389. package/src/integrations/s3.ts +3 -179
  390. package/src/integrations/tests/s3.spec.ts +1 -85
  391. package/src/middleware/appInfo.js +19 -0
  392. package/src/middleware/authorized.ts +28 -21
  393. package/src/middleware/{builder.ts → builder.js} +15 -17
  394. package/src/middleware/{currentapp.ts → currentapp.js} +39 -42
  395. package/src/middleware/{joi-validator.ts → joi-validator.js} +8 -9
  396. package/src/middleware/publicApi.js +21 -0
  397. package/src/middleware/{resourceId.ts → resourceId.js} +11 -16
  398. package/src/middleware/{selfhost.ts → selfhost.js} +2 -4
  399. package/src/middleware/tests/authorized.spec.js +6 -5
  400. package/src/middleware/tests/currentapp.spec.js +63 -118
  401. package/src/middleware/{utils.ts → utils.js} +1 -3
  402. package/src/migrations/functions/appUrls.ts +2 -2
  403. package/src/migrations/functions/backfill/app/tables.ts +5 -2
  404. package/src/migrations/functions/backfill/global.ts +1 -1
  405. package/src/migrations/functions/tests/appUrls.spec.js +4 -4
  406. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +9 -14
  407. package/src/migrations/functions/usageQuotas/syncApps.ts +4 -3
  408. package/src/migrations/functions/usageQuotas/syncRows.ts +5 -4
  409. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +7 -7
  410. package/src/migrations/functions/userEmailViewCasing.ts +3 -3
  411. package/src/module.d.ts +14 -0
  412. package/src/sdk/app/backups/exports.ts +3 -5
  413. package/src/sdk/app/backups/imports.ts +14 -7
  414. package/src/sdk/app/backups/statistics.ts +18 -9
  415. package/src/sdk/app/tables/index.ts +8 -7
  416. package/src/startup.ts +2 -2
  417. package/src/tests/utilities/TestConfiguration.js +36 -42
  418. package/src/tests/utilities/structures.js +4 -3
  419. package/src/threads/automation.ts +16 -15
  420. package/src/threads/query.ts +16 -11
  421. package/src/threads/utils.ts +5 -4
  422. package/src/utilities/budibaseDir.js +3 -0
  423. package/src/utilities/fileSystem/clientLibrary.js +12 -12
  424. package/src/utilities/fileSystem/index.js +8 -8
  425. package/src/utilities/fileSystem/utilities.js +36 -0
  426. package/src/utilities/global.js +127 -0
  427. package/src/utilities/{index.ts → index.js} +32 -40
  428. package/src/utilities/{redis.ts → redis.js} +20 -21
  429. package/src/utilities/routing/index.js +25 -0
  430. package/src/utilities/rowProcessor/{index.ts → index.js} +142 -65
  431. package/src/utilities/rowProcessor/{utils.ts → utils.js} +15 -19
  432. package/src/utilities/security.js +71 -0
  433. package/src/utilities/usageQuota/{rows.ts → rows.js} +18 -14
  434. package/src/utilities/{users.ts → users.js} +13 -11
  435. package/src/utilities/{workerRequests.ts → workerRequests.js} +38 -43
  436. package/src/watch.ts +3 -2
  437. package/tsconfig.json +1 -3
  438. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +0 -190
  439. package/coverage/lcov-report/src/api/controllers/application.ts.html +0 -2038
  440. package/coverage/lcov-report/src/api/controllers/auth.ts.html +0 -301
  441. package/coverage/lcov-report/src/api/controllers/backup.ts.html +0 -148
  442. package/coverage/lcov-report/src/api/controllers/component.ts.html +0 -259
  443. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +0 -259
  444. package/coverage/lcov-report/src/api/controllers/deploy/index.html +0 -131
  445. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +0 -730
  446. package/coverage/lcov-report/src/api/controllers/index.html +0 -431
  447. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +0 -130
  448. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +0 -310
  449. package/coverage/lcov-report/src/api/controllers/plugin/index.html +0 -206
  450. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +0 -484
  451. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +0 -253
  452. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +0 -97
  453. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +0 -121
  454. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +0 -142
  455. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +0 -334
  456. package/coverage/lcov-report/src/api/controllers/public/index.html +0 -191
  457. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +0 -181
  458. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +0 -191
  459. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +0 -124
  460. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +0 -202
  461. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +0 -178
  462. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +0 -163
  463. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +0 -181
  464. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +0 -145
  465. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +0 -328
  466. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +0 -253
  467. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +0 -268
  468. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +0 -220
  469. package/coverage/lcov-report/src/api/controllers/query/import/index.html +0 -116
  470. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +0 -373
  471. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +0 -131
  472. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +0 -379
  473. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +0 -157
  474. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +0 -403
  475. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +0 -146
  476. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +0 -586
  477. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +0 -712
  478. package/coverage/lcov-report/src/api/controllers/query/index.html +0 -131
  479. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +0 -976
  480. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +0 -2320
  481. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +0 -541
  482. package/coverage/lcov-report/src/api/controllers/screen.ts.html +0 -463
  483. package/coverage/lcov-report/src/api/controllers/static/index.html +0 -116
  484. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +0 -688
  485. package/coverage/lcov-report/src/api/controllers/table/index.html +0 -176
  486. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +0 -661
  487. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +0 -1255
  488. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +0 -379
  489. package/coverage/lcov-report/src/api/routes/application.ts.html +0 -223
  490. package/coverage/lcov-report/src/api/routes/auth.ts.html +0 -109
  491. package/coverage/lcov-report/src/api/routes/deploy.ts.html +0 -148
  492. package/coverage/lcov-report/src/api/routes/dev.ts.html +0 -199
  493. package/coverage/lcov-report/src/api/routes/index.ts.html +0 -289
  494. package/coverage/lcov-report/src/api/routes/integration.ts.html +0 -133
  495. package/coverage/lcov-report/src/api/routes/migrations.ts.html +0 -127
  496. package/coverage/lcov-report/src/api/routes/permission.ts.html +0 -208
  497. package/coverage/lcov-report/src/api/routes/plugin.ts.html +0 -151
  498. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +0 -541
  499. package/coverage/lcov-report/src/api/routes/public/index.html +0 -191
  500. package/coverage/lcov-report/src/api/routes/public/index.ts.html +0 -502
  501. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +0 -116
  502. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +0 -328
  503. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +0 -313
  504. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +0 -598
  505. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +0 -586
  506. package/coverage/lcov-report/src/api/routes/public/users.ts.html +0 -511
  507. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +0 -238
  508. package/coverage/lcov-report/src/api/routes/public/utils/index.html +0 -116
  509. package/coverage/lcov-report/src/api/routes/row.ts.html +0 -883
  510. package/coverage/lcov-report/src/api/routes/screen.ts.html +0 -154
  511. package/coverage/lcov-report/src/api/routes/static.ts.html +0 -280
  512. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +0 -550
  513. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +0 -131
  514. package/coverage/lcov-report/src/api/routes/tests/utilities/index.js.html +0 -367
  515. package/coverage/lcov-report/src/app.ts.html +0 -400
  516. package/coverage/lcov-report/src/automations/logging/index.html +0 -116
  517. package/coverage/lcov-report/src/automations/logging/index.ts.html +0 -199
  518. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +0 -367
  519. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +0 -334
  520. package/coverage/lcov-report/src/automations/tests/utilities/index.html +0 -116
  521. package/coverage/lcov-report/src/automations/tests/utilities/index.js.html +0 -256
  522. package/coverage/lcov-report/src/automations/utils.ts.html +0 -886
  523. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.js.html +0 -2023
  524. package/coverage/lcov-report/src/db/defaultData/employeeImport.js.html +0 -541
  525. package/coverage/lcov-report/src/db/defaultData/expensesImport.js.html +0 -427
  526. package/coverage/lcov-report/src/db/defaultData/index.html +0 -176
  527. package/coverage/lcov-report/src/db/defaultData/inventoryImport.js.html +0 -403
  528. package/coverage/lcov-report/src/db/defaultData/jobsImport.js.html +0 -559
  529. package/coverage/lcov-report/src/db/dynamoClient.js.html +0 -466
  530. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.js.html +0 -226
  531. package/coverage/lcov-report/src/definitions/datasource.ts.html +0 -235
  532. package/coverage/lcov-report/src/definitions/index.html +0 -131
  533. package/coverage/lcov-report/src/environment.js.html +0 -445
  534. package/coverage/lcov-report/src/index.html +0 -191
  535. package/coverage/lcov-report/src/index.ts.html +0 -133
  536. package/coverage/lcov-report/src/integrations/airtable.ts.html +0 -529
  537. package/coverage/lcov-report/src/integrations/arangodb.ts.html +0 -415
  538. package/coverage/lcov-report/src/integrations/base/index.html +0 -161
  539. package/coverage/lcov-report/src/integrations/base/query.ts.html +0 -133
  540. package/coverage/lcov-report/src/integrations/base/sql.ts.html +0 -1951
  541. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +0 -691
  542. package/coverage/lcov-report/src/integrations/base/utils.ts.html +0 -121
  543. package/coverage/lcov-report/src/integrations/couchdb.ts.html +0 -406
  544. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +0 -745
  545. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +0 -634
  546. package/coverage/lcov-report/src/integrations/firebase.ts.html +0 -646
  547. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +0 -1312
  548. package/coverage/lcov-report/src/integrations/index.html +0 -371
  549. package/coverage/lcov-report/src/integrations/index.ts.html +0 -445
  550. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +0 -1006
  551. package/coverage/lcov-report/src/integrations/mongodb.ts.html +0 -1867
  552. package/coverage/lcov-report/src/integrations/mysql.ts.html +0 -952
  553. package/coverage/lcov-report/src/integrations/oracle.ts.html +0 -1474
  554. package/coverage/lcov-report/src/integrations/postgres.ts.html +0 -1069
  555. package/coverage/lcov-report/src/integrations/queries/index.html +0 -116
  556. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +0 -463
  557. package/coverage/lcov-report/src/integrations/redis.ts.html +0 -550
  558. package/coverage/lcov-report/src/integrations/rest.ts.html +0 -1381
  559. package/coverage/lcov-report/src/integrations/s3.ts.html +0 -862
  560. package/coverage/lcov-report/src/integrations/snowflake.ts.html +0 -376
  561. package/coverage/lcov-report/src/integrations/utils.ts.html +0 -1006
  562. package/coverage/lcov-report/src/middleware/authorized.ts.html +0 -460
  563. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +0 -187
  564. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +0 -163
  565. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +0 -151
  566. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +0 -206
  567. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +0 -172
  568. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +0 -226
  569. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +0 -151
  570. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +0 -151
  571. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +0 -166
  572. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +0 -532
  573. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +0 -283
  574. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +0 -146
  575. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +0 -265
  576. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +0 -232
  577. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +0 -724
  578. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +0 -161
  579. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +0 -106
  580. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +0 -235
  581. package/coverage/lcov-report/src/migrations/functions/index.html +0 -146
  582. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +0 -130
  583. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +0 -161
  584. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +0 -94
  585. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +0 -127
  586. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +0 -115
  587. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +0 -169
  588. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +0 -124
  589. package/coverage/lcov-report/src/migrations/index.ts.html +0 -403
  590. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +0 -205
  591. package/coverage/lcov-report/src/migrations/tests/index.html +0 -131
  592. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +0 -283
  593. package/coverage/lcov-report/src/sdk/app/automations/index.html +0 -131
  594. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +0 -100
  595. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +0 -214
  596. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +0 -91
  597. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +0 -604
  598. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +0 -682
  599. package/coverage/lcov-report/src/sdk/app/backups/index.html +0 -176
  600. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +0 -112
  601. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +0 -292
  602. package/coverage/lcov-report/src/sdk/app/tables/index.html +0 -116
  603. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +0 -265
  604. package/coverage/lcov-report/src/startup.ts.html +0 -499
  605. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.js.html +0 -1885
  606. package/coverage/lcov-report/src/tests/utilities/controllers.js.html +0 -133
  607. package/coverage/lcov-report/src/tests/utilities/index.html +0 -161
  608. package/coverage/lcov-report/src/tests/utilities/structures.js.html +0 -649
  609. package/coverage/lcov-report/src/threads/automation.ts.html +0 -1594
  610. package/coverage/lcov-report/src/threads/index.html +0 -161
  611. package/coverage/lcov-report/src/threads/index.ts.html +0 -418
  612. package/coverage/lcov-report/src/threads/query.ts.html +0 -961
  613. package/coverage/lcov-report/src/threads/utils.ts.html +0 -373
  614. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.js.html +0 -547
  615. package/coverage/lcov-report/src/utilities/fileSystem/index.js.html +0 -1141
  616. package/coverage/lcov-report/src/utilities/fileSystem/processor.js.html +0 -148
  617. package/coverage/lcov-report/src/utilities/redis.ts.html +0 -343
  618. package/coverage/lcov-report/src/utilities/routing/index.ts.html +0 -181
  619. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +0 -146
  620. package/coverage/lcov-report/src/utilities/rowProcessor/map.js.html +0 -370
  621. package/coverage/lcov-report/src/watch.ts.html +0 -196
  622. package/coverage/lcov-report/src/websocket.ts.html +0 -163
  623. package/dist/db/defaultData/datasource_bb_default.js +0 -565
  624. package/dist/db/defaultData/employeeImport.js +0 -153
  625. package/dist/db/defaultData/expensesImport.js +0 -115
  626. package/dist/db/defaultData/inventoryImport.js +0 -107
  627. package/dist/db/defaultData/jobsImport.js +0 -150
  628. package/dist/db/linkedRows/LinkDocument.js +0 -32
  629. package/dist/utilities/rowProcessor/map.js +0 -96
  630. package/jest.config.ts +0 -33
  631. package/src/api/controllers/script.ts +0 -12
  632. package/src/api/routes/analytics.ts +0 -9
  633. package/src/api/routes/apikeys.ts +0 -12
  634. package/src/api/routes/automation.ts +0 -87
  635. package/src/api/routes/cloud.ts +0 -18
  636. package/src/api/routes/component.ts +0 -14
  637. package/src/api/routes/datasource.ts +0 -60
  638. package/src/api/routes/deploy.ts +0 -21
  639. package/src/api/routes/dev.ts +0 -38
  640. package/src/api/routes/integration.ts +0 -16
  641. package/src/api/routes/layout.ts +0 -16
  642. package/src/api/routes/migrations.ts +0 -14
  643. package/src/api/routes/permission.ts +0 -41
  644. package/src/api/routes/role.ts +0 -24
  645. package/src/api/routes/routing.ts +0 -14
  646. package/src/api/routes/screen.ts +0 -23
  647. package/src/api/routes/script.ts +0 -10
  648. package/src/api/routes/templates.ts +0 -16
  649. package/src/api/routes/user.ts +0 -51
  650. package/src/api/routes/view.ts +0 -34
  651. package/src/db/defaultData/datasource_bb_default.js +0 -646
  652. package/src/db/defaultData/employeeImport.js +0 -152
  653. package/src/db/defaultData/expensesImport.js +0 -114
  654. package/src/db/defaultData/inventoryImport.js +0 -106
  655. package/src/db/defaultData/jobsImport.js +0 -158
  656. package/src/db/linkedRows/LinkDocument.js +0 -47
  657. package/src/middleware/appInfo.ts +0 -20
  658. package/src/middleware/publicApi.ts +0 -21
  659. package/src/utilities/budibaseDir.ts +0 -3
  660. package/src/utilities/global.ts +0 -138
  661. package/src/utilities/routing/index.ts +0 -32
  662. package/src/utilities/rowProcessor/map.js +0 -95
  663. package/src/utilities/security.ts +0 -65
@@ -8,40 +8,36 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.clientFetch = exports.fetch = void 0;
13
- const routing_1 = require("../../utilities/routing");
14
- const backend_core_1 = require("@budibase/backend-core");
11
+ const { getRoutingInfo } = require("../../utilities/routing");
12
+ const { getUserRoleHierarchy, BUILTIN_ROLE_IDS, } = require("@budibase/backend-core/roles");
15
13
  const URL_SEPARATOR = "/";
16
- class Routing {
17
- constructor() {
18
- this.json = {};
19
- }
20
- getTopLevel(fullpath) {
21
- if (fullpath.charAt(0) !== URL_SEPARATOR) {
22
- fullpath = URL_SEPARATOR + fullpath;
23
- }
24
- // replace the first value with the home route
25
- return URL_SEPARATOR + fullpath.split(URL_SEPARATOR)[1];
14
+ function Routing() {
15
+ this.json = {};
16
+ }
17
+ Routing.prototype.getTopLevel = function (fullpath) {
18
+ if (fullpath.charAt(0) !== URL_SEPARATOR) {
19
+ fullpath = URL_SEPARATOR + fullpath;
26
20
  }
27
- getScreensProp(fullpath) {
28
- const topLevel = this.getTopLevel(fullpath);
29
- if (!this.json[topLevel]) {
30
- this.json[topLevel] = {
31
- subpaths: {},
32
- };
33
- }
34
- if (!this.json[topLevel].subpaths[fullpath]) {
35
- this.json[topLevel].subpaths[fullpath] = {
36
- screens: {},
37
- };
38
- }
39
- return this.json[topLevel].subpaths[fullpath].screens;
21
+ // replace the first value with the home route
22
+ return URL_SEPARATOR + fullpath.split(URL_SEPARATOR)[1];
23
+ };
24
+ Routing.prototype.getScreensProp = function (fullpath) {
25
+ const topLevel = this.getTopLevel(fullpath);
26
+ if (!this.json[topLevel]) {
27
+ this.json[topLevel] = {
28
+ subpaths: {},
29
+ };
40
30
  }
41
- addScreenId(fullpath, roleId, screenId) {
42
- this.getScreensProp(fullpath)[roleId] = screenId;
31
+ if (!this.json[topLevel].subpaths[fullpath]) {
32
+ this.json[topLevel].subpaths[fullpath] = {
33
+ screens: {},
34
+ };
43
35
  }
44
- }
36
+ return this.json[topLevel].subpaths[fullpath].screens;
37
+ };
38
+ Routing.prototype.addScreenId = function (fullpath, roleId, screenId) {
39
+ this.getScreensProp(fullpath)[roleId] = screenId;
40
+ };
45
41
  /**
46
42
  * Gets the full routing structure by querying the routing view and processing the result into the tree.
47
43
  * @returns {Promise<object>} The routing structure, this is the full structure designed for use in the builder,
@@ -49,7 +45,7 @@ class Routing {
49
45
  */
50
46
  function getRoutingStructure() {
51
47
  return __awaiter(this, void 0, void 0, function* () {
52
- const screenRoutes = yield (0, routing_1.getRoutingInfo)();
48
+ const screenRoutes = yield getRoutingInfo();
53
49
  const routing = new Routing();
54
50
  for (let screenRoute of screenRoutes) {
55
51
  let fullpath = screenRoute.routing.route;
@@ -59,47 +55,38 @@ function getRoutingStructure() {
59
55
  return { routes: routing.json };
60
56
  });
61
57
  }
62
- function fetch(ctx) {
63
- return __awaiter(this, void 0, void 0, function* () {
64
- ctx.body = yield getRoutingStructure();
65
- });
66
- }
67
- exports.fetch = fetch;
68
- function clientFetch(ctx) {
69
- var _a, _b;
70
- return __awaiter(this, void 0, void 0, function* () {
71
- const routing = yield getRoutingStructure();
72
- let roleId = (_b = (_a = ctx.user) === null || _a === void 0 ? void 0 : _a.role) === null || _b === void 0 ? void 0 : _b._id;
73
- const roleIds = (yield backend_core_1.roles.getUserRoleHierarchy(roleId, {
74
- idOnly: true,
75
- }));
76
- for (let topLevel of Object.values(routing.routes)) {
77
- for (let subpathKey of Object.keys(topLevel.subpaths)) {
78
- let found = false;
79
- const subpath = topLevel.subpaths[subpathKey];
80
- const roleOptions = Object.keys(subpath.screens);
81
- if (roleOptions.length === 1 && !roleOptions[0]) {
82
- subpath.screenId = subpath.screens[roleOptions[0]];
83
- subpath.roleId = backend_core_1.roles.BUILTIN_ROLE_IDS.BASIC;
84
- found = true;
85
- }
86
- else {
87
- for (let roleId of roleIds) {
88
- if (roleId && roleOptions.indexOf(roleId) !== -1) {
89
- subpath.screenId = subpath.screens[roleId];
90
- subpath.roleId = roleId;
91
- found = true;
92
- break;
93
- }
58
+ exports.fetch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
59
+ ctx.body = yield getRoutingStructure();
60
+ });
61
+ exports.clientFetch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
62
+ const routing = yield getRoutingStructure();
63
+ let roleId = ctx.user.role._id;
64
+ const roleIds = yield getUserRoleHierarchy(roleId);
65
+ for (let topLevel of Object.values(routing.routes)) {
66
+ for (let subpathKey of Object.keys(topLevel.subpaths)) {
67
+ let found = false;
68
+ const subpath = topLevel.subpaths[subpathKey];
69
+ const roleOptions = Object.keys(subpath.screens);
70
+ if (roleOptions.length === 1 && !roleOptions[0]) {
71
+ subpath.screenId = subpath.screens[roleOptions[0]];
72
+ subpath.roleId = BUILTIN_ROLE_IDS.BASIC;
73
+ found = true;
74
+ }
75
+ else {
76
+ for (let roleId of roleIds) {
77
+ if (roleOptions.indexOf(roleId) !== -1) {
78
+ subpath.screenId = subpath.screens[roleId];
79
+ subpath.roleId = roleId;
80
+ found = true;
81
+ break;
94
82
  }
95
83
  }
96
- delete subpath.screens;
97
- if (!found) {
98
- delete topLevel.subpaths[subpathKey];
99
- }
84
+ }
85
+ delete subpath.screens;
86
+ if (!found) {
87
+ delete topLevel.subpaths[subpathKey];
100
88
  }
101
89
  }
102
- ctx.body = routing;
103
- });
104
- }
105
- exports.clientFetch = clientFetch;
90
+ }
91
+ ctx.body = routing;
92
+ });
@@ -28,8 +28,9 @@ const utils_3 = require("../../../integrations/utils");
28
28
  const string_templates_1 = require("@budibase/string-templates");
29
29
  // @ts-ignore
30
30
  const fp_1 = require("lodash/fp");
31
- const rowProcessor_1 = require("../../../utilities/rowProcessor");
32
- const backend_core_1 = require("@budibase/backend-core");
31
+ const utils_4 = require("../../../utilities/rowProcessor/utils");
32
+ // @ts-ignore
33
+ const context_1 = require("@budibase/backend-core/context");
33
34
  var External;
34
35
  (function (External) {
35
36
  function buildFilters(id, filters, table) {
@@ -155,7 +156,7 @@ var External;
155
156
  thisRow._id = generateIdForRow(row, table);
156
157
  thisRow.tableId = table._id;
157
158
  thisRow._rev = "rev";
158
- return (0, rowProcessor_1.processFormulas)(table, thisRow);
159
+ return (0, utils_4.processFormulas)(table, thisRow);
159
160
  }
160
161
  function fixArrayTypes(row, table) {
161
162
  for (let [fieldName, schema] of Object.entries(table.schema)) {
@@ -195,7 +196,6 @@ var External;
195
196
  }
196
197
  }
197
198
  inputProcessing(row, table) {
198
- var _a;
199
199
  if (!row) {
200
200
  return { row, manyRelationships: [] };
201
201
  }
@@ -235,11 +235,7 @@ var External;
235
235
  const linkTablePrimary = linkTable.primary[0];
236
236
  // one to many
237
237
  if (isOneSide(field)) {
238
- let id = row[key][0];
239
- if (typeof row[key] === "string") {
240
- id = (_a = decodeURIComponent(row[key]).match(/\[(.*?)\]/)) === null || _a === void 0 ? void 0 : _a[1];
241
- }
242
- newRow[field.foreignKey || linkTablePrimary] = (0, utils_1.breakRowIdField)(id)[0];
238
+ newRow[field.foreignKey || linkTablePrimary] = (0, utils_1.breakRowIdField)(row[key][0])[0];
243
239
  }
244
240
  // many to many
245
241
  else if (field.through) {
@@ -364,8 +360,8 @@ var External;
364
360
  }
365
361
  // Process some additional data types
366
362
  let finalRowArray = Object.values(finalRows);
367
- finalRowArray = (0, rowProcessor_1.processDates)(table, finalRowArray);
368
- finalRowArray = (0, rowProcessor_1.processFormulas)(table, finalRowArray);
363
+ finalRowArray = (0, utils_4.processDates)(table, finalRowArray);
364
+ finalRowArray = (0, utils_4.processFormulas)(table, finalRowArray);
369
365
  return finalRowArray.map((row) => this.squashRelationshipColumns(table, row, relationships));
370
366
  }
371
367
  /**
@@ -568,7 +564,7 @@ var External;
568
564
  throw "Unable to run without a table name";
569
565
  }
570
566
  if (!this.datasource) {
571
- const db = backend_core_1.context.getAppDB();
567
+ const db = (0, context_1.getAppDB)();
572
568
  this.datasource = yield db.get(datasourceId);
573
569
  if (!this.datasource || !this.datasource.entities) {
574
570
  throw "No tables found, fetch tables before query.";
@@ -22,7 +22,7 @@ var __rest = (this && this.__rest) || function (s, e) {
22
22
  const { DataSourceOperation, SortDirection, FieldTypes, NoEmptyFilterStrings, } = require("../../../constants");
23
23
  const { breakExternalTableId, breakRowIdField, } = require("../../../integrations/utils");
24
24
  const ExternalRequest = require("./ExternalRequest");
25
- const { context } = require("@budibase/backend-core");
25
+ const { getAppDB } = require("@budibase/backend-core/context");
26
26
  const exporters = require("../view/exporters");
27
27
  const { apiFileReturn } = require("../../../utilities/fileSystem");
28
28
  function handleRequest(operation, tableId, opts = {}) {
@@ -166,7 +166,7 @@ exports.validate = () => __awaiter(void 0, void 0, void 0, function* () {
166
166
  });
167
167
  exports.exportRows = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
168
168
  const { datasourceId } = breakExternalTableId(ctx.params.tableId);
169
- const db = context.getAppDB();
169
+ const db = getAppDB();
170
170
  const format = ctx.query.format;
171
171
  const { columns } = ctx.request.body;
172
172
  const datasource = yield db.get(datasourceId);
@@ -205,7 +205,7 @@ exports.fetchEnrichedRow = (ctx) => __awaiter(void 0, void 0, void 0, function*
205
205
  const id = ctx.params.rowId;
206
206
  const tableId = ctx.params.tableId;
207
207
  const { datasourceId, tableName } = breakExternalTableId(tableId);
208
- const db = context.getAppDB();
208
+ const db = getAppDB();
209
209
  const datasource = yield db.get(datasourceId);
210
210
  if (!datasource || !datasource.entities) {
211
211
  ctx.throw(400, "Datasource has not been configured for plus API.");
@@ -43,22 +43,13 @@ function patch(ctx) {
43
43
  if (body && !body._id) {
44
44
  return (0, exports.save)(ctx);
45
45
  }
46
- try {
47
- const { row, table } = yield pro_1.quotas.addQuery(() => pickApi(tableId).patch(ctx), {
48
- datasourceId: tableId,
49
- });
50
- if (!row) {
51
- ctx.throw(404, "Row not found");
52
- }
53
- ctx.status = 200;
54
- ctx.eventEmitter &&
55
- ctx.eventEmitter.emitRow(`row:update`, appId, row, table);
56
- ctx.message = `${table.name} updated successfully.`;
57
- ctx.body = row;
58
- }
59
- catch (err) {
60
- ctx.throw(400, err);
61
- }
46
+ const { row, table } = yield pro_1.quotas.addQuery(() => pickApi(tableId).patch(ctx), {
47
+ datasourceId: tableId,
48
+ });
49
+ ctx.status = 200;
50
+ ctx.eventEmitter && ctx.eventEmitter.emitRow(`row:update`, appId, row, table);
51
+ ctx.message = `${table.name} updated successfully.`;
52
+ ctx.body = row;
62
53
  });
63
54
  }
64
55
  exports.patch = patch;
@@ -21,6 +21,7 @@ var __rest = (this && this.__rest) || function (s, e) {
21
21
  };
22
22
  const linkRows = require("../../../db/linkedRows");
23
23
  const { generateRowID, getRowParams, getTableIDFromRowID, DocumentType, InternalTables, } = require("../../../db/utils");
24
+ const { dangerousGetDB } = require("@budibase/backend-core/db");
24
25
  const userController = require("../user");
25
26
  const { inputProcessing, outputProcessing, cleanupAttachments, } = require("../../../utilities/rowProcessor");
26
27
  const { FieldTypes } = require("../../../constants");
@@ -31,7 +32,7 @@ const inMemoryViews = require("../../../db/inMemoryView");
31
32
  const env = require("../../../environment");
32
33
  const { migrateToInMemoryView, migrateToDesignView, getFromDesignDoc, getFromMemoryDoc, } = require("../view/utils");
33
34
  const { cloneDeep } = require("lodash/fp");
34
- const { context, db: dbCore } = require("@budibase/backend-core");
35
+ const { getAppDB } = require("@budibase/backend-core/context");
35
36
  const { finaliseRow, updateRelatedFormula } = require("./staticFormula");
36
37
  const exporters = require("../view/exporters");
37
38
  const { apiFileReturn } = require("../../../utilities/fileSystem");
@@ -85,7 +86,7 @@ function getRawTableData(ctx, db, tableId) {
85
86
  });
86
87
  }
87
88
  exports.patch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
88
- const db = context.getAppDB();
89
+ const db = getAppDB();
89
90
  const inputs = ctx.request.body;
90
91
  const tableId = inputs.tableId;
91
92
  const isUserTable = tableId === InternalTables.USER_METADATA;
@@ -145,7 +146,7 @@ exports.patch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
145
146
  });
146
147
  exports.save = function (ctx) {
147
148
  return __awaiter(this, void 0, void 0, function* () {
148
- const db = context.getAppDB();
149
+ const db = getAppDB();
149
150
  let inputs = ctx.request.body;
150
151
  inputs.tableId = ctx.params.tableId;
151
152
  if (!inputs._rev && !inputs._id) {
@@ -181,7 +182,7 @@ exports.fetchView = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
181
182
  ctx.params.tableId = viewName;
182
183
  return exports.fetch(ctx);
183
184
  }
184
- const db = context.getAppDB();
185
+ const db = getAppDB();
185
186
  const { calculation, group, field } = ctx.query;
186
187
  const viewInfo = yield getView(db, viewName);
187
188
  let response;
@@ -226,14 +227,14 @@ exports.fetchView = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
226
227
  return rows;
227
228
  });
228
229
  exports.fetch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
229
- const db = context.getAppDB();
230
+ const db = getAppDB();
230
231
  const tableId = ctx.params.tableId;
231
232
  let table = yield db.get(tableId);
232
233
  let rows = yield getRawTableData(ctx, db, tableId);
233
234
  return outputProcessing(table, rows);
234
235
  });
235
236
  exports.find = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
236
- const db = dbCore.getDB(ctx.appId);
237
+ const db = dangerousGetDB(ctx.appId);
237
238
  const table = yield db.get(ctx.params.tableId);
238
239
  let row = yield findRow(ctx, ctx.params.tableId, ctx.params.rowId);
239
240
  row = yield outputProcessing(table, row);
@@ -241,7 +242,7 @@ exports.find = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
241
242
  });
242
243
  exports.destroy = function (ctx) {
243
244
  return __awaiter(this, void 0, void 0, function* () {
244
- const db = context.getAppDB();
245
+ const db = getAppDB();
245
246
  const { _id } = ctx.request.body;
246
247
  let row = yield db.get(_id);
247
248
  let _rev = ctx.request.body._rev || row._rev;
@@ -276,7 +277,7 @@ exports.destroy = function (ctx) {
276
277
  });
277
278
  };
278
279
  exports.bulkDestroy = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
279
- const db = context.getAppDB();
280
+ const db = getAppDB();
280
281
  const tableId = ctx.params.tableId;
281
282
  const table = yield db.get(tableId);
282
283
  let { rows } = ctx.request.body;
@@ -312,7 +313,7 @@ exports.search = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
312
313
  return { rows: yield exports.fetch(ctx) };
313
314
  }
314
315
  const { tableId } = ctx.params;
315
- const db = context.getAppDB();
316
+ const db = getAppDB();
316
317
  const _a = ctx.request.body, { paginate, query } = _a, params = __rest(_a, ["paginate", "query"]);
317
318
  params.version = ctx.version;
318
319
  params.tableId = tableId;
@@ -341,7 +342,7 @@ exports.validate = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
341
342
  });
342
343
  });
343
344
  exports.exportRows = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
344
- const db = context.getAppDB();
345
+ const db = getAppDB();
345
346
  const table = yield db.get(ctx.params.tableId);
346
347
  const rowIds = ctx.request.body.rows;
347
348
  let format = ctx.query.format;
@@ -372,7 +373,7 @@ exports.exportRows = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
372
373
  return apiFileReturn(exporter(headers, rows));
373
374
  });
374
375
  exports.fetchEnrichedRow = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
375
- const db = context.getAppDB();
376
+ const db = getAppDB();
376
377
  const tableId = ctx.params.tableId;
377
378
  const rowId = ctx.params.rowId;
378
379
  // need table to work out where links go in row
@@ -8,15 +8,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.fullSearch = exports.paginatedSearch = exports.QueryBuilder = void 0;
16
- const utils_1 = require("../../../db/utils");
17
- const utils_2 = require("./utils");
18
- const node_fetch_1 = __importDefault(require("node-fetch"));
19
- const backend_core_1 = require("@budibase/backend-core");
11
+ const { SearchIndexes } = require("../../../db/utils");
12
+ const { removeKeyNumbering } = require("./utils");
13
+ const fetch = require("node-fetch");
14
+ const { getCouchInfo } = require("@budibase/backend-core/db");
15
+ const { getAppId } = require("@budibase/backend-core/context");
20
16
  /**
21
17
  * Class to build lucene query URLs.
22
18
  * Optionally takes a base lucene query object.
@@ -28,11 +24,10 @@ class QueryBuilder {
28
24
  this.sortOrder = "ascending";
29
25
  this.sortType = "string";
30
26
  this.includeDocs = true;
27
+ this.version = null;
31
28
  }
32
29
  setVersion(version) {
33
- if (version != null) {
34
- this.version = version;
35
- }
30
+ this.version = version;
36
31
  return this;
37
32
  }
38
33
  setTable(tableId) {
@@ -64,9 +59,7 @@ class QueryBuilder {
64
59
  return this;
65
60
  }
66
61
  setBookmark(bookmark) {
67
- if (bookmark != null) {
68
- this.bookmark = bookmark;
69
- }
62
+ this.bookmark = bookmark;
70
63
  return this;
71
64
  }
72
65
  excludeDocs() {
@@ -82,7 +75,7 @@ class QueryBuilder {
82
75
  return this;
83
76
  }
84
77
  addRange(key, low, high) {
85
- this.query.range[key] = {
78
+ this.query.range = {
86
79
  low,
87
80
  high,
88
81
  };
@@ -181,7 +174,6 @@ class QueryBuilder {
181
174
  return `${key}:(${statement})`;
182
175
  };
183
176
  const notContains = (key, value) => {
184
- // @ts-ignore
185
177
  const allPrefix = allOr === "" ? "*:* AND" : "";
186
178
  return allPrefix + "NOT " + contains(key, value);
187
179
  };
@@ -206,7 +198,7 @@ class QueryBuilder {
206
198
  function build(structure, queryFn) {
207
199
  for (let [key, value] of Object.entries(structure)) {
208
200
  // check for new format - remove numbering if needed
209
- key = (0, utils_2.removeKeyNumbering)(key);
201
+ key = removeKeyNumbering(key);
210
202
  key = builder.preprocess(key.replace(/ /g, "_"), {
211
203
  escape: true,
212
204
  });
@@ -275,10 +267,10 @@ class QueryBuilder {
275
267
  });
276
268
  }
277
269
  if (this.query.empty) {
278
- build(this.query.empty, (key) => `!${key}:["" TO *]`);
270
+ build(this.query.empty, key => `!${key}:["" TO *]`);
279
271
  }
280
272
  if (this.query.notEmpty) {
281
- build(this.query.notEmpty, (key) => `${key}:["" TO *]`);
273
+ build(this.query.notEmpty, key => `${key}:["" TO *]`);
282
274
  }
283
275
  if (this.query.oneOf) {
284
276
  build(this.query.oneOf, oneOf);
@@ -318,14 +310,15 @@ class QueryBuilder {
318
310
  }
319
311
  run() {
320
312
  return __awaiter(this, void 0, void 0, function* () {
321
- const appId = backend_core_1.context.getAppId();
322
- const { url, cookie } = backend_core_1.db.getCouchInfo();
323
- const fullPath = `${url}/${appId}/_design/database/_search/${utils_1.SearchIndexes.ROWS}`;
313
+ const appId = getAppId();
314
+ const { url, cookie } = getCouchInfo();
315
+ const fullPath = `${url}/${appId}/_design/database/_search/${SearchIndexes.ROWS}`;
324
316
  const body = this.buildSearchBody();
325
317
  return yield runQuery(fullPath, body, cookie);
326
318
  });
327
319
  }
328
320
  }
321
+ // exported for unit testing
329
322
  exports.QueryBuilder = QueryBuilder;
330
323
  /**
331
324
  * Executes a lucene search query.
@@ -335,7 +328,7 @@ exports.QueryBuilder = QueryBuilder;
335
328
  * @returns {Promise<{rows: []}>}
336
329
  */
337
330
  const runQuery = (url, body, cookie) => __awaiter(void 0, void 0, void 0, function* () {
338
- const response = yield (0, node_fetch_1.default)(url, {
331
+ const response = yield fetch(url, {
339
332
  body: JSON.stringify(body),
340
333
  method: "POST",
341
334
  headers: {
@@ -347,7 +340,7 @@ const runQuery = (url, body, cookie) => __awaiter(void 0, void 0, void 0, functi
347
340
  rows: [],
348
341
  };
349
342
  if (json.rows != null && json.rows.length > 0) {
350
- output.rows = json.rows.map((row) => row.doc);
343
+ output.rows = json.rows.map(row => row.doc);
351
344
  }
352
345
  if (json.bookmark) {
353
346
  output.bookmark = json.bookmark;
@@ -370,36 +363,34 @@ const runQuery = (url, body, cookie) => __awaiter(void 0, void 0, void 0, functi
370
363
  * rows {array|null} Current results in the recursive search
371
364
  * @returns {Promise<*[]|*>}
372
365
  */
373
- function recursiveSearch(query, params) {
374
- return __awaiter(this, void 0, void 0, function* () {
375
- const bookmark = params.bookmark;
376
- const rows = params.rows || [];
377
- if (rows.length >= params.limit) {
378
- return rows;
379
- }
380
- let pageSize = 200;
381
- if (rows.length > params.limit - 200) {
382
- pageSize = params.limit - rows.length;
383
- }
384
- const page = yield new QueryBuilder(query)
385
- .setVersion(params.version)
386
- .setTable(params.tableId)
387
- .setBookmark(bookmark)
388
- .setLimit(pageSize)
389
- .setSort(params.sort)
390
- .setSortOrder(params.sortOrder)
391
- .setSortType(params.sortType)
392
- .run();
393
- if (!page.rows.length) {
394
- return rows;
395
- }
396
- if (page.rows.length < 200) {
397
- return [...rows, ...page.rows];
398
- }
399
- const newParams = Object.assign(Object.assign({}, params), { bookmark: page.bookmark, rows: [...rows, ...page.rows] });
400
- return yield recursiveSearch(query, newParams);
401
- });
402
- }
366
+ const recursiveSearch = (query, params) => __awaiter(void 0, void 0, void 0, function* () {
367
+ const bookmark = params.bookmark;
368
+ const rows = params.rows || [];
369
+ if (rows.length >= params.limit) {
370
+ return rows;
371
+ }
372
+ let pageSize = 200;
373
+ if (rows.length > params.limit - 200) {
374
+ pageSize = params.limit - rows.length;
375
+ }
376
+ const page = yield new QueryBuilder(query)
377
+ .setVersion(params.version)
378
+ .setTable(params.tableId)
379
+ .setBookmark(bookmark)
380
+ .setLimit(pageSize)
381
+ .setSort(params.sort)
382
+ .setSortOrder(params.sortOrder)
383
+ .setSortType(params.sortType)
384
+ .run();
385
+ if (!page.rows.length) {
386
+ return rows;
387
+ }
388
+ if (page.rows.length < 200) {
389
+ return [...rows, ...page.rows];
390
+ }
391
+ const newParams = Object.assign(Object.assign({}, params), { bookmark: page.bookmark, rows: [...rows, ...page.rows] });
392
+ return yield recursiveSearch(query, newParams);
393
+ });
403
394
  /**
404
395
  * Performs a paginated search. A bookmark will be returned to allow the next
405
396
  * page to be fetched. There is a max limit off 200 results per page in a
@@ -415,34 +406,31 @@ function recursiveSearch(query, params) {
415
406
  * bookmark {string} The bookmark to resume from
416
407
  * @returns {Promise<{hasNextPage: boolean, rows: *[]}>}
417
408
  */
418
- function paginatedSearch(query, params) {
419
- return __awaiter(this, void 0, void 0, function* () {
420
- let limit = params.limit;
421
- if (limit == null || isNaN(limit) || limit < 0) {
422
- limit = 50;
423
- }
424
- limit = Math.min(limit, 200);
425
- const search = new QueryBuilder(query)
426
- .setVersion(params.version)
427
- .setTable(params.tableId)
428
- .setSort(params.sort)
429
- .setSortOrder(params.sortOrder)
430
- .setSortType(params.sortType);
431
- const searchResults = yield search
432
- .setBookmark(params.bookmark)
433
- .setLimit(limit)
434
- .run();
435
- // Try fetching 1 row in the next page to see if another page of results
436
- // exists or not
437
- const nextResults = yield search
438
- .setTable(params.tableId)
439
- .setBookmark(searchResults.bookmark)
440
- .setLimit(1)
441
- .run();
442
- return Object.assign(Object.assign({}, searchResults), { hasNextPage: nextResults.rows && nextResults.rows.length > 0 });
443
- });
444
- }
445
- exports.paginatedSearch = paginatedSearch;
409
+ exports.paginatedSearch = (query, params) => __awaiter(void 0, void 0, void 0, function* () {
410
+ let limit = params.limit;
411
+ if (limit == null || isNaN(limit) || limit < 0) {
412
+ limit = 50;
413
+ }
414
+ limit = Math.min(limit, 200);
415
+ const search = new QueryBuilder(query)
416
+ .setVersion(params.version)
417
+ .setTable(params.tableId)
418
+ .setSort(params.sort)
419
+ .setSortOrder(params.sortOrder)
420
+ .setSortType(params.sortType);
421
+ const searchResults = yield search
422
+ .setBookmark(params.bookmark)
423
+ .setLimit(limit)
424
+ .run();
425
+ // Try fetching 1 row in the next page to see if another page of results
426
+ // exists or not
427
+ const nextResults = yield search
428
+ .setTable(params.tableId)
429
+ .setBookmark(searchResults.bookmark)
430
+ .setLimit(1)
431
+ .run();
432
+ return Object.assign(Object.assign({}, searchResults), { hasNextPage: nextResults.rows && nextResults.rows.length > 0 });
433
+ });
446
434
  /**
447
435
  * Performs a full search, fetching multiple pages if required to return the
448
436
  * desired amount of results. There is a limit of 1000 results to avoid
@@ -458,15 +446,12 @@ exports.paginatedSearch = paginatedSearch;
458
446
  * limit {number} The desired number of results
459
447
  * @returns {Promise<{rows: *}>}
460
448
  */
461
- function fullSearch(query, params) {
462
- return __awaiter(this, void 0, void 0, function* () {
463
- let limit = params.limit;
464
- if (limit == null || isNaN(limit) || limit < 0) {
465
- limit = 1000;
466
- }
467
- params.limit = Math.min(limit, 1000);
468
- const rows = yield recursiveSearch(query, params);
469
- return { rows };
470
- });
471
- }
472
- exports.fullSearch = fullSearch;
449
+ exports.fullSearch = (query, params) => __awaiter(void 0, void 0, void 0, function* () {
450
+ let limit = params.limit;
451
+ if (limit == null || isNaN(limit) || limit < 0) {
452
+ limit = 1000;
453
+ }
454
+ params.limit = Math.min(limit, 1000);
455
+ const rows = yield recursiveSearch(query, params);
456
+ return { rows };
457
+ });