@budibase/server 1.0.79-alpha.7 → 1.0.79

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 (296) hide show
  1. package/__mocks__/mysql2/promise.ts +17 -0
  2. package/__mocks__/node-fetch.ts +0 -1
  3. package/builder/assets/{index.c57242d4.css → index.c8d1e8f0.css} +2 -2
  4. package/builder/assets/index.f28c5d54.js +1352 -0
  5. package/builder/assets/{vendor.6b00a24f.js → vendor.20f80cec.js} +216 -190
  6. package/builder/index.html +3 -3
  7. package/coverage/clover.xml +2229 -2277
  8. package/coverage/coverage-final.json +136 -137
  9. package/coverage/lcov-report/api/controllers/analytics.js.html +6 -6
  10. package/coverage/lcov-report/api/controllers/apikeys.js.html +6 -6
  11. package/coverage/lcov-report/api/controllers/application.js.html +149 -152
  12. package/coverage/lcov-report/api/controllers/auth.js.html +7 -7
  13. package/coverage/lcov-report/api/controllers/automation.js.html +21 -21
  14. package/coverage/lcov-report/api/controllers/backup.js.html +3 -3
  15. package/coverage/lcov-report/api/controllers/cloud.js.html +11 -11
  16. package/coverage/lcov-report/api/controllers/component.js.html +5 -5
  17. package/coverage/lcov-report/api/controllers/datasource.js.html +16 -16
  18. package/coverage/lcov-report/api/controllers/dev.js.html +19 -19
  19. package/coverage/lcov-report/api/controllers/index.html +16 -16
  20. package/coverage/lcov-report/api/controllers/integration.js.html +4 -4
  21. package/coverage/lcov-report/api/controllers/layout.js.html +6 -6
  22. package/coverage/lcov-report/api/controllers/metadata.js.html +9 -9
  23. package/coverage/lcov-report/api/controllers/migrations.js.html +4 -4
  24. package/coverage/lcov-report/api/controllers/permission.js.html +15 -15
  25. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  26. package/coverage/lcov-report/api/controllers/query/index.js.html +26 -26
  27. package/coverage/lcov-report/api/controllers/query/validation.js.html +10 -10
  28. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  29. package/coverage/lcov-report/api/controllers/routing.js.html +9 -9
  30. package/coverage/lcov-report/api/controllers/row/external.js.html +16 -16
  31. package/coverage/lcov-report/api/controllers/row/index.html +27 -27
  32. package/coverage/lcov-report/api/controllers/row/index.js.html +46 -46
  33. package/coverage/lcov-report/api/controllers/row/internal.js.html +82 -94
  34. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +204 -204
  35. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +24 -24
  36. package/coverage/lcov-report/api/controllers/row/utils.js.html +29 -29
  37. package/coverage/lcov-report/api/controllers/screen.js.html +7 -7
  38. package/coverage/lcov-report/api/controllers/script.js.html +4 -4
  39. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +49 -49
  40. package/coverage/lcov-report/api/controllers/table/external.js.html +12 -12
  41. package/coverage/lcov-report/api/controllers/table/index.html +11 -11
  42. package/coverage/lcov-report/api/controllers/table/index.js.html +44 -47
  43. package/coverage/lcov-report/api/controllers/table/internal.js.html +50 -50
  44. package/coverage/lcov-report/api/controllers/table/utils.js.html +80 -80
  45. package/coverage/lcov-report/api/controllers/templates.js.html +5 -5
  46. package/coverage/lcov-report/api/controllers/user.js.html +19 -19
  47. package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
  48. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  49. package/coverage/lcov-report/api/controllers/view/index.js.html +14 -14
  50. package/coverage/lcov-report/api/controllers/view/utils.js.html +12 -12
  51. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
  52. package/coverage/lcov-report/api/controllers/webhook.js.html +27 -18
  53. package/coverage/lcov-report/api/index.html +10 -10
  54. package/coverage/lcov-report/api/index.js.html +28 -37
  55. package/coverage/lcov-report/api/routes/analytics.js.html +6 -6
  56. package/coverage/lcov-report/api/routes/apikeys.js.html +8 -8
  57. package/coverage/lcov-report/api/routes/application.js.html +9 -9
  58. package/coverage/lcov-report/api/routes/auth.js.html +6 -6
  59. package/coverage/lcov-report/api/routes/automation.js.html +109 -19
  60. package/coverage/lcov-report/api/routes/backup.js.html +8 -8
  61. package/coverage/lcov-report/api/routes/cloud.js.html +8 -8
  62. package/coverage/lcov-report/api/routes/component.js.html +8 -8
  63. package/coverage/lcov-report/api/routes/datasource.js.html +156 -18
  64. package/coverage/lcov-report/api/routes/deploy.js.html +8 -8
  65. package/coverage/lcov-report/api/routes/dev.js.html +13 -13
  66. package/coverage/lcov-report/api/routes/index.html +35 -35
  67. package/coverage/lcov-report/api/routes/index.js.html +32 -38
  68. package/coverage/lcov-report/api/routes/integration.js.html +8 -8
  69. package/coverage/lcov-report/api/routes/layout.js.html +8 -8
  70. package/coverage/lcov-report/api/routes/metadata.js.html +9 -9
  71. package/coverage/lcov-report/api/routes/migrations.js.html +7 -7
  72. package/coverage/lcov-report/api/routes/permission.js.html +58 -16
  73. package/coverage/lcov-report/api/routes/query.js.html +10 -10
  74. package/coverage/lcov-report/api/routes/role.js.html +78 -15
  75. package/coverage/lcov-report/api/routes/routing.js.html +8 -8
  76. package/coverage/lcov-report/api/routes/row.js.html +14 -17
  77. package/coverage/lcov-report/api/routes/screen.js.html +95 -14
  78. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/static.js.html +13 -13
  80. package/coverage/lcov-report/api/routes/table.js.html +62 -17
  81. package/coverage/lcov-report/api/routes/templates.js.html +8 -8
  82. package/coverage/lcov-report/api/routes/user.js.html +8 -8
  83. package/coverage/lcov-report/api/routes/view.js.html +10 -10
  84. package/coverage/lcov-report/api/routes/webhook.js.html +62 -14
  85. package/coverage/lcov-report/automations/actions.js.html +24 -24
  86. package/coverage/lcov-report/automations/automationUtils.js.html +5 -5
  87. package/coverage/lcov-report/automations/bullboard.js.html +16 -16
  88. package/coverage/lcov-report/automations/index.html +1 -1
  89. package/coverage/lcov-report/automations/index.js.html +7 -7
  90. package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
  91. package/coverage/lcov-report/automations/steps/createRow.js.html +7 -7
  92. package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
  93. package/coverage/lcov-report/automations/steps/deleteRow.js.html +7 -7
  94. package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
  95. package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
  96. package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
  97. package/coverage/lcov-report/automations/steps/filter.js.html +9 -12
  98. package/coverage/lcov-report/automations/steps/index.html +1 -1
  99. package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
  100. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
  101. package/coverage/lcov-report/automations/steps/queryRows.js.html +11 -11
  102. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
  103. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
  104. package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
  105. package/coverage/lcov-report/automations/steps/updateRow.js.html +6 -6
  106. package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
  107. package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
  108. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  109. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  110. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  111. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  112. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  113. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  114. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  115. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  116. package/coverage/lcov-report/automations/triggers.js.html +26 -26
  117. package/coverage/lcov-report/automations/utils.js.html +35 -35
  118. package/coverage/lcov-report/constants/index.html +5 -5
  119. package/coverage/lcov-report/constants/index.js.html +28 -40
  120. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  121. package/coverage/lcov-report/constants/screens.js.html +4 -4
  122. package/coverage/lcov-report/db/client.js.html +18 -18
  123. package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
  124. package/coverage/lcov-report/db/index.html +15 -15
  125. package/coverage/lcov-report/db/index.js.html +3 -3
  126. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +21 -21
  127. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  128. package/coverage/lcov-report/db/linkedRows/index.js.html +36 -36
  129. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +30 -30
  130. package/coverage/lcov-report/db/newid.js.html +4 -4
  131. package/coverage/lcov-report/db/utils.js.html +87 -123
  132. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  133. package/coverage/lcov-report/events/index.html +1 -1
  134. package/coverage/lcov-report/events/index.js.html +8 -8
  135. package/coverage/lcov-report/events/utils.js.html +18 -18
  136. package/coverage/lcov-report/index.html +64 -79
  137. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  138. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  139. package/coverage/lcov-report/middleware/appInfo.js.html +5 -5
  140. package/coverage/lcov-report/middleware/authorized.js.html +29 -29
  141. package/coverage/lcov-report/middleware/builder.js.html +16 -16
  142. package/coverage/lcov-report/middleware/currentapp.js.html +44 -44
  143. package/coverage/lcov-report/middleware/index.html +1 -1
  144. package/coverage/lcov-report/middleware/joi-validator.js.html +14 -14
  145. package/coverage/lcov-report/middleware/resourceId.js.html +29 -29
  146. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  147. package/coverage/lcov-report/middleware/usageQuota.js.html +17 -17
  148. package/coverage/lcov-report/middleware/utils.js.html +4 -4
  149. package/coverage/lcov-report/threads/automation.js.html +1 -1
  150. package/coverage/lcov-report/threads/index.html +1 -1
  151. package/coverage/lcov-report/threads/index.js.html +10 -10
  152. package/coverage/lcov-report/threads/query.js.html +1 -1
  153. package/coverage/lcov-report/threads/utils.js.html +14 -14
  154. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  155. package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
  156. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  157. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  158. package/coverage/lcov-report/utilities/global.js.html +28 -28
  159. package/coverage/lcov-report/utilities/index.html +18 -18
  160. package/coverage/lcov-report/utilities/index.js.html +24 -24
  161. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +9 -9
  162. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  163. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  164. package/coverage/lcov-report/utilities/routing/index.js.html +6 -6
  165. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  166. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +60 -60
  167. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +13 -13
  168. package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
  169. package/coverage/lcov-report/utilities/security.js.html +8 -8
  170. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  171. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  172. package/coverage/lcov-report/utilities/usageQuota/index.js.html +12 -12
  173. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +8 -8
  174. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  175. package/coverage/lcov-report/utilities/users.js.html +5 -5
  176. package/coverage/lcov-report/utilities/workerRequests.js.html +53 -200
  177. package/coverage/lcov.info +3039 -3115
  178. package/dist/api/controllers/application.js +0 -1
  179. package/dist/api/controllers/row/internal.js +1 -4
  180. package/dist/api/controllers/table/index.js +1 -2
  181. package/dist/api/controllers/webhook.js +5 -3
  182. package/dist/api/index.js +1 -3
  183. package/dist/api/routes/automation.js +31 -3
  184. package/dist/api/routes/datasource.js +50 -3
  185. package/dist/api/routes/index.js +0 -2
  186. package/dist/api/routes/permission.js +14 -4
  187. package/dist/api/routes/role.js +19 -3
  188. package/dist/api/routes/row.js +4 -3
  189. package/dist/api/routes/screen.js +23 -2
  190. package/dist/api/routes/table.js +17 -3
  191. package/dist/api/routes/tests/utilities/index.js +0 -23
  192. package/dist/api/routes/webhook.js +17 -2
  193. package/dist/automations/steps/filter.js +2 -2
  194. package/dist/automations/steps/queryRows.js +1 -1
  195. package/dist/automations/utils.js +2 -2
  196. package/dist/constants/index.js +0 -3
  197. package/dist/db/utils.js +0 -11
  198. package/dist/integrations/mysql.js +81 -65
  199. package/dist/integrations/utils.js +1 -1
  200. package/dist/package.json +4 -8
  201. package/dist/tests/utilities/TestConfiguration.js +8 -25
  202. package/dist/tsconfig.tsbuildinfo +1 -1
  203. package/dist/utilities/workerRequests.js +15 -50
  204. package/package.json +5 -9
  205. package/scripts/integrations/postgres/init.sql +3 -5
  206. package/scripts/likeCypress.ts +6 -9
  207. package/src/api/controllers/application.js +0 -1
  208. package/src/api/controllers/row/internal.js +0 -4
  209. package/src/api/controllers/table/index.js +1 -2
  210. package/src/api/controllers/webhook.js +6 -3
  211. package/src/api/index.js +1 -4
  212. package/src/api/routes/automation.js +33 -3
  213. package/src/api/routes/datasource.js +52 -6
  214. package/src/api/routes/index.js +0 -2
  215. package/src/api/routes/permission.js +18 -4
  216. package/src/api/routes/role.js +24 -3
  217. package/src/api/routes/row.js +2 -3
  218. package/src/api/routes/screen.js +29 -2
  219. package/src/api/routes/table.js +19 -4
  220. package/src/api/routes/tests/utilities/index.js +0 -24
  221. package/src/api/routes/webhook.js +18 -2
  222. package/src/automations/steps/filter.js +2 -3
  223. package/src/automations/steps/queryRows.js +1 -1
  224. package/src/automations/utils.js +2 -2
  225. package/src/constants/index.js +0 -4
  226. package/src/db/utils.js +0 -12
  227. package/src/definitions/common.ts +0 -4
  228. package/src/integrations/mysql.ts +92 -85
  229. package/src/integrations/tests/mysql.spec.js +4 -4
  230. package/src/integrations/utils.ts +1 -1
  231. package/src/tests/utilities/TestConfiguration.js +2 -23
  232. package/src/utilities/workerRequests.js +16 -65
  233. package/builder/assets/index.ef62c13b.js +0 -1288
  234. package/coverage/lcov-report/api/routes/utils/index.html +0 -111
  235. package/coverage/lcov-report/api/routes/utils/validators.js.html +0 -737
  236. package/dist/api/controllers/public/applications.js +0 -94
  237. package/dist/api/controllers/public/mapping/applications.js +0 -29
  238. package/dist/api/controllers/public/mapping/index.js +0 -11
  239. package/dist/api/controllers/public/mapping/queries.js +0 -36
  240. package/dist/api/controllers/public/mapping/rows.js +0 -24
  241. package/dist/api/controllers/public/mapping/tables.js +0 -23
  242. package/dist/api/controllers/public/mapping/types.js +0 -2
  243. package/dist/api/controllers/public/mapping/users.js +0 -29
  244. package/dist/api/controllers/public/queries.js +0 -38
  245. package/dist/api/controllers/public/rows.js +0 -97
  246. package/dist/api/controllers/public/tables.js +0 -75
  247. package/dist/api/controllers/public/users.js +0 -95
  248. package/dist/api/controllers/public/utils.js +0 -49
  249. package/dist/api/routes/public/applications.js +0 -141
  250. package/dist/api/routes/public/index.js +0 -68
  251. package/dist/api/routes/public/middleware/mapper.js +0 -94
  252. package/dist/api/routes/public/queries.js +0 -77
  253. package/dist/api/routes/public/rows.js +0 -229
  254. package/dist/api/routes/public/tables.js +0 -154
  255. package/dist/api/routes/public/users.js +0 -137
  256. package/dist/api/routes/public/utils/Endpoint.js +0 -36
  257. package/dist/api/routes/utils/validators.js +0 -200
  258. package/dist/definitions/openapi.js +0 -6
  259. package/specs/generate.js +0 -83
  260. package/specs/openapi.json +0 -2222
  261. package/specs/openapi.yaml +0 -1530
  262. package/specs/parameters.js +0 -59
  263. package/specs/resources/application.js +0 -101
  264. package/specs/resources/index.js +0 -24
  265. package/specs/resources/misc.js +0 -12
  266. package/specs/resources/query.js +0 -189
  267. package/specs/resources/row.js +0 -125
  268. package/specs/resources/table.js +0 -191
  269. package/specs/resources/user.js +0 -126
  270. package/specs/resources/utils/Resource.js +0 -26
  271. package/specs/resources/utils/index.js +0 -11
  272. package/specs/security.js +0 -7
  273. package/src/api/controllers/public/applications.ts +0 -74
  274. package/src/api/controllers/public/mapping/applications.ts +0 -32
  275. package/src/api/controllers/public/mapping/index.ts +0 -13
  276. package/src/api/controllers/public/mapping/queries.ts +0 -39
  277. package/src/api/controllers/public/mapping/rows.ts +0 -31
  278. package/src/api/controllers/public/mapping/tables.ts +0 -26
  279. package/src/api/controllers/public/mapping/types.ts +0 -13
  280. package/src/api/controllers/public/mapping/users.ts +0 -32
  281. package/src/api/controllers/public/queries.ts +0 -20
  282. package/src/api/controllers/public/rows.ts +0 -77
  283. package/src/api/controllers/public/tables.ts +0 -56
  284. package/src/api/controllers/public/users.ts +0 -82
  285. package/src/api/controllers/public/utils.ts +0 -38
  286. package/src/api/routes/public/applications.ts +0 -156
  287. package/src/api/routes/public/index.ts +0 -82
  288. package/src/api/routes/public/middleware/mapper.ts +0 -81
  289. package/src/api/routes/public/queries.ts +0 -81
  290. package/src/api/routes/public/rows.ts +0 -242
  291. package/src/api/routes/public/tables.ts +0 -169
  292. package/src/api/routes/public/tests/compare.spec.js +0 -184
  293. package/src/api/routes/public/users.ts +0 -144
  294. package/src/api/routes/public/utils/Endpoint.ts +0 -51
  295. package/src/api/routes/utils/validators.js +0 -219
  296. package/src/definitions/openapi.ts +0 -943
