@budibase/server 1.0.80 → 1.0.81-alpha.2

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 (322) hide show
  1. package/__mocks__/node-fetch.ts +1 -0
  2. package/builder/assets/{index.c8d1e8f0.css → index.8b1dc06c.css} +2 -2
  3. package/builder/assets/index.e4d4c510.js +1291 -0
  4. package/builder/assets/{vendor.20f80cec.js → vendor.a7c6ad0a.js} +190 -216
  5. package/builder/index.html +3 -3
  6. package/coverage/clover.xml +2531 -2440
  7. package/coverage/coverage-final.json +138 -137
  8. package/coverage/lcov-report/api/controllers/analytics.js.html +6 -6
  9. package/coverage/lcov-report/api/controllers/apikeys.js.html +6 -6
  10. package/coverage/lcov-report/api/controllers/application.js.html +152 -149
  11. package/coverage/lcov-report/api/controllers/auth.js.html +7 -7
  12. package/coverage/lcov-report/api/controllers/automation.js.html +21 -21
  13. package/coverage/lcov-report/api/controllers/backup.js.html +3 -3
  14. package/coverage/lcov-report/api/controllers/cloud.js.html +11 -11
  15. package/coverage/lcov-report/api/controllers/component.js.html +5 -5
  16. package/coverage/lcov-report/api/controllers/datasource.js.html +16 -16
  17. package/coverage/lcov-report/api/controllers/dev.js.html +19 -19
  18. package/coverage/lcov-report/api/controllers/index.html +16 -16
  19. package/coverage/lcov-report/api/controllers/integration.js.html +4 -4
  20. package/coverage/lcov-report/api/controllers/layout.js.html +6 -6
  21. package/coverage/lcov-report/api/controllers/metadata.js.html +9 -9
  22. package/coverage/lcov-report/api/controllers/migrations.js.html +4 -4
  23. package/coverage/lcov-report/api/controllers/permission.js.html +15 -15
  24. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  25. package/coverage/lcov-report/api/controllers/query/index.js.html +26 -26
  26. package/coverage/lcov-report/api/controllers/query/validation.js.html +10 -10
  27. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  28. package/coverage/lcov-report/api/controllers/routing.js.html +9 -9
  29. package/coverage/lcov-report/api/controllers/row/external.js.html +86 -23
  30. package/coverage/lcov-report/api/controllers/row/index.html +46 -46
  31. package/coverage/lcov-report/api/controllers/row/index.js.html +76 -49
  32. package/coverage/lcov-report/api/controllers/row/internal.js.html +144 -84
  33. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +204 -204
  34. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +24 -24
  35. package/coverage/lcov-report/api/controllers/row/utils.js.html +29 -29
  36. package/coverage/lcov-report/api/controllers/screen.js.html +7 -7
  37. package/coverage/lcov-report/api/controllers/script.js.html +4 -4
  38. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +49 -49
  39. package/coverage/lcov-report/api/controllers/table/external.js.html +62 -20
  40. package/coverage/lcov-report/api/controllers/table/index.html +20 -20
  41. package/coverage/lcov-report/api/controllers/table/index.js.html +47 -44
  42. package/coverage/lcov-report/api/controllers/table/internal.js.html +50 -50
  43. package/coverage/lcov-report/api/controllers/table/utils.js.html +80 -80
  44. package/coverage/lcov-report/api/controllers/templates.js.html +5 -5
  45. package/coverage/lcov-report/api/controllers/user.js.html +19 -19
  46. package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
  47. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  48. package/coverage/lcov-report/api/controllers/view/index.js.html +14 -14
  49. package/coverage/lcov-report/api/controllers/view/utils.js.html +12 -12
  50. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
  51. package/coverage/lcov-report/api/controllers/webhook.js.html +18 -27
  52. package/coverage/lcov-report/api/index.html +10 -10
  53. package/coverage/lcov-report/api/index.js.html +37 -28
  54. package/coverage/lcov-report/api/routes/analytics.js.html +6 -6
  55. package/coverage/lcov-report/api/routes/apikeys.js.html +8 -8
  56. package/coverage/lcov-report/api/routes/application.js.html +9 -9
  57. package/coverage/lcov-report/api/routes/auth.js.html +6 -6
  58. package/coverage/lcov-report/api/routes/automation.js.html +19 -109
  59. package/coverage/lcov-report/api/routes/backup.js.html +8 -8
  60. package/coverage/lcov-report/api/routes/cloud.js.html +8 -8
  61. package/coverage/lcov-report/api/routes/component.js.html +8 -8
  62. package/coverage/lcov-report/api/routes/datasource.js.html +18 -156
  63. package/coverage/lcov-report/api/routes/deploy.js.html +8 -8
  64. package/coverage/lcov-report/api/routes/dev.js.html +13 -13
  65. package/coverage/lcov-report/api/routes/index.html +35 -35
  66. package/coverage/lcov-report/api/routes/index.js.html +38 -32
  67. package/coverage/lcov-report/api/routes/integration.js.html +8 -8
  68. package/coverage/lcov-report/api/routes/layout.js.html +8 -8
  69. package/coverage/lcov-report/api/routes/metadata.js.html +9 -9
  70. package/coverage/lcov-report/api/routes/migrations.js.html +7 -7
  71. package/coverage/lcov-report/api/routes/permission.js.html +16 -58
  72. package/coverage/lcov-report/api/routes/query.js.html +10 -10
  73. package/coverage/lcov-report/api/routes/role.js.html +15 -78
  74. package/coverage/lcov-report/api/routes/routing.js.html +8 -8
  75. package/coverage/lcov-report/api/routes/row.js.html +80 -14
  76. package/coverage/lcov-report/api/routes/screen.js.html +14 -95
  77. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/static.js.html +13 -13
  79. package/coverage/lcov-report/api/routes/table.js.html +17 -62
  80. package/coverage/lcov-report/api/routes/templates.js.html +8 -8
  81. package/coverage/lcov-report/api/routes/user.js.html +8 -8
  82. package/coverage/lcov-report/api/routes/utils/index.html +111 -0
  83. package/coverage/lcov-report/api/routes/utils/validators.js.html +737 -0
  84. package/coverage/lcov-report/api/routes/view.js.html +10 -10
  85. package/coverage/lcov-report/api/routes/webhook.js.html +14 -62
  86. package/coverage/lcov-report/automations/actions.js.html +24 -24
  87. package/coverage/lcov-report/automations/automationUtils.js.html +5 -5
  88. package/coverage/lcov-report/automations/bullboard.js.html +16 -16
  89. package/coverage/lcov-report/automations/index.html +1 -1
  90. package/coverage/lcov-report/automations/index.js.html +7 -7
  91. package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
  92. package/coverage/lcov-report/automations/steps/createRow.js.html +7 -7
  93. package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
  94. package/coverage/lcov-report/automations/steps/deleteRow.js.html +7 -7
  95. package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
  96. package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
  97. package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
  98. package/coverage/lcov-report/automations/steps/filter.js.html +12 -9
  99. package/coverage/lcov-report/automations/steps/index.html +1 -1
  100. package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
  101. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
  102. package/coverage/lcov-report/automations/steps/queryRows.js.html +11 -11
  103. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
  104. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
  105. package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
  106. package/coverage/lcov-report/automations/steps/updateRow.js.html +6 -6
  107. package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
  108. package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
  109. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  110. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  111. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  112. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  113. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  114. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  115. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  116. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  117. package/coverage/lcov-report/automations/triggers.js.html +26 -26
  118. package/coverage/lcov-report/automations/utils.js.html +35 -35
  119. package/coverage/lcov-report/constants/index.html +5 -5
  120. package/coverage/lcov-report/constants/index.js.html +40 -28
  121. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  122. package/coverage/lcov-report/constants/screens.js.html +4 -4
  123. package/coverage/lcov-report/db/client.js.html +18 -18
  124. package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
  125. package/coverage/lcov-report/db/index.html +15 -15
  126. package/coverage/lcov-report/db/index.js.html +3 -3
  127. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +21 -21
  128. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  129. package/coverage/lcov-report/db/linkedRows/index.js.html +36 -36
  130. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +30 -30
  131. package/coverage/lcov-report/db/newid.js.html +4 -4
  132. package/coverage/lcov-report/db/utils.js.html +123 -87
  133. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  134. package/coverage/lcov-report/events/index.html +1 -1
  135. package/coverage/lcov-report/events/index.js.html +8 -8
  136. package/coverage/lcov-report/events/utils.js.html +18 -18
  137. package/coverage/lcov-report/index.html +91 -76
  138. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  139. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  140. package/coverage/lcov-report/middleware/appInfo.js.html +5 -5
  141. package/coverage/lcov-report/middleware/authorized.js.html +29 -29
  142. package/coverage/lcov-report/middleware/builder.js.html +16 -16
  143. package/coverage/lcov-report/middleware/currentapp.js.html +44 -44
  144. package/coverage/lcov-report/middleware/index.html +1 -1
  145. package/coverage/lcov-report/middleware/joi-validator.js.html +14 -14
  146. package/coverage/lcov-report/middleware/resourceId.js.html +29 -29
  147. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  148. package/coverage/lcov-report/middleware/usageQuota.js.html +17 -17
  149. package/coverage/lcov-report/middleware/utils.js.html +4 -4
  150. package/coverage/lcov-report/threads/automation.js.html +1 -1
  151. package/coverage/lcov-report/threads/index.html +19 -19
  152. package/coverage/lcov-report/threads/index.js.html +10 -10
  153. package/coverage/lcov-report/threads/query.js.html +123 -39
  154. package/coverage/lcov-report/threads/utils.js.html +14 -14
  155. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  156. package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
  157. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  158. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  159. package/coverage/lcov-report/utilities/global.js.html +28 -28
  160. package/coverage/lcov-report/utilities/index.html +18 -18
  161. package/coverage/lcov-report/utilities/index.js.html +24 -24
  162. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +9 -9
  163. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  164. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  165. package/coverage/lcov-report/utilities/routing/index.js.html +6 -6
  166. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  167. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +60 -60
  168. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +13 -13
  169. package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
  170. package/coverage/lcov-report/utilities/security.js.html +8 -8
  171. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  172. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  173. package/coverage/lcov-report/utilities/usageQuota/index.js.html +12 -12
  174. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +8 -8
  175. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  176. package/coverage/lcov-report/utilities/users.js.html +5 -5
  177. package/coverage/lcov-report/utilities/workerRequests.js.html +200 -53
  178. package/coverage/lcov.info +3555 -3411
  179. package/dist/api/controllers/application.js +1 -0
  180. package/dist/api/controllers/public/applications.js +94 -0
  181. package/dist/api/controllers/public/mapping/applications.js +29 -0
  182. package/dist/api/controllers/public/mapping/index.js +11 -0
  183. package/dist/api/controllers/public/mapping/queries.js +36 -0
  184. package/dist/api/controllers/public/mapping/rows.js +24 -0
  185. package/dist/api/controllers/public/mapping/tables.js +23 -0
  186. package/dist/api/controllers/public/mapping/types.js +2 -0
  187. package/dist/api/controllers/public/mapping/users.js +29 -0
  188. package/dist/api/controllers/public/queries.js +38 -0
  189. package/dist/api/controllers/public/rows.js +97 -0
  190. package/dist/api/controllers/public/tables.js +75 -0
  191. package/dist/api/controllers/public/users.js +95 -0
  192. package/dist/api/controllers/public/utils.js +49 -0
  193. package/dist/api/controllers/row/external.js +18 -0
  194. package/dist/api/controllers/row/index.js +11 -0
  195. package/dist/api/controllers/row/internal.js +15 -1
  196. package/dist/api/controllers/table/external.js +8 -2
  197. package/dist/api/controllers/table/index.js +2 -1
  198. package/dist/api/controllers/webhook.js +3 -5
  199. package/dist/api/index.js +3 -1
  200. package/dist/api/routes/automation.js +3 -31
  201. package/dist/api/routes/datasource.js +3 -50
  202. package/dist/api/routes/index.js +2 -0
  203. package/dist/api/routes/permission.js +4 -14
  204. package/dist/api/routes/public/applications.js +141 -0
  205. package/dist/api/routes/public/index.js +101 -0
  206. package/dist/api/routes/public/middleware/mapper.js +94 -0
  207. package/dist/api/routes/public/queries.js +77 -0
  208. package/dist/api/routes/public/rows.js +229 -0
  209. package/dist/api/routes/public/tables.js +154 -0
  210. package/dist/api/routes/public/users.js +137 -0
  211. package/dist/api/routes/public/utils/Endpoint.js +36 -0
  212. package/dist/api/routes/role.js +3 -19
  213. package/dist/api/routes/row.js +18 -5
  214. package/dist/api/routes/screen.js +2 -23
  215. package/dist/api/routes/table.js +3 -17
  216. package/dist/api/routes/tests/utilities/index.js +23 -0
  217. package/dist/api/routes/utils/validators.js +200 -0
  218. package/dist/api/routes/webhook.js +2 -17
  219. package/dist/automations/steps/filter.js +2 -2
  220. package/dist/automations/steps/queryRows.js +1 -1
  221. package/dist/automations/utils.js +2 -2
  222. package/dist/constants/index.js +3 -0
  223. package/dist/db/utils.js +11 -0
  224. package/dist/definitions/openapi.js +6 -0
  225. package/dist/environment.js +1 -0
  226. package/dist/integrations/base/sql.js +16 -1
  227. package/dist/integrations/base/sqlTable.js +21 -9
  228. package/dist/integrations/googlesheets.js +3 -0
  229. package/dist/integrations/microsoftSqlServer.js +60 -43
  230. package/dist/integrations/mysql.js +3 -0
  231. package/dist/integrations/oracle.js +14 -19
  232. package/dist/integrations/postgres.js +34 -28
  233. package/dist/integrations/utils.js +32 -15
  234. package/dist/package.json +11 -7
  235. package/dist/tests/utilities/TestConfiguration.js +25 -8
  236. package/dist/threads/query.js +33 -8
  237. package/dist/tsconfig.tsbuildinfo +1 -1
  238. package/dist/utilities/workerRequests.js +50 -15
  239. package/package.json +12 -8
  240. package/scripts/integrations/mssql/data/setup.sql +18 -1
  241. package/scripts/integrations/oracle/oracle.md +2 -2
  242. package/scripts/integrations/postgres/init.sql +11 -3
  243. package/scripts/likeCypress.ts +9 -6
  244. package/specs/generate.js +94 -0
  245. package/specs/openapi.json +2232 -0
  246. package/specs/openapi.yaml +1538 -0
  247. package/specs/parameters.js +59 -0
  248. package/specs/resources/application.js +101 -0
  249. package/specs/resources/index.js +24 -0
  250. package/specs/resources/misc.js +12 -0
  251. package/specs/resources/query.js +189 -0
  252. package/specs/resources/row.js +125 -0
  253. package/specs/resources/table.js +191 -0
  254. package/specs/resources/user.js +126 -0
  255. package/specs/resources/utils/Resource.js +26 -0
  256. package/specs/resources/utils/index.js +11 -0
  257. package/specs/security.js +7 -0
  258. package/src/api/controllers/application.js +1 -0
  259. package/src/api/controllers/public/applications.ts +74 -0
  260. package/src/api/controllers/public/mapping/applications.ts +32 -0
  261. package/src/api/controllers/public/mapping/index.ts +13 -0
  262. package/src/api/controllers/public/mapping/queries.ts +39 -0
  263. package/src/api/controllers/public/mapping/rows.ts +31 -0
  264. package/src/api/controllers/public/mapping/tables.ts +26 -0
  265. package/src/api/controllers/public/mapping/types.ts +13 -0
  266. package/src/api/controllers/public/mapping/users.ts +32 -0
  267. package/src/api/controllers/public/queries.ts +20 -0
  268. package/src/api/controllers/public/rows.ts +77 -0
  269. package/src/api/controllers/public/tables.ts +56 -0
  270. package/src/api/controllers/public/users.ts +82 -0
  271. package/src/api/controllers/public/utils.ts +38 -0
  272. package/src/api/controllers/row/ExternalRequest.ts +1 -1
  273. package/src/api/controllers/row/external.js +21 -0
  274. package/src/api/controllers/row/index.js +9 -0
  275. package/src/api/controllers/row/internal.js +20 -0
  276. package/src/api/controllers/table/external.js +16 -2
  277. package/src/api/controllers/table/index.js +2 -1
  278. package/src/api/controllers/webhook.js +3 -6
  279. package/src/api/index.js +4 -1
  280. package/src/api/routes/automation.js +3 -33
  281. package/src/api/routes/datasource.js +6 -52
  282. package/src/api/routes/index.js +2 -0
  283. package/src/api/routes/permission.js +4 -18
  284. package/src/api/routes/public/applications.ts +156 -0
  285. package/src/api/routes/public/index.ts +118 -0
  286. package/src/api/routes/public/middleware/mapper.ts +81 -0
  287. package/src/api/routes/public/queries.ts +81 -0
  288. package/src/api/routes/public/rows.ts +242 -0
  289. package/src/api/routes/public/tables.ts +169 -0
  290. package/src/api/routes/public/tests/compare.spec.js +184 -0
  291. package/src/api/routes/public/users.ts +144 -0
  292. package/src/api/routes/public/utils/Endpoint.ts +51 -0
  293. package/src/api/routes/role.js +3 -24
  294. package/src/api/routes/row.js +24 -2
  295. package/src/api/routes/screen.js +2 -29
  296. package/src/api/routes/table.js +4 -19
  297. package/src/api/routes/tests/utilities/index.js +24 -0
  298. package/src/api/routes/utils/validators.js +219 -0
  299. package/src/api/routes/webhook.js +2 -18
  300. package/src/automations/steps/filter.js +3 -2
  301. package/src/automations/steps/queryRows.js +1 -1
  302. package/src/automations/utils.js +2 -2
  303. package/src/constants/index.js +4 -0
  304. package/src/db/utils.js +12 -0
  305. package/src/definitions/common.ts +4 -0
  306. package/src/definitions/datasource.ts +7 -0
  307. package/src/definitions/openapi.ts +943 -0
  308. package/src/environment.js +1 -0
  309. package/src/integrations/base/datasourcePlus.ts +3 -0
  310. package/src/integrations/base/sql.ts +16 -1
  311. package/src/integrations/base/sqlTable.ts +35 -13
  312. package/src/integrations/googlesheets.ts +5 -2
  313. package/src/integrations/microsoftSqlServer.ts +86 -61
  314. package/src/integrations/mysql.ts +4 -0
  315. package/src/integrations/oracle.ts +27 -35
  316. package/src/integrations/postgres.ts +33 -26
  317. package/src/integrations/utils.ts +43 -15
  318. package/src/tests/utilities/TestConfiguration.js +23 -2
  319. package/src/threads/query.js +37 -9
  320. package/src/utilities/workerRequests.js +65 -16
  321. package/builder/assets/index.22a39cc9.js +0 -1352
  322. package/scripts/proxy/generateProxyConfig.js +0 -70
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">16.12% </span>
26
+ <span class="strong">15.38% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>15/93</span>
28
+ <span class='fraction'>16/104</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/42</span>
35
+ <span class='fraction'>0/46</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/13</span>
42
+ <span class='fraction'>0/15</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">16.48% </span>
47
+ <span class="strong">15.68% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>15/91</span>
49
+ <span class='fraction'>16/102</span>
50
50
  </div>
