@budibase/server 0.9.185-alpha.2 → 0.9.185-alpha.20

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 (251) hide show
  1. package/Dockerfile +7 -1
  2. package/__mocks__/oracledb.ts +31 -0
  3. package/builder/assets/bb-space-man.5be51a45.svg +290 -0
  4. package/builder/assets/index.7d405e74.css +1 -0
  5. package/builder/assets/index.83e08172.js +1316 -0
  6. package/builder/assets/oracle.66592424.png +0 -0
  7. package/builder/assets/vendor.470042a4.js +152 -0
  8. package/builder/assets/vendor.5e1fe644.css +1 -0
  9. package/builder/index.html +4 -4
  10. package/coverage/clover.xml +785 -687
  11. package/coverage/coverage-final.json +90 -88
  12. package/coverage/lcov-report/api/controllers/analytics.js.html +2 -2
  13. package/coverage/lcov-report/api/controllers/apikeys.js.html +2 -2
  14. package/coverage/lcov-report/api/controllers/application.js.html +43 -13
  15. package/coverage/lcov-report/api/controllers/auth.js.html +7 -7
  16. package/coverage/lcov-report/api/controllers/automation.js.html +3 -3
  17. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/component.js.html +4 -4
  20. package/coverage/lcov-report/api/controllers/datasource.js.html +129 -21
  21. package/coverage/lcov-report/api/controllers/dev.js.html +16 -7
  22. package/coverage/lcov-report/api/controllers/hosting.js.html +10 -10
  23. package/coverage/lcov-report/api/controllers/index.html +77 -77
  24. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/layout.js.html +3 -3
  26. package/coverage/lcov-report/api/controllers/metadata.js.html +3 -3
  27. package/coverage/lcov-report/api/controllers/permission.js.html +3 -3
  28. package/coverage/lcov-report/api/controllers/query.js.html +48 -210
  29. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  30. package/coverage/lcov-report/api/controllers/routing.js.html +3 -3
  31. package/coverage/lcov-report/api/controllers/row/external.js.html +2 -2
  32. package/coverage/lcov-report/api/controllers/row/index.html +10 -10
  33. package/coverage/lcov-report/api/controllers/row/index.js.html +2 -2
  34. package/coverage/lcov-report/api/controllers/row/internal.js.html +9 -9
  35. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +2 -2
  36. package/coverage/lcov-report/api/controllers/row/utils.js.html +2 -2
  37. package/coverage/lcov-report/api/controllers/screen.js.html +2 -2
  38. package/coverage/lcov-report/api/controllers/script.js.html +3 -3
  39. package/coverage/lcov-report/api/controllers/table/external.js.html +29 -8
  40. package/coverage/lcov-report/api/controllers/table/index.html +20 -20
  41. package/coverage/lcov-report/api/controllers/table/index.js.html +3 -3
  42. package/coverage/lcov-report/api/controllers/table/internal.js.html +2 -2
  43. package/coverage/lcov-report/api/controllers/table/utils.js.html +8 -8
  44. package/coverage/lcov-report/api/controllers/templates.js.html +4 -4
  45. package/coverage/lcov-report/api/controllers/user.js.html +2 -2
  46. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  47. package/coverage/lcov-report/api/controllers/view/index.html +9 -9
  48. package/coverage/lcov-report/api/controllers/view/index.js.html +5 -5
  49. package/coverage/lcov-report/api/controllers/view/utils.js.html +11 -11
  50. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +3 -3
  51. package/coverage/lcov-report/api/controllers/webhook.js.html +4 -4
  52. package/coverage/lcov-report/api/index.html +1 -1
  53. package/coverage/lcov-report/api/index.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/dev.js.html +2 -2
  65. package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/index.html +4 -4
  67. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/query.js.html +5 -2
  73. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/static.js.html +2 -2
  79. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  82. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  83. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  84. package/coverage/lcov-report/automations/actions.js.html +2 -2
  85. package/coverage/lcov-report/automations/automationUtils.js.html +3 -3
  86. package/coverage/lcov-report/automations/bullboard.js.html +71 -20
  87. package/coverage/lcov-report/automations/index.html +33 -48
  88. package/coverage/lcov-report/automations/index.js.html +2 -2
  89. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/discord.js.html +3 -3
  94. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/executeScript.js.html +3 -3
  96. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/index.html +14 -14
  98. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  99. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +3 -3
  100. package/coverage/lcov-report/automations/steps/queryRows.js.html +3 -3
  101. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  102. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  103. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  104. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  105. package/coverage/lcov-report/automations/steps/utils.js.html +7 -7
  106. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  107. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  108. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  109. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  110. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  111. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  112. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  113. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  114. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  115. package/coverage/lcov-report/automations/triggers.js.html +22 -10
  116. package/coverage/lcov-report/automations/utils.js.html +42 -12
  117. package/coverage/lcov-report/constants/index.html +5 -5
  118. package/coverage/lcov-report/constants/index.js.html +44 -23
  119. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  120. package/coverage/lcov-report/constants/screens.js.html +1 -1
  121. package/coverage/lcov-report/db/client.js.html +2 -2
  122. package/coverage/lcov-report/db/inMemoryView.js.html +2 -2
  123. package/coverage/lcov-report/db/index.html +2 -2
  124. package/coverage/lcov-report/db/index.js.html +1 -1
  125. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +6 -6
  126. package/coverage/lcov-report/db/linkedRows/index.html +10 -10
  127. package/coverage/lcov-report/db/linkedRows/index.js.html +5 -5
  128. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +6 -6
  129. package/coverage/lcov-report/db/newid.js.html +3 -3
  130. package/coverage/lcov-report/db/utils.js.html +57 -57
  131. package/coverage/lcov-report/events/AutomationEmitter.js.html +6 -6
  132. package/coverage/lcov-report/events/index.html +6 -6
  133. package/coverage/lcov-report/events/index.js.html +1 -1
  134. package/coverage/lcov-report/events/utils.js.html +5 -5
  135. package/coverage/lcov-report/index.html +86 -71
  136. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  137. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  138. package/coverage/lcov-report/middleware/appInfo.js.html +2 -2
  139. package/coverage/lcov-report/middleware/authorized.js.html +4 -4
  140. package/coverage/lcov-report/middleware/builder.js.html +16 -7
  141. package/coverage/lcov-report/middleware/currentapp.js.html +6 -6
  142. package/coverage/lcov-report/middleware/index.html +21 -21
  143. package/coverage/lcov-report/middleware/joi-validator.js.html +2 -2
  144. package/coverage/lcov-report/middleware/resourceId.js.html +18 -18
  145. package/coverage/lcov-report/middleware/selfhost.js.html +2 -2
  146. package/coverage/lcov-report/middleware/usageQuota.js.html +4 -4
  147. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  148. package/coverage/lcov-report/{automations/thread.js.html → threads/automation.js.html} +90 -33
  149. package/coverage/lcov-report/threads/index.html +141 -0
  150. package/coverage/lcov-report/threads/index.js.html +278 -0
  151. package/coverage/lcov-report/threads/query.js.html +278 -0
  152. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  153. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  154. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  155. package/coverage/lcov-report/utilities/csvParser.js.html +2 -2
  156. package/coverage/lcov-report/utilities/global.js.html +2 -2
  157. package/coverage/lcov-report/utilities/index.html +21 -21
  158. package/coverage/lcov-report/utilities/index.js.html +12 -9
  159. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +30 -9
  160. package/coverage/lcov-report/utilities/queue/index.html +14 -14
  161. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  162. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  163. package/coverage/lcov-report/utilities/rowProcessor/index.html +4 -4
  164. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +2 -2
  165. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +3 -3
  166. package/coverage/lcov-report/utilities/scriptRunner.js.html +16 -7
  167. package/coverage/lcov-report/utilities/security.js.html +3 -3
  168. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  169. package/coverage/lcov-report/utilities/users.js.html +1 -1
  170. package/coverage/lcov-report/utilities/workerRequests.js.html +5 -5
  171. package/coverage/lcov.info +1247 -1070
  172. package/dist/api/controllers/application.js +11 -1
  173. package/dist/api/controllers/datasource.js +31 -7
  174. package/dist/api/controllers/deploy/index.js +2 -0
  175. package/dist/api/controllers/dev.js +4 -1
  176. package/dist/api/controllers/query.js +27 -57
  177. package/dist/api/controllers/table/external.js +8 -1
  178. package/dist/api/routes/query.js +1 -1
  179. package/dist/app.js +2 -11
  180. package/dist/automations/bullboard.js +37 -10
  181. package/dist/automations/triggers.js +7 -3
  182. package/dist/automations/utils.js +11 -2
  183. package/dist/constants/index.js +6 -0
  184. package/dist/definitions/datasource.js +1 -0
  185. package/dist/environment.js +13 -0
  186. package/dist/integrations/base/IntegrationBase.js +2 -0
  187. package/dist/integrations/base/sql.js +40 -8
  188. package/dist/integrations/index.js +6 -0
  189. package/dist/integrations/mysql.js +3 -1
  190. package/dist/integrations/oracle.js +345 -0
  191. package/dist/integrations/utils.js +17 -2
  192. package/dist/middleware/builder.js +4 -1
  193. package/dist/package.json +11 -6
  194. package/dist/{automations/thread.js → threads/automation.js} +26 -8
  195. package/dist/threads/index.js +64 -0
  196. package/dist/threads/query.js +64 -0
  197. package/dist/tsconfig.tsbuildinfo +1 -1
  198. package/dist/utilities/index.js +1 -0
  199. package/dist/utilities/queue/inMemoryQueue.js +8 -0
  200. package/dist/utilities/scriptRunner.js +4 -1
  201. package/package.json +12 -7
  202. package/scripts/dev/manage.js +1 -0
  203. package/scripts/integrations/oracle/docker-compose.yml +19 -0
  204. package/scripts/integrations/oracle/instantclient/linux/x86-64/basiclite-21.4.zip +0 -0
  205. package/scripts/integrations/oracle/instantclient/linux/x86-64/install.sh +23 -0
  206. package/scripts/integrations/oracle/oracle.md +90 -0
  207. package/scripts/integrations/postgres/docker-compose.yml +3 -3
  208. package/scripts/likeCypress.ts +33 -0
  209. package/src/api/controllers/application.js +11 -1
  210. package/src/api/controllers/datasource.js +45 -9
  211. package/src/api/controllers/deploy/index.js +2 -0
  212. package/src/api/controllers/dev.js +4 -1
  213. package/src/api/controllers/query.js +26 -80
  214. package/src/api/controllers/table/external.js +8 -1
  215. package/src/api/routes/query.js +1 -0
  216. package/src/app.ts +2 -10
  217. package/src/automations/bullboard.js +28 -11
  218. package/src/automations/tests/automation.spec.js +3 -4
  219. package/src/automations/triggers.js +7 -3
  220. package/src/automations/utils.js +12 -2
  221. package/src/constants/index.js +7 -0
  222. package/src/definitions/datasource.ts +1 -0
  223. package/src/environment.js +15 -0
  224. package/src/integrations/airtable.ts +2 -1
  225. package/src/integrations/arangodb.ts +2 -1
  226. package/src/integrations/base/IntegrationBase.ts +6 -0
  227. package/src/integrations/base/datasourcePlus.ts +2 -1
  228. package/src/integrations/base/sql.ts +41 -9
  229. package/src/integrations/couchdb.ts +2 -1
  230. package/src/integrations/dynamodb.ts +2 -1
  231. package/src/integrations/elasticsearch.ts +2 -1
  232. package/src/integrations/index.ts +7 -0
  233. package/src/integrations/mongodb.ts +2 -1
  234. package/src/integrations/mysql.ts +1 -1
  235. package/src/integrations/oracle.ts +445 -0
  236. package/src/integrations/rest.ts +2 -1
  237. package/src/integrations/s3.ts +2 -1
  238. package/src/integrations/tests/oracle.spec.js +94 -0
  239. package/src/integrations/utils.ts +16 -2
  240. package/src/middleware/builder.js +4 -1
  241. package/src/{automations/thread.js → threads/automation.js} +27 -8
  242. package/src/threads/index.js +66 -0
  243. package/src/threads/query.js +66 -0
  244. package/src/utilities/index.js +1 -0
  245. package/src/utilities/queue/inMemoryQueue.js +7 -0
  246. package/src/utilities/scriptRunner.js +4 -1
  247. package/tsconfig.json +1 -1
  248. package/builder/assets/index.0eadd2f5.js +0 -201
  249. package/builder/assets/index.a79ec0ef.css +0 -29
  250. package/builder/assets/vendor.278a305c.js +0 -9
  251. package/builder/assets/vendor.d75d5eb7.css +0 -1
