@budibase/server 1.0.19-alpha.0 → 1.0.19-alpha.1

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 (194) hide show
  1. package/__mocks__/node-fetch.ts +3 -0
  2. package/builder/assets/bb-spaceship.8f6e81e1.svg +227 -0
  3. package/builder/assets/{index.9337c392.css → index.2fc6da87.css} +1 -1
  4. package/builder/assets/{index.f0651cb7.js → index.b0718f41.js} +190 -186
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +313 -275
  7. package/coverage/coverage-final.json +13 -13
  8. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/application.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/hosting.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/index.html +18 -18
  20. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/query/index.html +11 -11
  25. package/coverage/lcov-report/api/controllers/query/index.js.html +15 -9
  26. package/coverage/lcov-report/api/controllers/query/validation.js.html +5 -2
  27. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  31. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  39. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/table/utils.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/user.js.html +108 -9
  44. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  45. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  46. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  47. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  48. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  49. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  50. package/coverage/lcov-report/api/index.html +1 -1
  51. package/coverage/lcov-report/api/index.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/index.html +1 -1
  65. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/user.js.html +32 -2
  80. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  82. package/coverage/lcov-report/automations/actions.js.html +1 -1
  83. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  84. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  85. package/coverage/lcov-report/automations/index.html +1 -1
  86. package/coverage/lcov-report/automations/index.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/index.html +1 -1
  96. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  99. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  100. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  101. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  102. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  103. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  104. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  106. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  107. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  108. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  111. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  112. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  113. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  114. package/coverage/lcov-report/automations/utils.js.html +1 -1
  115. package/coverage/lcov-report/constants/index.html +1 -1
  116. package/coverage/lcov-report/constants/index.js.html +22 -22
  117. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  118. package/coverage/lcov-report/constants/screens.js.html +1 -1
  119. package/coverage/lcov-report/db/client.js.html +18 -18
  120. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  121. package/coverage/lcov-report/db/index.html +15 -15
  122. package/coverage/lcov-report/db/index.js.html +3 -3
  123. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  124. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  125. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  126. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  127. package/coverage/lcov-report/db/newid.js.html +3 -3
  128. package/coverage/lcov-report/db/utils.js.html +90 -63
  129. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  130. package/coverage/lcov-report/events/index.html +1 -1
  131. package/coverage/lcov-report/events/index.js.html +1 -1
  132. package/coverage/lcov-report/events/utils.js.html +1 -1
  133. package/coverage/lcov-report/index.html +51 -51
  134. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  135. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  136. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  137. package/coverage/lcov-report/middleware/authorized.js.html +2 -2
  138. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  139. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  140. package/coverage/lcov-report/middleware/index.html +1 -1
  141. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  142. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  143. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  144. package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
  145. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  146. package/coverage/lcov-report/threads/automation.js.html +1 -1
  147. package/coverage/lcov-report/threads/index.html +20 -20
  148. package/coverage/lcov-report/threads/index.js.html +1 -1
  149. package/coverage/lcov-report/threads/query.js.html +63 -12
  150. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  151. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  152. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  153. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  154. package/coverage/lcov-report/utilities/global.js.html +1 -1
  155. package/coverage/lcov-report/utilities/index.html +19 -19
  156. package/coverage/lcov-report/utilities/index.js.html +66 -33
  157. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  158. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  159. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  160. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  161. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  162. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  163. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  164. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  165. package/coverage/lcov-report/utilities/security.js.html +2 -2
  166. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  167. package/coverage/lcov-report/utilities/users.js.html +1 -1
  168. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  169. package/coverage/lcov.info +490 -424
  170. package/dist/api/controllers/query/index.js +4 -2
  171. package/dist/api/controllers/query/validation.js +1 -0
  172. package/dist/api/controllers/user.js +37 -1
  173. package/dist/api/routes/user.js +3 -1
  174. package/dist/db/utils.js +8 -0
  175. package/dist/integrations/rest.js +110 -113
  176. package/dist/package.json +4 -4
  177. package/dist/threads/query.js +14 -2
  178. package/dist/tsconfig.tsbuildinfo +1 -1
  179. package/dist/utilities/index.js +10 -0
  180. package/package.json +5 -5
  181. package/src/api/controllers/query/import/sources/base/index.ts +1 -2
  182. package/src/api/controllers/query/import/sources/openapi2.ts +1 -1
  183. package/src/api/controllers/query/index.js +4 -2
  184. package/src/api/controllers/query/validation.js +1 -0
  185. package/src/api/controllers/user.js +33 -0
  186. package/src/api/routes/user.js +10 -0
  187. package/src/db/utils.js +9 -0
  188. package/src/definitions/common.ts +2 -38
  189. package/src/definitions/datasource.ts +50 -1
  190. package/src/integrations/base/IntegrationBase.ts +4 -4
  191. package/src/integrations/rest.ts +111 -137
  192. package/src/integrations/tests/rest.spec.js +16 -7
  193. package/src/threads/query.js +19 -2
  194. package/src/utilities/index.js +11 -0
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">37.37% </span>
26
+ <span class="strong">32.5% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>37/99</span>
28
+ <span class='fraction'>39/120</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/33</span>
35
+ <span class='fraction'>0/37</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">35.71% </span>
40
+ <span class="strong">31.25% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>5/14</span>
42
+ <span class='fraction'>5/16</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">37.75% </span>
47
+ <span class="strong">32.77% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>37/98</span>
49
+ <span class='fraction'>39/119</span>
50
50
  </div>