51
51
 
52
52
 
@@ -257,18 +257,39 @@
257
257
  <a name='L198'></a><a href='#L198'>198</a>
258
258
  <a name='L199'></a><a href='#L199'>199</a>
259
259
  <a name='L200'></a><a href='#L200'>200</a>
260
- <a name='L201'></a><a href='#L201'>201</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
260
+ <a name='L201'></a><a href='#L201'>201</a>
261
+ <a name='L202'></a><a href='#L202'>202</a>
262
+ <a name='L203'></a><a href='#L203'>203</a>
263
+ <a name='L204'></a><a href='#L204'>204</a>
264
+ <a name='L205'></a><a href='#L205'>205</a>
265
+ <a name='L206'></a><a href='#L206'>206</a>
266
+ <a name='L207'></a><a href='#L207'>207</a>
267
+ <a name='L208'></a><a href='#L208'>208</a>
268
+ <a name='L209'></a><a href='#L209'>209</a>
269
+ <a name='L210'></a><a href='#L210'>210</a>
270
+ <a name='L211'></a><a href='#L211'>211</a>
271
+ <a name='L212'></a><a href='#L212'>212</a>
272
+ <a name='L213'></a><a href='#L213'>213</a>
273
+ <a name='L214'></a><a href='#L214'>214</a>
274
+ <a name='L215'></a><a href='#L215'>215</a>
275
+ <a name='L216'></a><a href='#L216'>216</a>
276
+ <a name='L217'></a><a href='#L217'>217</a>
277
+ <a name='L218'></a><a href='#L218'>218</a>
278
+ <a name='L219'></a><a href='#L219'>219</a>
279
+ <a name='L220'></a><a href='#L220'>220</a>
280
+ <a name='L221'></a><a href='#L221'>221</a>
281
+ <a name='L222'></a><a href='#L222'>222</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
261
282
  <span class="cline-any cline-neutral">&nbsp;</span>