@@ -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'>8/8</span>
28
+ <span class='fraction'>10/10</span>
29
29
  </div>
30
30
 
31
31
 
@@ -39,14 +39,14 @@
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/0</span>
42
+ <span class='fraction'>1/1</span>
43
43
  </div>
44
44
 
45
45
 
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'>8/8</span>
49
+ <span class='fraction'>10/10</span>
50
50
  </div>
51
51
 
52
52
 
@@ -75,35 +75,116 @@
75
75
  <a name='L16'></a><a href='#L16'>16</a>
76
76
  <a name='L17'></a><a href='#L17'>17</a>
77
77
  <a name='L18'></a><a href='#L18'>18</a>
78
- <a name='L19'></a><a href='#L19'>19</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
79
- <span class="cline-any cline-yes">24x</span>
80
- <span class="cline-any cline-yes">24x</span>
81
- <span class="cline-any cline-yes">24x</span>
82
- <span class="cline-any cline-yes">24x</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
106
+ <span class="cline-any cline-yes">23x</span>
107
+ <span class="cline-any cline-yes">23x</span>
108
+ <span class="cline-any cline-yes">23x</span>
109
+ <span class="cline-any cline-yes">23x</span>
110
+ <span class="cline-any cline-yes">23x</span>
111
+ <span class="cline-any cline-neutral">&nbsp;</span>
112
+ <span class="cline-any cline-yes">23x</span>
113
+ <span class="cline-any cline-neutral">&nbsp;</span>
114
+ <span class="cline-any cline-neutral">&nbsp;</span>
115
+ <span class="cline-any cline-neutral">&nbsp;</span>
116
+ <span class="cline-any cline-yes">23x</span>
117
+ <span class="cline-any cline-neutral">&nbsp;</span>
118
+ <span class="cline-any cline-neutral">&nbsp;</span>
119
+ <span class="cline-any cline-neutral">&nbsp;</span>
120
+ <span class="cline-any cline-neutral">&nbsp;</span>
121
+ <span class="cline-any cline-neutral">&nbsp;</span>
122
+ <span class="cline-any cline-neutral">&nbsp;</span>
123
+ <span class="cline-any cline-neutral">&nbsp;</span>
124
+ <span class="cline-any cline-neutral">&nbsp;</span>
125
+ <span class="cline-any cline-neutral">&nbsp;</span>
126
+ <span class="cline-any cline-neutral">&nbsp;</span>
83
127
  <span class="cline-any cline-neutral">&nbsp;</span>
