@budibase/server 0.9.185-alpha.0 → 0.9.185-alpha.12

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 (257) hide show
  1. package/Dockerfile +1 -1
  2. package/builder/assets/bb-space-man.5be51a45.svg +290 -0
  3. package/builder/assets/index.4a7c5636.css +1 -0
  4. package/builder/assets/index.708945dd.js +1316 -0
  5. package/builder/assets/vendor.470042a4.js +152 -0
  6. package/builder/assets/vendor.5e1fe644.css +1 -0
  7. package/builder/index.html +4 -4
  8. package/coverage/clover.xml +1060 -928
  9. package/coverage/coverage-final.json +90 -88
  10. package/coverage/lcov-report/api/controllers/analytics.js.html +2 -2
  11. package/coverage/lcov-report/api/controllers/apikeys.js.html +2 -2
  12. package/coverage/lcov-report/api/controllers/application.js.html +43 -13
  13. package/coverage/lcov-report/api/controllers/auth.js.html +7 -7
  14. package/coverage/lcov-report/api/controllers/automation.js.html +3 -3
  15. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/component.js.html +4 -4
  18. package/coverage/lcov-report/api/controllers/datasource.js.html +31 -7
  19. package/coverage/lcov-report/api/controllers/dev.js.html +16 -7
  20. package/coverage/lcov-report/api/controllers/hosting.js.html +10 -10
  21. package/coverage/lcov-report/api/controllers/index.html +75 -75
  22. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/layout.js.html +3 -3
  24. package/coverage/lcov-report/api/controllers/metadata.js.html +3 -3
  25. package/coverage/lcov-report/api/controllers/permission.js.html +3 -3
  26. package/coverage/lcov-report/api/controllers/query.js.html +48 -210
  27. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  28. package/coverage/lcov-report/api/controllers/routing.js.html +3 -3
  29. package/coverage/lcov-report/api/controllers/row/external.js.html +12 -6
  30. package/coverage/lcov-report/api/controllers/row/index.html +18 -18
  31. package/coverage/lcov-report/api/controllers/row/index.js.html +2 -2
  32. package/coverage/lcov-report/api/controllers/row/internal.js.html +9 -9
  33. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +2 -2
  34. package/coverage/lcov-report/api/controllers/row/utils.js.html +2 -2
  35. package/coverage/lcov-report/api/controllers/screen.js.html +2 -2
  36. package/coverage/lcov-report/api/controllers/script.js.html +3 -3
  37. package/coverage/lcov-report/api/controllers/table/external.js.html +65 -8
  38. package/coverage/lcov-report/api/controllers/table/index.html +42 -42
  39. package/coverage/lcov-report/api/controllers/table/index.js.html +66 -12
  40. package/coverage/lcov-report/api/controllers/table/internal.js.html +49 -10
  41. package/coverage/lcov-report/api/controllers/table/utils.js.html +57 -45
  42. package/coverage/lcov-report/api/controllers/templates.js.html +4 -4
  43. package/coverage/lcov-report/api/controllers/user.js.html +33 -18
  44. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  45. package/coverage/lcov-report/api/controllers/view/index.html +9 -9
  46. package/coverage/lcov-report/api/controllers/view/index.js.html +5 -5
  47. package/coverage/lcov-report/api/controllers/view/utils.js.html +11 -11
  48. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +3 -3
  49. package/coverage/lcov-report/api/controllers/webhook.js.html +4 -4
  50. package/coverage/lcov-report/api/index.html +1 -1
  51. package/coverage/lcov-report/api/index.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/dev.js.html +2 -2
  63. package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/index.html +4 -4
  65. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/query.js.html +5 -2
  71. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/static.js.html +2 -2
  77. package/coverage/lcov-report/api/routes/table.js.html +35 -2
  78. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  82. package/coverage/lcov-report/automations/actions.js.html +2 -2
  83. package/coverage/lcov-report/automations/automationUtils.js.html +3 -3
  84. package/coverage/lcov-report/automations/bullboard.js.html +71 -20
  85. package/coverage/lcov-report/automations/index.html +33 -48
  86. package/coverage/lcov-report/automations/index.js.html +2 -2
  87. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/discord.js.html +3 -3
  92. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/executeScript.js.html +3 -3
  94. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/index.html +14 -14
  96. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +3 -3
  98. package/coverage/lcov-report/automations/steps/queryRows.js.html +3 -3
  99. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  100. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  101. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  102. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  103. package/coverage/lcov-report/automations/steps/utils.js.html +7 -7
  104. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  106. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  107. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  108. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  109. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  110. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  111. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  112. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  113. package/coverage/lcov-report/automations/triggers.js.html +22 -10
  114. package/coverage/lcov-report/automations/utils.js.html +42 -12
  115. package/coverage/lcov-report/constants/index.html +1 -1
  116. package/coverage/lcov-report/constants/index.js.html +5 -2
  117. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  118. package/coverage/lcov-report/constants/screens.js.html +1 -1
  119. package/coverage/lcov-report/db/client.js.html +2 -2
  120. package/coverage/lcov-report/db/inMemoryView.js.html +2 -2
  121. package/coverage/lcov-report/db/index.html +2 -2
  122. package/coverage/lcov-report/db/index.js.html +1 -1
  123. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +6 -6
  124. package/coverage/lcov-report/db/linkedRows/index.html +10 -10
  125. package/coverage/lcov-report/db/linkedRows/index.js.html +5 -5
  126. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +6 -6
  127. package/coverage/lcov-report/db/newid.js.html +1 -1
  128. package/coverage/lcov-report/db/utils.js.html +1 -1
  129. package/coverage/lcov-report/events/AutomationEmitter.js.html +6 -6
  130. package/coverage/lcov-report/events/index.html +6 -6
  131. package/coverage/lcov-report/events/index.js.html +1 -1
  132. package/coverage/lcov-report/events/utils.js.html +5 -5
  133. package/coverage/lcov-report/index.html +94 -79
  134. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  135. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  136. package/coverage/lcov-report/middleware/appInfo.js.html +2 -2
  137. package/coverage/lcov-report/middleware/authorized.js.html +5 -5
  138. package/coverage/lcov-report/middleware/builder.js.html +16 -7
  139. package/coverage/lcov-report/middleware/currentapp.js.html +6 -6
  140. package/coverage/lcov-report/middleware/index.html +21 -21
  141. package/coverage/lcov-report/middleware/joi-validator.js.html +2 -2
  142. package/coverage/lcov-report/middleware/resourceId.js.html +18 -18
  143. package/coverage/lcov-report/middleware/selfhost.js.html +2 -2
  144. package/coverage/lcov-report/middleware/usageQuota.js.html +4 -4
  145. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  146. package/coverage/lcov-report/{automations/thread.js.html → threads/automation.js.html} +83 -32
  147. package/coverage/lcov-report/threads/index.html +141 -0
  148. package/coverage/lcov-report/threads/index.js.html +260 -0
  149. package/coverage/lcov-report/threads/query.js.html +269 -0
  150. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  151. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  152. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  153. package/coverage/lcov-report/utilities/csvParser.js.html +144 -15
  154. package/coverage/lcov-report/utilities/global.js.html +2 -2
  155. package/coverage/lcov-report/utilities/index.html +34 -34
  156. package/coverage/lcov-report/utilities/index.js.html +12 -9
  157. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +30 -9
  158. package/coverage/lcov-report/utilities/queue/index.html +14 -14
  159. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  160. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  161. package/coverage/lcov-report/utilities/rowProcessor/index.html +4 -4
  162. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +2 -2
  163. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +3 -3
  164. package/coverage/lcov-report/utilities/scriptRunner.js.html +16 -7
  165. package/coverage/lcov-report/utilities/security.js.html +3 -3
  166. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  167. package/coverage/lcov-report/utilities/users.js.html +1 -1
  168. package/coverage/lcov-report/utilities/workerRequests.js.html +5 -5
  169. package/coverage/lcov.info +1753 -1527
  170. package/dist/api/controllers/application.js +11 -1
  171. package/dist/api/controllers/datasource.js +6 -2
  172. package/dist/api/controllers/deploy/index.js +2 -0
  173. package/dist/api/controllers/dev.js +4 -1
  174. package/dist/api/controllers/query.js +27 -57
  175. package/dist/api/controllers/row/ExternalRequest.js +2 -2
  176. package/dist/api/controllers/row/external.js +1 -0
  177. package/dist/api/controllers/table/external.js +17 -0
  178. package/dist/api/controllers/table/index.js +21 -2
  179. package/dist/api/controllers/table/internal.js +10 -1
  180. package/dist/api/controllers/table/utils.js +28 -27
  181. package/dist/api/controllers/user.js +10 -6
  182. package/dist/api/routes/query.js +1 -1
  183. package/dist/api/routes/table.js +7 -1
  184. package/dist/app.js +2 -11
  185. package/dist/automations/bullboard.js +37 -10
  186. package/dist/automations/triggers.js +7 -3
  187. package/dist/automations/utils.js +11 -2
  188. package/dist/constants/index.js +1 -0
  189. package/dist/definitions/datasource.js +1 -0
  190. package/dist/integrations/base/IntegrationBase.js +2 -0
  191. package/dist/integrations/base/sql.js +48 -8
  192. package/dist/integrations/base/sqlTable.js +1 -2
  193. package/dist/integrations/mysql.js +3 -1
  194. package/dist/integrations/postgres.js +2 -2
  195. package/dist/middleware/builder.js +4 -1
  196. package/dist/package.json +7 -6
  197. package/dist/{automations/thread.js → threads/automation.js} +23 -7
  198. package/dist/threads/index.js +58 -0
  199. package/dist/threads/query.js +61 -0
  200. package/dist/tsconfig.tsbuildinfo +1 -1
  201. package/dist/utilities/csvParser.js +46 -5
  202. package/dist/utilities/index.js +1 -0
  203. package/dist/utilities/queue/inMemoryQueue.js +8 -0
  204. package/dist/utilities/scriptRunner.js +4 -1
  205. package/package.json +8 -7
  206. package/scripts/likeCypress.ts +33 -0
  207. package/src/api/controllers/application.js +11 -1
  208. package/src/api/controllers/datasource.js +10 -2
  209. package/src/api/controllers/deploy/index.js +2 -0
  210. package/src/api/controllers/dev.js +4 -1
  211. package/src/api/controllers/query.js +26 -80
  212. package/src/api/controllers/row/ExternalRequest.ts +6 -2
  213. package/src/api/controllers/row/external.js +2 -0
  214. package/src/api/controllers/table/external.js +19 -0
  215. package/src/api/controllers/table/index.js +20 -2
  216. package/src/api/controllers/table/internal.js +14 -1
  217. package/src/api/controllers/table/utils.js +36 -32
  218. package/src/api/controllers/user.js +15 -10
  219. package/src/api/routes/query.js +1 -0
  220. package/src/api/routes/table.js +11 -0
  221. package/src/api/routes/tests/misc.spec.js +5 -1
  222. package/src/app.ts +2 -10
  223. package/src/automations/bullboard.js +28 -11
  224. package/src/automations/tests/automation.spec.js +3 -4
  225. package/src/automations/triggers.js +7 -3
  226. package/src/automations/utils.js +12 -2
  227. package/src/constants/index.js +1 -0
  228. package/src/definitions/datasource.ts +3 -2
  229. package/src/integrations/airtable.ts +2 -1
  230. package/src/integrations/arangodb.ts +2 -1
  231. package/src/integrations/base/IntegrationBase.ts +6 -0
  232. package/src/integrations/base/datasourcePlus.ts +2 -1
  233. package/src/integrations/base/sql.ts +51 -9
  234. package/src/integrations/base/sqlTable.ts +1 -4
  235. package/src/integrations/couchdb.ts +2 -1
  236. package/src/integrations/dynamodb.ts +2 -1
  237. package/src/integrations/elasticsearch.ts +2 -1
  238. package/src/integrations/mongodb.ts +2 -1
  239. package/src/integrations/mysql.ts +1 -1
  240. package/src/integrations/postgres.ts +5 -5
  241. package/src/integrations/rest.ts +2 -1
  242. package/src/integrations/s3.ts +2 -1
  243. package/src/middleware/builder.js +4 -1
  244. package/src/{automations/thread.js → threads/automation.js} +24 -7
  245. package/src/threads/index.js +60 -0
  246. package/src/threads/query.js +63 -0
  247. package/src/utilities/csvParser.js +48 -5
  248. package/src/utilities/index.js +1 -0
  249. package/src/utilities/queue/inMemoryQueue.js +7 -0
  250. package/src/utilities/scriptRunner.js +4 -1
  251. package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -6
  252. package/src/utilities/tests/csvParser.spec.js +3 -0
  253. package/tsconfig.json +1 -1
  254. package/builder/assets/index.0e6a5c20.js +0 -201
  255. package/builder/assets/index.cf21e4d2.css +0 -29
  256. package/builder/assets/vendor.278a305c.js +0 -9
  257. package/builder/assets/vendor.d75d5eb7.css +0 -1