262
283
  <span class="cline-any cline-neutral">&nbsp;</span>
263
284
  <span class="cline-any cline-neutral">&nbsp;</span>
264
285
  <span class="cline-any cline-neutral">&nbsp;</span>
265
- <span class="cline-any cline-yes">39x</span>
286
+ <span class="cline-any cline-yes">40x</span>
266
287
  <span class="cline-any cline-neutral">&nbsp;</span>
267
288
  <span class="cline-any cline-neutral">&nbsp;</span>
268
289
  <span class="cline-any cline-neutral">&nbsp;</span>
269
- <span class="cline-any cline-yes">39x</span>
270
- <span class="cline-any cline-yes">39x</span>
271
- <span class="cline-any cline-yes">39x</span>
290
+ <span class="cline-any cline-yes">40x</span>
291
+ <span class="cline-any cline-yes">40x</span>
292
+ <span class="cline-any cline-yes">40x</span>
272
293
  <span class="cline-any cline-neutral">&nbsp;</span>
273
294
  <span class="cline-any cline-neutral">&nbsp;</span>
274
295
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -287,9 +308,9 @@
287
308
  <span class="cline-any cline-no">&nbsp;</span>
288
309
  <span class="cline-any cline-neutral">&nbsp;</span>
289
310
  <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-yes">39x</span>
