@budibase/server 0.9.189 → 0.9.190-alpha.3

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 (303) hide show
  1. package/Dockerfile +7 -1
  2. package/__mocks__/mssql.ts +1 -1
  3. package/__mocks__/oracledb.ts +31 -0
  4. package/__mocks__/pg.ts +3 -0
  5. package/builder/assets/bb-space-man.5be51a45.svg +290 -0
  6. package/builder/assets/index.4e87a3da.js +1316 -0
  7. package/builder/assets/index.7d405e74.css +1 -0
  8. package/builder/assets/oracle.66592424.png +0 -0
  9. package/builder/assets/vendor.470042a4.js +152 -0
  10. package/builder/assets/vendor.5e1fe644.css +1 -0
  11. package/builder/index.html +4 -4
  12. package/coverage/clover.xml +1450 -1033
  13. package/coverage/coverage-final.json +92 -88
  14. package/coverage/lcov-report/api/controllers/analytics.js.html +2 -2
  15. package/coverage/lcov-report/api/controllers/apikeys.js.html +2 -2
  16. package/coverage/lcov-report/api/controllers/application.js.html +64 -13
  17. package/coverage/lcov-report/api/controllers/auth.js.html +19 -10
  18. package/coverage/lcov-report/api/controllers/automation.js.html +3 -3
  19. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/component.js.html +4 -4
  22. package/coverage/lcov-report/api/controllers/datasource.js.html +232 -28
  23. package/coverage/lcov-report/api/controllers/dev.js.html +16 -7
  24. package/coverage/lcov-report/api/controllers/hosting.js.html +10 -10
  25. package/coverage/lcov-report/api/controllers/index.html +91 -91
  26. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/layout.js.html +3 -3
  28. package/coverage/lcov-report/api/controllers/metadata.js.html +3 -3
  29. package/coverage/lcov-report/api/controllers/permission.js.html +3 -3
  30. package/coverage/lcov-report/api/controllers/query.js.html +53 -209
  31. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  32. package/coverage/lcov-report/api/controllers/routing.js.html +3 -3
  33. package/coverage/lcov-report/api/controllers/row/external.js.html +12 -6
  34. package/coverage/lcov-report/api/controllers/row/index.html +25 -25
  35. package/coverage/lcov-report/api/controllers/row/index.js.html +2 -2
  36. package/coverage/lcov-report/api/controllers/row/internal.js.html +9 -9
  37. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +2 -2
  38. package/coverage/lcov-report/api/controllers/row/utils.js.html +21 -30
  39. package/coverage/lcov-report/api/controllers/screen.js.html +2 -2
  40. package/coverage/lcov-report/api/controllers/script.js.html +3 -3
  41. package/coverage/lcov-report/api/controllers/table/external.js.html +1001 -0
  42. package/coverage/lcov-report/api/controllers/table/index.html +56 -26
  43. package/coverage/lcov-report/api/controllers/table/index.js.html +80 -350
  44. package/coverage/lcov-report/api/controllers/table/internal.js.html +545 -0
  45. package/coverage/lcov-report/api/controllers/table/utils.js.html +172 -49
  46. package/coverage/lcov-report/api/controllers/templates.js.html +4 -4
  47. package/coverage/lcov-report/api/controllers/user.js.html +390 -33
  48. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  49. package/coverage/lcov-report/api/controllers/view/index.html +11 -11
  50. package/coverage/lcov-report/api/controllers/view/index.js.html +6 -6
  51. package/coverage/lcov-report/api/controllers/view/utils.js.html +11 -11
  52. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +3 -3
  53. package/coverage/lcov-report/api/controllers/webhook.js.html +4 -4
  54. package/coverage/lcov-report/api/index.html +1 -1
  55. package/coverage/lcov-report/api/index.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/dev.js.html +2 -2
  67. package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/index.html +4 -4
  69. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/query.js.html +5 -2
  75. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/static.js.html +2 -2
  81. package/coverage/lcov-report/api/routes/table.js.html +35 -2
  82. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  83. package/coverage/lcov-report/api/routes/user.js.html +17 -2
  84. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  85. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  86. package/coverage/lcov-report/automations/actions.js.html +2 -2
  87. package/coverage/lcov-report/automations/automationUtils.js.html +4 -4
  88. package/coverage/lcov-report/automations/bullboard.js.html +71 -20
  89. package/coverage/lcov-report/automations/index.html +35 -50
  90. package/coverage/lcov-report/automations/index.js.html +2 -2
  91. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/discord.js.html +3 -3
  96. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/executeScript.js.html +3 -3
  98. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  99. package/coverage/lcov-report/automations/steps/index.html +14 -14
  100. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  101. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +3 -3
  102. package/coverage/lcov-report/automations/steps/queryRows.js.html +3 -3
  103. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  104. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  105. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  106. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  107. package/coverage/lcov-report/automations/steps/utils.js.html +7 -7
  108. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  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 +22 -10
  118. package/coverage/lcov-report/automations/utils.js.html +42 -12
  119. package/coverage/lcov-report/constants/index.html +5 -5
  120. package/coverage/lcov-report/constants/index.js.html +87 -21
  121. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  122. package/coverage/lcov-report/constants/screens.js.html +1 -1
  123. package/coverage/lcov-report/db/client.js.html +2 -2
  124. package/coverage/lcov-report/db/inMemoryView.js.html +2 -2
  125. package/coverage/lcov-report/db/index.html +2 -2
  126. package/coverage/lcov-report/db/index.js.html +1 -1
  127. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +6 -6
  128. package/coverage/lcov-report/db/linkedRows/index.html +10 -10
  129. package/coverage/lcov-report/db/linkedRows/index.js.html +5 -5
  130. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +6 -6
  131. package/coverage/lcov-report/db/newid.js.html +3 -3
  132. package/coverage/lcov-report/db/utils.js.html +57 -57
  133. package/coverage/lcov-report/events/AutomationEmitter.js.html +6 -6
  134. package/coverage/lcov-report/events/index.html +6 -6
  135. package/coverage/lcov-report/events/index.js.html +1 -1
  136. package/coverage/lcov-report/events/utils.js.html +5 -5
  137. package/coverage/lcov-report/index.html +102 -87
  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 +2 -2
  141. package/coverage/lcov-report/middleware/authorized.js.html +11 -8
  142. package/coverage/lcov-report/middleware/builder.js.html +16 -7
  143. package/coverage/lcov-report/middleware/currentapp.js.html +6 -6
  144. package/coverage/lcov-report/middleware/index.html +23 -23
  145. package/coverage/lcov-report/middleware/joi-validator.js.html +2 -2
  146. package/coverage/lcov-report/middleware/resourceId.js.html +18 -18
  147. package/coverage/lcov-report/middleware/selfhost.js.html +2 -2
  148. package/coverage/lcov-report/middleware/usageQuota.js.html +4 -4
  149. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  150. package/coverage/lcov-report/{automations/thread.js.html → threads/automation.js.html} +90 -33
  151. package/coverage/lcov-report/threads/index.html +141 -0
  152. package/coverage/lcov-report/threads/index.js.html +278 -0
  153. package/coverage/lcov-report/threads/query.js.html +278 -0
  154. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  155. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  156. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  157. package/coverage/lcov-report/utilities/csvParser.js.html +144 -15
  158. package/coverage/lcov-report/utilities/global.js.html +26 -11
  159. package/coverage/lcov-report/utilities/index.html +48 -48
  160. package/coverage/lcov-report/utilities/index.js.html +47 -14
  161. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +30 -9
  162. package/coverage/lcov-report/utilities/queue/index.html +14 -14
  163. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  164. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  165. package/coverage/lcov-report/utilities/rowProcessor/index.html +4 -4
  166. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +2 -2
  167. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +3 -3
  168. package/coverage/lcov-report/utilities/scriptRunner.js.html +16 -7
  169. package/coverage/lcov-report/utilities/security.js.html +3 -3
  170. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  171. package/coverage/lcov-report/utilities/users.js.html +1 -1
  172. package/coverage/lcov-report/utilities/workerRequests.js.html +5 -5
  173. package/coverage/lcov.info +2422 -1681
  174. package/dist/api/controllers/application.js +15 -1
  175. package/dist/api/controllers/auth.js +3 -3
  176. package/dist/api/controllers/datasource.js +67 -16
  177. package/dist/api/controllers/deploy/index.js +2 -0
  178. package/dist/api/controllers/dev.js +4 -1
  179. package/dist/api/controllers/query.js +30 -58
  180. package/dist/api/controllers/row/ExternalRequest.js +78 -34
  181. package/dist/api/controllers/row/external.js +1 -0
  182. package/dist/api/controllers/row/utils.js +6 -12
  183. package/dist/api/controllers/table/external.js +249 -0
  184. package/dist/api/controllers/table/index.js +49 -123
  185. package/dist/api/controllers/table/internal.js +150 -0
  186. package/dist/api/controllers/table/utils.js +62 -28
  187. package/dist/api/controllers/user.js +123 -11
  188. package/dist/api/routes/query.js +1 -1
  189. package/dist/api/routes/table.js +7 -1
  190. package/dist/api/routes/user.js +2 -1
  191. package/dist/app.js +2 -11
  192. package/dist/automations/bullboard.js +37 -10
  193. package/dist/automations/triggers.js +7 -3
  194. package/dist/automations/utils.js +11 -2
  195. package/dist/constants/index.js +19 -0
  196. package/dist/definitions/datasource.js +5 -0
  197. package/dist/environment.js +13 -0
  198. package/dist/integrations/base/IntegrationBase.js +2 -0
  199. package/dist/integrations/base/datasourcePlus.js +2 -0
  200. package/dist/integrations/base/sql.js +353 -177
  201. package/dist/integrations/base/sqlTable.js +143 -0
  202. package/dist/integrations/base/utils.js +30 -0
  203. package/dist/integrations/index.js +6 -0
  204. package/dist/integrations/microsoftSqlServer.js +117 -9
  205. package/dist/integrations/mysql.js +16 -85
  206. package/dist/integrations/oracle.js +347 -0
  207. package/dist/integrations/postgres.js +35 -28
  208. package/dist/integrations/utils.js +71 -9
  209. package/dist/middleware/authorized.js +2 -1
  210. package/dist/middleware/builder.js +4 -1
  211. package/dist/package.json +11 -6
  212. package/dist/tests/utilities/TestConfiguration.js +2 -1
  213. package/dist/{automations/thread.js → threads/automation.js} +26 -8
  214. package/dist/threads/index.js +64 -0
  215. package/dist/threads/query.js +64 -0
  216. package/dist/tsconfig.tsbuildinfo +1 -1
  217. package/dist/utilities/csvParser.js +46 -5
  218. package/dist/utilities/global.js +6 -2
  219. package/dist/utilities/index.js +11 -0
  220. package/dist/utilities/queue/inMemoryQueue.js +8 -0
  221. package/dist/utilities/scriptRunner.js +4 -1
  222. package/package.json +12 -7
  223. package/scripts/dev/manage.js +1 -0
  224. package/scripts/integrations/mssql/data/Dockerfile +9 -0
  225. package/scripts/integrations/mssql/data/entrypoint.sh +24 -0
  226. package/scripts/integrations/mssql/data/setup.sql +54 -0
  227. package/scripts/integrations/mssql/docker-compose.yaml +12 -0
  228. package/scripts/integrations/mssql/reset.sh +3 -0
  229. package/scripts/integrations/oracle/docker-compose.yml +19 -0
  230. package/scripts/integrations/oracle/instantclient/linux/x86-64/basiclite-21.4.zip +0 -0
  231. package/scripts/integrations/oracle/instantclient/linux/x86-64/install.sh +23 -0
  232. package/scripts/integrations/oracle/oracle.md +90 -0
  233. package/scripts/integrations/postgres/docker-compose.yml +3 -3
  234. package/scripts/likeCypress.ts +33 -0
  235. package/src/api/controllers/application.js +18 -1
  236. package/src/api/controllers/auth.js +3 -0
  237. package/src/api/controllers/datasource.js +84 -16
  238. package/src/api/controllers/deploy/index.js +2 -0
  239. package/src/api/controllers/dev.js +4 -1
  240. package/src/api/controllers/query.js +29 -81
  241. package/src/api/controllers/row/ExternalRequest.ts +91 -36
  242. package/src/api/controllers/row/external.js +2 -0
  243. package/src/api/controllers/row/utils.js +8 -11
  244. package/src/api/controllers/table/external.js +307 -0
  245. package/src/api/controllers/table/index.js +47 -137
  246. package/src/api/controllers/table/internal.js +155 -0
  247. package/src/api/controllers/table/utils.js +74 -33
  248. package/src/api/controllers/user.js +132 -13
  249. package/src/api/routes/query.js +1 -0
  250. package/src/api/routes/table.js +11 -0
  251. package/src/api/routes/tests/datasource.spec.js +2 -2
  252. package/src/api/routes/tests/misc.spec.js +5 -1
  253. package/src/api/routes/tests/query.spec.js +0 -1
  254. package/src/api/routes/user.js +5 -0
  255. package/src/app.ts +2 -10
  256. package/src/automations/bullboard.js +28 -11
  257. package/src/automations/tests/automation.spec.js +3 -4
  258. package/src/automations/triggers.js +7 -3
  259. package/src/automations/utils.js +12 -2
  260. package/src/constants/index.js +22 -0
  261. package/src/definitions/common.ts +7 -1
  262. package/src/definitions/datasource.ts +10 -3
  263. package/src/environment.js +15 -0
  264. package/src/integrations/airtable.ts +2 -1
  265. package/src/integrations/arangodb.ts +2 -1
  266. package/src/integrations/base/IntegrationBase.ts +6 -0
  267. package/src/integrations/base/datasourcePlus.ts +9 -0
  268. package/src/integrations/base/sql.ts +377 -218
  269. package/src/integrations/base/sqlTable.ts +180 -0
  270. package/src/integrations/base/utils.ts +22 -0
  271. package/src/integrations/couchdb.ts +2 -1
  272. package/src/integrations/dynamodb.ts +2 -1
  273. package/src/integrations/elasticsearch.ts +2 -1
  274. package/src/integrations/index.ts +7 -0
  275. package/src/integrations/microsoftSqlServer.ts +145 -13
  276. package/src/integrations/mongodb.ts +2 -1
  277. package/src/integrations/mysql.ts +23 -95
  278. package/src/integrations/oracle.ts +458 -0
  279. package/src/integrations/postgres.ts +45 -35
  280. package/src/integrations/rest.ts +2 -1
  281. package/src/integrations/s3.ts +2 -1
  282. package/src/integrations/tests/microsoftSqlServer.spec.js +22 -15
  283. package/src/integrations/tests/oracle.spec.js +94 -0
  284. package/src/integrations/tests/postgres.spec.js +4 -0
  285. package/src/integrations/utils.ts +78 -8
  286. package/src/middleware/authorized.js +2 -1
  287. package/src/middleware/builder.js +4 -1
  288. package/src/tests/utilities/TestConfiguration.js +2 -1
  289. package/src/{automations/thread.js → threads/automation.js} +27 -8
  290. package/src/threads/index.js +66 -0
  291. package/src/threads/query.js +66 -0
  292. package/src/utilities/csvParser.js +48 -5
  293. package/src/utilities/global.js +7 -2
  294. package/src/utilities/index.js +11 -0
  295. package/src/utilities/queue/inMemoryQueue.js +7 -0
  296. package/src/utilities/scriptRunner.js +4 -1
  297. package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -6
  298. package/src/utilities/tests/csvParser.spec.js +3 -0
  299. package/tsconfig.json +1 -1
  300. package/builder/assets/index.5cc4c0d0.js +0 -201
  301. package/builder/assets/index.7469e1e4.css +0 -29
  302. package/builder/assets/vendor.278a305c.js +0 -9
  303. package/builder/assets/vendor.d75d5eb7.css +0 -1
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">79.69% </span>
26
+ <span class="strong">79.1% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>51/64</span>
28
+ <span class='fraction'>53/67</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">80.56% </span>
33
+ <span class="strong">80.55% </span>
34
34
  <span class="quiet">Branches</span>
