@budibase/server 1.0.48 → 1.0.49-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.
- package/builder/assets/{index.e083dcaf.js → index.21e57eb4.js} +234 -231
- package/builder/assets/index.83c0944f.css +1 -0
- package/builder/assets/{vendor.f9faf6ab.js → vendor.d526bfe8.js} +12 -12
- package/builder/index.html +3 -3
- package/coverage/clover.xml +2338 -2028
- package/coverage/coverage-final.json +100 -95
- package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
- package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/controllers/application.js.html +210 -126
- package/coverage/lcov-report/api/controllers/auth.js.html +18 -6
- package/coverage/lcov-report/api/controllers/automation.js.html +21 -21
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
- package/coverage/lcov-report/api/controllers/component.js.html +4 -4
- package/coverage/lcov-report/api/controllers/datasource.js.html +72 -36
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +53 -53
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +6 -6
- package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
- package/coverage/lcov-report/api/controllers/migrations.js.html +119 -0
- package/coverage/lcov-report/api/controllers/permission.js.html +15 -15
- package/coverage/lcov-report/api/controllers/query/index.html +1 -1
- package/coverage/lcov-report/api/controllers/query/index.js.html +19 -19
- package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -6
- package/coverage/lcov-report/api/controllers/role.js.html +9 -9
- package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/external.js.html +16 -16
- package/coverage/lcov-report/api/controllers/row/index.html +48 -33
- package/coverage/lcov-report/api/controllers/row/index.js.html +26 -26
- package/coverage/lcov-report/api/controllers/row/internal.js.html +95 -158
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +41 -17
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +551 -0
- package/coverage/lcov-report/api/controllers/row/utils.js.html +39 -57
- package/coverage/lcov-report/api/controllers/screen.js.html +7 -7
- package/coverage/lcov-report/api/controllers/script.js.html +4 -4
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +629 -0
- package/coverage/lcov-report/api/controllers/table/external.js.html +12 -12
- package/coverage/lcov-report/api/controllers/table/index.html +46 -31
- package/coverage/lcov-report/api/controllers/table/index.js.html +53 -77
- package/coverage/lcov-report/api/controllers/table/internal.js.html +59 -35
- package/coverage/lcov-report/api/controllers/table/utils.js.html +217 -73
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +30 -24
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
- package/coverage/lcov-report/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.js.html +14 -14
- package/coverage/lcov-report/api/controllers/view/utils.js.html +11 -11
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
- package/coverage/lcov-report/api/controllers/webhook.js.html +15 -15
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +8 -8
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/routes/application.js.html +1 -1
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +1 -1
- package/coverage/lcov-report/api/routes/backup.js.html +1 -1
- package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
- package/coverage/lcov-report/api/routes/component.js.html +1 -1
- package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
- package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
- package/coverage/lcov-report/api/routes/dev.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +18 -18
- package/coverage/lcov-report/api/routes/index.js.html +3 -3
- package/coverage/lcov-report/api/routes/integration.js.html +1 -1
- package/coverage/lcov-report/api/routes/layout.js.html +1 -1
- package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
- package/coverage/lcov-report/api/routes/{hosting.js.html → migrations.js.html} +17 -14
- package/coverage/lcov-report/api/routes/permission.js.html +1 -1
- package/coverage/lcov-report/api/routes/query.js.html +1 -1
- package/coverage/lcov-report/api/routes/role.js.html +1 -1
- package/coverage/lcov-report/api/routes/routing.js.html +1 -1
- package/coverage/lcov-report/api/routes/row.js.html +1 -1
- package/coverage/lcov-report/api/routes/screen.js.html +1 -1
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- package/coverage/lcov-report/api/routes/static.js.html +17 -2
- package/coverage/lcov-report/api/routes/table.js.html +1 -1
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +1 -1
- package/coverage/lcov-report/api/routes/view.js.html +1 -1
- package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/actions.js.html +24 -24
- package/coverage/lcov-report/automations/automationUtils.js.html +5 -5
- package/coverage/lcov-report/automations/bullboard.js.html +16 -16
- package/coverage/lcov-report/automations/index.html +1 -1
- package/coverage/lcov-report/automations/index.js.html +1 -1
- package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
- package/coverage/lcov-report/automations/steps/createRow.js.html +13 -19
- package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +11 -20
- package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
- package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
- package/coverage/lcov-report/automations/steps/filter.js.html +7 -7
- package/coverage/lcov-report/automations/steps/index.html +13 -13
- package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
- package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -10
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
- package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
- package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
- package/coverage/lcov-report/automations/steps/updateRow.js.html +6 -6
- package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
- package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
- package/coverage/lcov-report/automations/triggers.js.html +18 -18
- package/coverage/lcov-report/automations/utils.js.html +32 -32
- package/coverage/lcov-report/constants/index.html +5 -5
- package/coverage/lcov-report/constants/index.js.html +53 -26
- package/coverage/lcov-report/constants/layouts.js.html +5 -5
- package/coverage/lcov-report/constants/screens.js.html +4 -4
- package/coverage/lcov-report/db/client.js.html +18 -18
- package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
- package/coverage/lcov-report/db/index.html +15 -15
- package/coverage/lcov-report/db/index.js.html +3 -3
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +18 -18
- package/coverage/lcov-report/db/linkedRows/index.html +10 -10
- package/coverage/lcov-report/db/linkedRows/index.js.html +38 -41
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +15 -15
- package/coverage/lcov-report/db/newid.js.html +4 -4
- package/coverage/lcov-report/db/utils.js.html +86 -86
- package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
- package/coverage/lcov-report/events/index.html +1 -1
- package/coverage/lcov-report/events/index.js.html +5 -5
- package/coverage/lcov-report/events/utils.js.html +3 -3
- package/coverage/lcov-report/index.html +114 -99
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
- package/coverage/lcov-report/middleware/authorized.js.html +166 -64
- package/coverage/lcov-report/middleware/builder.js.html +8 -8
- package/coverage/lcov-report/middleware/currentapp.js.html +29 -29
- package/coverage/lcov-report/middleware/index.html +30 -30
- package/coverage/lcov-report/middleware/joi-validator.js.html +3 -3
- package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/usageQuota.js.html +270 -42
- package/coverage/lcov-report/middleware/utils.js.html +2 -2
- package/coverage/lcov-report/threads/automation.js.html +1 -1
- package/coverage/lcov-report/threads/index.html +15 -15
- package/coverage/lcov-report/threads/index.js.html +10 -10
- package/coverage/lcov-report/threads/query.js.html +23 -8
- package/coverage/lcov-report/threads/utils.js.html +14 -14
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
- package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
- package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
- package/coverage/lcov-report/utilities/global.js.html +26 -26
- package/coverage/lcov-report/utilities/index.html +19 -19
- package/coverage/lcov-report/utilities/index.js.html +25 -25
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +8 -8
- package/coverage/lcov-report/utilities/queue/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.html +27 -27
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +115 -79
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +75 -27
- package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
- package/coverage/lcov-report/utilities/security.js.html +8 -8
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.html +141 -0
- package/coverage/lcov-report/utilities/usageQuota/index.js.html +356 -0
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +302 -0
- package/coverage/lcov-report/{api/controllers/hosting.js.html → utilities/usageQuota/usageQuoteReset.js.html} +36 -48
- package/coverage/lcov-report/utilities/users.js.html +5 -5
- package/coverage/lcov-report/utilities/workerRequests.js.html +39 -108
- package/coverage/lcov.info +3656 -3057
- package/dist/api/controllers/application.js +61 -34
- package/dist/api/controllers/auth.js +4 -0
- package/dist/api/controllers/datasource.js +11 -0
- package/dist/api/controllers/migrations.js +21 -0
- package/dist/api/controllers/row/internal.js +30 -53
- package/dist/api/controllers/row/internalSearch.js +12 -4
- package/dist/api/controllers/row/staticFormula.js +147 -0
- package/dist/api/controllers/row/utils.js +6 -8
- package/dist/api/controllers/static/index.js +59 -10
- package/dist/api/controllers/table/bulkFormula.js +160 -0
- package/dist/api/controllers/table/index.js +12 -9
- package/dist/api/controllers/table/internal.js +9 -0
- package/dist/api/controllers/table/utils.js +41 -12
- package/dist/api/controllers/user.js +2 -0
- package/dist/api/routes/index.js +2 -2
- package/dist/api/routes/migrations.js +9 -0
- package/dist/api/routes/static.js +2 -1
- package/dist/app.js +35 -5
- package/dist/automations/steps/createRow.js +2 -4
- package/dist/automations/steps/deleteRow.js +1 -4
- package/dist/constants/index.js +7 -0
- package/dist/db/linkedRows/index.js +4 -5
- package/dist/definitions/datasource.js +1 -0
- package/dist/environment.js +2 -0
- package/dist/integrations/base/sql.js +13 -6
- package/dist/integrations/googlesheets.js +340 -0
- package/dist/integrations/index.js +3 -0
- package/dist/integrations/utils.js +57 -9
- package/dist/middleware/authorized.js +55 -30
- package/dist/middleware/usageQuota.js +80 -13
- package/dist/migrations/functions/appUrls.js +46 -0
- package/dist/migrations/functions/quotas1.js +50 -0
- package/dist/migrations/functions/usageQuotas/index.js +20 -0
- package/dist/migrations/functions/usageQuotas/syncApps.js +32 -0
- package/dist/migrations/functions/usageQuotas/syncRows.js +35 -0
- package/dist/migrations/functions/userEmailViewCasing.js +24 -0
- package/dist/migrations/index.js +62 -0
- package/dist/package.json +8 -5
- package/dist/tests/utilities/TestConfiguration.js +13 -6
- package/dist/threads/query.js +4 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/rowProcessor/index.js +18 -11
- package/dist/utilities/rowProcessor/utils.js +14 -4
- package/dist/utilities/{usageQuota.js → usageQuota/index.js} +44 -31
- package/dist/utilities/usageQuota/rows.js +77 -0
- package/dist/utilities/usageQuota/usageQuoteReset.js +16 -0
- package/dist/utilities/workerRequests.js +0 -20
- package/nodemon.json +1 -1
- package/package.json +9 -6
- package/src/api/controllers/application.js +52 -24
- package/src/api/controllers/auth.js +4 -0
- package/src/api/controllers/datasource.js +12 -0
- package/src/api/controllers/migrations.js +13 -0
- package/src/api/controllers/row/internal.js +29 -50
- package/src/api/controllers/row/internalSearch.js +12 -4
- package/src/api/controllers/row/staticFormula.js +157 -0
- package/src/api/controllers/row/utils.js +6 -12
- package/src/api/controllers/static/index.js +63 -10
- package/src/api/controllers/table/bulkFormula.js +183 -0
- package/src/api/controllers/table/index.js +16 -24
- package/src/api/controllers/table/internal.js +9 -1
- package/src/api/controllers/table/utils.js +57 -9
- package/src/api/controllers/user.js +2 -0
- package/src/api/routes/index.js +2 -2
- package/src/api/routes/migrations.js +14 -0
- package/src/api/routes/static.js +5 -0
- package/src/api/routes/tests/application.spec.js +2 -2
- package/src/api/routes/tests/auth.spec.js +1 -2
- package/src/api/routes/tests/static.spec.js +98 -0
- package/src/app.ts +18 -5
- package/src/automations/steps/createRow.js +2 -4
- package/src/automations/steps/deleteRow.js +1 -4
- package/src/constants/index.js +9 -0
- package/src/db/linkedRows/index.js +4 -5
- package/src/definitions/common.ts +3 -0
- package/src/definitions/datasource.ts +3 -0
- package/src/environment.js +2 -0
- package/src/integrations/base/sql.ts +14 -7
- package/src/integrations/googlesheets.ts +353 -0
- package/src/integrations/index.ts +3 -0
- package/src/integrations/tests/sql.spec.js +16 -0
- package/src/integrations/utils.ts +71 -11
- package/src/middleware/authorized.js +64 -30
- package/src/middleware/tests/authorized.spec.js +6 -4
- package/src/middleware/tests/usageQuota.spec.js +18 -24
- package/src/middleware/usageQuota.js +91 -15
- package/src/migrations/functions/appUrls.ts +34 -0
- package/src/migrations/functions/quotas1.ts +20 -0
- package/src/migrations/functions/tests/appUrls.spec.js +29 -0
- package/src/migrations/functions/tests/quotas1.spec.js +27 -0
- package/src/migrations/functions/tests/userEmailViewCasing.spec.js +25 -0
- package/src/migrations/functions/usageQuotas/index.ts +8 -0
- package/src/migrations/functions/usageQuotas/syncApps.ts +18 -0
- package/src/migrations/functions/usageQuotas/syncRows.ts +21 -0
- package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +37 -0
- package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +43 -0
- package/src/migrations/functions/userEmailViewCasing.ts +13 -0
- package/src/migrations/index.ts +56 -0
- package/src/tests/utilities/TestConfiguration.js +14 -6
- package/src/threads/query.js +5 -0
- package/src/utilities/rowProcessor/index.js +24 -12
- package/src/utilities/rowProcessor/utils.js +23 -7
- package/src/utilities/tests/usageQuota/usageQuota.spec.js +72 -0
- package/src/utilities/usageQuota/index.js +92 -0
- package/src/utilities/usageQuota/rows.js +74 -0
- package/src/utilities/usageQuota/usageQuoteReset.js +18 -0
- package/src/utilities/workerRequests.js +0 -23
- package/builder/assets/index.39e01193.css +0 -1
- package/dist/api/controllers/hosting.js +0 -30
- package/dist/api/routes/hosting.js +0 -11
- package/src/api/controllers/hosting.js +0 -22
- package/src/api/routes/hosting.js +0 -13
- package/src/api/routes/tests/hosting.spec.js +0 -36
- package/src/utilities/usageQuota.js +0 -73
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">90.47% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>38/42</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">87.5% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>28/32</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">83.33% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>5/6</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">92.68% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>38/41</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -127,7 +127,41 @@
|
|
|
127
127
|
<a name='L68'></a><a href='#L68'>68</a>
|
|
128
128
|
<a name='L69'></a><a href='#L69'>69</a>
|
|
129
129
|
<a name='L70'></a><a href='#L70'>70</a>
|
|
130
|
-
<a name='L71'></a><a href='#L71'>71</a
|
|
130
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
131
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
132
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
133
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
134
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
135
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
136
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
137
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
138
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
139
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
140
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
141
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
142
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
143
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
144
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
145
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
146
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
147
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
148
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
149
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
150
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
151
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
152
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
153
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
154
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
155
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
156
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
157
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
158
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
159
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
160
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
161
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
162
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
163
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
164
|
+
<a name='L105'></a><a href='#L105'>105</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
131
165
|
<span class="cline-any cline-neutral"> </span>
|
|
132
166
|
<span class="cline-any cline-neutral"> </span>
|
|
133
167
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -138,64 +172,98 @@
|
|
|
138
172
|
<span class="cline-any cline-yes">24x</span>
|
|
139
173
|
<span class="cline-any cline-yes">24x</span>
|
|
140
174
|
<span class="cline-any cline-yes">24x</span>
|
|
175
|
+
<span class="cline-any cline-yes">24x</span>
|
|
141
176
|
<span class="cline-any cline-neutral"> </span>
|
|
142
177
|
<span class="cline-any cline-neutral"> </span>
|
|
143
|
-
<span class="cline-any cline-yes">
|
|
178
|
+
<span class="cline-any cline-yes">155x</span>
|
|
144
179
|
<span class="cline-any cline-neutral"> </span>
|
|
145
180
|
<span class="cline-any cline-neutral"> </span>
|
|
146
181
|
<span class="cline-any cline-yes">24x</span>
|
|
147
182
|
<span class="cline-any cline-neutral"> </span>
|
|
148
|
-
<span class="cline-any cline-yes">2338x</span>
|
|
149
183
|
<span class="cline-any cline-neutral"> </span>
|
|
150
184
|
<span class="cline-any cline-neutral"> </span>
|
|
151
|
-
<span class="cline-any cline-yes">160x</span>
|
|
152
|
-
<span class="cline-any cline-yes">1x</span>
|
|
153
185
|
<span class="cline-any cline-neutral"> </span>
|
|
154
186
|
<span class="cline-any cline-neutral"> </span>
|
|
155
|
-
<span class="cline-any cline-
|
|
187
|
+
<span class="cline-any cline-neutral"> </span>
|
|
188
|
+
<span class="cline-any cline-neutral"> </span>
|
|
189
|
+
<span class="cline-any cline-yes">24x</span>
|
|
190
|
+
<span class="cline-any cline-neutral"> </span>
|
|
191
|
+
<span class="cline-any cline-yes">129x</span>
|
|
192
|
+
<span class="cline-any cline-yes">129x</span>
|
|
193
|
+
<span class="cline-any cline-yes">129x</span>
|
|
156
194
|
<span class="cline-any cline-yes">1x</span>
|
|
157
195
|
<span class="cline-any cline-neutral"> </span>
|
|
158
196
|
<span class="cline-any cline-neutral"> </span>
|
|
159
197
|
<span class="cline-any cline-neutral"> </span>
|
|
198
|
+
<span class="cline-any cline-yes">128x</span>
|
|
199
|
+
<span class="cline-any cline-yes">3x</span>
|
|
200
|
+
<span class="cline-any cline-neutral"> </span>
|
|
160
201
|
<span class="cline-any cline-neutral"> </span>
|
|
161
|
-
<span class="cline-any cline-yes">158x</span>
|
|
162
202
|
<span class="cline-any cline-neutral"> </span>
|
|
163
|
-
<span class="cline-any cline-yes">
|
|
203
|
+
<span class="cline-any cline-yes">24x</span>
|
|
164
204
|
<span class="cline-any cline-neutral"> </span>
|
|
165
|
-
<span class="cline-any cline-yes">158x</span>
|
|
166
|
-
<span class="cline-any cline-yes">158x</span>
|
|
167
|
-
<span class="cline-any cline-yes">158x</span>
|
|
168
|
-
<span class="cline-any cline-yes">122x</span>
|
|
169
|
-
<span class="cline-any cline-yes">36x</span>
|
|
170
|
-
<span class="cline-any cline-yes">29x</span>
|
|
171
205
|
<span class="cline-any cline-neutral"> </span>
|
|
172
206
|
<span class="cline-any cline-neutral"> </span>
|
|
173
207
|
<span class="cline-any cline-neutral"> </span>
|
|
174
|
-
<span class="cline-any cline-yes">7x</span>
|
|
175
|
-
<span class="cline-any cline-yes">7x</span>
|
|
176
208
|
<span class="cline-any cline-neutral"> </span>
|
|
177
209
|
<span class="cline-any cline-neutral"> </span>
|
|
178
|
-
<span class="cline-any cline-yes">7x</span>
|
|
179
|
-
<span class="cline-any cline-yes">7x</span>
|
|
180
|
-
<span class="cline-any cline-yes">7x</span>
|
|
181
210
|
<span class="cline-any cline-yes">3x</span>
|
|
211
|
+
<span class="cline-any cline-yes">3x</span>
|
|
212
|
+
<span class="cline-any cline-neutral"> </span>
|
|
182
213
|
<span class="cline-any cline-neutral"> </span>
|
|
214
|
+
<span class="cline-any cline-yes">3x</span>
|
|
183
215
|
<span class="cline-any cline-neutral"> </span>
|
|
184
|
-
<span class="cline-any cline-yes">
|
|
216
|
+
<span class="cline-any cline-yes">3x</span>
|
|
217
|
+
<span class="cline-any cline-neutral"> </span>
|
|
218
|
+
<span class="cline-any cline-no"> </span>
|
|
219
|
+
<span class="cline-any cline-no"> </span>
|
|
220
|
+
<span class="cline-any cline-no"> </span>
|
|
221
|
+
<span class="cline-any cline-neutral"> </span>
|
|
222
|
+
<span class="cline-any cline-neutral"> </span>
|
|
223
|
+
<span class="cline-any cline-yes">3x</span>
|
|
224
|
+
<span class="cline-any cline-yes">3x</span>
|
|
225
|
+
<span class="cline-any cline-neutral"> </span>
|
|
226
|
+
<span class="cline-any cline-neutral"> </span>
|
|
227
|
+
<span class="cline-any cline-neutral"> </span>
|
|
228
|
+
<span class="cline-any cline-yes">24x</span>
|
|
229
|
+
<span class="cline-any cline-neutral"> </span>
|
|
230
|
+
<span class="cline-any cline-yes">2338x</span>
|
|
231
|
+
<span class="cline-any cline-neutral"> </span>
|
|
232
|
+
<span class="cline-any cline-neutral"> </span>
|
|
233
|
+
<span class="cline-any cline-yes">162x</span>
|
|
185
234
|
<span class="cline-any cline-yes">1x</span>
|
|
235
|
+
<span class="cline-any cline-neutral"> </span>
|
|
236
|
+
<span class="cline-any cline-neutral"> </span>
|
|
237
|
+
<span class="cline-any cline-yes">161x</span>
|
|
186
238
|
<span class="cline-any cline-yes">1x</span>
|
|
187
239
|
<span class="cline-any cline-neutral"> </span>
|
|
240
|
+
<span class="cline-any cline-neutral"> </span>
|
|
241
|
+
<span class="cline-any cline-neutral"> </span>
|
|
242
|
+
<span class="cline-any cline-neutral"> </span>
|
|
243
|
+
<span class="cline-any cline-yes">160x</span>
|
|
244
|
+
<span class="cline-any cline-neutral"> </span>
|
|
245
|
+
<span class="cline-any cline-neutral"> </span>
|
|
246
|
+
<span class="cline-any cline-yes">160x</span>
|
|
247
|
+
<span class="cline-any cline-yes">160x</span>
|
|
248
|
+
<span class="cline-any cline-yes">55x</span>
|
|
249
|
+
<span class="cline-any cline-neutral"> </span>
|
|
250
|
+
<span class="cline-any cline-neutral"> </span>
|
|
251
|
+
<span class="cline-any cline-neutral"> </span>
|
|
252
|
+
<span class="cline-any cline-yes">160x</span>
|
|
253
|
+
<span class="cline-any cline-yes">160x</span>
|
|
188
254
|
<span class="cline-any cline-yes">1x</span>
|
|
189
|
-
<span class="cline-any cline-yes">6x</span>
|
|
190
|
-
<span class="cline-any cline-yes">6x</span>
|
|
191
255
|
<span class="cline-any cline-neutral"> </span>
|
|
192
256
|
<span class="cline-any cline-neutral"> </span>
|
|
193
257
|
<span class="cline-any cline-neutral"> </span>
|
|
194
|
-
<span class="cline-any cline-yes">
|
|
195
|
-
<span class="cline-any cline-yes">
|
|
258
|
+
<span class="cline-any cline-yes">159x</span>
|
|
259
|
+
<span class="cline-any cline-yes">30x</span>
|
|
260
|
+
<span class="cline-any cline-neutral"> </span>
|
|
261
|
+
<span class="cline-any cline-neutral"> </span>
|
|
196
262
|
<span class="cline-any cline-neutral"> </span>
|
|
263
|
+
<span class="cline-any cline-yes">129x</span>
|
|
197
264
|
<span class="cline-any cline-neutral"> </span>
|
|
198
|
-
<span class="cline-any cline-
|
|
265
|
+
<span class="cline-any cline-neutral"> </span>
|
|
266
|
+
<span class="cline-any cline-yes">129x</span>
|
|
199
267
|
<span class="cline-any cline-neutral"> </span>
|
|
200
268
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const {
|
|
201
269
|
getUserRoleHierarchy,
|
|
@@ -208,11 +276,59 @@ const {
|
|
|
208
276
|
} = require("@budibase/backend-core/permissions")
|
|
209
277
|
const builderMiddleware = require("./builder")
|
|
210
278
|
const { isWebhookEndpoint } = require("./utils")
|
|
279
|
+
const { buildCsrfMiddleware } = require("@budibase/backend-core/auth")
|
|
211
280
|
|
|
212
281
|
function hasResource(ctx) {
|
|
213
282
|
return ctx.resourceId != null
|
|
214
283
|
}
|
|
215
284
|
|
|
285
|
+
const csrf = buildCsrfMiddleware()
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Apply authorization to the requested resource:
|
|
289
|
+
* - If this is a builder resource the user must be a builder.
|
|
290
|
+
* - Builders can access all resources.
|
|
291
|
+
* - Otherwise the user must have the required role.
|
|
292
|
+
*/
|
|
293
|
+
const checkAuthorized = async (ctx, resourceRoles, permType, permLevel) => {
|
|
294
|
+
// check if this is a builder api and the user is not a builder
|
|
295
|
+
const isBuilder = ctx.user && ctx.user.builder && ctx.user.builder.global
|
|
296
|
+
const isBuilderApi = permType === PermissionTypes.BUILDER
|
|
297
|
+
if (isBuilderApi && !isBuilder) {
|
|
298
|
+
return ctx.throw(403, "Not Authorized")
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
// check for resource authorization
|
|
302
|
+
if (!isBuilder) {
|
|
303
|
+
await checkAuthorizedResource(ctx, resourceRoles, permType, permLevel)
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
const checkAuthorizedResource = async (
|
|
308
|
+
ctx,
|
|
309
|
+
resourceRoles,
|
|
310
|
+
permType,
|
|
311
|
+
permLevel
|
|
312
|
+
) => {
|
|
313
|
+
// get the user's roles
|
|
314
|
+
const roleId = ctx.roleId || BUILTIN_ROLE_IDS.PUBLIC
|
|
315
|
+
const userRoles = await getUserRoleHierarchy(ctx.appId, roleId, {
|
|
316
|
+
idOnly: false,
|
|
317
|
+
})
|
|
318
|
+
const permError = "User does not have permission"
|
|
319
|
+
// check if the user has the required role
|
|
320
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (resourceRoles.length > 0) {
|
|
321
|
+
// deny access if the user doesn't have the required resource role
|
|
322
|
+
const found = <span class="cstat-no" title="statement not covered" >userRoles.find(<span class="fstat-no" title="function not covered" >ro</span>le => <span class="cstat-no" title="statement not covered" >resourceRoles.indexOf(role._id) !== -1)</span></span>
|
|
323
|
+
<span class="cstat-no" title="statement not covered" > if (!found) {</span>
|
|
324
|
+
<span class="cstat-no" title="statement not covered" > ctx.throw(403, permError)</span>
|
|
325
|
+
}
|
|
326
|
+
// fallback to the base permissions when no resource roles are found
|
|
327
|
+
} else if (!doesHaveBasePermission(permType, permLevel, userRoles)) {
|
|
328
|
+
ctx.throw(403, permError)
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
|
|
216
332
|
module.exports =
|
|
217
333
|
(permType, permLevel = null) =>
|
|
218
334
|
async (ctx, next) => {
|
|
@@ -230,42 +346,28 @@ module.exports =
|
|
|
230
346
|
// to find API endpoints which are builder focused
|
|
231
347
|
await builderMiddleware(ctx, permType)
|
|
232
348
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
if (isBuilder) {
|
|
238
|
-
return next()
|
|
239
|
-
} else if (isBuilderApi && !isBuilder) {
|
|
240
|
-
return ctx.throw(403, "Not Authorized")
|
|
349
|
+
// get the resource roles
|
|
350
|
+
let resourceRoles = []
|
|
351
|
+
if (ctx.appId && hasResource(ctx)) {
|
|
352
|
+
resourceRoles = await getRequiredResourceRole(ctx.appId, permLevel, ctx)
|
|
241
353
|
}
|
|
242
354
|
|
|
243
|
-
//
|
|
244
|
-
const
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
})
|
|
248
|
-
const permError = "User does not have permission"
|
|
249
|
-
let possibleRoleIds = []
|
|
250
|
-
if (hasResource(ctx)) {
|
|
251
|
-
possibleRoleIds = await getRequiredResourceRole(ctx.appId, permLevel, ctx)
|
|
252
|
-
}
|
|
253
|
-
// check if we found a role, if not fallback to base permissions
|
|
254
|
-
if (possibleRoleIds.length > 0) {
|
|
255
|
-
const found = hierarchy.find(
|
|
256
|
-
role => possibleRoleIds.indexOf(role._id) !== -1
|
|
257
|
-
)
|
|
258
|
-
return found ? next() : <span class="branch-1 cbranch-no" title="branch not covered" >ctx.throw(403, permError)</span>
|
|
259
|
-
} else if (!doesHaveBasePermission(permType, permLevel, hierarchy)) {
|
|
260
|
-
ctx.throw(403, permError)
|
|
355
|
+
// if the resource is public, proceed
|
|
356
|
+
const isPublicResource = resourceRoles.includes(BUILTIN_ROLE_IDS.PUBLIC)
|
|
357
|
+
if (isPublicResource) {
|
|
358
|
+
return next()
|
|
261
359
|
}
|
|
262
360
|
|
|
263
|
-
//
|
|
264
|
-
if (!
|
|
265
|
-
ctx.throw(403, "Session not authenticated")
|
|
361
|
+
// check authenticated
|
|
362
|
+
if (!ctx.isAuthenticated) {
|
|
363
|
+
return ctx.throw(403, "Session not authenticated")
|
|
266
364
|
}
|
|
267
365
|
|
|
268
|
-
|
|
366
|
+
// check authorized
|
|
367
|
+
await checkAuthorized(ctx, resourceRoles, permType, permLevel)
|
|
368
|
+
|
|
369
|
+
// csrf protection
|
|
370
|
+
return csrf(ctx, next)
|
|
269
371
|
}
|
|
270
372
|
</pre></td></tr></table></pre>
|
|
271
373
|
|
|
@@ -274,7 +376,7 @@ module.exports =
|
|
|
274
376
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
275
377
|
Code coverage generated by
|
|
276
378
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
277
|
-
at Mon Jan 31 2022
|
|
379
|
+
at Mon Jan 31 2022 17:55:41 GMT+0000 (Coordinated Universal Time)
|
|
278
380
|
</div>
|
|
279
381
|
</div>
|
|
280
382
|
<script src="../prettify.js"></script>
|
|
@@ -196,17 +196,17 @@
|
|
|
196
196
|
<span class="cline-any cline-neutral"> </span>
|
|
197
197
|
<span class="cline-any cline-neutral"> </span>
|
|
198
198
|
<span class="cline-any cline-yes">24x</span>
|
|
199
|
-
<span class="cline-any cline-yes">
|
|
199
|
+
<span class="cline-any cline-yes">160x</span>
|
|
200
200
|
<span class="cline-any cline-neutral"> </span>
|
|
201
|
-
<span class="cline-any cline-yes">
|
|
201
|
+
<span class="cline-any cline-yes">160x</span>
|
|
202
202
|
<span class="cline-any cline-yes">5x</span>
|
|
203
203
|
<span class="cline-any cline-neutral"> </span>
|
|
204
|
-
<span class="cline-any cline-yes">
|
|
205
|
-
<span class="cline-any cline-yes">
|
|
206
|
-
<span class="cline-any cline-yes">
|
|
204
|
+
<span class="cline-any cline-yes">155x</span>
|
|
205
|
+
<span class="cline-any cline-yes">155x</span>
|
|
206
|
+
<span class="cline-any cline-yes">155x</span>
|
|
207
207
|
<span class="cline-any cline-neutral"> </span>
|
|
208
|
-
<span class="cline-any cline-yes">
|
|
209
|
-
<span class="cline-any cline-yes">
|
|
208
|
+
<span class="cline-any cline-yes">155x</span>
|
|
209
|
+
<span class="cline-any cline-yes">154x</span>
|
|
210
210
|
<span class="cline-any cline-neutral"> </span>
|
|
211
211
|
<span class="cline-any cline-neutral"> </span>
|
|
212
212
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -298,7 +298,7 @@ module.exports = async (ctx, permType) => {
|
|
|
298
298
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
299
299
|
Code coverage generated by
|
|
300
300
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
301
|
-
at Mon Jan 31 2022
|
|
301
|
+
at Mon Jan 31 2022 17:55:41 GMT+0000 (Coordinated Universal Time)
|
|
302
302
|
</div>
|
|
303
303
|
</div>
|
|
304
304
|
<script src="../prettify.js"></script>
|
|
@@ -187,31 +187,31 @@
|
|
|
187
187
|
<span class="cline-any cline-neutral"> </span>
|
|
188
188
|
<span class="cline-any cline-yes">28x</span>
|
|
189
189
|
<span class="cline-any cline-neutral"> </span>
|
|
190
|
-
<span class="cline-any cline-yes">
|
|
190
|
+
<span class="cline-any cline-yes">172x</span>
|
|
191
191
|
<span class="cline-any cline-neutral"> </span>
|
|
192
|
-
<span class="cline-any cline-yes">
|
|
193
|
-
<span class="cline-any cline-yes">
|
|
194
|
-
<span class="cline-any cline-yes">
|
|
192
|
+
<span class="cline-any cline-yes">172x</span>
|
|
193
|
+
<span class="cline-any cline-yes">172x</span>
|
|
194
|
+
<span class="cline-any cline-yes">172x</span>
|
|
195
195
|
<span class="cline-any cline-neutral"> </span>
|
|
196
196
|
<span class="cline-any cline-no"> </span>
|
|
197
197
|
<span class="cline-any cline-neutral"> </span>
|
|
198
|
-
<span class="cline-any cline-yes">
|
|
198
|
+
<span class="cline-any cline-yes">172x</span>
|
|
199
199
|
<span class="cline-any cline-yes">1x</span>
|
|
200
200
|
<span class="cline-any cline-neutral"> </span>
|
|
201
201
|
<span class="cline-any cline-neutral"> </span>
|
|
202
|
-
<span class="cline-any cline-yes">
|
|
203
|
-
<span class="cline-any cline-yes">
|
|
204
|
-
<span class="cline-any cline-yes">
|
|
205
|
-
<span class="cline-any cline-yes">
|
|
202
|
+
<span class="cline-any cline-yes">171x</span>
|
|
203
|
+
<span class="cline-any cline-yes">165x</span>
|
|
204
|
+
<span class="cline-any cline-yes">165x</span>
|
|
205
|
+
<span class="cline-any cline-yes">165x</span>
|
|
206
206
|
<span class="cline-any cline-no"> </span>
|
|
207
207
|
<span class="cline-any cline-no"> </span>
|
|
208
208
|
<span class="cline-any cline-neutral"> </span>
|
|
209
209
|
<span class="cline-any cline-neutral"> </span>
|
|
210
|
-
<span class="cline-any cline-yes">
|
|
210
|
+
<span class="cline-any cline-yes">165x</span>
|
|
211
211
|
<span class="cline-any cline-neutral"> </span>
|
|
212
212
|
<span class="cline-any cline-neutral"> </span>
|
|
213
213
|
<span class="cline-any cline-neutral"> </span>
|
|
214
|
-
<span class="cline-any cline-yes">
|
|
214
|
+
<span class="cline-any cline-yes">171x</span>
|
|
215
215
|
<span class="cline-any cline-neutral"> </span>
|
|
216
216
|
<span class="cline-any cline-neutral"> </span>
|
|
217
217
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -221,27 +221,27 @@
|
|
|
221
221
|
<span class="cline-any cline-neutral"> </span>
|
|
222
222
|
<span class="cline-any cline-neutral"> </span>
|
|
223
223
|
<span class="cline-any cline-neutral"> </span>
|
|
224
|
-
<span class="cline-any cline-yes">
|
|
225
|
-
<span class="cline-any cline-yes">
|
|
224
|
+
<span class="cline-any cline-yes">169x</span>
|
|
225
|
+
<span class="cline-any cline-yes">169x</span>
|
|
226
226
|
<span class="cline-any cline-neutral"> </span>
|
|
227
|
-
<span class="cline-any cline-yes">
|
|
228
|
-
<span class="cline-any cline-yes">
|
|
227
|
+
<span class="cline-any cline-yes">32x</span>
|
|
228
|
+
<span class="cline-any cline-yes">137x</span>
|
|
229
229
|
<span class="cline-any cline-neutral"> </span>
|
|
230
|
-
<span class="cline-any cline-yes">
|
|
231
|
-
<span class="cline-any cline-yes">
|
|
230
|
+
<span class="cline-any cline-yes">137x</span>
|
|
231
|
+
<span class="cline-any cline-yes">137x</span>
|
|
232
232
|
<span class="cline-any cline-neutral"> </span>
|
|
233
|
-
<span class="cline-any cline-yes">
|
|
233
|
+
<span class="cline-any cline-yes">137x</span>
|
|
234
234
|
<span class="cline-any cline-neutral"> </span>
|
|
235
235
|
<span class="cline-any cline-neutral"> </span>
|
|
236
236
|
<span class="cline-any cline-neutral"> </span>
|
|
237
|
-
<span class="cline-any cline-yes">
|
|
237
|
+
<span class="cline-any cline-yes">169x</span>
|
|
238
238
|
<span class="cline-any cline-no"> </span>
|
|
239
239
|
<span class="cline-any cline-neutral"> </span>
|
|
240
240
|
<span class="cline-any cline-neutral"> </span>
|
|
241
|
-
<span class="cline-any cline-yes">
|
|
241
|
+
<span class="cline-any cline-yes">169x</span>
|
|
242
242
|
<span class="cline-any cline-neutral"> </span>
|
|
243
243
|
<span class="cline-any cline-neutral"> </span>
|
|
244
|
-
<span class="cline-any cline-yes">
|
|
244
|
+
<span class="cline-any cline-yes">169x</span>
|
|
245
245
|
<span class="cline-any cline-neutral"> </span>
|
|
246
246
|
<span class="cline-any cline-neutral"> </span>
|
|
247
247
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -255,11 +255,11 @@
|
|
|
255
255
|
<span class="cline-any cline-no"> </span>
|
|
256
256
|
<span class="cline-any cline-neutral"> </span>
|
|
257
257
|
<span class="cline-any cline-neutral"> </span>
|
|
258
|
-
<span class="cline-any cline-yes">
|
|
259
|
-
<span class="cline-any cline-yes">
|
|
260
|
-
<span class="cline-any cline-yes">
|
|
261
|
-
<span class="cline-any cline-yes">
|
|
262
|
-
<span class="cline-any cline-yes">
|
|
258
|
+
<span class="cline-any cline-yes">169x</span>
|
|
259
|
+
<span class="cline-any cline-yes">169x</span>
|
|
260
|
+
<span class="cline-any cline-yes">169x</span>
|
|
261
|
+
<span class="cline-any cline-yes">169x</span>
|
|
262
|
+
<span class="cline-any cline-yes">169x</span>
|
|
263
263
|
<span class="cline-any cline-neutral"> </span>
|
|
264
264
|
<span class="cline-any cline-neutral"> </span>
|
|
265
265
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -268,7 +268,7 @@
|
|
|
268
268
|
<span class="cline-any cline-neutral"> </span>
|
|
269
269
|
<span class="cline-any cline-neutral"> </span>
|
|
270
270
|
<span class="cline-any cline-neutral"> </span>
|
|
271
|
-
<span class="cline-any cline-yes">
|
|
271
|
+
<span class="cline-any cline-yes">169x</span>
|
|
272
272
|
<span class="cline-any cline-neutral"> </span>
|
|
273
273
|
<span class="cline-any cline-neutral"> </span>
|
|
274
274
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -277,7 +277,7 @@
|
|
|
277
277
|
<span class="cline-any cline-yes">7x</span>
|
|
278
278
|
<span class="cline-any cline-neutral"> </span>
|
|
279
279
|
<span class="cline-any cline-neutral"> </span>
|
|
280
|
-
<span class="cline-any cline-yes">
|
|
280
|
+
<span class="cline-any cline-yes">169x</span>
|
|
281
281
|
<span class="cline-any cline-neutral"> </span>
|
|
282
282
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const {
|
|
283
283
|
getAppId,
|
|
@@ -397,7 +397,7 @@ module.exports = async (ctx, next) => {
|
|
|
397
397
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
398
398
|
Code coverage generated by
|
|
399
399
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
400
|
-
at Mon Jan 31 2022
|
|
400
|
+
at Mon Jan 31 2022 17:55:41 GMT+0000 (Coordinated Universal Time)
|
|
401
401
|
</div>
|
|
402
402
|
</div>
|
|
403
403
|
<script src="../prettify.js"></script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">82.39% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>220/267</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">70.94% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>127/179</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">85.71% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>30/35</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">83.33% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>220/264</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -89,17 +89,17 @@
|
|
|
89
89
|
|
|
90
90
|
<tr>
|
|
91
91
|
<td class="file high" data-value="authorized.js"><a href="authorized.js.html">authorized.js</a></td>
|
|
92
|
-
<td data-value="
|
|
93
|
-
<div class="chart"><div class="cover-fill
|
|
92
|
+
<td data-value="90.47" class="pic high">
|
|
93
|
+
<div class="chart"><div class="cover-fill" style="width: 90%"></div><div class="cover-empty" style="width: 10%"></div></div>
|
|
94
94
|
</td>
|
|
95
|
-
<td data-value="
|
|
96
|
-
<td data-value="
|
|
97
|
-
<td data-value="
|
|
98
|
-
<td data-value="
|
|
99
|
-
<td data-value="
|
|
100
|
-
<td data-value="
|
|
101
|
-
<td data-value="
|
|
102
|
-
<td data-value="
|
|
95
|
+
<td data-value="90.47" class="pct high">90.47%</td>
|
|
96
|
+
<td data-value="42" class="abs high">38/42</td>
|
|
97
|
+
<td data-value="87.5" class="pct high">87.5%</td>
|
|
98
|
+
<td data-value="32" class="abs high">28/32</td>
|
|
99
|
+
<td data-value="83.33" class="pct high">83.33%</td>
|
|
100
|
+
<td data-value="6" class="abs high">5/6</td>
|
|
101
|
+
<td data-value="92.68" class="pct high">92.68%</td>
|
|
102
|
+
<td data-value="41" class="abs high">38/41</td>
|
|
103
103
|
</tr>
|
|
104
104
|
|
|
105
105
|
<tr>
|
|
@@ -178,18 +178,18 @@
|
|
|
178
178
|
</tr>
|
|
179
179
|
|
|
180
180
|
<tr>
|
|
181
|
-
<td class="file
|
|
182
|
-
<td data-value="
|
|
183
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
181
|
+
<td class="file medium" data-value="usageQuota.js"><a href="usageQuota.js.html">usageQuota.js</a></td>
|
|
182
|
+
<td data-value="66.19" class="pic medium">
|
|
183
|
+
<div class="chart"><div class="cover-fill" style="width: 66%"></div><div class="cover-empty" style="width: 34%"></div></div>
|
|
184
184
|
</td>
|
|
185
|
-
<td data-value="
|
|
186
|
-
<td data-value="
|
|
187
|
-
<td data-value="
|
|
188
|
-
<td data-value="
|
|
189
|
-
<td data-value="
|
|
190
|
-
<td data-value="
|
|
191
|
-
<td data-value="
|
|
192
|
-
<td data-value="
|
|
185
|
+
<td data-value="66.19" class="pct medium">66.19%</td>
|
|
186
|
+
<td data-value="71" class="abs medium">47/71</td>
|
|
187
|
+
<td data-value="50.98" class="pct medium">50.98%</td>
|
|
188
|
+
<td data-value="51" class="abs medium">26/51</td>
|
|
189
|
+
<td data-value="50" class="pct medium">50%</td>
|
|
190
|
+
<td data-value="8" class="abs medium">4/8</td>
|
|
191
|
+
<td data-value="68.11" class="pct medium">68.11%</td>
|
|
192
|
+
<td data-value="69" class="abs medium">47/69</td>
|
|
193
193
|
</tr>
|
|
194
194
|
|
|
195
195
|
<tr>
|
|
@@ -215,7 +215,7 @@
|
|
|
215
215
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
216
216
|
Code coverage generated by
|
|
217
217
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
218
|
-
at Mon Jan 31 2022
|
|
218
|
+
at Mon Jan 31 2022 17:55:41 GMT+0000 (Coordinated Universal Time)
|
|
219
219
|
</div>
|
|
220
220
|
</div>
|
|
221
221
|
<script src="../prettify.js"></script>
|
|
@@ -106,11 +106,11 @@
|
|
|
106
106
|
<span class="cline-any cline-neutral"> </span>
|
|
107
107
|
<span class="cline-any cline-neutral"> </span>
|
|
108
108
|
<span class="cline-any cline-neutral"> </span>
|
|
109
|
-
<span class="cline-any cline-yes">
|
|
109
|
+
<span class="cline-any cline-yes">40x</span>
|
|
110
110
|
<span class="cline-any cline-yes">230x</span>
|
|
111
111
|
<span class="cline-any cline-neutral"> </span>
|
|
112
112
|
<span class="cline-any cline-neutral"> </span>
|
|
113
|
-
<span class="cline-any cline-yes">
|
|
113
|
+
<span class="cline-any cline-yes">40x</span>
|
|
114
114
|
<span class="cline-any cline-yes">46x</span>
|
|
115
115
|
<span class="cline-any cline-neutral"> </span>
|
|
116
116
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">function validate(schema, property) {
|
|
@@ -148,7 +148,7 @@ module.exports.params = schema => {
|
|
|
148
148
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
149
149
|
Code coverage generated by
|
|
150
150
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
151
|
-
at Mon Jan 31 2022
|
|
151
|
+
at Mon Jan 31 2022 17:55:41 GMT+0000 (Coordinated Universal Time)
|
|
152
152
|
</div>
|
|
153
153
|
</div>
|
|
154
154
|
<script src="../prettify.js"></script>
|