311
+ <span class="cline-any cline-yes">40x</span>
291
312
  <span class="cline-any cline-neutral">&nbsp;</span>
292
- <span class="cline-any cline-yes">39x</span>
313
+ <span class="cline-any cline-yes">40x</span>
293
314
  <span class="cline-any cline-no">&nbsp;</span>
294
315
  <span class="cline-any cline-no">&nbsp;</span>
295
316
  <span class="cline-any cline-no">&nbsp;</span>
@@ -301,7 +322,7 @@
301
322
  <span class="cline-any cline-neutral">&nbsp;</span>
302
323
  <span class="cline-any cline-neutral">&nbsp;</span>
303
324
  <span class="cline-any cline-neutral">&nbsp;</span>
304
- <span class="cline-any cline-yes">39x</span>
325
+ <span class="cline-any cline-yes">40x</span>
305
326
  <span class="cline-any cline-no">&nbsp;</span>
306
327
  <span class="cline-any cline-no">&nbsp;</span>
307
328
  <span class="cline-any cline-no">&nbsp;</span>
@@ -309,7 +330,7 @@
309
330
  <span class="cline-any cline-neutral">&nbsp;</span>
310
331
  <span class="cline-any cline-neutral">&nbsp;</span>
311
332
  <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-yes">39x</span>
333
+ <span class="cline-any cline-yes">40x</span>
313
334
  <span class="cline-any cline-neutral">&nbsp;</span>
314
335
  <span class="cline-any cline-neutral">&nbsp;</span>
315
336
  <span class="cline-any cline-no">&nbsp;</span>
@@ -317,12 +338,12 @@
317
338
  <span class="cline-any cline-no">&nbsp;</span>
318
339
  <span class="cline-any cline-neutral">&nbsp;</span>
319
340
  <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-yes">39x</span>
341
+ <span class="cline-any cline-yes">40x</span>
321
342
  <span class="cline-any cline-no">&nbsp;</span>
322
343
  <span class="cline-any cline-no">&nbsp;</span>
323
344
  <span class="cline-any cline-neutral">&nbsp;</span>
324
345
  <span class="cline-any cline-neutral">&nbsp;</span>
325
- <span class="cline-any cline-yes">39x</span>
346
+ <span class="cline-any cline-yes">40x</span>
326
347
  <span class="cline-any cline-no">&nbsp;</span>
327
348
  <span class="cline-any cline-no">&nbsp;</span>
328
349
  <span class="cline-any cline-no">&nbsp;</span>
@@ -331,7 +352,7 @@
331
352
  <span class="cline-any cline-no">&nbsp;</span>
332
353
  <span class="cline-any cline-neutral">&nbsp;</span>
333
354
  <span class="cline-any cline-neutral">&nbsp;</span>
334
- <span class="cline-any cline-yes">39x</span>
355
+ <span class="cline-any cline-yes">40x</span>
335
356
  <span class="cline-any cline-no">&nbsp;</span>
336
357
  <span class="cline-any cline-no">&nbsp;</span>
337
358
  <span class="cline-any cline-no">&nbsp;</span>
@@ -340,7 +361,7 @@
340
361
  <span class="cline-any cline-no">&nbsp;</span>