35
35
  <span class='fraction'>29/36</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">88.88% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>8/8</span>
42
+ <span class='fraction'>8/9</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">79.69% </span>
47
+ <span class="strong">79.1% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>51/64</span>
49
+ <span class='fraction'>53/67</span>
50
50
  </div>
51
51
 
52
52
 
@@ -221,7 +221,17 @@
221
221
  <a name='L162'></a><a href='#L162'>162</a>
222
222
  <a name='L163'></a><a href='#L163'>163</a>
223
223
  <a name='L164'></a><a href='#L164'>164</a>
224
- <a name='L165'></a><a href='#L165'>165</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
224
+ <a name='L165'></a><a href='#L165'>165</a>
225
+ <a name='L166'></a><a href='#L166'>166</a>
226
+ <a name='L167'></a><a href='#L167'>167</a>
227
+ <a name='L168'></a><a href='#L168'>168</a>
228
+ <a name='L169'></a><a href='#L169'>169</a>
229
+ <a name='L170'></a><a href='#L170'>170</a>
230
+ <a name='L171'></a><a href='#L171'>171</a>
231
+ <a name='L172'></a><a href='#L172'>172</a>
232
+ <a name='L173'></a><a href='#L173'>173</a>
233
+ <a name='L174'></a><a href='#L174'>174</a>
234
+ <a name='L175'></a><a href='#L175'>175</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
225
235
  <span class="cline-any cline-yes">33x</span>