84
- <span class="cline-any cline-yes">24x</span>
85
128
  <span class="cline-any cline-neutral">&nbsp;</span>
86
- <span class="cline-any cline-yes">24x</span>
87
129
  <span class="cline-any cline-neutral">&nbsp;</span>
88
130
  <span class="cline-any cline-neutral">&nbsp;</span>
89
131
  <span class="cline-any cline-neutral">&nbsp;</span>
90
132
  <span class="cline-any cline-neutral">&nbsp;</span>
91
133
  <span class="cline-any cline-neutral">&nbsp;</span>
92
134
  <span class="cline-any cline-neutral">&nbsp;</span>
135
+ <span class="cline-any cline-yes">23x</span>
93
136
  <span class="cline-any cline-neutral">&nbsp;</span>
94
137
  <span class="cline-any cline-neutral">&nbsp;</span>
95
- <span class="cline-any cline-yes">24x</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-neutral">&nbsp;</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-neutral">&nbsp;</span>
145
+ <span class="cline-any cline-neutral">&nbsp;</span>
146
+ <span class="cline-any cline-neutral">&nbsp;</span>
147
+ <span class="cline-any cline-neutral">&nbsp;</span>
148
+ <span class="cline-any cline-neutral">&nbsp;</span>
149
+ <span class="cline-any cline-yes">23x</span>
96
150
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
97
151
  const controller = require("../controllers/screen")