341
362
  <span class="cline-any cline-neutral">&nbsp;</span>
342
363
  <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-yes">39x</span>
364
+ <span class="cline-any cline-yes">40x</span>
344
365
  <span class="cline-any cline-no">&nbsp;</span>
345
366
  <span class="cline-any cline-no">&nbsp;</span>
346
367
  <span class="cline-any cline-no">&nbsp;</span>
@@ -355,7 +376,7 @@
355
376
  <span class="cline-any cline-no">&nbsp;</span>
356
377
  <span class="cline-any cline-neutral">&nbsp;</span>
357
378
  <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-yes">39x</span>
379
+ <span class="cline-any cline-yes">40x</span>
359
380
  <span class="cline-any cline-no">&nbsp;</span>
360
381
  <span class="cline-any cline-no">&nbsp;</span>
361
382
  <span class="cline-any cline-no">&nbsp;</span>
@@ -406,12 +427,33 @@
406
427
  <span class="cline-any cline-no">&nbsp;</span>
407
428
  <span class="cline-any cline-neutral">&nbsp;</span>
408
429
  <span class="cline-any cline-neutral">&nbsp;</span>
409
- <span class="cline-any cline-yes">39x</span>
430
+ <span class="cline-any cline-yes">40x</span>
410
431
  <span class="cline-any cline-neutral">&nbsp;</span>
411
432
  <span class="cline-any cline-no">&nbsp;</span>
412
433
  <span class="cline-any cline-neutral">&nbsp;</span>
413
434
  <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-yes">39x</span>
435
+ <span class="cline-any cline-yes">40x</span>
436
+ <span class="cline-any cline-no">&nbsp;</span>
437
+ <span class="cline-any cline-no">&nbsp;</span>
438
+ <span class="cline-any cline-no">&nbsp;</span>
439
+ <span class="cline-any cline-no">&nbsp;</span>
440
+ <span class="cline-any cline-no">&nbsp;</span>
441
+ <span class="cline-any cline-neutral">&nbsp;</span>
442
+ <span class="cline-any cline-no">&nbsp;</span>
443
+ <span class="cline-any cline-no">&nbsp;</span>
444
+ <span class="cline-any cline-no">&nbsp;</span>
445
+ <span class="cline-any cline-neutral">&nbsp;</span>
446
+ <span class="cline-any cline-neutral">&nbsp;</span>
447
+ <span class="cline-any cline-neutral">&nbsp;</span>
448
+ <span class="cline-any cline-no">&nbsp;</span>
449
+ <span class="cline-any cline-neutral">&nbsp;</span>
450
+ <span class="cline-any cline-neutral">&nbsp;</span>
451
+ <span class="cline-any cline-neutral">&nbsp;</span>
452
+ <span class="cline-any cline-neutral">&nbsp;</span>
453
+ <span class="cline-any cline-no">&nbsp;</span>
454
+ <span class="cline-any cline-neutral">&nbsp;</span>
455
+ <span class="cline-any cline-neutral">&nbsp;</span>
456
+ <span class="cline-any cline-yes">40x</span>
415
457
  <span class="cline-any cline-no">&nbsp;</span>
416
458
  <span class="cline-any cline-no">&nbsp;</span>
417
459
  <span class="cline-any cline-no">&nbsp;</span>
@@ -611,6 +653,27 @@ exports.validate = <span class="fstat-no" title="function not covered" >as</span
611
653
  <span class="cstat-no" title="statement not covered" > return { valid: true }</span>
612
654
  }
613
655
  &nbsp;
656
+ exports.exportRows = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
657
+ const { datasourceId, tableName } = <span class="cstat-no" title="statement not covered" >breakExternalTableId(ctx.params.tableId)</span>
658
+ const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
659
+ const datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
660
+ <span class="cstat-no" title="statement not covered" > if (!datasource || !datasource.entities) {</span>
661
+ <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Datasource has not been configured for plus API.")</span>
662
+ }
663
+ const tables = <span class="cstat-no" title="statement not covered" >datasource.entities</span>
664
+ const table = <span class="cstat-no" title="statement not covered" >tables[tableName]</span>
665
+ <span class="cstat-no" title="statement not covered" > ctx.request.body = {</span>
666
+ query: {
667
+ oneOf: {
668
+ [table.primaryDisplay]: ctx.request.body.map(
669
+ <span class="fstat-no" title="function not covered" > id</span> =&gt; <span class="cstat-no" title="statement not covered" >breakRowIdField(id)[0]</span>
670
+ ),
671
+ },
672
+ },
673
+ }
674
+ <span class="cstat-no" title="statement not covered" > return exports.search(ctx)</span>
675
+ }
676
+ &nbsp;
614
677
  exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
615
678
  const id = <span class="cstat-no" title="statement not covered" >ctx.params.rowId</span>
616
679
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
@@ -664,7 +727,7 @@ exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >
664
727
  <div class='footer quiet pad2 space-top1 center small'>
665
728
  Code coverage generated by
666
729
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
667
- at Tue Mar 08 2022 08:50:56 GMT+0000 (Coordinated Universal Time)
730
+ at Tue Mar 08 2022 15:58:36 GMT+0000 (Coordinated Universal Time)
668
731
  </div>
669
732
  </div>
670
733
  <script src="../../../prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">51.08% </span>
26
+ <span class="strong">62.46% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>331/648</span>
28
+ <span class='fraction'>421/674</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">30.13% </span>
33
+ <span class="strong">42.61% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>88/292</span>
35
+ <span class='fraction'>127/298</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">41.93% </span>
40
+ <span class="strong">58.16% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>39/93</span>
42
+ <span class='fraction'>57/98</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">51.18% </span>
47
+ <span class="strong">62.63% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>325/635</span>
49
+ <span class='fraction'>414/661</span>
50
50
  </div>
51
51
 
52
52
 
@@ -74,62 +74,62 @@
74
74
  </thead>
75
75
  <tbody><tr>
76
76
  <td class="file low" data-value="external.js"><a href="external.js.html">external.js</a></td>
77
- <td data-value="16.12" class="pic low">
78
- <div class="chart"><div class="cover-fill" style="width: 16%"></div><div class="cover-empty" style="width: 84%"></div></div>
77
+ <td data-value="15.38" class="pic low">
78
+ <div class="chart"><div class="cover-fill" style="width: 15%"></div><div class="cover-empty" style="width: 85%"></div></div>
79
79
  </td>