226
236
  <span class="cline-any cline-yes">33x</span>
227
237
  <span class="cline-any cline-yes">33x</span>
@@ -233,6 +243,7 @@
233
243
  <span class="cline-any cline-neutral">&nbsp;</span>
234
244
  <span class="cline-any cline-yes">33x</span>
235
245
  <span class="cline-any cline-yes">33x</span>
246
+ <span class="cline-any cline-yes">33x</span>
236
247
  <span class="cline-any cline-neutral">&nbsp;</span>
237
248
  <span class="cline-any cline-yes">33x</span>
238
249
  <span class="cline-any cline-yes">10x</span>
@@ -385,7 +396,16 @@
385
396
  <span class="cline-any cline-neutral">&nbsp;</span>
386
397
  <span class="cline-any cline-yes">23x</span>
387
398
  <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const runner = require("./thread")
399
+ <span class="cline-any cline-neutral">&nbsp;</span>
400
+ <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-neutral">&nbsp;</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-neutral">&nbsp;</span>
404
+ <span class="cline-any cline-neutral">&nbsp;</span>
405
+ <span class="cline-any cline-yes">33x</span>
406
+ <span class="cline-any cline-no">&nbsp;</span>
407
+ <span class="cline-any cline-neutral">&nbsp;</span>
408
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { Thread, ThreadType } = require("../threads")
389
409
  const { definitions } = require("./triggerInfo")