51
51
 
52
52
 
@@ -254,7 +254,41 @@
254
254
  <a name='L195'></a><a href='#L195'>195</a>
255
255
  <a name='L196'></a><a href='#L196'>196</a>
256
256
  <a name='L197'></a><a href='#L197'>197</a>
257
- <a name='L198'></a><a href='#L198'>198</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
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>
272
+ <a name='L213'></a><a href='#L213'>213</a>
273
+ <a name='L214'></a><a href='#L214'>214</a>
274
+ <a name='L215'></a><a href='#L215'>215</a>
275
+ <a name='L216'></a><a href='#L216'>216</a>
276
+ <a name='L217'></a><a href='#L217'>217</a>
277
+ <a name='L218'></a><a href='#L218'>218</a>
278
+ <a name='L219'></a><a href='#L219'>219</a>
279
+ <a name='L220'></a><a href='#L220'>220</a>
280
+ <a name='L221'></a><a href='#L221'>221</a>
281
+ <a name='L222'></a><a href='#L222'>222</a>
282
+ <a name='L223'></a><a href='#L223'>223</a>
283
+ <a name='L224'></a><a href='#L224'>224</a>
284
+ <a name='L225'></a><a href='#L225'>225</a>
285
+ <a name='L226'></a><a href='#L226'>226</a>
286
+ <a name='L227'></a><a href='#L227'>227</a>
287
+ <a name='L228'></a><a href='#L228'>228</a>
288
+ <a name='L229'></a><a href='#L229'>229</a>
289
+ <a name='L230'></a><a href='#L230'>230</a>
290
+ <a name='L231'></a><a href='#L231'>231</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
291
+ <span class="cline-any cline-neutral">&nbsp;</span>
258
292
  <span class="cline-any cline-neutral">&nbsp;</span>
259
293
  <span class="cline-any cline-neutral">&nbsp;</span>
260
294
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -451,10 +485,43 @@
451
485
  <span class="cline-any cline-yes">34x</span>
452
486
  <span class="cline-any cline-yes">1x</span>
453
487
  <span class="cline-any cline-neutral">&nbsp;</span>
