@budibase/server 1.0.45 → 1.0.46-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.39e01193.css → index.0df4f7ab.css} +1 -1
- package/builder/assets/{index.04ee727d.js → index.6eae2fa0.js} +229 -227
- package/builder/assets/{vendor.f9faf6ab.js → vendor.10e2ad1b.js} +12 -12
- package/builder/index.html +3 -3
- package/coverage/clover.xml +1470 -1285
- package/coverage/coverage-final.json +90 -84
- 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 +90 -90
- package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/api/controllers/datasource.js.html +16 -16
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/hosting.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +1 -1
- 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/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 +15 -15
- package/coverage/lcov-report/api/controllers/row/index.js.html +26 -26
- package/coverage/lcov-report/api/controllers/row/internal.js.html +44 -44
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +8 -8
- package/coverage/lcov-report/api/controllers/row/utils.js.html +53 -38
- 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/external.js.html +12 -12
- package/coverage/lcov-report/api/controllers/table/index.html +23 -23
- package/coverage/lcov-report/api/controllers/table/index.js.html +57 -39
- package/coverage/lcov-report/api/controllers/table/internal.js.html +40 -34
- package/coverage/lcov-report/api/controllers/table/utils.js.html +86 -62
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +20 -20
- 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 +1 -1
- 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/hosting.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +1 -1
- package/coverage/lcov-report/api/routes/index.js.html +1 -1
- 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/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 +1 -1
- 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 +1 -1
- package/coverage/lcov-report/constants/index.js.html +22 -22
- 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 +1 -1
- package/coverage/lcov-report/db/linkedRows/index.js.html +31 -31
- 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 +83 -83
- 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 +74 -44
- 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 +1 -1
- package/coverage/lcov-report/middleware/builder.js.html +1 -1
- package/coverage/lcov-report/middleware/currentapp.js.html +33 -6
- package/coverage/lcov-report/middleware/index.html +25 -25
- 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 +275 -41
- package/coverage/lcov-report/middleware/utils.js.html +1 -1
- package/coverage/lcov-report/migrations/usageQuotas/index.html +141 -0
- package/coverage/lcov-report/migrations/usageQuotas/index.js.html +152 -0
- package/coverage/lcov-report/migrations/usageQuotas/syncApps.js.html +134 -0
- package/coverage/lcov-report/migrations/usageQuotas/syncRows.js.html +143 -0
- package/coverage/lcov-report/threads/automation.js.html +1 -1
- package/coverage/lcov-report/threads/index.html +1 -1
- package/coverage/lcov-report/threads/index.js.html +10 -10
- package/coverage/lcov-report/threads/query.js.html +1 -1
- 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 +14 -14
- package/coverage/lcov-report/utilities/index.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +53 -53
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +10 -10
- 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/utilities/usageQuota/usageQuoteReset.js.html +134 -0
- package/coverage/lcov-report/utilities/users.js.html +5 -5
- package/coverage/lcov-report/utilities/workerRequests.js.html +31 -31
- package/coverage/lcov.info +2010 -1698
- package/dist/api/controllers/row/utils.js +12 -6
- package/dist/api/controllers/table/index.js +10 -4
- package/dist/api/controllers/table/internal.js +2 -0
- package/dist/api/controllers/table/utils.js +9 -2
- package/dist/automations/steps/createRow.js +2 -4
- package/dist/automations/steps/deleteRow.js +1 -4
- package/dist/environment.js +1 -0
- package/dist/integrations/base/sql.js +13 -6
- package/dist/integrations/utils.js +53 -8
- package/dist/middleware/currentapp.js +9 -0
- package/dist/middleware/usageQuota.js +82 -13
- package/dist/migrations/usageQuotas/index.js +24 -0
- package/dist/migrations/usageQuotas/syncApps.js +26 -0
- package/dist/migrations/usageQuotas/syncRows.js +29 -0
- package/dist/package.json +4 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- 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/package.json +5 -5
- package/src/api/controllers/row/utils.js +11 -6
- package/src/api/controllers/table/index.js +15 -9
- package/src/api/controllers/table/internal.js +2 -0
- package/src/api/controllers/table/utils.js +9 -1
- package/src/automations/steps/createRow.js +2 -4
- package/src/automations/steps/deleteRow.js +1 -4
- package/src/environment.js +1 -0
- package/src/integrations/base/sql.ts +14 -7
- package/src/integrations/tests/sql.spec.js +16 -0
- package/src/integrations/utils.ts +57 -10
- package/src/middleware/currentapp.js +9 -0
- package/src/middleware/tests/usageQuota.spec.js +18 -24
- package/src/middleware/usageQuota.js +93 -15
- package/src/migrations/tests/usageQuotas/index.spec.js +27 -0
- package/src/migrations/tests/usageQuotas/syncApps.spec.js +37 -0
- package/src/migrations/tests/usageQuotas/syncRows.spec.js +43 -0
- package/src/migrations/usageQuotas/index.js +24 -0
- package/src/migrations/usageQuotas/syncApps.js +18 -0
- package/src/migrations/usageQuotas/syncRows.js +21 -0
- 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/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">67.12% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>49/73</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">50.98% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>26/51</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">50% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>4/
|
|
42
|
+
<span class='fraction'>4/8</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">69.01% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>49/71</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
56
|
</p>
|
|
57
57
|
</div>
|
|
58
|
-
<div class='status-line
|
|
58
|
+
<div class='status-line medium'></div>
|
|
59
59
|
<pre><table class="coverage">
|
|
60
60
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
61
61
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -145,16 +145,91 @@
|
|
|
145
145
|
<a name='L86'></a><a href='#L86'>86</a>
|
|
146
146
|
<a name='L87'></a><a href='#L87'>87</a>
|
|
147
147
|
<a name='L88'></a><a href='#L88'>88</a>
|
|
148
|
-
<a name='L89'></a><a href='#L89'>89</a
|
|
149
|
-
<
|
|
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>
|
|
165
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
166
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
167
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
168
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
169
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
170
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
171
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
172
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
173
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
174
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
175
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
176
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
177
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
178
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
179
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
180
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
181
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
182
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
183
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
184
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
|
185
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
186
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
187
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
188
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
189
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
190
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
191
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
|
192
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
193
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
194
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
195
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
196
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
197
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
198
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
199
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
200
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
201
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
202
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
203
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
204
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
205
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
206
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
207
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
208
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
209
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
210
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
211
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
212
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
213
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
214
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
215
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
216
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
217
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
218
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
219
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
220
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
221
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
222
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
223
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
224
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
225
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
226
|
+
<a name='L167'></a><a href='#L167'>167</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
|
|
150
227
|
<span class="cline-any cline-yes">24x</span>
|
|
151
228
|
<span class="cline-any cline-yes">24x</span>
|
|
152
229
|
<span class="cline-any cline-neutral"> </span>
|
|
153
230
|
<span class="cline-any cline-neutral"> </span>
|
|
154
231
|
<span class="cline-any cline-neutral"> </span>
|
|
155
232
|
<span class="cline-any cline-yes">24x</span>
|
|
156
|
-
<span class="cline-any cline-neutral"> </span>
|
|
157
|
-
<span class="cline-any cline-neutral"> </span>
|
|
158
233
|
<span class="cline-any cline-yes">24x</span>
|
|
159
234
|
<span class="cline-any cline-neutral"> </span>
|
|
160
235
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -176,18 +251,15 @@
|
|
|
176
251
|
<span class="cline-any cline-neutral"> </span>
|
|
177
252
|
<span class="cline-any cline-neutral"> </span>
|
|
178
253
|
<span class="cline-any cline-yes">4x</span>
|
|
179
|
-
<span class="cline-any cline-yes">
|
|
254
|
+
<span class="cline-any cline-yes">7x</span>
|
|
180
255
|
<span class="cline-any cline-yes">4x</span>
|
|
181
256
|
<span class="cline-any cline-neutral"> </span>
|
|
182
257
|
<span class="cline-any cline-neutral"> </span>
|
|
183
258
|
<span class="cline-any cline-neutral"> </span>
|
|
184
259
|
<span class="cline-any cline-neutral"> </span>
|
|
185
260
|
<span class="cline-any cline-yes">24x</span>
|
|
186
|
-
<span class="cline-any cline-yes">
|
|
187
|
-
<span class="cline-any cline-
|
|
188
|
-
<span class="cline-any cline-neutral"> </span>
|
|
189
|
-
<span class="cline-any cline-yes">11x</span>
|
|
190
|
-
<span class="cline-any cline-yes">7x</span>
|
|
261
|
+
<span class="cline-any cline-yes">10x</span>
|
|
262
|
+
<span class="cline-any cline-yes">6x</span>
|
|
191
263
|
<span class="cline-any cline-neutral"> </span>
|
|
192
264
|
<span class="cline-any cline-neutral"> </span>
|
|
193
265
|
<span class="cline-any cline-yes">4x</span>
|
|
@@ -221,10 +293,10 @@
|
|
|
221
293
|
<span class="cline-any cline-neutral"> </span>
|
|
222
294
|
<span class="cline-any cline-yes">3x</span>
|
|
223
295
|
<span class="cline-any cline-neutral"> </span>
|
|
224
|
-
<span class="cline-any cline-
|
|
296
|
+
<span class="cline-any cline-no"> </span>
|
|
225
297
|
<span class="cline-any cline-neutral"> </span>
|
|
226
298
|
<span class="cline-any cline-neutral"> </span>
|
|
227
|
-
<span class="cline-any cline-
|
|
299
|
+
<span class="cline-any cline-no"> </span>
|
|
228
300
|
<span class="cline-any cline-neutral"> </span>
|
|
229
301
|
<span class="cline-any cline-yes">3x</span>
|
|
230
302
|
<span class="cline-any cline-yes">3x</span>
|
|
@@ -233,17 +305,98 @@
|
|
|
233
305
|
<span class="cline-any cline-no"> </span>
|
|
234
306
|
<span class="cline-any cline-neutral"> </span>
|
|
235
307
|
<span class="cline-any cline-neutral"> </span>
|
|
308
|
+
<span class="cline-any cline-neutral"> </span>
|
|
309
|
+
<span class="cline-any cline-yes">24x</span>
|
|
310
|
+
<span class="cline-any cline-yes">3x</span>
|
|
311
|
+
<span class="cline-any cline-neutral"> </span>
|
|
312
|
+
<span class="cline-any cline-neutral"> </span>
|
|
313
|
+
<span class="cline-any cline-neutral"> </span>
|
|
314
|
+
<span class="cline-any cline-neutral"> </span>
|
|
315
|
+
<span class="cline-any cline-neutral"> </span>
|
|
316
|
+
<span class="cline-any cline-yes">3x</span>
|
|
317
|
+
<span class="cline-any cline-no"> </span>
|
|
318
|
+
<span class="cline-any cline-no"> </span>
|
|
319
|
+
<span class="cline-any cline-neutral"> </span>
|
|
320
|
+
<span class="cline-any cline-neutral"> </span>
|
|
321
|
+
<span class="cline-any cline-yes">3x</span>
|
|
322
|
+
<span class="cline-any cline-no"> </span>
|
|
323
|
+
<span class="cline-any cline-neutral"> </span>
|
|
324
|
+
<span class="cline-any cline-neutral"> </span>
|
|
325
|
+
<span class="cline-any cline-neutral"> </span>
|
|
326
|
+
<span class="cline-any cline-neutral"> </span>
|
|
327
|
+
<span class="cline-any cline-yes">3x</span>
|
|
328
|
+
<span class="cline-any cline-yes">3x</span>
|
|
329
|
+
<span class="cline-any cline-yes">3x</span>
|
|
330
|
+
<span class="cline-any cline-neutral"> </span>
|
|
331
|
+
<span class="cline-any cline-neutral"> </span>
|
|
332
|
+
<span class="cline-any cline-yes">3x</span>
|
|
333
|
+
<span class="cline-any cline-no"> </span>
|
|
334
|
+
<span class="cline-any cline-no"> </span>
|
|
335
|
+
<span class="cline-any cline-neutral"> </span>
|
|
336
|
+
<span class="cline-any cline-neutral"> </span>
|
|
337
|
+
<span class="cline-any cline-yes">3x</span>
|
|
338
|
+
<span class="cline-any cline-yes">2x</span>
|
|
339
|
+
<span class="cline-any cline-neutral"> </span>
|
|
340
|
+
<span class="cline-any cline-neutral"> </span>
|
|
341
|
+
<span class="cline-any cline-neutral"> </span>
|
|
342
|
+
<span class="cline-any cline-neutral"> </span>
|
|
343
|
+
<span class="cline-any cline-yes">3x</span>
|
|
344
|
+
<span class="cline-any cline-yes">3x</span>
|
|
345
|
+
<span class="cline-any cline-neutral"> </span>
|
|
346
|
+
<span class="cline-any cline-neutral"> </span>
|
|
347
|
+
<span class="cline-any cline-neutral"> </span>
|
|
348
|
+
<span class="cline-any cline-yes">24x</span>
|
|
349
|
+
<span class="cline-any cline-no"> </span>
|
|
350
|
+
<span class="cline-any cline-neutral"> </span>
|
|
351
|
+
<span class="cline-any cline-no"> </span>
|
|
352
|
+
<span class="cline-any cline-no"> </span>
|
|
353
|
+
<span class="cline-any cline-neutral"> </span>
|
|
354
|
+
<span class="cline-any cline-neutral"> </span>
|
|
355
|
+
<span class="cline-any cline-neutral"> </span>
|
|
356
|
+
<span class="cline-any cline-no"> </span>
|
|
357
|
+
<span class="cline-any cline-no"> </span>
|
|
358
|
+
<span class="cline-any cline-no"> </span>
|
|
359
|
+
<span class="cline-any cline-neutral"> </span>
|
|
360
|
+
<span class="cline-any cline-neutral"> </span>
|
|
361
|
+
<span class="cline-any cline-neutral"> </span>
|
|
362
|
+
<span class="cline-any cline-yes">24x</span>
|
|
363
|
+
<span class="cline-any cline-neutral"> </span>
|
|
364
|
+
<span class="cline-any cline-no"> </span>
|
|
365
|
+
<span class="cline-any cline-no"> </span>
|
|
366
|
+
<span class="cline-any cline-no"> </span>
|
|
367
|
+
<span class="cline-any cline-neutral"> </span>
|
|
368
|
+
<span class="cline-any cline-neutral"> </span>
|
|
369
|
+
<span class="cline-any cline-neutral"> </span>
|
|
370
|
+
<span class="cline-any cline-yes">24x</span>
|
|
371
|
+
<span class="cline-any cline-neutral"> </span>
|
|
372
|
+
<span class="cline-any cline-yes">2x</span>
|
|
373
|
+
<span class="cline-any cline-no"> </span>
|
|
374
|
+
<span class="cline-any cline-no"> </span>
|
|
375
|
+
<span class="cline-any cline-no"> </span>
|
|
376
|
+
<span class="cline-any cline-neutral"> </span>
|
|
377
|
+
<span class="cline-any cline-neutral"> </span>
|
|
378
|
+
<span class="cline-any cline-neutral"> </span>
|
|
379
|
+
<span class="cline-any cline-yes">24x</span>
|
|
380
|
+
<span class="cline-any cline-neutral"> </span>
|
|
381
|
+
<span class="cline-any cline-neutral"> </span>
|
|
382
|
+
<span class="cline-any cline-neutral"> </span>
|
|
383
|
+
<span class="cline-any cline-yes">24x</span>
|
|
384
|
+
<span class="cline-any cline-neutral"> </span>
|
|
385
|
+
<span class="cline-any cline-neutral"> </span>
|
|
386
|
+
<span class="cline-any cline-neutral"> </span>
|
|
387
|
+
<span class="cline-any cline-yes">24x</span>
|
|
388
|
+
<span class="cline-any cline-neutral"> </span>
|
|
389
|
+
<span class="cline-any cline-yes">24x</span>
|
|
390
|
+
<span class="cline-any cline-neutral"> </span>
|
|
391
|
+
<span class="cline-any cline-neutral"> </span>
|
|
236
392
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../db")
|
|
237
393
|
const usageQuota = require("../utilities/usageQuota")
|
|
238
|
-
const
|
|
239
|
-
const { getTenantId } = require("@budibase/backend-core/tenancy")
|
|
394
|
+
const { getUniqueRows } = require("../utilities/usageQuota/rows")
|
|
240
395
|
const {
|
|
241
396
|
isExternalTable,
|
|
242
397
|
isRowId: isExternalRowId,
|
|
243
398
|
} = require("../integrations/utils")
|
|
244
|
-
|
|
245
|
-
// tenants without limits
|
|
246
|
-
const EXCLUDED_TENANTS = ["bb", "default", "bbtest", "bbstaging"]
|
|
399
|
+
const migration = require("../migrations/usageQuotas")
|
|
247
400
|
|
|
248
401
|
// currently only counting new writes and deletes
|
|
249
402
|
const METHOD_MAP = {
|
|
@@ -253,13 +406,13 @@ const METHOD_MAP = {
|
|
|
253
406
|
|
|
254
407
|
const DOMAIN_MAP = {
|
|
255
408
|
rows: usageQuota.Properties.ROW,
|
|
256
|
-
upload: usageQuota.Properties.UPLOAD,
|
|
257
|
-
views: usageQuota.Properties.VIEW,
|
|
258
|
-
users: usageQuota.Properties.USER,
|
|
409
|
+
// upload: usageQuota.Properties.UPLOAD, // doesn't work yet
|
|
410
|
+
// views: usageQuota.Properties.VIEW, // doesn't work yet
|
|
411
|
+
// users: usageQuota.Properties.USER, // doesn't work yet
|
|
259
412
|
applications: usageQuota.Properties.APPS,
|
|
260
413
|
// this will not be updated by endpoint calls
|
|
261
414
|
// instead it will be updated by triggerInfo
|
|
262
|
-
automationRuns: usageQuota.Properties.AUTOMATION,
|
|
415
|
+
// automationRuns: usageQuota.Properties.AUTOMATION, // doesn't work yet
|
|
263
416
|
}
|
|
264
417
|
|
|
265
418
|
function getProperty(url) {
|
|
@@ -271,10 +424,7 @@ function getProperty(url) {
|
|
|
271
424
|
}
|
|
272
425
|
|
|
273
426
|
module.exports = async (ctx, next) => {
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
// if in development or a self hosted cloud usage quotas should not be executed
|
|
277
|
-
if (env.isDev() || env.SELF_HOSTED || EXCLUDED_TENANTS.includes(tenantId)) {
|
|
427
|
+
if (!usageQuota.useQuotas()) {
|
|
278
428
|
return next()
|
|
279
429
|
}
|
|
280
430
|
|
|
@@ -307,20 +457,104 @@ module.exports = async (ctx, next) => {
|
|
|
307
457
|
}
|
|
308
458
|
|
|
309
459
|
// update usage for uploads to be the total size
|
|
310
|
-
if (property === usageQuota.Properties.UPLOAD) {
|
|
460
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (property === usageQuota.Properties.UPLOAD) {
|
|
311
461
|
const files =
|
|
312
|
-
ctx.request.files.file.length > 1
|
|
462
|
+
<span class="cstat-no" title="statement not covered" > ctx.request.files.file.length > 1</span>
|
|
313
463
|
? Array.from(ctx.request.files.file)
|
|
314
|
-
:
|
|
315
|
-
usage = files.map(
|
|
464
|
+
: [ctx.request.files.file]
|
|
465
|
+
<span class="cstat-no" title="statement not covered" > usage = files.map(<span class="fstat-no" title="function not covered" >fi</span>le => <span class="cstat-no" title="statement not covered" >file.size)</span>.reduce(<span class="fstat-no" title="function not covered" >(t</span>otal, size) => <span class="cstat-no" title="statement not covered" >total + size)</span></span>
|
|
316
466
|
}
|
|
317
467
|
try {
|
|
318
|
-
await
|
|
319
|
-
|
|
468
|
+
await migration.run()
|
|
469
|
+
await performRequest(ctx, next, property, usage)
|
|
320
470
|
} catch (err) {
|
|
321
471
|
<span class="cstat-no" title="statement not covered" > ctx.throw(400, err)</span>
|
|
322
472
|
}
|
|
323
473
|
}
|
|
474
|
+
|
|
475
|
+
const performRequest = async (ctx, next, property, usage) => {
|
|
476
|
+
const usageContext = {
|
|
477
|
+
skipNext: false,
|
|
478
|
+
skipUsage: false,
|
|
479
|
+
[usageQuota.Properties.APPS]: {},
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (usage === -1) {
|
|
483
|
+
<span class="cstat-no" title="statement not covered" > if (PRE_DELETE[property]) {</span>
|
|
484
|
+
<span class="cstat-no" title="statement not covered" > await PRE_DELETE[property](ctx, usageContext)</span>
|
|
485
|
+
}
|
|
486
|
+
} else {
|
|
487
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (PRE_CREATE[property]) {
|
|
488
|
+
<span class="cstat-no" title="statement not covered" > await PRE_CREATE[property](ctx, usageContext)</span>
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
// run the request
|
|
493
|
+
if (!usageContext.skipNext) {
|
|
494
|
+
await usageQuota.update(property, usage, { dryRun: true })
|
|
495
|
+
await next()
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (usage === -1) {
|
|
499
|
+
<span class="cstat-no" title="statement not covered" > if (POST_DELETE[property]) {</span>
|
|
500
|
+
<span class="cstat-no" title="statement not covered" > await POST_DELETE[property](ctx, usageContext)</span>
|
|
501
|
+
}
|
|
502
|
+
} else {
|
|
503
|
+
if (POST_CREATE[property]) {
|
|
504
|
+
await POST_CREATE[property](ctx, usageContext)
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
// update the usage
|
|
509
|
+
if (!usageContext.skipUsage) {
|
|
510
|
+
await usageQuota.update(property, usage)
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
const appPreDelete = <span class="fstat-no" title="function not covered" >as</span>ync (ctx, usageContext) => {
|
|
515
|
+
<span class="cstat-no" title="statement not covered" > if (ctx.query.unpublish) {</span>
|
|
516
|
+
// don't run usage decrement for unpublish
|
|
517
|
+
<span class="cstat-no" title="statement not covered" > usageContext.skipUsage = true</span>
|
|
518
|
+
<span class="cstat-no" title="statement not covered" > return</span>
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
// store the row count to delete
|
|
522
|
+
const rows = <span class="cstat-no" title="statement not covered" >await getUniqueRows([ctx.appId])</span>
|
|
523
|
+
<span class="cstat-no" title="statement not covered" > if (rows.length) {</span>
|
|
524
|
+
<span class="cstat-no" title="statement not covered" > usageContext[usageQuota.Properties.APPS] = { rowCount: rows.length }</span>
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
const appPostDelete = <span class="fstat-no" title="function not covered" >as</span>ync (ctx, usageContext) => {
|
|
529
|
+
// delete the app rows from usage
|
|
530
|
+
const rowCount = <span class="cstat-no" title="statement not covered" >usageContext[usageQuota.Properties.APPS].rowCount</span>
|
|
531
|
+
<span class="cstat-no" title="statement not covered" > if (rowCount) {</span>
|
|
532
|
+
<span class="cstat-no" title="statement not covered" > await usageQuota.update(usageQuota.Properties.ROW, -rowCount)</span>
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
const appPostCreate = async ctx => {
|
|
537
|
+
// app import & template creation
|
|
538
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.request.body.useTemplate === "true") {
|
|
539
|
+
const rows = <span class="cstat-no" title="statement not covered" >await getUniqueRows([ctx.response.body.appId])</span>
|
|
540
|
+
const rowCount = <span class="cstat-no" title="statement not covered" >rows ? rows.length : 0</span>
|
|
541
|
+
<span class="cstat-no" title="statement not covered" > await usageQuota.update(usageQuota.Properties.ROW, rowCount)</span>
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
const PRE_DELETE = {
|
|
546
|
+
[usageQuota.Properties.APPS]: appPreDelete,
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
const POST_DELETE = {
|
|
550
|
+
[usageQuota.Properties.APPS]: appPostDelete,
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
const PRE_CREATE = {}
|
|
554
|
+
|
|
555
|
+
const POST_CREATE = {
|
|
556
|
+
[usageQuota.Properties.APPS]: appPostCreate,
|
|
557
|
+
}
|
|
324
558
|
</pre></td></tr></table></pre>
|
|
325
559
|
|
|
326
560
|
<div class='push'></div><!-- for sticky footer -->
|
|
@@ -328,7 +562,7 @@ module.exports = async (ctx, next) => {
|
|
|
328
562
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
329
563
|
Code coverage generated by
|
|
330
564
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
331
|
-
at
|
|
565
|
+
at Fri Jan 21 2022 11:26:59 GMT+0000 (Coordinated Universal Time)
|
|
332
566
|
</div>
|
|
333
567
|
</div>
|
|
334
568
|
<script src="../prettify.js"></script>
|
|
@@ -85,7 +85,7 @@ exports.isWebhookEndpoint = ctx => {
|
|
|
85
85
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
86
86
|
Code coverage generated by
|
|
87
87
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
88
|
-
at
|
|
88
|
+
at Fri Jan 21 2022 11:26:59 GMT+0000 (Coordinated Universal Time)
|
|
89
89
|
</div>
|
|
90
90
|
</div>
|
|
91
91
|
<script src="../prettify.js"></script>
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for migrations/usageQuotas</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../../index.html">All files</a> migrations/usageQuotas</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">100% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>40/40</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">62.5% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>5/8</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>5/5</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>39/39</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
</div>
|
|
58
|
+
<div class='status-line high'></div>
|
|
59
|
+
<div class="pad1">
|
|
60
|
+
<table class="coverage-summary">
|
|
61
|
+
<thead>
|
|
62
|
+
<tr>
|
|
63
|
+
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
|
64
|
+
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
|
65
|
+
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
|
66
|
+
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
67
|
+
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
|
68
|
+
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
69
|
+
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
|
70
|
+
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
71
|
+
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
|
72
|
+
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
73
|
+
</tr>
|
|
74
|
+
</thead>
|
|
75
|
+
<tbody><tr>
|
|
76
|
+
<td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
|
|
77
|
+
<td data-value="100" class="pic high">
|
|
78
|
+
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
79
|
+
</td>
|
|
80
|
+
<td data-value="100" class="pct high">100%</td>
|
|
81
|
+
<td data-value="10" class="abs high">10/10</td>
|
|
82
|
+
<td data-value="100" class="pct high">100%</td>
|
|
83
|
+
<td data-value="2" class="abs high">2/2</td>
|
|
84
|
+
<td data-value="100" class="pct high">100%</td>
|
|
85
|
+
<td data-value="2" class="abs high">2/2</td>
|
|
86
|
+
<td data-value="100" class="pct high">100%</td>
|
|
87
|
+
<td data-value="10" class="abs high">10/10</td>
|
|
88
|
+
</tr>
|
|
89
|
+
|
|
90
|
+
<tr>
|
|
91
|
+
<td class="file high" data-value="syncApps.js"><a href="syncApps.js.html">syncApps.js</a></td>
|
|
92
|
+
<td data-value="100" class="pic high">
|
|
93
|
+
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
94
|
+
</td>
|
|
95
|
+
<td data-value="100" class="pct high">100%</td>
|
|
96
|
+
<td data-value="13" class="abs high">13/13</td>
|
|
97
|
+
<td data-value="50" class="pct medium">50%</td>
|
|
98
|
+
<td data-value="2" class="abs medium">1/2</td>
|
|
99
|
+
<td data-value="100" class="pct high">100%</td>
|
|
100
|
+
<td data-value="1" class="abs high">1/1</td>
|
|
101
|
+
<td data-value="100" class="pct high">100%</td>
|
|
102
|
+
<td data-value="13" class="abs high">13/13</td>
|
|
103
|
+
</tr>
|
|
104
|
+
|
|
105
|
+
<tr>
|
|
106
|
+
<td class="file high" data-value="syncRows.js"><a href="syncRows.js.html">syncRows.js</a></td>
|
|
107
|
+
<td data-value="100" class="pic high">
|
|
108
|
+
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
109
|
+
</td>
|
|
110
|
+
<td data-value="100" class="pct high">100%</td>
|
|
111
|
+
<td data-value="17" class="abs high">17/17</td>
|
|
112
|
+
<td data-value="50" class="pct medium">50%</td>
|
|
113
|
+
<td data-value="4" class="abs medium">2/4</td>
|
|
114
|
+
<td data-value="100" class="pct high">100%</td>
|
|
115
|
+
<td data-value="2" class="abs high">2/2</td>
|
|
116
|
+
<td data-value="100" class="pct high">100%</td>
|
|
117
|
+
<td data-value="16" class="abs high">16/16</td>
|
|
118
|
+
</tr>
|
|
119
|
+
|
|
120
|
+
</tbody>
|
|
121
|
+
</table>
|
|
122
|
+
</div>
|
|
123
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
124
|
+
</div><!-- /wrapper -->
|
|
125
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
126
|
+
Code coverage generated by
|
|
127
|
+
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
128
|
+
at Fri Jan 21 2022 11:26:59 GMT+0000 (Coordinated Universal Time)
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
<script src="../../prettify.js"></script>
|
|
132
|
+
<script>
|
|
133
|
+
window.onload = function () {
|
|
134
|
+
prettyPrint();
|
|
135
|
+
};
|
|
136
|
+
</script>
|
|
137
|
+
<script src="../../sorter.js"></script>
|
|
138
|
+
<script src="../../block-navigation.js"></script>
|
|
139
|
+
</body>
|
|
140
|
+
</html>
|
|
141
|
+
|