@@ -23,14 +23,14 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">52.61% </span>
26
+ <span class="strong">52.69% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>312/593</span>
28
+ <span class='fraction'>313/594</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">33.74% </span>
33
+ <span class="strong">33.73% </span>
34
34
  <span class="quiet">Branches</span>
35
35
  <span class='fraction'>83/246</span>
36
36
  </div>
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">52.67% </span>
47
+ <span class="strong">52.74% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>306/581</span>
49
+ <span class='fraction'>307/582</span>
50
50
  </div>
51
51
 
52
52
 
@@ -74,17 +74,17 @@
74
74
  </thead>
75
75
  <tbody><tr>
76
76
  <td class="file low" data-value="external.js"><a href="external.js.html">external.js</a></td>
77
- <td data-value="14.14" class="pic low">
78
- <div class="chart"><div class="cover-fill" style="width: 14%"></div><div class="cover-empty" style="width: 86%"></div></div>
77
+ <td data-value="15" 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="14.14" class="pct low">14.14%</td>
81
- <td data-value="99" class="abs low">14/99</td>
80
+ <td data-value="15" class="pct low">15%</td>
81
+ <td data-value="100" class="abs low">15/100</td>
82
82
  <td data-value="0" class="pct low">0%</td>
83
83
  <td data-value="40" class="abs low">0/40</td>