488
+ <span class="cline-any cline-neutral">&nbsp;</span>
489
+ <span class="cline-any cline-yes">34x</span>
490
+ <span class="cline-any cline-no">&nbsp;</span>
491
+ <span class="cline-any cline-no">&nbsp;</span>
492
+ <span class="cline-any cline-no">&nbsp;</span>
493
+ <span class="cline-any cline-no">&nbsp;</span>
494
+ <span class="cline-any cline-neutral">&nbsp;</span>
495
+ <span class="cline-any cline-no">&nbsp;</span>
496
+ <span class="cline-any cline-no">&nbsp;</span>
497
+ <span class="cline-any cline-neutral">&nbsp;</span>
498
+ <span class="cline-any cline-no">&nbsp;</span>
499
+ <span class="cline-any cline-no">&nbsp;</span>
500
+ <span class="cline-any cline-neutral">&nbsp;</span>
501
+ <span class="cline-any cline-no">&nbsp;</span>
502
+ <span class="cline-any cline-neutral">&nbsp;</span>
503
+ <span class="cline-any cline-no">&nbsp;</span>
504
+ <span class="cline-any cline-no">&nbsp;</span>
505
+ <span class="cline-any cline-no">&nbsp;</span>
506
+ <span class="cline-any cline-neutral">&nbsp;</span>
507
+ <span class="cline-any cline-neutral">&nbsp;</span>
508
+ <span class="cline-any cline-yes">34x</span>
509
+ <span class="cline-any cline-no">&nbsp;</span>
510
+ <span class="cline-any cline-no">&nbsp;</span>
511
+ <span class="cline-any cline-no">&nbsp;</span>
512
+ <span class="cline-any cline-neutral">&nbsp;</span>
513
+ <span class="cline-any cline-no">&nbsp;</span>
514
+ <span class="cline-any cline-no">&nbsp;</span>
515
+ <span class="cline-any cline-neutral">&nbsp;</span>
516
+ <span class="cline-any cline-no">&nbsp;</span>
517
+ <span class="cline-any cline-neutral">&nbsp;</span>
518
+ <span class="cline-any cline-no">&nbsp;</span>
519
+ <span class="cline-any cline-neutral">&nbsp;</span>
454
520
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../db")
455
521
  const {
456
522
  generateUserMetadataID,
457
523
  getUserMetadataParams,
524
+ generateUserFlagID,
458
525
  } = require("../../db/utils")
459
526
  const { InternalTables } = require("../../db/utils")
460
527
  const { getGlobalUsers, getRawGlobalUser } = require("../../utilities/global")
@@ -648,6 +715,38 @@ exports.destroyMetadata = async function (ctx) {
648
715
  exports.findMetadata = async function (ctx) {
649
716
  ctx.body = await getFullUser(ctx, ctx.params.id)
650
717
  }
718
+ &nbsp;
719
+ exports.setFlag = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
720
+ const userId = <span class="cstat-no" title="statement not covered" >ctx.user._id</span>
721
+ const { flag, value } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
722
+ <span class="cstat-no" title="statement not covered" > if (!flag) {</span>
723
+ <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Must supply a 'flag' field in request body.")</span>
724
+ }
725
+ const flagDocId = <span class="cstat-no" title="statement not covered" >generateUserFlagID(userId)</span>
726
+ const db = <span class="cstat-no" title="statement not covered" >new CouchDB(ctx.appId)</span>
727
+ let doc
728
+ <span class="cstat-no" title="statement not covered" > try {</span>
729
+ <span class="cstat-no" title="statement not covered" > doc = await db.get(flagDocId)</span>
730
+ } catch (err) {
731
+ <span class="cstat-no" title="statement not covered" > doc = { _id: flagDocId }</span>
732
+ }
733
+ <span class="cstat-no" title="statement not covered" > doc[flag] = value || true</span>
734
+ <span class="cstat-no" title="statement not covered" > await db.put(doc)</span>
735
+ <span class="cstat-no" title="statement not covered" > ctx.body = { message: "Flag set successfully" }</span>
736
+ }
737
+ &nbsp;
738
+ exports.getFlags = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
739
+ const userId = <span class="cstat-no" title="statement not covered" >ctx.user._id</span>
740
+ const docId = <span class="cstat-no" title="statement not covered" >generateUserFlagID(userId)</span>
741
+ const db = <span class="cstat-no" title="statement not covered" >new CouchDB(ctx.appId)</span>
742
+ let doc
743
+ <span class="cstat-no" title="statement not covered" > try {</span>
744
+ <span class="cstat-no" title="statement not covered" > doc = await db.get(docId)</span>
745
+ } catch (err) {
746
+ <span class="cstat-no" title="statement not covered" > doc = { _id: docId }</span>
747
+ }
748
+ <span class="cstat-no" title="statement not covered" > ctx.body = doc</span>
749
+ }
651
750
  &nbsp;</pre></td></tr></table></pre>
652
751
 
653
752
  <div class='push'></div><!-- for sticky footer -->