98
152
  const authorized = require("../../middleware/authorized")
99
153
  const { BUILDER } = require("@budibase/backend-core/permissions")
100
- const { screenValidator } = require("./utils/validators")
154
+ const joiValidator = require("../../middleware/joi-validator")
155
+ const Joi = require("joi")
101
156
  &nbsp;
102
157
  const router = Router()
103
158
  &nbsp;
159
+ function generateSaveValidation() {
160
+ // prettier-ignore
161
+ return joiValidator.body(Joi.object({
162
+ name: Joi.string().required(),
163
+ routing: Joi.object({
164
+ route: Joi.string().required(),
165
+ roleId: Joi.string().required().allow(""),
166
+ }).required().unknown(true),
167
+ props: Joi.object({
168
+ _id: Joi.string().required(),
169
+ _component: Joi.string().required(),
170
+ _children: Joi.array().required(),
171
+ _instanceName: Joi.string().required(),
172
+ _styles: Joi.object().required(),
173
+ type: Joi.string().optional(),
174
+ table: Joi.string().optional(),
175
+ layoutId: Joi.string().optional(),
176
+ }).required().unknown(true),
177
+ }).unknown(true))
178
+ }
179
+ &nbsp;
104
180
  router
105
181
  .get("/api/screens", authorized(BUILDER), controller.fetch)