84
84
  <td data-value="0" class="pct low">0%</td>
85
85
  <td data-value="13" class="abs low">0/13</td>
86
- <td data-value="14.43" class="pct low">14.43%</td>
87
- <td data-value="97" class="abs low">14/97</td>
86
+ <td data-value="15.3" class="pct low">15.3%</td>
87
+ <td data-value="98" class="abs low">15/98</td>
88
88
  </tr>
89
89
 
90
90
  <tr>
@@ -94,7 +94,7 @@
94
94
  </td>
95
95
  <td data-value="92.94" class="pct high">92.94%</td>
96
96
  <td data-value="85" class="abs high">79/85</td>
97
- <td data-value="94.12" class="pct high">94.12%</td>
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
99
  <td data-value="100" class="pct high">100%</td>
100
100
  <td data-value="11" class="abs high">11/11</td>
@@ -109,20 +109,20 @@
109
109
  </td>
110
110
  <td data-value="82.79" class="pct high">82.79%</td>
111
111
  <td data-value="215" class="abs high">178/215</td>
112
- <td data-value="60.94" class="pct medium">60.94%</td>
112
+ <td data-value="60.93" class="pct medium">60.93%</td>
113
113
  <td data-value="64" class="abs medium">39/64</td>
114
114
  <td data-value="92" class="pct high">92%</td>