@@ -0,0 +1,278 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for threads/query.js</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">threads</a> query.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">70.96% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>22/31</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">58.33% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>7/12</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">85.71% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>6/7</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">72.41% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>21/29</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ </div>
58
+ <div class='status-line medium'></div>
59
+ <pre><table class="coverage">
60
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
+ <a name='L2'></a><a href='#L2'>2</a>
62
+ <a name='L3'></a><a href='#L3'>3</a>
63
+ <a name='L4'></a><a href='#L4'>4</a>
64
+ <a name='L5'></a><a href='#L5'>5</a>
65
+ <a name='L6'></a><a href='#L6'>6</a>
66
+ <a name='L7'></a><a href='#L7'>7</a>
67
+ <a name='L8'></a><a href='#L8'>8</a>
68
+ <a name='L9'></a><a href='#L9'>9</a>
69
+ <a name='L10'></a><a href='#L10'>10</a>
70
+ <a name='L11'></a><a href='#L11'>11</a>
71
+ <a name='L12'></a><a href='#L12'>12</a>
72
+ <a name='L13'></a><a href='#L13'>13</a>
73
+ <a name='L14'></a><a href='#L14'>14</a>
74
+ <a name='L15'></a><a href='#L15'>15</a>
75
+ <a name='L16'></a><a href='#L16'>16</a>
76
+ <a name='L17'></a><a href='#L17'>17</a>
77
+ <a name='L18'></a><a href='#L18'>18</a>
78
+ <a name='L19'></a><a href='#L19'>19</a>
79
+ <a name='L20'></a><a href='#L20'>20</a>
80
+ <a name='L21'></a><a href='#L21'>21</a>
81
+ <a name='L22'></a><a href='#L22'>22</a>
82
+ <a name='L23'></a><a href='#L23'>23</a>
83
+ <a name='L24'></a><a href='#L24'>24</a>
84
+ <a name='L25'></a><a href='#L25'>25</a>
85
+ <a name='L26'></a><a href='#L26'>26</a>
86
+ <a name='L27'></a><a href='#L27'>27</a>
87
+ <a name='L28'></a><a href='#L28'>28</a>
88
+ <a name='L29'></a><a href='#L29'>29</a>
89
+ <a name='L30'></a><a href='#L30'>30</a>
90
+ <a name='L31'></a><a href='#L31'>31</a>
91
+ <a name='L32'></a><a href='#L32'>32</a>
92
+ <a name='L33'></a><a href='#L33'>33</a>
93
+ <a name='L34'></a><a href='#L34'>34</a>
94
+ <a name='L35'></a><a href='#L35'>35</a>
95
+ <a name='L36'></a><a href='#L36'>36</a>
96
+ <a name='L37'></a><a href='#L37'>37</a>
97
+ <a name='L38'></a><a href='#L38'>38</a>
98
+ <a name='L39'></a><a href='#L39'>39</a>
99
+ <a name='L40'></a><a href='#L40'>40</a>
100
+ <a name='L41'></a><a href='#L41'>41</a>
101
+ <a name='L42'></a><a href='#L42'>42</a>
102
+ <a name='L43'></a><a href='#L43'>43</a>
103
+ <a name='L44'></a><a href='#L44'>44</a>
104
+ <a name='L45'></a><a href='#L45'>45</a>
105
+ <a name='L46'></a><a href='#L46'>46</a>
106
+ <a name='L47'></a><a href='#L47'>47</a>
107
+ <a name='L48'></a><a href='#L48'>48</a>
108
+ <a name='L49'></a><a href='#L49'>49</a>
109
+ <a name='L50'></a><a href='#L50'>50</a>
110
+ <a name='L51'></a><a href='#L51'>51</a>
111
+ <a name='L52'></a><a href='#L52'>52</a>
112
+ <a name='L53'></a><a href='#L53'>53</a>
113
+ <a name='L54'></a><a href='#L54'>54</a>
114
+ <a name='L55'></a><a href='#L55'>55</a>
115
+ <a name='L56'></a><a href='#L56'>56</a>
116
+ <a name='L57'></a><a href='#L57'>57</a>
117
+ <a name='L58'></a><a href='#L58'>58</a>
118
+ <a name='L59'></a><a href='#L59'>59</a>
119
+ <a name='L60'></a><a href='#L60'>60</a>
120
+ <a name='L61'></a><a href='#L61'>61</a>
121
+ <a name='L62'></a><a href='#L62'>62</a>
122
+ <a name='L63'></a><a href='#L63'>63</a>
123
+ <a name='L64'></a><a href='#L64'>64</a>
124
+ <a name='L65'></a><a href='#L65'>65</a>
125
+ <a name='L66'></a><a href='#L66'>66</a>
126
+ <a name='L67'></a><a href='#L67'>67</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
127
+ <span class="cline-any cline-yes">1x</span>
128
+ <span class="cline-any cline-yes">1x</span>
129
+ <span class="cline-any cline-yes">1x</span>
130
+ <span class="cline-any cline-yes">1x</span>
131
+ <span class="cline-any cline-neutral">&nbsp;</span>
132
+ <span class="cline-any cline-neutral">&nbsp;</span>
133
+ <span class="cline-any cline-yes">2x</span>
134
+ <span class="cline-any cline-no">&nbsp;</span>
135
+ <span class="cline-any cline-no">&nbsp;</span>
136
+ <span class="cline-any cline-neutral">&nbsp;</span>
137
+ <span class="cline-any cline-no">&nbsp;</span>
138
+ <span class="cline-any cline-neutral">&nbsp;</span>
139
+ <span class="cline-any cline-neutral">&nbsp;</span>
140
+ <span class="cline-any cline-yes">2x</span>
141
+ <span class="cline-any cline-neutral">&nbsp;</span>
142
+ <span class="cline-any cline-neutral">&nbsp;</span>
143
+ <span class="cline-any cline-neutral">&nbsp;</span>
144
+ <span class="cline-any cline-yes">4x</span>
145
+ <span class="cline-any cline-yes">4x</span>
146
+ <span class="cline-any cline-yes">2x</span>
147
+ <span class="cline-any cline-neutral">&nbsp;</span>
148
+ <span class="cline-any cline-yes">2x</span>
149
+ <span class="cline-any cline-neutral">&nbsp;</span>
150
+ <span class="cline-any cline-yes">2x</span>
151
+ <span class="cline-any cline-neutral">&nbsp;</span>
152
+ <span class="cline-any cline-neutral">&nbsp;</span>
153
+ <span class="cline-any cline-yes">2x</span>
154
+ <span class="cline-any cline-no">&nbsp;</span>
155
+ <span class="cline-any cline-no">&nbsp;</span>
156
+ <span class="cline-any cline-neutral">&nbsp;</span>
157
+ <span class="cline-any cline-neutral">&nbsp;</span>
158
+ <span class="cline-any cline-neutral">&nbsp;</span>
159
+ <span class="cline-any cline-yes">2x</span>
160
+ <span class="cline-any cline-no">&nbsp;</span>
161
+ <span class="cline-any cline-neutral">&nbsp;</span>
162
+ <span class="cline-any cline-neutral">&nbsp;</span>
163
+ <span class="cline-any cline-neutral">&nbsp;</span>
164
+ <span class="cline-any cline-yes">2x</span>
165
+ <span class="cline-any cline-no">&nbsp;</span>
166
+ <span class="cline-any cline-neutral">&nbsp;</span>
167
+ <span class="cline-any cline-neutral">&nbsp;</span>
168
+ <span class="cline-any cline-neutral">&nbsp;</span>
169
+ <span class="cline-any cline-yes">2x</span>
170
+ <span class="cline-any cline-neutral">&nbsp;</span>
171
+ <span class="cline-any cline-yes">2x</span>
172
+ <span class="cline-any cline-no">&nbsp;</span>
173
+ <span class="cline-any cline-neutral">&nbsp;</span>
174
+ <span class="cline-any cline-neutral">&nbsp;</span>
175
+ <span class="cline-any cline-yes">2x</span>
176
+ <span class="cline-any cline-neutral">&nbsp;</span>
177
+ <span class="cline-any cline-neutral">&nbsp;</span>
178
+ <span class="cline-any cline-yes">1x</span>
179
+ <span class="cline-any cline-yes">4x</span>
180
+ <span class="cline-any cline-neutral">&nbsp;</span>
181
+ <span class="cline-any cline-neutral">&nbsp;</span>
182
+ <span class="cline-any cline-neutral">&nbsp;</span>
183
+ <span class="cline-any cline-neutral">&nbsp;</span>
184
+ <span class="cline-any cline-neutral">&nbsp;</span>
185
+ <span class="cline-any cline-neutral">&nbsp;</span>
186
+ <span class="cline-any cline-yes">2x</span>
187
+ <span class="cline-any cline-neutral">&nbsp;</span>
188
+ <span class="cline-any cline-neutral">&nbsp;</span>
189
+ <span class="cline-any cline-yes">2x</span>
190
+ <span class="cline-any cline-neutral">&nbsp;</span>
191
+ <span class="cline-any cline-neutral">&nbsp;</span>
192
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">// when thread starts, make sure it is recorded
193
+ const env = require("../environment")
194
+ env.setInThread()
195
+ const ScriptRunner = require("../utilities/scriptRunner")
196
+ const { integrations } = require("../integrations")
197
+ &nbsp;
198
+ function formatResponse(resp) {
199
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof resp === "string") {
200
+ <span class="cstat-no" title="statement not covered" > try {</span>
201
+ <span class="cstat-no" title="statement not covered" > resp = JSON.parse(resp)</span>
202
+ } catch (err) {
203
+ <span class="cstat-no" title="statement not covered" > resp = { response: resp }</span>
204
+ }
205
+ }
206
+ return resp
207
+ }
208
+ &nbsp;
209
+ async function runAndTransform(datasource, queryVerb, query, transformer) {
210
+ const Integration = integrations[datasource.source]
211
+ if (!Integration) {
212
+ throw "Integration type does not exist."
213
+ }
214
+ const integration = new Integration(datasource.config)
215
+ &nbsp;
216
+ let rows = formatResponse(await integration[queryVerb](query))
217
+ &nbsp;
218
+ // transform as required
219
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (transformer) {
220
+ const runner = <span class="cstat-no" title="statement not covered" >new ScriptRunner(transformer, { data: rows })</span>
221
+ <span class="cstat-no" title="statement not covered" > rows = runner.execute()</span>
222
+ }
223
+ &nbsp;
224
+ // needs to an array for next step
225
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!Array.isArray(rows)) {
226
+ <span class="cstat-no" title="statement not covered" > rows = [rows]</span>
227
+ }
228
+ &nbsp;
229
+ // map into JSON if just raw primitive here
230
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (rows.find(row =&gt; typeof row !== "object")) {
231
+ <span class="cstat-no" title="statement not covered" > rows = rows.map(<span class="fstat-no" title="function not covered" >va</span>lue =&gt; (<span class="cstat-no" title="statement not covered" >{ value })</span>)</span>
232
+ }
233
+ &nbsp;
234
+ // get all the potential fields in the schema
235
+ let keys = rows.flatMap(Object.keys)
236
+ &nbsp;
237
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (integration.end) {
238
+ <span class="cstat-no" title="statement not covered" > integration.end()</span>
239
+ }
240
+ &nbsp;
241
+ return { rows, keys }
242
+ }
243
+ &nbsp;
244
+ module.exports = (input, callback) =&gt; {
245
+ runAndTransform(
246
+ input.datasource,
247
+ input.queryVerb,
248
+ input.query,
249
+ input.transformer
250
+ )
251
+ .then(response =&gt; {
252
+ callback(null, response)
253
+ })
254
+ .catch(err =&gt; {
255
+ callback(err)
256
+ })
257
+ }
258
+ &nbsp;</pre></td></tr></table></pre>
259
+
260
+ <div class='push'></div><!-- for sticky footer -->
261
+ </div><!-- /wrapper -->
262
+ <div class='footer quiet pad2 space-top1 center small'>
263
+ Code coverage generated by
264
+ <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
265
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
266
+ </div>
267
+ </div>
268
+ <script src="../prettify.js"></script>
269
+ <script>
270
+ window.onload = function () {
271
+ prettyPrint();
272
+ };
273
+ </script>
274
+ <script src="../sorter.js"></script>
275
+ <script src="../block-navigation.js"></script>
276
+ </body>
277
+ </html>
278
+
@@ -109,7 +109,7 @@ const SALT_ROUNDS = <span class="cstat-no" title="statement not covered" >env.SA
109
109
  <div class='footer quiet pad2 space-top1 center small'>