106
- .post("/api/screens", authorized(BUILDER), screenValidator(), controller.save)
182
+ .post(
183
+ "/api/screens",
184
+ authorized(BUILDER),
185
+ generateSaveValidation(),
186
+ controller.save
187
+ )
107
188
  .delete(
108
189
  "/api/screens/:screenId/:screenRev",
109
190
  authorized(BUILDER),
@@ -118,7 +199,7 @@ module.exports = router
118
199
  <div class='footer quiet pad2 space-top1 center small'>
119
200
  Code coverage generated by
120
201
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
121
- at Wed Mar 02 2022 10:47:05 GMT+0000 (Coordinated Universal Time)
202
+ at Fri Mar 04 2022 10:13:39 GMT+0000 (Coordinated Universal Time)
122
203
  </div>
123
204
  </div>
124
205
  <script src="../../prettify.js"></script>
@@ -94,7 +94,7 @@ const router = <span class="cstat-no" title="statement not covered" >Router()</s
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 Wed Mar 02 2022 10:47:05 GMT+0000 (Coordinated Universal Time)
97
+ at Fri Mar 04 2022 10:13:39 GMT+0000 (Coordinated Universal Time)
98
98
  </div>
99
99
  </div>
100
100
  <script src="../../prettify.js"></script>
@@ -112,19 +112,19 @@
112
112
  <a name='L53'></a><a href='#L53'>53</a>
113
113
  <a name='L54'></a><a href='#L54'>54</a>
114
114
  <a name='L55'></a><a href='#L55'>55</a>
115
- <a name='L56'></a><a href='#L56'>56</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
116
- <span class="cline-any cline-yes">24x</span>
117
- <span class="cline-any cline-yes">24x</span>
118
- <span class="cline-any cline-yes">24x</span>
115
+ <a name='L56'></a><a href='#L56'>56</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
116
+ <span class="cline-any cline-yes">23x</span>
117
+ <span class="cline-any cline-yes">23x</span>
118
+ <span class="cline-any cline-yes">23x</span>
119
119
  <span class="cline-any cline-neutral">&nbsp;</span>
120
120
  <span class="cline-any cline-neutral">&nbsp;</span>
121
121
  <span class="cline-any cline-neutral">&nbsp;</span>
122
122
  <span class="cline-any cline-neutral">&nbsp;</span>
123
- <span class="cline-any cline-yes">24x</span>
124
- <span class="cline-any cline-yes">24x</span>
125
- <span class="cline-any cline-yes">24x</span>
123
+ <span class="cline-any cline-yes">23x</span>
124
+ <span class="cline-any cline-yes">23x</span>
125
+ <span class="cline-any cline-yes">23x</span>
126
126
  <span class="cline-any cline-neutral">&nbsp;</span>
127
- <span class="cline-any cline-yes">24x</span>
127
+ <span class="cline-any cline-yes">23x</span>
128
128
  <span class="cline-any cline-neutral">&nbsp;</span>
129
129
  <span class="cline-any cline-neutral">&nbsp;</span>
130
130
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -144,11 +144,11 @@
144
144
  <span class="cline-any cline-neutral">&nbsp;</span>
145
145
  <span class="cline-any cline-neutral">&nbsp;</span>
146
146
  <span class="cline-any cline-neutral">&nbsp;</span>
147
- <span class="cline-any cline-yes">24x</span>
148
- <span class="cline-any cline-yes">24x</span>
147
+ <span class="cline-any cline-yes">23x</span>
148
+ <span class="cline-any cline-yes">23x</span>
149
149
  <span class="cline-any cline-neutral">&nbsp;</span>
150
150
  <span class="cline-any cline-neutral">&nbsp;</span>
151
- <span class="cline-any cline-yes">24x</span>
151
+ <span class="cline-any cline-yes">23x</span>
152
152
  <span class="cline-any cline-neutral">&nbsp;</span>
153
153
  <span class="cline-any cline-neutral">&nbsp;</span>
154
154
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -166,7 +166,7 @@
166
166
  <span class="cline-any cline-neutral">&nbsp;</span>
167
167
  <span class="cline-any cline-neutral">&nbsp;</span>
168
168
  <span class="cline-any cline-neutral">&nbsp;</span>
169
- <span class="cline-any cline-yes">24x</span>
169
+ <span class="cline-any cline-yes">23x</span>
170
170
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
171
171
  const controller = require("../controllers/static")
172
172
  const { budibaseTempDir } = require("../../utilities/budibaseDir")
@@ -229,7 +229,7 @@ module.exports = router
229
229
  <div class='footer quiet pad2 space-top1 center small'>
230
230
  Code coverage generated by
231
231
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
232
- at Wed Mar 02 2022 10:47:05 GMT+0000 (Coordinated Universal Time)
232
+ at Fri Mar 04 2022 10:13:39 GMT+0000 (Coordinated Universal Time)
233
233
  </div>
234
234
  </div>
235
235
  <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'>9/9</span>
28
+ <span class='fraction'>11/11</span>
29
29
  </div>
30
30
 
31
31
 
@@ -39,14 +39,14 @@
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/0</span>
42
+ <span class='fraction'>1/1</span>
43
43
  </div>
44
44
 
45
45
 
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'>9/9</span>
49
+ <span class='fraction'>11/11</span>
50
50
  </div>
51
51
 
52
52
 
@@ -253,26 +253,50 @@
253
253
  <a name='L194'></a><a href='#L194'>194</a>
254
254
  <a name='L195'></a><a href='#L195'>195</a>
255
255
  <a name='L196'></a><a href='#L196'>196</a>
256
- <a name='L197'></a><a href='#L197'>197</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
257
- <span class="cline-any cline-yes">24x</span>
258
- <span class="cline-any cline-yes">24x</span>
259
- <span class="cline-any cline-yes">24x</span>
256
+ <a name='L197'></a><a href='#L197'>197</a>
257
+ <a name='L198'></a><a href='#L198'>198</a>
258
+ <a name='L199'></a><a href='#L199'>199</a>
259
+ <a name='L200'></a><a href='#L200'>200</a>
260
+ <a name='L201'></a><a href='#L201'>201</a>
261
+ <a name='L202'></a><a href='#L202'>202</a>
262
+ <a name='L203'></a><a href='#L203'>203</a>
263
+ <a name='L204'></a><a href='#L204'>204</a>
264
+ <a name='L205'></a><a href='#L205'>205</a>
265
+ <a name='L206'></a><a href='#L206'>206</a>
266
+ <a name='L207'></a><a href='#L207'>207</a>
267
+ <a name='L208'></a><a href='#L208'>208</a>
268
+ <a name='L209'></a><a href='#L209'>209</a>
269
+ <a name='L210'></a><a href='#L210'>210</a>
270
+ <a name='L211'></a><a href='#L211'>211</a>
271
+ <a name='L212'></a><a href='#L212'>212</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
272
+ <span class="cline-any cline-yes">23x</span>
273
+ <span class="cline-any cline-yes">23x</span>
274
+ <span class="cline-any cline-yes">23x</span>
275
+ <span class="cline-any cline-neutral">&nbsp;</span>
276
+ <span class="cline-any cline-neutral">&nbsp;</span>
277
+ <span class="cline-any cline-neutral">&nbsp;</span>
278
+ <span class="cline-any cline-neutral">&nbsp;</span>
279
+ <span class="cline-any cline-yes">23x</span>
280
+ <span class="cline-any cline-yes">23x</span>
281
+ <span class="cline-any cline-yes">23x</span>
282
+ <span class="cline-any cline-neutral">&nbsp;</span>
283
+ <span class="cline-any cline-yes">23x</span>
284
+ <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-neutral">&nbsp;</span>
260
286
  <span class="cline-any cline-neutral">&nbsp;</span>
287
+ <span class="cline-any cline-yes">23x</span>
261
288
  <span class="cline-any cline-neutral">&nbsp;</span>
262
289
  <span class="cline-any cline-neutral">&nbsp;</span>
263
290
  <span class="cline-any cline-neutral">&nbsp;</span>
264
- <span class="cline-any cline-yes">24x</span>
265
- <span class="cline-any cline-yes">24x</span>
266
291
  <span class="cline-any cline-neutral">&nbsp;</span>
267
- <span class="cline-any cline-yes">24x</span>
268
292
  <span class="cline-any cline-neutral">&nbsp;</span>
269
- <span class="cline-any cline-yes">24x</span>
270
293
  <span class="cline-any cline-neutral">&nbsp;</span>
271
294
  <span class="cline-any cline-neutral">&nbsp;</span>
272
295
  <span class="cline-any cline-neutral">&nbsp;</span>
273
296
  <span class="cline-any cline-neutral">&nbsp;</span>
274
297
  <span class="cline-any cline-neutral">&nbsp;</span>
275
298
  <span class="cline-any cline-neutral">&nbsp;</span>
299
+ <span class="cline-any cline-yes">23x</span>
276
300
  <span class="cline-any cline-neutral">&nbsp;</span>
277
301
  <span class="cline-any cline-neutral">&nbsp;</span>
278
302
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -448,7 +472,13 @@
448
472
  <span class="cline-any cline-neutral">&nbsp;</span>
449
473
  <span class="cline-any cline-neutral">&nbsp;</span>
450
474
  <span class="cline-any cline-neutral">&nbsp;</span>
451
- <span class="cline-any cline-yes">24x</span>
475
+ <span class="cline-any cline-neutral">&nbsp;</span>
476
+ <span class="cline-any cline-neutral">&nbsp;</span>
477
+ <span class="cline-any cline-neutral">&nbsp;</span>
478
+ <span class="cline-any cline-neutral">&nbsp;</span>
479
+ <span class="cline-any cline-neutral">&nbsp;</span>
480
+ <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-yes">23x</span>
452
482
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
453
483
  const tableController = require("../controllers/table")
454
484
  const authorized = require("../../middleware/authorized")
@@ -458,10 +488,25 @@ const {
458
488
  PermissionLevels,
459
489
  PermissionTypes,
460
490
  } = require("@budibase/backend-core/permissions")
461
- const { tableValidator } = require("./utils/validators")
491
+ const joiValidator = require("../../middleware/joi-validator")
492
+ const Joi = require("joi")
462
493
  &nbsp;
463
494
  const router = Router()
464
495
  &nbsp;
496
+ function generateSaveValidator() {
497
+ // prettier-ignore
498
+ return joiValidator.body(Joi.object({
499
+ _id: Joi.string(),
500
+ _rev: Joi.string(),
501
+ type: Joi.string().valid("table", "internal", "external"),
502
+ primaryDisplay: Joi.string(),
503
+ schema: Joi.object().required(),
504
+ name: Joi.string().required(),
505
+ views: Joi.object(),
506
+ dataImport: Joi.object(),
507
+ }).unknown(true))
508
+ }
509
+ &nbsp;
465
510
  router
466
511
  /**
467
512
  * @api {get} /api/tables Fetch all tables
@@ -489,8 +534,8 @@ router
489
534
  * @apiSuccess {object[]} body The response body will be the table that was found.
490
535
  */
491
536
  .get(
492
- "/api/tables/:tableId",
493
- paramResource("tableId"),
537
+ "/api/tables/:id",
538
+ paramResource("id"),
494
539
  authorized(PermissionTypes.TABLE, PermissionLevels.READ),
495
540
  tableController.find
496
541
  )
@@ -572,7 +617,7 @@ router
572
617
  // allows control over updating a table
573
618
  bodyResource("_id"),
574
619
  authorized(BUILDER),
575
- tableValidator(),
620
+ generateSaveValidator(),
576
621
  tableController.save
577
622
  )