115
115
  <td data-value="25" class="abs high">23/25</td>
116
- <td data-value="82.78" class="pct high">82.78%</td>
116
+ <td data-value="82.77" class="pct high">82.77%</td>
117
117
  <td data-value="209" class="abs high">173/209</td>
118
118
  </tr>
119
119
 
120
120
  <tr>
121
121
  <td class="file low" data-value="internalSearch.js"><a href="internalSearch.js.html">internalSearch.js</a></td>
122
- <td data-value="4.67" class="pic low">
122
+ <td data-value="4.66" class="pic low">
123
123
  <div class="chart"><div class="cover-fill" style="width: 4%"></div><div class="cover-empty" style="width: 96%"></div></div>
124
124
  </td>
125
- <td data-value="4.67" class="pct low">4.67%</td>
125
+ <td data-value="4.66" class="pct low">4.66%</td>
126
126
  <td data-value="150" class="abs low">7/150</td>
127
127
  <td data-value="0" class="pct low">0%</td>
128
128
  <td data-value="85" class="abs low">0/85</td>
@@ -141,7 +141,7 @@
141
141
  <td data-value="44" class="abs medium">34/44</td>
142
142
  <td data-value="52.17" class="pct medium">52.17%</td>
143
143
  <td data-value="23" class="abs medium">12/23</td>
144
- <td data-value="66.67" class="pct medium">66.67%</td>
144
+ <td data-value="66.66" class="pct medium">66.66%</td>
145
145
  <td data-value="6" class="abs medium">4/6</td>
146
146
  <td data-value="76.74" class="pct medium">76.74%</td>
147
147
  <td data-value="43" class="abs medium">33/43</td>
@@ -155,7 +155,7 @@
155
155
  <div class='footer quiet pad2 space-top1 center small'>
156
156
  Code coverage generated by
157
157
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
158
- at Thu Nov 11 2021 13:56:13 GMT+0000 (Coordinated Universal Time)
158
+ at Mon Nov 22 2021 10:51:12 GMT+0000 (Coordinated Universal Time)
159
159
  </div>
160
160
  </div>
161
161
  <script src="../../../prettify.js"></script>
@@ -30,7 +30,7 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">94.12% </span>
33
+ <span class="strong">94.11% </span>
34
34
  <span class="quiet">Branches</span>
35
35
  <span class='fraction'>32/34</span>
36
36
  </div>