80
- <td data-value="16.12" class="pct low">16.12%</td>
81
- <td data-value="93" class="abs low">15/93</td>
80
+ <td data-value="15.38" class="pct low">15.38%</td>
81
+ <td data-value="104" class="abs low">16/104</td>
82
82
  <td data-value="0" class="pct low">0%</td>
83
- <td data-value="42" class="abs low">0/42</td>
83
+ <td data-value="46" class="abs low">0/46</td>
84
84
  <td data-value="0" class="pct low">0%</td>
85
- <td data-value="13" class="abs low">0/13</td>
86
- <td data-value="16.48" class="pct low">16.48%</td>
87
- <td data-value="91" class="abs low">15/91</td>
85
+ <td data-value="15" class="abs low">0/15</td>
86
+ <td data-value="15.68" class="pct low">15.68%</td>
87
+ <td data-value="102" class="abs low">16/102</td>
88
88
  </tr>
89
89
 
90
90
  <tr>
91
91
  <td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
92
- <td data-value="92.94" class="pic high">
93
- <div class="chart"><div class="cover-fill" style="width: 92%"></div><div class="cover-empty" style="width: 8%"></div></div>
92
+ <td data-value="88.88" class="pic high">
93
+ <div class="chart"><div class="cover-fill" style="width: 88%"></div><div class="cover-empty" style="width: 12%"></div></div>
94
94
  </td>
95
- <td data-value="92.94" class="pct high">92.94%</td>
96
- <td data-value="85" class="abs high">79/85</td>
95
+ <td data-value="88.88" class="pct high">88.88%</td>
96
+ <td data-value="90" class="abs high">80/90</td>
97
97
  <td data-value="94.11" class="pct high">94.11%</td>
98
98
  <td data-value="34" class="abs high">32/34</td>
99
- <td data-value="100" class="pct high">100%</td>
100
- <td data-value="11" class="abs high">11/11</td>
101
- <td data-value="92.94" class="pct high">92.94%</td>
102
- <td data-value="85" class="abs high">79/85</td>
99
+ <td data-value="91.66" class="pct high">91.66%</td>
100
+ <td data-value="12" class="abs high">11/12</td>
101
+ <td data-value="88.88" class="pct high">88.88%</td>
102
+ <td data-value="90" class="abs high">80/90</td>
103
103
  </tr>
104
104
 
105
105
  <tr>
106
106
  <td class="file high" data-value="internal.js"><a href="internal.js.html">internal.js</a></td>
107
- <td data-value="85.42" class="pic high">
108
- <div class="chart"><div class="cover-fill" style="width: 85%"></div><div class="cover-empty" style="width: 15%"></div></div>
107
+ <td data-value="82.29" class="pic high">
108
+ <div class="chart"><div class="cover-fill" style="width: 82%"></div><div class="cover-empty" style="width: 18%"></div></div>
109
109
  </td>
110
- <td data-value="85.42" class="pct high">85.42%</td>
111
- <td data-value="199" class="abs high">170/199</td>
112
- <td data-value="63.33" class="pct medium">63.33%</td>
113
- <td data-value="60" class="abs medium">38/60</td>
114
- <td data-value="91.66" class="pct high">91.66%</td>
115
- <td data-value="24" class="abs high">22/24</td>
116
- <td data-value="85.49" class="pct high">85.49%</td>
117
- <td data-value="193" class="abs high">165/193</td>
110
+ <td data-value="82.29" class="pct high">82.29%</td>
111
+ <td data-value="209" class="abs high">172/209</td>
112
+ <td data-value="62.9" class="pct medium">62.9%</td>
113
+ <td data-value="62" class="abs medium">39/62</td>
114
+ <td data-value="84.61" class="pct high">84.61%</td>
115
+ <td data-value="26" class="abs high">22/26</td>
116
+ <td data-value="82.26" class="pct high">82.26%</td>
117
+ <td data-value="203" class="abs high">167/203</td>
118
118
  </tr>
119
119
 
120
120
  <tr>
121
- <td class="file low" data-value="internalSearch.js"><a href="internalSearch.js.html">internalSearch.js</a></td>
122
- <td data-value="5.16" class="pic low">
123
- <div class="chart"><div class="cover-fill" style="width: 5%"></div><div class="cover-empty" style="width: 95%"></div></div>
121
+ <td class="file medium" data-value="internalSearch.js"><a href="internalSearch.js.html">internalSearch.js</a></td>
122
+ <td data-value="60.64" class="pic medium">
123
+ <div class="chart"><div class="cover-fill" style="width: 60%"></div><div class="cover-empty" style="width: 40%"></div></div>
124
124
  </td>
125
- <td data-value="5.16" class="pct low">5.16%</td>
126
- <td data-value="155" class="abs low">8/155</td>
127
- <td data-value="0" class="pct low">0%</td>
128
- <td data-value="95" class="abs low">0/95</td>
129
- <td data-value="0" class="pct low">0%</td>
130
- <td data-value="33" class="abs low">0/33</td>
131
- <td data-value="5.26" class="pct low">5.26%</td>
132
- <td data-value="152" class="abs low">8/152</td>
125
+ <td data-value="60.64" class="pct medium">60.64%</td>
126
+ <td data-value="155" class="abs medium">94/155</td>
127
+ <td data-value="40" class="pct low">40%</td>
128
+ <td data-value="95" class="abs low">38/95</td>
129
+ <td data-value="54.54" class="pct medium">54.54%</td>
130
+ <td data-value="33" class="abs medium">18/33</td>
131
+ <td data-value="61.18" class="pct medium">61.18%</td>
132
+ <td data-value="152" class="abs medium">93/152</td>
133
133
  </tr>
134
134
 
135
135
  <tr>
@@ -170,7 +170,7 @@
170
170
  <div class='footer quiet pad2 space-top1 center small'>
171
171
  Code coverage generated by
172
172
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
173
- at Tue Mar 08 2022 08:50:56 GMT+0000 (Coordinated Universal Time)
173
+ at Tue Mar 08 2022 15:58:36 GMT+0000 (Coordinated Universal Time)
174
174
  </div>
175
175
  </div>
176
176
  <script src="../../../prettify.js"></script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">92.94% </span>
26
+ <span class="strong">88.88% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>79/85</span>
28
+ <span class='fraction'>80/90</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">91.66% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>11/11</span>
42
+ <span class='fraction'>11/12</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">92.94% </span>
47
+ <span class="strong">88.88% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>79/85</span>
49
+ <span class='fraction'>80/90</span>
50
50
  </div>
51
51
 
52
52
 