390
410
  const webhooks = require("../api/controllers/webhook")
391
411
  const CouchDB = require("../db")
@@ -397,11 +417,12 @@ const { getDeployedAppID } = require("@budibase/auth/db")
397
417
  &nbsp;
398
418
  const WH_STEP_ID = definitions.WEBHOOK.stepId
399
419
  const CRON_STEP_ID = definitions.CRON.stepId
420
+ const Runner = new Thread(ThreadType.AUTOMATION)
400
421
  &nbsp;
401
422
  exports.processEvent = async job =&gt; {
402
423
  try {
403
424
  // need to actually await these so that an error can be captured properly
404
- return await runner(job)
425
+ return await Runner.run(job)
405
426
  } catch (err) {
406
427
  <span class="cstat-no" title="statement not covered" > console.error(</span>
407
428
  `${job.data.automation.appId} automation ${job.data.automation._id} was unable to run - ${err}`
@@ -511,7 +532,7 @@ exports.checkForWebhooks = async ({ appId, oldAuto, newAuto }) =&gt; {
511
532
  params: { id: webhook._id, rev: webhook._rev },
512
533
  }
513
534
  // might be updating - reset the inputs to remove the URLs
514
- <span class="missing-if-branch" title="else path not taken" >E</span>if (newTrigger) {
535
+ if (newTrigger) {
515
536
  delete newTrigger.webhookId
516
537
  newTrigger.inputs = {}
517
538
  }
@@ -549,6 +570,15 @@ exports.checkForWebhooks = async ({ appId, oldAuto, newAuto }) =&gt; {
549
570
  }
550
571
  return newAuto
551
572
  }
573
+ &nbsp;
574
+ /**
575
+ * When removing an app/unpublishing it need to make sure automations are cleaned up (cron).
576
+ * @param appId {string} the app that is being removed.
577
+ * @return {Promise&lt;void&gt;} clean is complete if this succeeds.
578
+ */
579
+ exports.cleanupAutomations = <span class="fstat-no" title="function not covered" >as</span>ync appId =&gt; {
580
+ <span class="cstat-no" title="statement not covered" > await exports.disableAllCrons(appId)</span>
581
+ }
552
582
  &nbsp;</pre></td></tr></table></pre>
553
583
 
554
584
  <div class='push'></div><!-- for sticky footer -->
@@ -556,7 +586,7 @@ exports.checkForWebhooks = async ({ appId, oldAuto, newAuto }) =&gt; {
556
586
  <div class='footer quiet pad2 space-top1 center small'>
557
587
  Code coverage generated by
558
588
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
559
- at Mon Nov 22 2021 18:12:17 GMT+0000 (Coordinated Universal Time)
589
+ at Thu Nov 25 2021 18:02:42 GMT+0000 (Coordinated Universal Time)
560
590
  </div>
561
591
  </div>
562
592
  <script src="../prettify.js"></script>
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>26/26</span>
28
+ <span class='fraction'>29/29</span>
29
29
  </div>
30
30
 
31
31
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>25/25</span>
49
+ <span class='fraction'>28/28</span>
50
50
  </div>
51
51
 
52
52
 
@@ -78,13 +78,13 @@
78
78
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
79
79
  </td>
80
80
  <td data-value="100" class="pct high">100%</td>
81
- <td data-value="18" class="abs high">18/18</td>
81
+ <td data-value="21" class="abs high">21/21</td>
82
82
  <td data-value="100" class="pct high">100%</td>
83
83
  <td data-value="0" class="abs high">0/0</td>
84
84
  <td data-value="100" class="pct high">100%</td>
85
85
  <td data-value="0" class="abs high">0/0</td>
86
86
  <td data-value="100" class="pct high">100%</td>
87
- <td data-value="18" class="abs high">18/18</td>
87
+ <td data-value="21" class="abs high">21/21</td>
88
88
  </tr>
89
89
 
90
90
  <tr>
@@ -125,7 +125,7 @@
125
125
  <div class='footer quiet pad2 space-top1 center small'>
126
126
  Code coverage generated by
127
127
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
128
- at Mon Nov 22 2021 18:12:17 GMT+0000 (Coordinated Universal Time)
128
+ at Thu Nov 25 2021 18:02:42 GMT+0000 (Coordinated Universal Time)
129
129
  </div>
130
130
  </div>
131
131
  <script src="../prettify.js"></script>
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>18/18</span>
28
+ <span class='fraction'>21/21</span>
29
29
  </div>
30
30
 
31
31
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>18/18</span>
49
+ <span class='fraction'>21/21</span>
50
50
  </div>
51
51
 
52
52
 
@@ -213,15 +213,37 @@
213
213
  <a name='L154'></a><a href='#L154'>154</a>
214
214
  <a name='L155'></a><a href='#L155'>155</a>
215
215
  <a name='L156'></a><a href='#L156'>156</a>
216
- <a name='L157'></a><a href='#L157'>157</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">40x</span>
217
- <span class="cline-any cline-yes">40x</span>
218
- <span class="cline-any cline-yes">40x</span>
216
+ <a name='L157'></a><a href='#L157'>157</a>
217
+ <a name='L158'></a><a href='#L158'>158</a>
218
+ <a name='L159'></a><a href='#L159'>159</a>
219
+ <a name='L160'></a><a href='#L160'>160</a>
220
+ <a name='L161'></a><a href='#L161'>161</a>
221
+ <a name='L162'></a><a href='#L162'>162</a>
222
+ <a name='L163'></a><a href='#L163'>163</a>
223
+ <a name='L164'></a><a href='#L164'>164</a>
224
+ <a name='L165'></a><a href='#L165'>165</a>
225
+ <a name='L166'></a><a href='#L166'>166</a>
226
+ <a name='L167'></a><a href='#L167'>167</a>
227
+ <a name='L168'></a><a href='#L168'>168</a>
228
+ <a name='L169'></a><a href='#L169'>169</a>
229
+ <a name='L170'></a><a href='#L170'>170</a>
230
+ <a name='L171'></a><a href='#L171'>171</a>
231
+ <a name='L172'></a><a href='#L172'>172</a>
232
+ <a name='L173'></a><a href='#L173'>173</a>
233
+ <a name='L174'></a><a href='#L174'>174</a>
234
+ <a name='L175'></a><a href='#L175'>175</a>
235
+ <a name='L176'></a><a href='#L176'>176</a>
236
+ <a name='L177'></a><a href='#L177'>177</a>
237
+ <a name='L178'></a><a href='#L178'>178</a>
238
+ <a name='L179'></a><a href='#L179'>179</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">41x</span>
239
+ <span class="cline-any cline-yes">41x</span>
240
+ <span class="cline-any cline-yes">41x</span>
219
241
  <span class="cline-any cline-neutral">&nbsp;</span>
220
- <span class="cline-any cline-yes">40x</span>
242
+ <span class="cline-any cline-yes">41x</span>
221
243
  <span class="cline-any cline-neutral">&nbsp;</span>
222
244
  <span class="cline-any cline-neutral">&nbsp;</span>
223
245
  <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-yes">40x</span>
246
+ <span class="cline-any cline-yes">41x</span>
225
247
  <span class="cline-any cline-neutral">&nbsp;</span>
226
248
  <span class="cline-any cline-neutral">&nbsp;</span>
227
249
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -234,8 +256,8 @@
234
256
  <span class="cline-any cline-neutral">&nbsp;</span>
235
257
  <span class="cline-any cline-neutral">&nbsp;</span>
236
258
  <span class="cline-any cline-neutral">&nbsp;</span>
237
- <span class="cline-any cline-yes">40x</span>
238
- <span class="cline-any cline-yes">40x</span>
259
+ <span class="cline-any cline-yes">41x</span>
260
+ <span class="cline-any cline-yes">41x</span>
239
261
  <span class="cline-any cline-neutral">&nbsp;</span>
240
262
  <span class="cline-any cline-neutral">&nbsp;</span>
241
263
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -244,7 +266,7 @@
244
266
  <span class="cline-any cline-neutral">&nbsp;</span>
245
267
  <span class="cline-any cline-neutral">&nbsp;</span>
246
268
  <span class="cline-any cline-neutral">&nbsp;</span>
247
- <span class="cline-any cline-yes">40x</span>
269
+ <span class="cline-any cline-yes">41x</span>
248
270
  <span class="cline-any cline-neutral">&nbsp;</span>
249
271
  <span class="cline-any cline-neutral">&nbsp;</span>
250
272
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -260,41 +282,42 @@
260
282
  <span class="cline-any cline-neutral">&nbsp;</span>
261
283
  <span class="cline-any cline-neutral">&nbsp;</span>
262
284
  <span class="cline-any cline-neutral">&nbsp;</span>
263
- <span class="cline-any cline-yes">40x</span>
285
+ <span class="cline-any cline-yes">41x</span>
264
286
  <span class="cline-any cline-neutral">&nbsp;</span>
265
287
  <span class="cline-any cline-neutral">&nbsp;</span>
266
288
  <span class="cline-any cline-neutral">&nbsp;</span>
267
289
  <span class="cline-any cline-neutral">&nbsp;</span>
268
290
  <span class="cline-any cline-neutral">&nbsp;</span>
269
- <span class="cline-any cline-yes">40x</span>
270
291
  <span class="cline-any cline-neutral">&nbsp;</span>
292
+ <span class="cline-any cline-yes">41x</span>
271
293
  <span class="cline-any cline-neutral">&nbsp;</span>
272
294
  <span class="cline-any cline-neutral">&nbsp;</span>
273
295
  <span class="cline-any cline-neutral">&nbsp;</span>
274
296
  <span class="cline-any cline-neutral">&nbsp;</span>
275
- <span class="cline-any cline-yes">40x</span>
276
297
  <span class="cline-any cline-neutral">&nbsp;</span>
298
+ <span class="cline-any cline-yes">41x</span>
277
299
  <span class="cline-any cline-neutral">&nbsp;</span>
278
300
  <span class="cline-any cline-neutral">&nbsp;</span>
279
301
  <span class="cline-any cline-neutral">&nbsp;</span>
280
302
  <span class="cline-any cline-neutral">&nbsp;</span>
281
303
  <span class="cline-any cline-neutral">&nbsp;</span>
282
- <span class="cline-any cline-yes">40x</span>
304
+ <span class="cline-any cline-yes">41x</span>
283
305
  <span class="cline-any cline-neutral">&nbsp;</span>
284
306
  <span class="cline-any cline-neutral">&nbsp;</span>
285
307
  <span class="cline-any cline-neutral">&nbsp;</span>
286
308
  <span class="cline-any cline-neutral">&nbsp;</span>
287
- <span class="cline-any cline-yes">40x</span>
288
309
  <span class="cline-any cline-neutral">&nbsp;</span>
289
310
  <span class="cline-any cline-neutral">&nbsp;</span>
290
311
  <span class="cline-any cline-neutral">&nbsp;</span>
291
312
  <span class="cline-any cline-neutral">&nbsp;</span>
292
313
  <span class="cline-any cline-neutral">&nbsp;</span>
293
314
  <span class="cline-any cline-neutral">&nbsp;</span>
315
+ <span class="cline-any cline-yes">41x</span>
294
316
  <span class="cline-any cline-neutral">&nbsp;</span>
295
317
  <span class="cline-any cline-neutral">&nbsp;</span>
296
318
  <span class="cline-any cline-neutral">&nbsp;</span>
297
319
  <span class="cline-any cline-neutral">&nbsp;</span>
320
+ <span class="cline-any cline-yes">41x</span>
298
321
  <span class="cline-any cline-neutral">&nbsp;</span>
299
322
  <span class="cline-any cline-neutral">&nbsp;</span>
300
323
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -346,7 +369,6 @@
346
369
  <span class="cline-any cline-neutral">&nbsp;</span>
347
370
  <span class="cline-any cline-neutral">&nbsp;</span>
348
371
  <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-yes">40x</span>
350
372
  <span class="cline-any cline-neutral">&nbsp;</span>
351
373
  <span class="cline-any cline-neutral">&nbsp;</span>
352
374
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -354,21 +376,43 @@
354
376
  <span class="cline-any cline-neutral">&nbsp;</span>
355
377
  <span class="cline-any cline-neutral">&nbsp;</span>
356
378
  <span class="cline-any cline-neutral">&nbsp;</span>
357
- <span class="cline-any cline-yes">40x</span>
358
- <span class="cline-any cline-yes">40x</span>
359
379
  <span class="cline-any cline-neutral">&nbsp;</span>
360
380
  <span class="cline-any cline-neutral">&nbsp;</span>
361
381
  <span class="cline-any cline-neutral">&nbsp;</span>
382
+ <span class="cline-any cline-yes">41x</span>
362
383
  <span class="cline-any cline-neutral">&nbsp;</span>
363
384
  <span class="cline-any cline-neutral">&nbsp;</span>
364
385
  <span class="cline-any cline-neutral">&nbsp;</span>
365
- <span class="cline-any cline-yes">40x</span>
366
386
  <span class="cline-any cline-neutral">&nbsp;</span>
367
387
  <span class="cline-any cline-neutral">&nbsp;</span>
368
388
  <span class="cline-any cline-neutral">&nbsp;</span>
369
389
  <span class="cline-any cline-neutral">&nbsp;</span>
390
+ <span class="cline-any cline-yes">41x</span>
391
+ <span class="cline-any cline-yes">41x</span>
370
392
  <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-yes">40x</span>
393
+ <span class="cline-any cline-neutral">&nbsp;</span>
394
+ <span class="cline-any cline-neutral">&nbsp;</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
396
+ <span class="cline-any cline-neutral">&nbsp;</span>
397
+ <span class="cline-any cline-neutral">&nbsp;</span>
398
+ <span class="cline-any cline-yes">41x</span>
399
+ <span class="cline-any cline-neutral">&nbsp;</span>
400
+ <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-neutral">&nbsp;</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-yes">41x</span>
404
+ <span class="cline-any cline-neutral">&nbsp;</span>
405
+ <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-neutral">&nbsp;</span>
407
+ <span class="cline-any cline-neutral">&nbsp;</span>
408
+ <span class="cline-any cline-neutral">&nbsp;</span>
409
+ <span class="cline-any cline-yes">41x</span>
410
+ <span class="cline-any cline-neutral">&nbsp;</span>
411
+ <span class="cline-any cline-neutral">&nbsp;</span>
412
+ <span class="cline-any cline-neutral">&nbsp;</span>
413
+ <span class="cline-any cline-neutral">&nbsp;</span>
414
+ <span class="cline-any cline-neutral">&nbsp;</span>
415
+ <span class="cline-any cline-yes">41x</span>
372
416
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { BUILTIN_ROLE_IDS } = require("@budibase/auth/roles")
373
417
  const { UserStatus } = require("@budibase/auth").constants
374
418
  const { ObjectStoreBuckets } = require("@budibase/auth").objectStore
@@ -416,6 +460,13 @@ exports.FieldTypes = {
416
460
  INTERNAL: "internal",
417
461
  }
418
462
  &nbsp;
463
+ exports.SwitchableTypes = [
464
+ exports.FieldTypes.STRING,
465
+ exports.FieldTypes.OPTIONS,
466
+ exports.FieldTypes.NUMBER,
467
+ exports.FieldTypes.BOOLEAN,
468
+ ]
469
+ &nbsp;
419
470
  exports.RelationshipTypes = {
420
471
  ONE_TO_MANY: "one-to-many",
421
472
  MANY_TO_ONE: "many-to-one",
@@ -433,6 +484,10 @@ exports.DataSourceOperation = {
433
484
  READ: "READ",
434
485
  UPDATE: "UPDATE",
435
486
  DELETE: "DELETE",
487
+ BULK_CREATE: "BULK_CREATE",
488
+ CREATE_TABLE: "CREATE_TABLE",
489
+ UPDATE_TABLE: "UPDATE_TABLE",
490
+ DELETE_TABLE: "DELETE_TABLE",
436
491
  }
437
492
  &nbsp;
438
493
  exports.SortDirection = {
@@ -523,6 +578,17 @@ exports.MetadataTypes = {
523
578
  AUTOMATION_TEST_HISTORY: "automationTestHistory",
524
579
  }
525
580
  &nbsp;
581
+ exports.InvalidColumns = {
582
+ ID: "_id",
583
+ REV: "_rev",
584
+ TABLE_ID: "tableId",
585
+ }
586
+ &nbsp;
587
+ exports.BuildSchemaErrors = {
588
+ NO_KEY: "no_key",
589
+ INVALID_COLUMN: "invalid_column",
590
+ }
591
+ &nbsp;
526
592
  // pass through the list from the auth/core lib
527
593
  exports.ObjectStoreBuckets = ObjectStoreBuckets
528
594
  &nbsp;</pre></td></tr></table></pre>
@@ -532,7 +598,7 @@ exports.ObjectStoreBuckets = ObjectStoreBuckets
532
598
  <div class='footer quiet pad2 space-top1 center small'>
533
599
  Code coverage generated by
534
600
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
535
- at Mon Nov 22 2021 18:12:17 GMT+0000 (Coordinated Universal Time)
601
+ at Thu Nov 25 2021 18:02:42 GMT+0000 (Coordinated Universal Time)
536
602
  </div>
537
603
  </div>
538
604
  <script src="../prettify.js"></script>
@@ -523,7 +523,7 @@ module.exports = {
523
523
  <div class='footer quiet pad2 space-top1 center small'>
524
524
  Code coverage generated by
525
525
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
526
- at Mon Nov 22 2021 18:12:17 GMT+0000 (Coordinated Universal Time)
526
+ at Thu Nov 25 2021 18:02:42 GMT+0000 (Coordinated Universal Time)
527
527
  </div>
528
528
  </div>
529
529
  <script src="../prettify.js"></script>
@@ -202,7 +202,7 @@ exports.createHomeScreen = () =&gt; ({
202
202
  <div class='footer quiet pad2 space-top1 center small'>
203
203
  Code coverage generated by
204
204
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
205
- at Mon Nov 22 2021 18:12:17 GMT+0000 (Coordinated Universal Time)
205
+ at Thu Nov 25 2021 18:02:42 GMT+0000 (Coordinated Universal Time)
206
206
  </div>
207
207
  </div>
208
208
  <script src="../prettify.js"></script>
@@ -136,7 +136,7 @@ let POUCH_DB_DEFAULTS = {
136
136
  prefix: COUCH_DB_URL,
137
137
  }
138
138
  &nbsp;
139
- <span class="missing-if-branch" title="else path not taken" >E</span>if (env.isTest()) {
139
+ if (env.isTest()) {
140
140
  PouchDB.plugin(require("pouchdb-adapter-memory"))
141
141
  POUCH_DB_DEFAULTS = {
142
142
  prefix: undefined,
@@ -157,7 +157,7 @@ module.exports = Pouch
157
157
  <div class='footer quiet pad2 space-top1 center small'>
158
158
  Code coverage generated by
159
159
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
160
- at Mon Nov 22 2021 18:12:17 GMT+0000 (Coordinated Universal Time)
160
+ at Thu Nov 25 2021 18:02:42 GMT+0000 (Coordinated Universal Time)
161
161
  </div>
162
162
  </div>
163
163
  <script src="../prettify.js"></script>
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">26.09% </span>
47
+ <span class="strong">26.08% </span>
48
48
  <span class="quiet">Lines</span>
49
49
  <span class='fraction'>6/23</span>
50
50
  </div>
@@ -208,7 +208,7 @@ exports.runView = <span class="fstat-no" title="function not covered" >as</span>
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 Mon Nov 22 2021 18:12:17 GMT+0000 (Coordinated Universal Time)
211
+ at Thu Nov 25 2021 18:02:42 GMT+0000 (Coordinated Universal Time)
212
212
  </div>
213
213
  </div>
214
214
  <script src="../prettify.js"></script>
@@ -98,7 +98,7 @@
98
98
  <td data-value="8" class="abs low">0/8</td>
99
99
  <td data-value="0" class="pct low">0%</td>
100
100
  <td data-value="4" class="abs low">0/4</td>
101
- <td data-value="26.09" class="pct low">26.09%</td>
101
+ <td data-value="26.08" class="pct low">26.08%</td>
102
102
  <td data-value="23" class="abs low">6/23</td>
103
103
  </tr>
104
104
 
@@ -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 Mon Nov 22 2021 18:12:17 GMT+0000 (Coordinated Universal Time)
158
+ at Thu Nov 25 2021 18:02:42 GMT+0000 (Coordinated Universal Time)
159
159
  </div>
160
160
  </div>
161
161
  <script src="../prettify.js"></script>
@@ -73,7 +73,7 @@ module.exports = client
73
73
  <div class='footer quiet pad2 space-top1 center small'>
74
74
  Code coverage generated by
75
75
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
76
- at Mon Nov 22 2021 18:12:17 GMT+0000 (Coordinated Universal Time)
76
+ at Thu Nov 25 2021 18:02:42 GMT+0000 (Coordinated Universal Time)
77
77
  </div>
78
78
  </div>
79
79
  <script src="../prettify.js"></script>
@@ -30,21 +30,21 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">88.24% </span>
33
+ <span class="strong">88.23% </span>
34
34
  <span class="quiet">Branches</span>
35
35
  <span class='fraction'>60/68</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">88.89% </span>
40
+ <span class="strong">88.88% </span>
41
41
  <span class="quiet">Functions</span>
42
42
  <span class='fraction'>24/27</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">96.69% </span>
47
+ <span class="strong">96.68% </span>
48
48
  <span class="quiet">Lines</span>
49
49
  <span class='fraction'>146/151</span>
50
50
  </div>
@@ -1166,7 +1166,7 @@ class LinkController {
1166
1166
  } else if (linkerField.relationshipType === RelationshipTypes.MANY_TO_ONE) {
1167
1167
  // Ensure that the other side of the relationship is locked to one record
1168
1168
  linkedField.relationshipType = RelationshipTypes.ONE_TO_MANY
1169
- } else <span class="missing-if-branch" title="else path not taken" >E</span>if (linkerField.relationshipType === RelationshipTypes.ONE_TO_MANY) {
1169
+ } else if (linkerField.relationshipType === RelationshipTypes.ONE_TO_MANY) {
1170
1170
  linkedField.relationshipType = RelationshipTypes.MANY_TO_ONE
1171
1171
  }
1172
1172
  return { linkerField, linkedField }
@@ -1244,7 +1244,7 @@ class LinkController {
1244
1244
  }
1245
1245
  }
1246
1246
  &nbsp;
1247
- <span class="missing-if-branch" title="else path not taken" >E</span>if (linkId &amp;&amp; linkId !== "" &amp;&amp; linkDocIds.indexOf(linkId) === -1) {
1247
+ if (linkId &amp;&amp; linkId !== "" &amp;&amp; linkDocIds.indexOf(linkId) === -1) {
1248
1248
  // first check the doc we're linking to exists
1249
1249
  try {
1250
1250
  await this._db.get(linkId)
@@ -1468,7 +1468,7 @@ module.exports = LinkController
1468
1468
  <div class='footer quiet pad2 space-top1 center small'>
1469
1469
  Code coverage generated by
1470
1470
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1471
- at Mon Nov 22 2021 18:12:17 GMT+0000 (Coordinated Universal Time)
1471
+ at Thu Nov 25 2021 18:02:42 GMT+0000 (Coordinated Universal Time)
1472
1472
  </div>
1473
1473
  </div>
1474
1474
  <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">86.03% </span>
33
+ <span class="strong">86.02% </span>
34
34
  <span class="quiet">Branches</span>
35
35
  <span class='fraction'>117/136</span>
36
36
  </div>
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">96.67% </span>
47
+ <span class="strong">96.66% </span>
48
48
  <span class="quiet">Lines</span>
49
49
  <span class='fraction'>290/300</span>
50
50
  </div>
@@ -79,20 +79,20 @@
79
79
  </td>
80
80
  <td data-value="96.05" class="pct high">96.05%</td>
81
81
  <td data-value="152" class="abs high">146/152</td>
82
- <td data-value="88.24" class="pct high">88.24%</td>
82
+ <td data-value="88.23" class="pct high">88.23%</td>
83
83
  <td data-value="68" class="abs high">60/68</td>
84
- <td data-value="88.89" class="pct high">88.89%</td>
84
+ <td data-value="88.88" class="pct high">88.88%</td>
85
85
  <td data-value="27" class="abs high">24/27</td>
86
- <td data-value="96.69" class="pct high">96.69%</td>
86
+ <td data-value="96.68" class="pct high">96.68%</td>
87
87
  <td data-value="151" class="abs high">146/151</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="96.08" class="pic high">
92
+ <td data-value="96.07" class="pic high">
93
93
  <div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
94
94
  </td>
95
- <td data-value="96.08" class="pct high">96.08%</td>
95
+ <td data-value="96.07" class="pct high">96.07%</td>
96
96
  <td data-value="102" class="abs high">98/102</td>
97
97
  <td data-value="80.95" class="pct high">80.95%</td>
98
98
  <td data-value="42" class="abs high">34/42</td>
@@ -104,10 +104,10 @@
104
104
 
105
105
  <tr>
106
106
  <td class="file high" data-value="linkUtils.js"><a href="linkUtils.js.html">linkUtils.js</a></td>
107
- <td data-value="98.25" class="pic high">
107
+ <td data-value="98.24" class="pic high">
108
108
  <div class="chart"><div class="cover-fill" style="width: 98%"></div><div class="cover-empty" style="width: 2%"></div></div>
109
109
  </td>
110
- <td data-value="98.25" class="pct high">98.25%</td>
110
+ <td data-value="98.24" class="pct high">98.24%</td>
111
111
  <td data-value="57" class="abs high">56/57</td>
112
112
  <td data-value="88.46" class="pct high">88.46%</td>
113
113
  <td data-value="26" class="abs high">23/26</td>
@@ -125,7 +125,7 @@
125
125
  <div class='footer quiet pad2 space-top1 center small'>
126
126
  Code coverage generated by
127
127
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
128
- at Mon Nov 22 2021 18:12:17 GMT+0000 (Coordinated Universal Time)
128
+ at Thu Nov 25 2021 18:02:42 GMT+0000 (Coordinated Universal Time)
129
129
  </div>
130
130
  </div>
131
131
  <script src="../../prettify.js"></script>