110
110
  Code coverage generated by
111
111
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
112
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
112
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
113
113
  </div>
114
114
  </div>
115
115
  <script src="../prettify.js"></script>
@@ -94,7 +94,7 @@ module.exports.budibaseTempDir = budibaseTempDir
94
94
  <div class='footer quiet pad2 space-top1 center small'>
95
95
  Code coverage generated by
96
96
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
97
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
97
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
98
98
  </div>
99
99
  </div>
100
100
  <script src="../prettify.js"></script>
@@ -130,7 +130,7 @@ exports.resolve = <span class="fstat-no" title="function not covered" >fu</span>
130
130
  <div class='footer quiet pad2 space-top1 center small'>
131
131
  Code coverage generated by
132
132
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
133
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
133
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
134
134
  </div>
135
135
  </div>
136
136
  <script src="../prettify.js"></script>
@@ -427,7 +427,7 @@ function updateSchema({ schema, existingTable }) {
427
427
  for (let [key, field] of Object.entries(existingTable.schema)) {
428
428
  const lcKey = key.toLowerCase()
429
429
  const foundKey = schemaKeyMap[lcKey]
430
- <span class="missing-if-branch" title="else path not taken" >E</span>if (foundKey) {
430
+ if (foundKey) {
431
431
  finalSchema[key] = schema[foundKey]
432
432
  finalSchema[key].type = field.type
433
433
  }
@@ -487,7 +487,7 @@ module.exports = {
487
487
  <div class='footer quiet pad2 space-top1 center small'>
488
488
  Code coverage generated by
489
489
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
490
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
490
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
491
491
  </div>
492
492
  </div>
493
493
  <script src="../prettify.js"></script>
@@ -294,7 +294,7 @@ exports.updateAppRole = (appId, user) =&gt; {
294
294
  }
295
295
  &nbsp;
296
296
  function processUser(appId, user) {
297
- <span class="missing-if-branch" title="else path not taken" >E</span>if (user) {
297
+ if (user) {
298
298
  delete user.password
299
299
  }
300
300
  return exports.updateAppRole(appId, user)
@@ -367,7 +367,7 @@ exports.getGlobalUsersFromMetadata = async (appId, users) =&gt; {
367
367
  <div class='footer quiet pad2 space-top1 center small'>
368
368
  Code coverage generated by
369
369
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
370
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
370
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
371
371
  </div>
372
372
  </div>
373
373
  <script src="../prettify.js"></script>
@@ -23,14 +23,14 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">72.26% </span>
26
+ <span class="strong">72.34% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>237/328</span>
28
+ <span class='fraction'>238/329</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">54.55% </span>
33
+ <span class="strong">54.54% </span>
34
34
  <span class="quiet">Branches</span>
35
35
  <span class='fraction'>66/121</span>
36
36
  </div>
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">71.96% </span>
47
+ <span class="strong">72.04% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>231/321</span>
49
+ <span class='fraction'>232/322</span>
50
50
  </div>
51
51
 
52
52
 
@@ -149,40 +149,40 @@
149
149
 
150
150
  <tr>
151
151
  <td class="file medium" data-value="index.js"><a href="index.js.html">index.js</a></td>
152
- <td data-value="71.43" class="pic medium">
152
+ <td data-value="71.42" class="pic medium">
153
153
  <div class="chart"><div class="cover-fill" style="width: 71%"></div><div class="cover-empty" style="width: 29%"></div></div>
154
154
  </td>
155
- <td data-value="71.43" class="pct medium">71.43%</td>
155
+ <td data-value="71.42" class="pct medium">71.42%</td>
156
156
  <td data-value="70" class="abs medium">50/70</td>
157
- <td data-value="38.89" class="pct low">38.89%</td>
157
+ <td data-value="38.88" class="pct low">38.88%</td>
158
158
  <td data-value="18" class="abs low">7/18</td>
159
159
  <td data-value="73.33" class="pct medium">73.33%</td>
160
160
  <td data-value="15" class="abs medium">11/15</td>
161
- <td data-value="70.59" class="pct medium">70.59%</td>
161
+ <td data-value="70.58" class="pct medium">70.58%</td>
162
162
  <td data-value="68" class="abs medium">48/68</td>
163
163
  </tr>
164
164
 
165
165
  <tr>
166
166
  <td class="file low" data-value="scriptRunner.js"><a href="scriptRunner.js.html">scriptRunner.js</a></td>
167
- <td data-value="25" class="pic low">
168
- <div class="chart"><div class="cover-fill" style="width: 25%"></div><div class="cover-empty" style="width: 75%"></div></div>
167
+ <td data-value="30.76" class="pic low">
168
+ <div class="chart"><div class="cover-fill" style="width: 30%"></div><div class="cover-empty" style="width: 70%"></div></div>
169
169
  </td>
170
- <td data-value="25" class="pct low">25%</td>
171
- <td data-value="12" class="abs low">3/12</td>
170
+ <td data-value="30.76" class="pct low">30.76%</td>
171
+ <td data-value="13" class="abs low">4/13</td>
172
172
  <td data-value="100" class="pct high">100%</td>
173
173
  <td data-value="0" class="abs high">0/0</td>
174
174
  <td data-value="0" class="pct low">0%</td>
175
175
  <td data-value="2" class="abs low">0/2</td>
176
- <td data-value="25" class="pct low">25%</td>
177
- <td data-value="12" class="abs low">3/12</td>
176
+ <td data-value="30.76" class="pct low">30.76%</td>
177
+ <td data-value="13" class="abs low">4/13</td>
178
178
  </tr>
179
179
 
180
180
  <tr>
181
181
  <td class="file high" data-value="security.js"><a href="security.js.html">security.js</a></td>
182
- <td data-value="82.76" class="pic high">
182
+ <td data-value="82.75" class="pic high">
183
183
  <div class="chart"><div class="cover-fill" style="width: 82%"></div><div class="cover-empty" style="width: 18%"></div></div>
184
184
  </td>
185
- <td data-value="82.76" class="pct high">82.76%</td>
185
+ <td data-value="82.75" class="pct high">82.75%</td>
186
186
  <td data-value="29" class="abs high">24/29</td>
187
187
  <td data-value="53.33" class="pct medium">53.33%</td>
188
188
  <td data-value="15" class="abs medium">8/15</td>
@@ -224,16 +224,16 @@
224
224
 
225
225
  <tr>
226
226
  <td class="file medium" data-value="workerRequests.js"><a href="workerRequests.js.html">workerRequests.js</a></td>
227
- <td data-value="66.04" class="pic medium">
227
+ <td data-value="66.03" class="pic medium">
228
228
  <div class="chart"><div class="cover-fill" style="width: 66%"></div><div class="cover-empty" style="width: 34%"></div></div>
229
229
  </td>
230
- <td data-value="66.04" class="pct medium">66.04%</td>
230
+ <td data-value="66.03" class="pct medium">66.03%</td>
231
231
  <td data-value="53" class="abs medium">35/53</td>
232
232
  <td data-value="44.44" class="pct low">44.44%</td>
233
233
  <td data-value="27" class="abs low">12/27</td>
234
234
  <td data-value="60" class="pct medium">60%</td>
235
235
  <td data-value="5" class="abs medium">3/5</td>
236
- <td data-value="66.04" class="pct medium">66.04%</td>
236
+ <td data-value="66.03" class="pct medium">66.03%</td>
237
237
  <td data-value="53" class="abs medium">35/53</td>
238
238
  </tr>
239
239
 
@@ -245,7 +245,7 @@
245
245
  <div class='footer quiet pad2 space-top1 center small'>
246
246
  Code coverage generated by
247
247
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
248
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
248
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
249
249
  </div>
250
250
  </div>
251
251
  <script src="../prettify.js"></script>
@@ -23,14 +23,14 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">71.43% </span>
26
+ <span class="strong">71.42% </span>
27
27
  <span class="quiet">Statements</span>
28
28
  <span class='fraction'>50/70</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">38.89% </span>
33
+ <span class="strong">38.88% </span>
34
34
  <span class="quiet">Branches</span>
35
35
  <span class='fraction'>7/18</span>
36
36
  </div>
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">70.59% </span>
47
+ <span class="strong">70.58% </span>
48
48
  <span class="quiet">Lines</span>
49
49
  <span class='fraction'>48/68</span>
50
50
  </div>
@@ -208,7 +208,8 @@
208
208
  <a name='L149'></a><a href='#L149'>149</a>
209
209
  <a name='L150'></a><a href='#L150'>150</a>
210
210
  <a name='L151'></a><a href='#L151'>151</a>
211
- <a name='L152'></a><a href='#L152'>152</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">36x</span>
211
+ <a name='L152'></a><a href='#L152'>152</a>
212
+ <a name='L153'></a><a href='#L153'>153</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">36x</span>
212
213
  <span class="cline-any cline-yes">36x</span>
213
214
  <span class="cline-any cline-yes">36x</span>
214
215
  <span class="cline-any cline-yes">36x</span>
@@ -236,7 +237,7 @@
236
237
  <span class="cline-any cline-neutral">&nbsp;</span>
237
238
  <span class="cline-any cline-neutral">&nbsp;</span>
238
239
  <span class="cline-any cline-yes">36x</span>
239
- <span class="cline-any cline-yes">186x</span>
240
+ <span class="cline-any cline-yes">187x</span>
240
241
  <span class="cline-any cline-neutral">&nbsp;</span>
241
242
  <span class="cline-any cline-neutral">&nbsp;</span>
242
243
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -261,6 +262,7 @@
261
262
  <span class="cline-any cline-neutral">&nbsp;</span>
262
263
  <span class="cline-any cline-neutral">&nbsp;</span>
263
264
  <span class="cline-any cline-neutral">&nbsp;</span>
265
+ <span class="cline-any cline-neutral">&nbsp;</span>
264
266
  <span class="cline-any cline-yes">36x</span>
265
267
  <span class="cline-any cline-yes">187x</span>
266
268
  <span class="cline-any cline-no">&nbsp;</span>
@@ -374,7 +376,7 @@ exports.isDev = env.isDev
374
376
  &nbsp;
375
377
  exports.removeFromArray = (array, element) =&gt; {
376
378
  const index = array.indexOf(element)
377
- <span class="missing-if-branch" title="else path not taken" >E</span>if (index !== -1) {
379
+ if (index !== -1) {
378
380
  array.splice(index, 1)
379
381
  }
380
382
  return array
@@ -395,10 +397,10 @@ exports.checkSlashesInUrl = url =&gt; {
395
397
  * @return {string} The base URL of the object store (MinIO or S3).
396
398
  */
397
399
  exports.objectStoreUrl = () =&gt; {
398
- <span class="missing-if-branch" title="else path not taken" >E</span>if (env.SELF_HOSTED) {
400
+ if (env.SELF_HOSTED) {
399
401
  // can use a relative url for this as all goes through the proxy (this is hosted in minio)
400
402
  return OBJ_STORE_DIRECTORY
401
- } else {
403
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
402
404
  <span class="cstat-no" title="statement not covered" > return BB_CDN</span>
403
405
  }
404
406
  }
@@ -409,6 +411,7 @@ exports.objectStoreUrl = () =&gt; {
409
411
  * via a specific endpoint (under /api/assets/client).
410
412
  * @param {string} appId In production we need the appId to look up the correct bucket, as the
411
413
  * version of the client lib may differ between apps.
414
+ * @param {string} version The version to retrieve.
412
415
  * @return {string} The URL to be inserted into appPackage response or server rendered
413
416
  * app index file.
414
417
  */
@@ -517,7 +520,7 @@ exports.doesDatabaseExist = <span class="fstat-no" title="function not covered"
517
520
  <div class='footer quiet pad2 space-top1 center small'>
518
521
  Code coverage generated by
519
522
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
520
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
523
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
521
524
  </div>
522
525
  </div>
523
526
  <script src="../prettify.js"></script>