@@ -196,30 +196,39 @@
196
196
  <a name='L137'></a><a href='#L137'>137</a>
197
197
  <a name='L138'></a><a href='#L138'>138</a>
198
198
  <a name='L139'></a><a href='#L139'>139</a>
199
- <a name='L140'></a><a href='#L140'>140</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
200
- <span class="cline-any cline-yes">39x</span>
201
- <span class="cline-any cline-yes">39x</span>
199
+ <a name='L140'></a><a href='#L140'>140</a>
200
+ <a name='L141'></a><a href='#L141'>141</a>
201
+ <a name='L142'></a><a href='#L142'>142</a>
202
+ <a name='L143'></a><a href='#L143'>143</a>
203
+ <a name='L144'></a><a href='#L144'>144</a>
204
+ <a name='L145'></a><a href='#L145'>145</a>
205
+ <a name='L146'></a><a href='#L146'>146</a>
206
+ <a name='L147'></a><a href='#L147'>147</a>
207
+ <a name='L148'></a><a href='#L148'>148</a>
208
+ <a name='L149'></a><a href='#L149'>149</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">40x</span>
209
+ <span class="cline-any cline-yes">40x</span>
210
+ <span class="cline-any cline-yes">40x</span>
202
211
  <span class="cline-any cline-neutral">&nbsp;</span>
203
212
  <span class="cline-any cline-neutral">&nbsp;</span>
204
- <span class="cline-any cline-yes">114x</span>
213
+ <span class="cline-any cline-yes">119x</span>
205
214
  <span class="cline-any cline-no">&nbsp;</span>
206
215
  <span class="cline-any cline-neutral">&nbsp;</span>
207
- <span class="cline-any cline-yes">113x</span>
216
+ <span class="cline-any cline-yes">118x</span>
208
217
  <span class="cline-any cline-neutral">&nbsp;</span>
209
218
  <span class="cline-any cline-neutral">&nbsp;</span>
210
219
  <span class="cline-any cline-neutral">&nbsp;</span>
211
- <span class="cline-any cline-yes">116x</span>
212
- <span class="cline-any cline-yes">76x</span>
220
+ <span class="cline-any cline-yes">121x</span>
221
+ <span class="cline-any cline-yes">77x</span>
213
222
  <span class="cline-any cline-neutral">&nbsp;</span>
214
- <span class="cline-any cline-yes">40x</span>
215
- <span class="cline-any cline-yes">32x</span>
223
+ <span class="cline-any cline-yes">44x</span>
224
+ <span class="cline-any cline-yes">36x</span>
216
225
  <span class="cline-any cline-neutral">&nbsp;</span>
217
226
  <span class="cline-any cline-yes">8x</span>
218
227
  <span class="cline-any cline-yes">7x</span>
219
228
  <span class="cline-any cline-neutral">&nbsp;</span>
220
229
  <span class="cline-any cline-neutral">&nbsp;</span>
221
230
  <span class="cline-any cline-neutral">&nbsp;</span>
222
- <span class="cline-any cline-yes">39x</span>
231
+ <span class="cline-any cline-yes">40x</span>
223
232
  <span class="cline-any cline-yes">6x</span>
224
233
  <span class="cline-any cline-yes">6x</span>
225
234
  <span class="cline-any cline-yes">6x</span>
@@ -239,26 +248,26 @@
239
248
  <span class="cline-any cline-neutral">&nbsp;</span>
240
249
  <span class="cline-any cline-neutral">&nbsp;</span>
241
250
  <span class="cline-any cline-neutral">&nbsp;</span>
242
- <span class="cline-any cline-yes">39x</span>
243
- <span class="cline-any cline-yes">72x</span>
244
- <span class="cline-any cline-yes">72x</span>
245
- <span class="cline-any cline-yes">72x</span>
251
+ <span class="cline-any cline-yes">40x</span>
252
+ <span class="cline-any cline-yes">74x</span>
253
+ <span class="cline-any cline-yes">74x</span>
254
+ <span class="cline-any cline-yes">74x</span>
246
255
  <span class="cline-any cline-neutral">&nbsp;</span>
247
- <span class="cline-any cline-yes">72x</span>
256
+ <span class="cline-any cline-yes">74x</span>
248
257
  <span class="cline-any cline-yes">2x</span>
249
258
  <span class="cline-any cline-neutral">&nbsp;</span>
250
- <span class="cline-any cline-yes">70x</span>
251
- <span class="cline-any cline-yes">70x</span>
252
- <span class="cline-any cline-yes">69x</span>
253
- <span class="cline-any cline-yes">69x</span>
254
- <span class="cline-any cline-yes">69x</span>
255
- <span class="cline-any cline-yes">69x</span>
259
+ <span class="cline-any cline-yes">72x</span>
260
+ <span class="cline-any cline-yes">72x</span>
261
+ <span class="cline-any cline-yes">71x</span>
262
+ <span class="cline-any cline-yes">71x</span>
263
+ <span class="cline-any cline-yes">71x</span>
264
+ <span class="cline-any cline-yes">71x</span>
256
265
  <span class="cline-any cline-neutral">&nbsp;</span>
257
266
  <span class="cline-any cline-yes">1x</span>
258
267
  <span class="cline-any cline-neutral">&nbsp;</span>
259
268
  <span class="cline-any cline-neutral">&nbsp;</span>
260
269
  <span class="cline-any cline-neutral">&nbsp;</span>
261
- <span class="cline-any cline-yes">39x</span>
270
+ <span class="cline-any cline-yes">40x</span>
262
271
  <span class="cline-any cline-yes">7x</span>
263
272
  <span class="cline-any cline-yes">7x</span>
264
273
  <span class="cline-any cline-yes">7x</span>
@@ -267,7 +276,7 @@
267
276
  <span class="cline-any cline-neutral">&nbsp;</span>
268
277
  <span class="cline-any cline-neutral">&nbsp;</span>
269
278
  <span class="cline-any cline-neutral">&nbsp;</span>
270
- <span class="cline-any cline-yes">39x</span>
279
+ <span class="cline-any cline-yes">40x</span>
271
280
  <span class="cline-any cline-yes">4x</span>
272
281
  <span class="cline-any cline-yes">4x</span>
273
282
  <span class="cline-any cline-yes">4x</span>
@@ -276,7 +285,7 @@
276
285
  <span class="cline-any cline-neutral">&nbsp;</span>
277
286
  <span class="cline-any cline-neutral">&nbsp;</span>
278
287
  <span class="cline-any cline-neutral">&nbsp;</span>