@@ -655,7 +754,7 @@ exports.findMetadata = async function (ctx) {
655
754
  <div class='footer quiet pad2 space-top1 center small'>
656
755
  Code coverage generated by
657
756
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
658
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
757
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
659
758
  </div>
660
759
  </div>
661
760
  <script src="../../prettify.js"></script>
@@ -133,7 +133,7 @@ exports.ExportFormats = {
133
133
  <div class='footer quiet pad2 space-top1 center small'>
134
134
  Code coverage generated by
135
135
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
136
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
136
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
137
137
  </div>
138
138
  </div>
139
139
  <script src="../../../prettify.js"></script>
@@ -140,7 +140,7 @@
140
140
  <div class='footer quiet pad2 space-top1 center small'>
141
141
  Code coverage generated by
142
142
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
143
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
143
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
144
144
  </div>
145
145
  </div>
146
146
  <script src="../../../prettify.js"></script>
@@ -427,7 +427,7 @@ exports.exportView = async ctx =&gt; {
427
427
  <div class='footer quiet pad2 space-top1 center small'>
428
428
  Code coverage generated by
429
429
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
430
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
430
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
431
431
  </div>
432
432
  </div>
433
433
  <script src="../../../prettify.js"></script>
@@ -493,7 +493,7 @@ exports.getFromMemoryDoc = async (db, viewName) =&gt; {
493
493
  <div class='footer quiet pad2 space-top1 center small'>
494
494
  Code coverage generated by
495
495
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
496
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
496
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
497
497
  </div>
498
498
  </div>
499
499
  <script src="../../../prettify.js"></script>
@@ -550,7 +550,7 @@ module.exports = viewTemplate
550
550
  <div class='footer quiet pad2 space-top1 center small'>
551
551
  Code coverage generated by
552
552
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
553
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
553
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
554
554
  </div>
555
555
  </div>
556
556
  <script src="../../../prettify.js"></script>
@@ -406,7 +406,7 @@ exports.trigger = async ctx =&gt; {
406
406
  <div class='footer quiet pad2 space-top1 center small'>
407
407
  Code coverage generated by
408
408
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
409
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
409
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
410
410
  </div>
411
411
  </div>
412
412
  <script src="../../prettify.js"></script>
@@ -95,7 +95,7 @@
95
95
  <div class='footer quiet pad2 space-top1 center small'>
96
96
  Code coverage generated by
97
97
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
98
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
99
99
  </div>
100
100
  </div>
101
101
  <script src="../prettify.js"></script>
@@ -331,7 +331,7 @@ module.exports = router
331
331
  <div class='footer quiet pad2 space-top1 center small'>
332
332
  Code coverage generated by
333
333
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
334
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
334
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
335
335
  </div>
336
336
  </div>
337
337
  <script src="../prettify.js"></script>
@@ -94,7 +94,7 @@ module.exports = router
94
94
  <div class='footer quiet pad2 space-top1 center small'>
95
95
  Code coverage generated by
96
96
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
97
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
97
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
98
98
  </div>
99
99
  </div>
100
100
  <script src="../../prettify.js"></script>
@@ -100,7 +100,7 @@ module.exports = router
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
103
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
103
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
104
104
  </div>
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
@@ -163,7 +163,7 @@ module.exports = router
163
163
  <div class='footer quiet pad2 space-top1 center small'>
164
164
  Code coverage generated by
165
165
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
166
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
166
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
167
167
  </div>
168
168
  </div>
169
169
  <script src="../../prettify.js"></script>
@@ -88,7 +88,7 @@ module.exports = router
88
88
  <div class='footer quiet pad2 space-top1 center small'>
89
89
  Code coverage generated by
90
90
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
91
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
91
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
92
92
  </div>
93
93
  </div>
94
94
  <script src="../../prettify.js"></script>
@@ -379,7 +379,7 @@ module.exports = router
379
379
  <div class='footer quiet pad2 space-top1 center small'>
380
380
  Code coverage generated by
381
381
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
382
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
382
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
383
383
  </div>
384
384
  </div>
385
385
  <script src="../../prettify.js"></script>
@@ -94,7 +94,7 @@ module.exports = router
94
94
  <div class='footer quiet pad2 space-top1 center small'>
95
95
  Code coverage generated by
96
96
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
97
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
97
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
98
98
  </div>
99
99
  </div>
100
100
  <script src="../../prettify.js"></script>
@@ -106,7 +106,7 @@ module.exports = router
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
109
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
109
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
110
110
  </div>
111
111
  </div>
112
112
  <script src="../../prettify.js"></script>
@@ -106,7 +106,7 @@ module.exports = router
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
109
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
109
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
110
110
  </div>
111
111
  </div>
112
112
  <script src="../../prettify.js"></script>
@@ -355,7 +355,7 @@ module.exports = router
355
355
  <div class='footer quiet pad2 space-top1 center small'>
356
356
  Code coverage generated by
357
357
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
358
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
358
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
359
359
  </div>
360
360
  </div>
361
361
  <script src="../../prettify.js"></script>
@@ -115,7 +115,7 @@ module.exports = router
115
115
  <div class='footer quiet pad2 space-top1 center small'>
116
116
  Code coverage generated by
117
117
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
118
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
118
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
119
119
  </div>
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
@@ -142,7 +142,7 @@ module.exports = router
142
142
  <div class='footer quiet pad2 space-top1 center small'>
143
143
  Code coverage generated by
144
144
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
145
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
145
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
146
146
  </div>
147
147
  </div>
148
148
  <script src="../../prettify.js"></script>
@@ -103,7 +103,7 @@ module.exports = router
103
103
  <div class='footer quiet pad2 space-top1 center small'>
104
104
  Code coverage generated by
105
105
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
106
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
106
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
107
107
  </div>
108
108
  </div>
109
109
  <script src="../../prettify.js"></script>
@@ -515,7 +515,7 @@
515
515
  <div class='footer quiet pad2 space-top1 center small'>
516
516
  Code coverage generated by
517
517
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
518
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
518
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
519
519
  </div>
520
520
  </div>
521
521
  <script src="../../prettify.js"></script>
@@ -244,7 +244,7 @@ exports.staticRoutes = staticRoutes
244
244
  <div class='footer quiet pad2 space-top1 center small'>
245
245
  Code coverage generated by
246
246
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
247
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
247
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
248
248
  </div>
249
249
  </div>
250
250
  <script src="../../prettify.js"></script>
@@ -100,7 +100,7 @@ module.exports = router
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
103
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
103
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
104
104
  </div>
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
@@ -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 Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
115
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
116
116
  </div>
117
117
  </div>
118
118
  <script src="../../prettify.js"></script>
@@ -178,7 +178,7 @@ module.exports = router
178
178
  <div class='footer quiet pad2 space-top1 center small'>
179
179
  Code coverage generated by
180
180
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
181
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
181
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
182
182
  </div>
183
183
  </div>
184
184
  <script src="../../prettify.js"></script>
@@ -196,7 +196,7 @@ module.exports = router
196
196
  <div class='footer quiet pad2 space-top1 center small'>
197
197
  Code coverage generated by
198
198
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
199
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
199
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
200
200
  </div>
201
201
  </div>
202
202
  <script src="../../prettify.js"></script>
@@ -235,7 +235,7 @@ module.exports = router
235
235
  <div class='footer quiet pad2 space-top1 center small'>
236
236
  Code coverage generated by
237
237
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
238
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
238
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
239
239
  </div>
240
240
  </div>
241
241
  <script src="../../prettify.js"></script>
@@ -172,7 +172,7 @@ module.exports = router
172
172
  <div class='footer quiet pad2 space-top1 center small'>
173
173
  Code coverage generated by
174
174
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
175
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
175
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
176
176
  </div>
177
177
  </div>
178
178
  <script src="../../prettify.js"></script>
@@ -106,7 +106,7 @@ module.exports = router
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
109
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
109
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
110
110
  </div>
111
111
  </div>
112
112
  <script src="../../prettify.js"></script>
@@ -826,7 +826,7 @@ module.exports = router
826
826
  <div class='footer quiet pad2 space-top1 center small'>
827
827
  Code coverage generated by
828
828
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
829
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
829
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
830
830
  </div>
831
831
  </div>
832
832
  <script src="../../prettify.js"></script>
@@ -199,7 +199,7 @@ module.exports = router
199
199
  <div class='footer quiet pad2 space-top1 center small'>
200
200
  Code coverage generated by
201
201
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
202
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
202
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
203
203
  </div>
204
204
  </div>
205
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 Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
97
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
98
98
  </div>
99
99
  </div>
100
100
  <script src="../../prettify.js"></script>
@@ -214,7 +214,7 @@ module.exports = router
214
214
  <div class='footer quiet pad2 space-top1 center small'>
215
215
  Code coverage generated by
216
216
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
217
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
217
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
218
218
  </div>
219
219
  </div>
220
220
  <script src="../../prettify.js"></script>
@@ -697,7 +697,7 @@ module.exports = router
697
697
  <div class='footer quiet pad2 space-top1 center small'>
698
698
  Code coverage generated by
699
699
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
700
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
700
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
701
701
  </div>
702
702
  </div>
703
703
  <script src="../../prettify.js"></script>
@@ -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 Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
115
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
116
116
  </div>
117
117
  </div>
118
118
  <script src="../../prettify.js"></script>
@@ -100,7 +100,17 @@
100
100
  <a name='L41'></a><a href='#L41'>41</a>
101
101
  <a name='L42'></a><a href='#L42'>42</a>
102
102
  <a name='L43'></a><a href='#L43'>43</a>
103
- <a name='L44'></a><a href='#L44'>44</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
103
+ <a name='L44'></a><a href='#L44'>44</a>
104
+ <a name='L45'></a><a href='#L45'>45</a>
105
+ <a name='L46'></a><a href='#L46'>46</a>
106
+ <a name='L47'></a><a href='#L47'>47</a>
107
+ <a name='L48'></a><a href='#L48'>48</a>
108
+ <a name='L49'></a><a href='#L49'>49</a>
109
+ <a name='L50'></a><a href='#L50'>50</a>
110
+ <a name='L51'></a><a href='#L51'>51</a>
111
+ <a name='L52'></a><a href='#L52'>52</a>
112
+ <a name='L53'></a><a href='#L53'>53</a>
113
+ <a name='L54'></a><a href='#L54'>54</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
104
114
  <span class="cline-any cline-yes">23x</span>
105
115
  <span class="cline-any cline-yes">23x</span>
106
116
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -142,6 +152,16 @@
142
152
  <span class="cline-any cline-neutral">&nbsp;</span>
143
153
  <span class="cline-any cline-neutral">&nbsp;</span>
144
154
  <span class="cline-any cline-neutral">&nbsp;</span>
155
+ <span class="cline-any cline-neutral">&nbsp;</span>
156
+ <span class="cline-any cline-neutral">&nbsp;</span>
157
+ <span class="cline-any cline-neutral">&nbsp;</span>
158
+ <span class="cline-any cline-neutral">&nbsp;</span>
159
+ <span class="cline-any cline-neutral">&nbsp;</span>
160
+ <span class="cline-any cline-neutral">&nbsp;</span>
161
+ <span class="cline-any cline-neutral">&nbsp;</span>
162
+ <span class="cline-any cline-neutral">&nbsp;</span>
163
+ <span class="cline-any cline-neutral">&nbsp;</span>
164
+ <span class="cline-any cline-neutral">&nbsp;</span>
145
165
  <span class="cline-any cline-yes">23x</span>
146
166
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
147
167
  const controller = require("../controllers/user")
@@ -184,6 +204,16 @@ router
184
204
  authorized(PermissionTypes.USER, PermissionLevels.WRITE),
185
205
  controller.syncUser
186
206
  )
207
+ .post(
208
+ "/api/users/flags",
209
+ authorized(PermissionTypes.USER, PermissionLevels.WRITE),
210
+ controller.setFlag
211
+ )
212
+ .get(
213
+ "/api/users/flags",
214
+ authorized(PermissionTypes.USER, PermissionLevels.READ),
215
+ controller.getFlags
216
+ )
187
217
  &nbsp;
188
218
  module.exports = router
189
219
  &nbsp;</pre></td></tr></table></pre>
@@ -193,7 +223,7 @@ module.exports = router
193
223
  <div class='footer quiet pad2 space-top1 center small'>
194
224
  Code coverage generated by
195
225
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
196
- at Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
226
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
197
227
  </div>
198
228
  </div>
199
229
  <script src="../../prettify.js"></script>
@@ -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 Mon Dec 13 2021 17:15:48 GMT+0000 (Coordinated Universal Time)
160
+ at Mon Dec 13 2021 17:43:19 GMT+0000 (Coordinated Universal Time)
161
161
  </div>
162
162
  </div>
163
163
  <script src="../../prettify.js"></script>