@@ -481,7 +481,7 @@ exports.fetchEnrichedRow = async function (ctx) {
481
481
  <div class='footer quiet pad2 space-top1 center small'>
482
482
  Code coverage generated by
483
483
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
484
- at Thu Nov 11 2021 13:56:13 GMT+0000 (Coordinated Universal Time)
484
+ at Mon Nov 22 2021 10:51:12 GMT+0000 (Coordinated Universal Time)
485
485
  </div>
486
486
  </div>
487
487
  <script src="../../../prettify.js"></script>
@@ -30,7 +30,7 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">60.94% </span>
33
+ <span class="strong">60.93% </span>
34
34
  <span class="quiet">Branches</span>
35
35
  <span class='fraction'>39/64</span>
36
36
  </div>
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">82.78% </span>
47
+ <span class="strong">82.77% </span>
48
48
  <span class="quiet">Lines</span>
49
49
  <span class='fraction'>173/209</span>
50
50
  </div>
@@ -1119,7 +1119,7 @@ exports.save = async function (ctx) {
1119
1119
  let inputs = ctx.request.body
1120
1120
  inputs.tableId = ctx.params.tableId
1121
1121
  &nbsp;
1122
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!inputs._rev &amp;&amp; !inputs._id) {
1122
+ if (!inputs._rev &amp;&amp; !inputs._id) {
1123
1123
  inputs._id = generateRowID(inputs.tableId)
1124
1124
  }
1125
1125
  &nbsp;
@@ -1161,12 +1161,12 @@ exports.fetchView = async ctx =&gt; {
1161
1161
  const { calculation, group, field } = ctx.query
1162
1162
  const viewInfo = await getView(db, viewName)
1163
1163
  let response
1164
- <span class="missing-if-branch" title="else path not taken" >E</span>if (env.SELF_HOSTED) {
1164
+ if (env.SELF_HOSTED) {
1165
1165
  response = await db.query(`database/${viewName}`, {
1166
1166
  include_docs: !calculation,
1167
1167
  group: !!group,
1168
1168
  })
1169
- } else {
1169
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
1170
1170
  const tableId = <span class="cstat-no" title="statement not covered" >viewInfo.meta.tableId</span>
1171
1171
  const data = <span class="cstat-no" title="statement not covered" >await getRawTableData(ctx, db, tableId)</span>
1172
1172
  <span class="cstat-no" title="statement not covered" > response = await inMemoryViews.runView(viewInfo, calculation, group, data)</span>
@@ -1319,7 +1319,7 @@ exports.search = async ctx =&gt; {
1319
1319
  }
1320
1320
  &nbsp;
1321
1321
  // Enrich search results with relationships
1322
- <span class="missing-if-branch" title="else path not taken" >E</span>if (response.rows &amp;&amp; response.rows.length) {
1322
+ if (response.rows &amp;&amp; response.rows.length) {
1323
1323
  // enrich with global users if from users table
1324
1324
  <span class="missing-if-branch" title="if path not taken" >I</span>if (tableId === InternalTables.USER_METADATA) {
1325
1325
  <span class="cstat-no" title="statement not covered" > response.rows = await getGlobalUsersFromMetadata(appId, response.rows)</span>
@@ -1367,10 +1367,10 @@ exports.fetchEnrichedRow = async ctx =&gt; {
1367
1367
  tables = {}
1368
1368
  for (let row of response) {
1369
1369
  const linkedTableId = row.tableId
1370
- <span class="missing-if-branch" title="else path not taken" >E</span>if (groups[linkedTableId] == null) {
1370
+ if (groups[linkedTableId] == null) {
1371
1371
  groups[linkedTableId] = [row]
1372
1372
  tables[linkedTableId] = await db.get(linkedTableId)
1373
- } else {
1373
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
1374
1374
  <span class="cstat-no" title="statement not covered" > groups[linkedTableId].push(row)</span>
1375
1375
  }
1376
1376
  }
@@ -1405,7 +1405,7 @@ exports.fetchEnrichedRow = async ctx =&gt; {
1405
1405
  <div class='footer quiet pad2 space-top1 center small'>
1406
1406
  Code coverage generated by
1407
1407
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1408
- at Thu Nov 11 2021 13:56:13 GMT+0000 (Coordinated Universal Time)
1408
+ at Mon Nov 22 2021 10:51:12 GMT+0000 (Coordinated Universal Time)
1409
1409
  </div>
1410
1410
  </div>
1411
1411
  <script src="../../../prettify.js"></script>
@@ -23,7 +23,7 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">4.67% </span>
26
+ <span class="strong">4.66% </span>
27
27
  <span class="quiet">Statements</span>
28
28
  <span class='fraction'>7/150</span>
29
29
  </div>
@@ -1228,7 +1228,7 @@ exports.fullSearch = <span class="fstat-no" title="function not covered" >as</sp
1228
1228
  <div class='footer quiet pad2 space-top1 center small'>
1229
1229
  Code coverage generated by
1230
1230
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1231
- at Thu Nov 11 2021 13:56:13 GMT+0000 (Coordinated Universal Time)
1231
+ at Mon Nov 22 2021 10:51:12 GMT+0000 (Coordinated Universal Time)
1232
1232
  </div>
1233
1233
  </div>
1234
1234
  <script src="../../../prettify.js"></script>
@@ -37,7 +37,7 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">66.67% </span>
40
+ <span class="strong">66.66% </span>
41
41
  <span class="quiet">Functions</span>
42
42
  <span class='fraction'>4/6</span>
43
43
  </div>
@@ -319,7 +319,7 @@ exports.validate = async ({ appId, tableId, row, table }) =&gt; {
319
319
  <div class='footer quiet pad2 space-top1 center small'>
320
320
  Code coverage generated by
321
321
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
322
- at Thu Nov 11 2021 13:56:13 GMT+0000 (Coordinated Universal Time)
322
+ at Mon Nov 22 2021 10:51:12 GMT+0000 (Coordinated Universal Time)
323
323
  </div>
324
324
  </div>
325
325
  <script src="../../../prettify.js"></script>
@@ -180,7 +180,7 @@ exports.save = async ctx =&gt; {
180
180
  const db = new CouchDB(appId)
181
181
  let screen = ctx.request.body
182
182
  &nbsp;
183
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!screen._id) {
183
+ if (!screen._id) {
184
184
  screen._id = generateScreenID()
185
185
  }
186
186
  const response = await db.put(screen)
@@ -208,7 +208,7 @@ exports.destroy = async ctx =&gt; {
208
208
  <div class='footer quiet pad2 space-top1 center small'>
209
209
  Code coverage generated by
210
210
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
211
- at Thu Nov 11 2021 13:56:13 GMT+0000 (Coordinated Universal Time)
211
+ at Mon Nov 22 2021 10:51:12 GMT+0000 (Coordinated Universal Time)
212
212
  </div>
213
213
  </div>
214
214
  <script src="../../prettify.js"></script>
@@ -23,7 +23,7 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">42.86% </span>
26
+ <span class="strong">42.85% </span>
27
27
  <span class="quiet">Statements</span>
28
28
  <span class='fraction'>3/7</span>
29
29
  </div>
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">42.86% </span>
47
+ <span class="strong">42.85% </span>
48
48
  <span class="quiet">Lines</span>
49
49
  <span class='fraction'>3/7</span>
50
50
  </div>
@@ -97,7 +97,7 @@ exports.save = <span class="fstat-no" title="function not covered" >as</span>ync
97
97
  <div class='footer quiet pad2 space-top1 center small'>
98
98
  Code coverage generated by
99
99
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
100
- at Thu Nov 11 2021 13:56:13 GMT+0000 (Coordinated Universal Time)
100
+ at Mon Nov 22 2021 10:51:12 GMT+0000 (Coordinated Universal Time)
101
101
  </div>
102
102
  </div>
103
103
  <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">6.56% </span>
26
+ <span class="strong">8.27% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>8/122</span>
28
+ <span class='fraction'>11/133</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/65</span>
35
+ <span class='fraction'>0/70</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/14</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">6.56% </span>
47
+ <span class="strong">8.27% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>8/122</span>
49
+ <span class='fraction'>11/133</span>
50
50
  </div>
51
51
 
52
52
 
@@ -338,7 +338,26 @@
338
338
  <a name='L279'></a><a href='#L279'>279</a>
339
339
  <a name='L280'></a><a href='#L280'>280</a>
340
340
  <a name='L281'></a><a href='#L281'>281</a>
341
- <a name='L282'></a><a href='#L282'>282</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
341
+ <a name='L282'></a><a href='#L282'>282</a>
342
+ <a name='L283'></a><a href='#L283'>283</a>
343
+ <a name='L284'></a><a href='#L284'>284</a>
344
+ <a name='L285'></a><a href='#L285'>285</a>
345
+ <a name='L286'></a><a href='#L286'>286</a>
346
+ <a name='L287'></a><a href='#L287'>287</a>
347
+ <a name='L288'></a><a href='#L288'>288</a>
348
+ <a name='L289'></a><a href='#L289'>289</a>
349
+ <a name='L290'></a><a href='#L290'>290</a>
350
+ <a name='L291'></a><a href='#L291'>291</a>
351
+ <a name='L292'></a><a href='#L292'>292</a>
352
+ <a name='L293'></a><a href='#L293'>293</a>
353
+ <a name='L294'></a><a href='#L294'>294</a>
354
+ <a name='L295'></a><a href='#L295'>295</a>
355
+ <a name='L296'></a><a href='#L296'>296</a>
356
+ <a name='L297'></a><a href='#L297'>297</a>
357
+ <a name='L298'></a><a href='#L298'>298</a>
358
+ <a name='L299'></a><a href='#L299'>299</a>
359
+ <a name='L300'></a><a href='#L300'>300</a>
360
+ <a name='L301'></a><a href='#L301'>301</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
342
361
  <span class="cline-any cline-neutral">&nbsp;</span>
343
362
  <span class="cline-any cline-neutral">&nbsp;</span>
344
363
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -357,6 +376,8 @@
357
376
  <span class="cline-any cline-yes">34x</span>
358
377
  <span class="cline-any cline-yes">34x</span>
359
378
  <span class="cline-any cline-yes">34x</span>
379
+ <span class="cline-any cline-yes">34x</span>
380
+ <span class="cline-any cline-yes">34x</span>
360
381
  <span class="cline-any cline-neutral">&nbsp;</span>
361
382
  <span class="cline-any cline-neutral">&nbsp;</span>
362
383
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -619,6 +640,23 @@
619
640
  <span class="cline-any cline-neutral">&nbsp;</span>
620
641
  <span class="cline-any cline-no">&nbsp;</span>
621
642
  <span class="cline-any cline-neutral">&nbsp;</span>
643
+ <span class="cline-any cline-neutral">&nbsp;</span>
644
+ <span class="cline-any cline-yes">34x</span>
645
+ <span class="cline-any cline-no">&nbsp;</span>
646
+ <span class="cline-any cline-no">&nbsp;</span>
647
+ <span class="cline-any cline-no">&nbsp;</span>
648
+ <span class="cline-any cline-no">&nbsp;</span>
649
+ <span class="cline-any cline-no">&nbsp;</span>
650
+ <span class="cline-any cline-neutral">&nbsp;</span>
651
+ <span class="cline-any cline-no">&nbsp;</span>
652
+ <span class="cline-any cline-neutral">&nbsp;</span>
653
+ <span class="cline-any cline-neutral">&nbsp;</span>
654
+ <span class="cline-any cline-neutral">&nbsp;</span>
655
+ <span class="cline-any cline-no">&nbsp;</span>
656
+ <span class="cline-any cline-neutral">&nbsp;</span>
657
+ <span class="cline-any cline-neutral">&nbsp;</span>
658
+ <span class="cline-any cline-no">&nbsp;</span>
659
+ <span class="cline-any cline-neutral">&nbsp;</span>
622
660
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../../db")
623
661
  const {
624
662
  buildExternalTableId,
@@ -638,6 +676,8 @@ const {
638
676
  } = require("../../../constants")
639
677
  const { makeExternalQuery } = require("../../../integrations/base/utils")
640
678
  const { cloneDeep } = require("lodash/fp")
679
+ const csvParser = require("../../../utilities/csvParser")
680
+ const { handleRequest } = require("../row/external")
641
681
  &nbsp;
642
682
  async function <span class="fstat-no" title="function not covered" >makeTableRequest(</span>
643
683
  datasource,
@@ -900,6 +940,23 @@ exports.destroy = <span class="fstat-no" title="function not covered" >as</span>
900
940
  &nbsp;
901
941
  <span class="cstat-no" title="statement not covered" > return tableToDelete</span>
902
942
  }
943
+ &nbsp;
944
+ exports.bulkImport = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
945
+ const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
946
+ const table = <span class="cstat-no" title="statement not covered" >await getTable(appId, ctx.params.tableId)</span>
947
+ const { dataImport } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
948
+ <span class="cstat-no" title="statement not covered" > if (!dataImport || !dataImport.schema || !dataImport.csvString) {</span>
949
+ <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Provided data import information is invalid.")</span>
950
+ }
951
+ const rows = <span class="cstat-no" title="statement not covered" >await csvParser.transform({</span>
952
+ ...dataImport,
953
+ existingTable: table,
954
+ })
955
+ <span class="cstat-no" title="statement not covered" > await handleRequest(appId, DataSourceOperation.BULK_CREATE, table._id, {</span>
956
+ rows,
957
+ })
958
+ <span class="cstat-no" title="statement not covered" > return table</span>
959
+ }
903
960
  &nbsp;</pre></td></tr></table></pre>
904
961
 
905
962
  <div class='push'></div><!-- for sticky footer -->
@@ -907,7 +964,7 @@ exports.destroy = <span class="fstat-no" title="function not covered" >as</span>
907
964
  <div class='footer quiet pad2 space-top1 center small'>
908
965
  Code coverage generated by
909
966
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
910
- at Thu Nov 11 2021 13:56:13 GMT+0000 (Coordinated Universal Time)
967
+ at Mon Nov 22 2021 10:51:12 GMT+0000 (Coordinated Universal Time)
911
968
  </div>
912
969
  </div>
913
970
  <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">53.23% </span>
26
+ <span class="strong">51.74% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>214/402</span>
28
+ <span class='fraction'>222/429</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">39.05% </span>
33
+ <span class="strong">38.35% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>82/210</span>
35
+ <span class='fraction'>84/219</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">50.94% </span>
40
+ <span class="strong">48.21% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>27/53</span>
42
+ <span class='fraction'>27/56</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">53.81% </span>
47
+ <span class="strong">52.25% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>212/394</span>
49
+ <span class='fraction'>220/421</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="6.56" class="pic low">
78
- <div class="chart"><div class="cover-fill" style="width: 6%"></div><div class="cover-empty" style="width: 94%"></div></div>
77
+ <td data-value="8.27" class="pic low">
78
+ <div class="chart"><div class="cover-fill" style="width: 8%"></div><div class="cover-empty" style="width: 92%"></div></div>
79
79
  </td>
80
- <td data-value="6.56" class="pct low">6.56%</td>
81
- <td data-value="122" class="abs low">8/122</td>
80
+ <td data-value="8.27" class="pct low">8.27%</td>
81
+ <td data-value="133" class="abs low">11/133</td>
82
82
  <td data-value="0" class="pct low">0%</td>
83
- <td data-value="65" class="abs low">0/65</td>
83
+ <td data-value="70" class="abs low">0/70</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="6.56" class="pct low">6.56%</td>
87
- <td data-value="122" class="abs low">8/122</td>
85
+ <td data-value="14" class="abs low">0/14</td>
86
+ <td data-value="8.27" class="pct low">8.27%</td>
87
+ <td data-value="133" class="abs low">11/133</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="91.3" class="pic high">
93
- <div class="chart"><div class="cover-fill" style="width: 91%"></div><div class="cover-empty" style="width: 9%"></div></div>
92
+ <td data-value="81.81" class="pic high">
93
+ <div class="chart"><div class="cover-fill" style="width: 81%"></div><div class="cover-empty" style="width: 19%"></div></div>
94
94
  </td>
95
- <td data-value="91.3" class="pct high">91.3%</td>
96
- <td data-value="46" class="abs high">42/46</td>
97
- <td data-value="78.95" class="pct medium">78.95%</td>
98
- <td data-value="19" class="abs medium">15/19</td>
99
- <td data-value="77.78" class="pct medium">77.78%</td>
100
- <td data-value="9" class="abs medium">7/9</td>
101
- <td data-value="93.18" class="pct high">93.18%</td>
102
- <td data-value="44" class="abs high">41/44</td>
95
+ <td data-value="81.81" class="pct high">81.81%</td>
96
+ <td data-value="55" class="abs high">45/55</td>
97
+ <td data-value="73.91" class="pct medium">73.91%</td>
98
+ <td data-value="23" class="abs medium">17/23</td>
99
+ <td data-value="70" class="pct medium">70%</td>
100
+ <td data-value="10" class="abs medium">7/10</td>
101
+ <td data-value="83.01" class="pct high">83.01%</td>
102
+ <td data-value="53" class="abs high">44/53</td>
103
103
  </tr>
104
104
 
105
105
  <tr>
106
- <td class="file high" data-value="internal.js"><a href="internal.js.html">internal.js</a></td>
107
- <td data-value="80" class="pic high">
108
- <div class="chart"><div class="cover-fill" style="width: 80%"></div><div class="cover-empty" style="width: 20%"></div></div>
106
+ <td class="file medium" data-value="internal.js"><a href="internal.js.html">internal.js</a></td>
107
+ <td data-value="74.24" class="pic medium">
108
+ <div class="chart"><div class="cover-fill" style="width: 74%"></div><div class="cover-empty" style="width: 26%"></div></div>
109
109
  </td>
110
- <td data-value="80" class="pct high">80%</td>
111
- <td data-value="60" class="abs high">48/60</td>
110
+ <td data-value="74.24" class="pct medium">74.24%</td>
111
+ <td data-value="66" class="abs medium">49/66</td>
112
112
  <td data-value="72.22" class="pct medium">72.22%</td>
113
113
  <td data-value="36" class="abs medium">26/36</td>
114
- <td data-value="75" class="pct medium">75%</td>
115
- <td data-value="4" class="abs medium">3/4</td>
116
- <td data-value="84.21" class="pct high">84.21%</td>
117
- <td data-value="57" class="abs high">48/57</td>
114
+ <td data-value="60" class="pct medium">60%</td>
115
+ <td data-value="5" class="abs medium">3/5</td>
116
+ <td data-value="77.77" class="pct medium">77.77%</td>
117
+ <td data-value="63" class="abs medium">49/63</td>
118
118
  </tr>
119
119
 
120
120
  <tr>
121
121
  <td class="file medium" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
122
- <td data-value="66.67" class="pic medium">
122
+ <td data-value="66.85" class="pic medium">
123
123
  <div class="chart"><div class="cover-fill" style="width: 66%"></div><div class="cover-empty" style="width: 34%"></div></div>
124
124
  </td>
125
- <td data-value="66.67" class="pct medium">66.67%</td>
126
- <td data-value="174" class="abs medium">116/174</td>
127
- <td data-value="45.56" class="pct low">45.56%</td>
125
+ <td data-value="66.85" class="pct medium">66.85%</td>
126
+ <td data-value="175" class="abs medium">117/175</td>
127
+ <td data-value="45.55" class="pct low">45.55%</td>
128
128
  <td data-value="90" class="abs low">41/90</td>
129
129
  <td data-value="62.96" class="pct medium">62.96%</td>
130
130
  <td data-value="27" class="abs medium">17/27</td>
131
- <td data-value="67.25" class="pct medium">67.25%</td>
132
- <td data-value="171" class="abs medium">115/171</td>
131
+ <td data-value="67.44" class="pct medium">67.44%</td>
132
+ <td data-value="172" class="abs medium">116/172</td>
133
133
  </tr>
134
134
 
135
135
  </tbody>
@@ -140,7 +140,7 @@
140
140
  <div class='footer quiet pad2 space-top1 center small'>
141
141
  Code coverage generated by
142
142
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
143
- at Thu Nov 11 2021 13:56:13 GMT+0000 (Coordinated Universal Time)
143
+ at Mon Nov 22 2021 10:51:12 GMT+0000 (Coordinated Universal Time)
144
144
  </div>
145
145
  </div>
146
146
  <script src="../../../prettify.js"></script>