578
623
  /**
@@ -652,7 +697,7 @@ module.exports = router
652
697
  <div class='footer quiet pad2 space-top1 center small'>
653
698
  Code coverage generated by
654
699
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
655
- at Wed Mar 02 2022 10:47:05 GMT+0000 (Coordinated Universal Time)
700
+ at Fri Mar 04 2022 10:13:39 GMT+0000 (Coordinated Universal Time)
656
701
  </div>
657
702
  </div>
658
703
  <script src="../../prettify.js"></script>
@@ -73,14 +73,14 @@
73
73
  <a name='L14'></a><a href='#L14'>14</a>
74
74
  <a name='L15'></a><a href='#L15'>15</a>
75
75
  <a name='L16'></a><a href='#L16'>16</a>
76
- <a name='L17'></a><a href='#L17'>17</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
77
- <span class="cline-any cline-yes">24x</span>
78
- <span class="cline-any cline-yes">24x</span>
79
- <span class="cline-any cline-yes">24x</span>
76
+ <a name='L17'></a><a href='#L17'>17</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
77
+ <span class="cline-any cline-yes">23x</span>
78
+ <span class="cline-any cline-yes">23x</span>
79
+ <span class="cline-any cline-yes">23x</span>
80
80
  <span class="cline-any cline-neutral">&nbsp;</span>
81
- <span class="cline-any cline-yes">24x</span>
81
+ <span class="cline-any cline-yes">23x</span>
82
82
  <span class="cline-any cline-neutral">&nbsp;</span>
83
- <span class="cline-any cline-yes">24x</span>
83
+ <span class="cline-any cline-yes">23x</span>
84
84
  <span class="cline-any cline-neutral">&nbsp;</span>
85
85
  <span class="cline-any cline-neutral">&nbsp;</span>
86
86
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -88,7 +88,7 @@
88
88
  <span class="cline-any cline-neutral">&nbsp;</span>
89
89
  <span class="cline-any cline-neutral">&nbsp;</span>
90
90
  <span class="cline-any cline-neutral">&nbsp;</span>
91
- <span class="cline-any cline-yes">24x</span>
91
+ <span class="cline-any cline-yes">23x</span>
92
92
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
93
93
  const controller = require("../controllers/templates")
94
94
  const authorized = require("../../middleware/authorized")
@@ -112,7 +112,7 @@ module.exports = router
112
112
  <div class='footer quiet pad2 space-top1 center small'>
113
113
  Code coverage generated by
114
114
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
115
- at Wed Mar 02 2022 10:47:05 GMT+0000 (Coordinated Universal Time)
115
+ at Fri Mar 04 2022 10:13:39 GMT+0000 (Coordinated Universal Time)
116
116
  </div>
117
117
  </div>
118
118
  <script src="../../prettify.js"></script>
@@ -110,17 +110,17 @@
110
110
  <a name='L51'></a><a href='#L51'>51</a>
111
111
  <a name='L52'></a><a href='#L52'>52</a>
112
112
  <a name='L53'></a><a href='#L53'>53</a>
113
- <a name='L54'></a><a href='#L54'>54</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
114
- <span class="cline-any cline-yes">24x</span>
115
- <span class="cline-any cline-yes">24x</span>
113
+ <a name='L54'></a><a href='#L54'>54</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
114
+ <span class="cline-any cline-yes">23x</span>
115
+ <span class="cline-any cline-yes">23x</span>
116
116
  <span class="cline-any cline-neutral">&nbsp;</span>
117
117
  <span class="cline-any cline-neutral">&nbsp;</span>
118
118
  <span class="cline-any cline-neutral">&nbsp;</span>
119
- <span class="cline-any cline-yes">24x</span>
119
+ <span class="cline-any cline-yes">23x</span>
120
120
  <span class="cline-any cline-neutral">&nbsp;</span>
121
- <span class="cline-any cline-yes">24x</span>
121
+ <span class="cline-any cline-yes">23x</span>
122
122
  <span class="cline-any cline-neutral">&nbsp;</span>
123
- <span class="cline-any cline-yes">24x</span>
123
+ <span class="cline-any cline-yes">23x</span>
124
124
  <span class="cline-any cline-neutral">&nbsp;</span>
125
125
  <span class="cline-any cline-neutral">&nbsp;</span>
126
126
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -162,7 +162,7 @@
162
162
  <span class="cline-any cline-neutral">&nbsp;</span>
163
163
  <span class="cline-any cline-neutral">&nbsp;</span>
164
164
  <span class="cline-any cline-neutral">&nbsp;</span>
165
- <span class="cline-any cline-yes">24x</span>
165
+ <span class="cline-any cline-yes">23x</span>
166
166
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
167
167
  const controller = require("../controllers/user")
168
168
  const authorized = require("../../middleware/authorized")
@@ -223,7 +223,7 @@ module.exports = router
223
223
  <div class='footer quiet pad2 space-top1 center small'>
224
224
  Code coverage generated by
225
225
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
226
- at Wed Mar 02 2022 10:47:05 GMT+0000 (Coordinated Universal Time)
226
+ at Fri Mar 04 2022 10:13:39 GMT+0000 (Coordinated Universal Time)
227
227
  </div>
228
228
  </div>
229
229
  <script src="../../prettify.js"></script>
@@ -88,20 +88,20 @@
88
88
  <a name='L29'></a><a href='#L29'>29</a>
89
89
  <a name='L30'></a><a href='#L30'>30</a>
90
90
  <a name='L31'></a><a href='#L31'>31</a>
91
- <a name='L32'></a><a href='#L32'>32</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
92
- <span class="cline-any cline-yes">24x</span>
93
- <span class="cline-any cline-yes">24x</span>
94
- <span class="cline-any cline-yes">24x</span>
95
- <span class="cline-any cline-yes">24x</span>
91
+ <a name='L32'></a><a href='#L32'>32</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
92
+ <span class="cline-any cline-yes">23x</span>
93
+ <span class="cline-any cline-yes">23x</span>
94
+ <span class="cline-any cline-yes">23x</span>
95
+ <span class="cline-any cline-yes">23x</span>
96
96
  <span class="cline-any cline-neutral">&nbsp;</span>
97
97
  <span class="cline-any cline-neutral">&nbsp;</span>
98
98
  <span class="cline-any cline-neutral">&nbsp;</span>
99
99
  <span class="cline-any cline-neutral">&nbsp;</span>
100
- <span class="cline-any cline-yes">24x</span>
100
+ <span class="cline-any cline-yes">23x</span>
101
101
  <span class="cline-any cline-neutral">&nbsp;</span>
102
- <span class="cline-any cline-yes">24x</span>
102
+ <span class="cline-any cline-yes">23x</span>
103
103
  <span class="cline-any cline-neutral">&nbsp;</span>
104
- <span class="cline-any cline-yes">24x</span>
104
+ <span class="cline-any cline-yes">23x</span>
105
105
  <span class="cline-any cline-neutral">&nbsp;</span>
106
106
  <span class="cline-any cline-neutral">&nbsp;</span>
107
107
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -118,7 +118,7 @@
118
118
  <span class="cline-any cline-neutral">&nbsp;</span>
119
119
  <span class="cline-any cline-neutral">&nbsp;</span>
120
120
  <span class="cline-any cline-neutral">&nbsp;</span>
121
- <span class="cline-any cline-yes">24x</span>
121
+ <span class="cline-any cline-yes">23x</span>
122
122
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
123
123
  const viewController = require("../controllers/view")
124
124
  const rowController = require("../controllers/row")
@@ -157,7 +157,7 @@ module.exports = router
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 Wed Mar 02 2022 10:47:05 GMT+0000 (Coordinated Universal Time)
160
+ at Fri Mar 04 2022 10:13:39 GMT+0000 (Coordinated Universal Time)
161
161
  </div>
162
162
  </div>
163
163
  <script src="../../prettify.js"></script>