279
- <span class="cline-any cline-yes">39x</span>
288
+ <span class="cline-any cline-yes">40x</span>
280
289
  <span class="cline-any cline-yes">18x</span>
281
290
  <span class="cline-any cline-yes">18x</span>
282
291
  <span class="cline-any cline-yes">18x</span>
@@ -285,40 +294,49 @@
285
294
  <span class="cline-any cline-neutral">&nbsp;</span>
286
295
  <span class="cline-any cline-neutral">&nbsp;</span>
287
296
  <span class="cline-any cline-neutral">&nbsp;</span>
288
- <span class="cline-any cline-yes">39x</span>
289
- <span class="cline-any cline-yes">5x</span>
290
- <span class="cline-any cline-yes">5x</span>
291
- <span class="cline-any cline-yes">5x</span>
297
+ <span class="cline-any cline-yes">40x</span>
298
+ <span class="cline-any cline-yes">6x</span>
299
+ <span class="cline-any cline-yes">6x</span>
300
+ <span class="cline-any cline-yes">6x</span>
292
301
  <span class="cline-any cline-neutral">&nbsp;</span>
293
- <span class="cline-any cline-yes">5x</span>
302
+ <span class="cline-any cline-yes">6x</span>
294
303
  <span class="cline-any cline-yes">2x</span>
295
304
  <span class="cline-any cline-yes">2x</span>
296
305
  <span class="cline-any cline-yes">2x</span>
297
306
  <span class="cline-any cline-yes">3x</span>
298
307
  <span class="cline-any cline-neutral">&nbsp;</span>
299
308
  <span class="cline-any cline-neutral">&nbsp;</span>
309
+ <span class="cline-any cline-yes">4x</span>
310
+ <span class="cline-any cline-yes">3x</span>
300
311
  <span class="cline-any cline-yes">3x</span>
312
+ <span class="cline-any cline-yes">3x</span>
313
+ <span class="cline-any cline-neutral">&nbsp;</span>
314
+ <span class="cline-any cline-yes">5x</span>
315
+ <span class="cline-any cline-neutral">&nbsp;</span>
316
+ <span class="cline-any cline-yes">5x</span>
317
+ <span class="cline-any cline-yes">5x</span>
318
+ <span class="cline-any cline-neutral">&nbsp;</span>
319
+ <span class="cline-any cline-neutral">&nbsp;</span>
320
+ <span class="cline-any cline-yes">40x</span>
321
+ <span class="cline-any cline-yes">2x</span>
301
322
  <span class="cline-any cline-yes">2x</span>
302
323
  <span class="cline-any cline-yes">2x</span>
303
324
  <span class="cline-any cline-yes">2x</span>
304
325
  <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-yes">4x</span>
326
+ <span class="cline-any cline-no">&nbsp;</span>
306
327
  <span class="cline-any cline-neutral">&nbsp;</span>
307
- <span class="cline-any cline-yes">4x</span>
308
- <span class="cline-any cline-yes">4x</span>
309
328
  <span class="cline-any cline-neutral">&nbsp;</span>
310
329
  <span class="cline-any cline-neutral">&nbsp;</span>
311
- <span class="cline-any cline-yes">39x</span>
312
- <span class="cline-any cline-yes">1x</span>
313
- <span class="cline-any cline-yes">1x</span>
314
- <span class="cline-any cline-yes">1x</span>
315
- <span class="cline-any cline-yes">1x</span>
330
+ <span class="cline-any cline-yes">40x</span>
331
+ <span class="cline-any cline-yes">2x</span>
332
+ <span class="cline-any cline-yes">2x</span>
333
+ <span class="cline-any cline-yes">2x</span>
316
334
  <span class="cline-any cline-neutral">&nbsp;</span>
317
335
  <span class="cline-any cline-no">&nbsp;</span>
318
336
  <span class="cline-any cline-neutral">&nbsp;</span>
319
337
  <span class="cline-any cline-neutral">&nbsp;</span>
320
338
  <span class="cline-any cline-neutral">&nbsp;</span>
321
- <span class="cline-any cline-yes">39x</span>
339
+ <span class="cline-any cline-yes">40x</span>
322
340
  <span class="cline-any cline-yes">2x</span>
323
341
  <span class="cline-any cline-yes">2x</span>
324
342
  <span class="cline-any cline-yes">2x</span>
@@ -327,10 +345,10 @@
327
345
  <span class="cline-any cline-neutral">&nbsp;</span>
328
346
  <span class="cline-any cline-neutral">&nbsp;</span>
329
347
  <span class="cline-any cline-neutral">&nbsp;</span>
330
- <span class="cline-any cline-yes">39x</span>
331
- <span class="cline-any cline-yes">1x</span>
332
- <span class="cline-any cline-yes">1x</span>
333
- <span class="cline-any cline-yes">1x</span>
348
+ <span class="cline-any cline-yes">40x</span>
349
+ <span class="cline-any cline-no">&nbsp;</span>
350
+ <span class="cline-any cline-no">&nbsp;</span>
351
+ <span class="cline-any cline-no">&nbsp;</span>
334
352
  <span class="cline-any cline-neutral">&nbsp;</span>
335
353
  <span class="cline-any cline-no">&nbsp;</span>
336
354
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -474,6 +492,15 @@ exports.fetchEnrichedRow = async function (ctx) {
474
492
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, err)</span>
475
493
  }
476
494
  }
495
+ &nbsp;
496
+ exports.export = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
497
+ const tableId = <span class="cstat-no" title="statement not covered" >getTableId(ctx)</span>
498
+ <span class="cstat-no" title="statement not covered" > try {</span>
499
+ <span class="cstat-no" title="statement not covered" > ctx.body = await pickApi(tableId).exportRows(ctx)</span>
500
+ } catch (err) {
501
+ <span class="cstat-no" title="statement not covered" > ctx.throw(400, err)</span>
502
+ }
503
+ }
477
504
  &nbsp;</pre></td></tr></table></pre>
478
505
 
479
506
  <div class='push'></div><!-- for sticky footer -->
@@ -481,7 +508,7 @@ exports.fetchEnrichedRow = async function (ctx) {
481
508
  <div class='footer quiet pad2 space-top1 center small'>
482
509
  Code coverage generated by
483
510
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
484
- at Tue Mar 08 2022 08:50:56 GMT+0000 (Coordinated Universal Time)
511
+ at Tue Mar 08 2022 15:58:36 GMT+0000 (Coordinated Universal Time)
485
512
  </div>
486
513
  </div>
487
514
  <script src="../../../prettify.js"></script>