@budibase/server 1.0.105-alpha.2 → 1.0.105-alpha.22
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.ea3718aa.css → index.b7e0672d.css} +2 -2
- package/builder/assets/{index.3197fef1.js → index.fb599536.js} +153 -153
- package/builder/index.html +2 -2
- package/coverage/clover.xml +204 -124
- package/coverage/coverage-final.json +8 -7
- 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 +1 -1
- package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
- package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/api/controllers/dev.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 +1 -1
- package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
- package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
- package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
- package/coverage/lcov-report/api/controllers/query/index.html +1 -1
- package/coverage/lcov-report/api/controllers/query/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/role.js.html +1 -1
- package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/index.html +1 -1
- package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
- package/coverage/lcov-report/api/controllers/script.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +4 -4
- package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.html +5 -5
- package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
- package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
- 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/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/migrations.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/utils/index.html +1 -1
- package/coverage/lcov-report/api/routes/utils/validators.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 +13 -4
- package/coverage/lcov-report/automations/automationUtils.js.html +45 -9
- package/coverage/lcov-report/automations/bullboard.js.html +1 -1
- package/coverage/lcov-report/automations/index.html +18 -18
- package/coverage/lcov-report/automations/index.js.html +1 -1
- package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
- package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
- package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
- package/coverage/lcov-report/automations/steps/index.html +20 -5
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/loop.js.html +230 -0
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
- package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
- package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
- package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
- package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
- package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/triggers.js.html +1 -1
- package/coverage/lcov-report/automations/utils.js.html +2 -2
- package/coverage/lcov-report/constants/index.html +5 -5
- package/coverage/lcov-report/constants/index.js.html +22 -4
- package/coverage/lcov-report/constants/layouts.js.html +1 -1
- package/coverage/lcov-report/constants/screens.js.html +1 -1
- package/coverage/lcov-report/db/client.js.html +1 -1
- package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
- package/coverage/lcov-report/db/index.html +1 -1
- package/coverage/lcov-report/db/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
- package/coverage/lcov-report/db/newid.js.html +1 -1
- package/coverage/lcov-report/db/utils.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/events/utils.js.html +1 -1
- package/coverage/lcov-report/index.html +44 -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 +55 -10
- package/coverage/lcov-report/middleware/index.html +16 -16
- package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
- package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/middleware/utils.js.html +1 -1
- package/coverage/lcov-report/threads/automation.js.html +531 -45
- package/coverage/lcov-report/threads/index.html +20 -20
- package/coverage/lcov-report/threads/index.js.html +1 -1
- package/coverage/lcov-report/threads/query.js.html +1 -1
- package/coverage/lcov-report/threads/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
- package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
- package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
- package/coverage/lcov-report/utilities/global.js.html +1 -1
- package/coverage/lcov-report/utilities/index.html +1 -1
- package/coverage/lcov-report/utilities/index.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
- package/coverage/lcov-report/utilities/security.js.html +1 -1
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +1 -1
- package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
- package/coverage/lcov.info +385 -243
- package/dist/api/controllers/static/templates/BudibaseApp.svelte +3 -0
- package/dist/api/controllers/table/bulkFormula.js +2 -1
- package/dist/automations/actions.js +3 -0
- package/dist/automations/automationUtils.js +10 -0
- package/dist/automations/steps/loop.js +51 -0
- package/dist/constants/index.js +5 -0
- package/dist/environment.js +1 -0
- package/dist/middleware/currentapp.js +15 -1
- package/dist/package.json +5 -5
- package/dist/threads/automation.js +149 -27
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/src/api/controllers/static/templates/BudibaseApp.svelte +3 -0
- package/src/api/controllers/table/bulkFormula.js +1 -1
- package/src/automations/actions.js +3 -0
- package/src/automations/automationUtils.js +12 -0
- package/src/automations/steps/loop.js +50 -0
- package/src/constants/index.js +6 -0
- package/src/environment.js +1 -0
- package/src/middleware/currentapp.js +16 -1
- package/src/threads/automation.js +196 -34
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>27/27</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>27/27</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -251,7 +251,13 @@
|
|
|
251
251
|
<a name='L192'></a><a href='#L192'>192</a>
|
|
252
252
|
<a name='L193'></a><a href='#L193'>193</a>
|
|
253
253
|
<a name='L194'></a><a href='#L194'>194</a>
|
|
254
|
-
<a name='L195'></a><a href='#L195'>195</a
|
|
254
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
|
255
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
|
256
|
+
<a name='L197'></a><a href='#L197'>197</a>
|
|
257
|
+
<a name='L198'></a><a href='#L198'>198</a>
|
|
258
|
+
<a name='L199'></a><a href='#L199'>199</a>
|
|
259
|
+
<a name='L200'></a><a href='#L200'>200</a>
|
|
260
|
+
<a name='L201'></a><a href='#L201'>201</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">48x</span>
|
|
255
261
|
<span class="cline-any cline-yes">48x</span>
|
|
256
262
|
<span class="cline-any cline-yes">48x</span>
|
|
257
263
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -443,6 +449,12 @@
|
|
|
443
449
|
<span class="cline-any cline-neutral"> </span>
|
|
444
450
|
<span class="cline-any cline-neutral"> </span>
|
|
445
451
|
<span class="cline-any cline-neutral"> </span>
|
|
452
|
+
<span class="cline-any cline-yes">48x</span>
|
|
453
|
+
<span class="cline-any cline-neutral"> </span>
|
|
454
|
+
<span class="cline-any cline-neutral"> </span>
|
|
455
|
+
<span class="cline-any cline-neutral"> </span>
|
|
456
|
+
<span class="cline-any cline-neutral"> </span>
|
|
457
|
+
<span class="cline-any cline-neutral"> </span>
|
|
446
458
|
<span class="cline-any cline-neutral"> </span>
|
|
447
459
|
<span class="cline-any cline-yes">48x</span>
|
|
448
460
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles")
|
|
@@ -637,6 +649,12 @@ exports.WebhookType = {
|
|
|
637
649
|
AUTOMATION: "automation",
|
|
638
650
|
}
|
|
639
651
|
|
|
652
|
+
exports.AutomationErrors = {
|
|
653
|
+
INCORRECT_TYPE: "INCORRECT_TYPE",
|
|
654
|
+
MAX_ITERATIONS: "MAX_ITERATIONS_REACHED",
|
|
655
|
+
FAILURE_CONDITION: "FAILURE_CONDITION_MET",
|
|
656
|
+
}
|
|
657
|
+
|
|
640
658
|
// pass through the list from the auth/core lib
|
|
641
659
|
exports.ObjectStoreBuckets = ObjectStoreBuckets
|
|
642
660
|
</pre></td></tr></table></pre>
|
|
@@ -646,7 +664,7 @@ exports.ObjectStoreBuckets = ObjectStoreBuckets
|
|
|
646
664
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
647
665
|
Code coverage generated by
|
|
648
666
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
649
|
-
at
|
|
667
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
650
668
|
</div>
|
|
651
669
|
</div>
|
|
652
670
|
<script src="../prettify.js"></script>
|
|
@@ -523,7 +523,7 @@ module.exports = {
|
|
|
523
523
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
524
524
|
Code coverage generated by
|
|
525
525
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
526
|
-
at
|
|
526
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
527
527
|
</div>
|
|
528
528
|
</div>
|
|
529
529
|
<script src="../prettify.js"></script>
|
|
@@ -202,7 +202,7 @@ exports.createHomeScreen = () => ({
|
|
|
202
202
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
203
203
|
Code coverage generated by
|
|
204
204
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
205
|
-
at
|
|
205
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
206
206
|
</div>
|
|
207
207
|
</div>
|
|
208
208
|
<script src="../prettify.js"></script>
|
|
@@ -157,7 +157,7 @@ module.exports = Pouch
|
|
|
157
157
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
158
158
|
Code coverage generated by
|
|
159
159
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
160
|
-
at
|
|
160
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
161
161
|
</div>
|
|
162
162
|
</div>
|
|
163
163
|
<script src="../prettify.js"></script>
|
|
@@ -208,7 +208,7 @@ exports.runView = <span class="fstat-no" title="function not covered" >as</span>
|
|
|
208
208
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
209
209
|
Code coverage generated by
|
|
210
210
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
211
|
-
at
|
|
211
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
212
212
|
</div>
|
|
213
213
|
</div>
|
|
214
214
|
<script src="../prettify.js"></script>
|
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
156
156
|
Code coverage generated by
|
|
157
157
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
158
|
-
at
|
|
158
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
159
159
|
</div>
|
|
160
160
|
</div>
|
|
161
161
|
<script src="../prettify.js"></script>
|
|
@@ -73,7 +73,7 @@ module.exports = client
|
|
|
73
73
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
74
74
|
Code coverage generated by
|
|
75
75
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
76
|
-
at
|
|
76
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
77
77
|
</div>
|
|
78
78
|
</div>
|
|
79
79
|
<script src="../prettify.js"></script>
|
|
@@ -1456,7 +1456,7 @@ module.exports = LinkController
|
|
|
1456
1456
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1457
1457
|
Code coverage generated by
|
|
1458
1458
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
1459
|
-
at
|
|
1459
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
1460
1460
|
</div>
|
|
1461
1461
|
</div>
|
|
1462
1462
|
<script src="../../prettify.js"></script>
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
126
126
|
Code coverage generated by
|
|
127
127
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
128
|
-
at
|
|
128
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
129
129
|
</div>
|
|
130
130
|
</div>
|
|
131
131
|
<script src="../../prettify.js"></script>
|
|
@@ -697,7 +697,7 @@ exports.squashLinksToPrimaryDisplay = async (table, enriched) => {
|
|
|
697
697
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
698
698
|
Code coverage generated by
|
|
699
699
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
700
|
-
at
|
|
700
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
701
701
|
</div>
|
|
702
702
|
</div>
|
|
703
703
|
<script src="../../prettify.js"></script>
|
|
@@ -412,7 +412,7 @@ exports.getRelatedTableForField = (table, fieldName) => {
|
|
|
412
412
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
413
413
|
Code coverage generated by
|
|
414
414
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
415
|
-
at
|
|
415
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
416
416
|
</div>
|
|
417
417
|
</div>
|
|
418
418
|
<script src="../../prettify.js"></script>
|
|
@@ -79,7 +79,7 @@ module.exports = function () {
|
|
|
79
79
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
80
80
|
Code coverage generated by
|
|
81
81
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
82
|
-
at
|
|
82
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
83
83
|
</div>
|
|
84
84
|
</div>
|
|
85
85
|
<script src="../prettify.js"></script>
|
|
@@ -1237,7 +1237,7 @@ exports.getMultiIDParams = ids => {
|
|
|
1237
1237
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1238
1238
|
Code coverage generated by
|
|
1239
1239
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
1240
|
-
at
|
|
1240
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
1241
1241
|
</div>
|
|
1242
1242
|
</div>
|
|
1243
1243
|
<script src="../prettify.js"></script>
|
|
@@ -217,7 +217,7 @@ module.exports = AutomationEmitter
|
|
|
217
217
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
218
218
|
Code coverage generated by
|
|
219
219
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
220
|
-
at
|
|
220
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
221
221
|
</div>
|
|
222
222
|
</div>
|
|
223
223
|
<script src="../prettify.js"></script>
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
126
126
|
Code coverage generated by
|
|
127
127
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
128
|
-
at
|
|
128
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
129
129
|
</div>
|
|
130
130
|
</div>
|
|
131
131
|
<script src="../prettify.js"></script>
|
|
@@ -154,7 +154,7 @@ module.exports = emitter
|
|
|
154
154
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
155
155
|
Code coverage generated by
|
|
156
156
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
157
|
-
at
|
|
157
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
158
158
|
</div>
|
|
159
159
|
</div>
|
|
160
160
|
<script src="../prettify.js"></script>
|
|
@@ -178,7 +178,7 @@ exports.tableEmission = ({ emitter, eventName, appId, table, metadata }) => {
|
|
|
178
178
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
179
179
|
Code coverage generated by
|
|
180
180
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
181
|
-
at
|
|
181
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
182
182
|
</div>
|
|
183
183
|
</div>
|
|
184
184
|
<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">72.93% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>3821/5239</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">53.96% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>1156/2142</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">71.
|
|
40
|
+
<span class="strong">71.46% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>526/
|
|
42
|
+
<span class='fraction'>526/736</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">73.
|
|
47
|
+
<span class="strong">73.2% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>3771/5151</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -139,8 +139,8 @@
|
|
|
139
139
|
</td>
|
|
140
140
|
<td data-value="53.01" class="pct medium">53.01%</td>
|
|
141
141
|
<td data-value="547" class="abs medium">290/547</td>
|
|
142
|
-
<td data-value="35.
|
|
143
|
-
<td data-value="
|
|
142
|
+
<td data-value="35.41" class="pct low">35.41%</td>
|
|
143
|
+
<td data-value="288" class="abs low">102/288</td>
|
|
144
144
|
<td data-value="52.56" class="pct medium">52.56%</td>
|
|
145
145
|
<td data-value="78" class="abs medium">41/78</td>
|
|
146
146
|
<td data-value="53.37" class="pct medium">53.37%</td>
|
|
@@ -194,32 +194,32 @@
|
|
|
194
194
|
|
|
195
195
|
<tr>
|
|
196
196
|
<td class="file high" data-value="automations"><a href="automations/index.html">automations</a></td>
|
|
197
|
-
<td data-value="
|
|
198
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
197
|
+
<td data-value="82.14" class="pic high">
|
|
198
|
+
<div class="chart"><div class="cover-fill" style="width: 82%"></div><div class="cover-empty" style="width: 18%"></div></div>
|
|
199
199
|
</td>
|
|
200
|
-
<td data-value="
|
|
201
|
-
<td data-value="
|
|
200
|
+
<td data-value="82.14" class="pct high">82.14%</td>
|
|
201
|
+
<td data-value="224" class="abs high">184/224</td>
|
|
202
202
|
<td data-value="80.2" class="pct high">80.2%</td>
|
|
203
203
|
<td data-value="96" class="abs high">77/96</td>
|
|
204
|
-
<td data-value="
|
|
205
|
-
<td data-value="
|
|
206
|
-
<td data-value="
|
|
207
|
-
<td data-value="
|
|
204
|
+
<td data-value="78.57" class="pct medium">78.57%</td>
|
|
205
|
+
<td data-value="28" class="abs medium">22/28</td>
|
|
206
|
+
<td data-value="82.14" class="pct high">82.14%</td>
|
|
207
|
+
<td data-value="224" class="abs high">184/224</td>
|
|
208
208
|
</tr>
|
|
209
209
|
|
|
210
210
|
<tr>
|
|
211
211
|
<td class="file medium" data-value="automations/steps"><a href="automations/steps/index.html">automations/steps</a></td>
|
|
212
|
-
<td data-value="73.
|
|
212
|
+
<td data-value="73.75" class="pic medium">
|
|
213
213
|
<div class="chart"><div class="cover-fill" style="width: 73%"></div><div class="cover-empty" style="width: 27%"></div></div>
|
|
214
214
|
</td>
|
|
215
|
-
<td data-value="73.
|
|
216
|
-
<td data-value="
|
|
215
|
+
<td data-value="73.75" class="pct medium">73.75%</td>
|
|
216
|
+
<td data-value="240" class="abs medium">177/240</td>
|
|
217
217
|
<td data-value="69.76" class="pct medium">69.76%</td>
|
|
218
218
|
<td data-value="86" class="abs medium">60/86</td>
|
|
219
219
|
<td data-value="55" class="pct medium">55%</td>
|
|
220
220
|
<td data-value="20" class="abs medium">11/20</td>
|
|
221
|
-
<td data-value="73.
|
|
222
|
-
<td data-value="
|
|
221
|
+
<td data-value="73.75" class="pct medium">73.75%</td>
|
|
222
|
+
<td data-value="240" class="abs medium">177/240</td>
|
|
223
223
|
</tr>
|
|
224
224
|
|
|
225
225
|
<tr>
|
|
@@ -243,13 +243,13 @@
|
|
|
243
243
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
244
244
|
</td>
|
|
245
245
|
<td data-value="100" class="pct high">100%</td>
|
|
246
|
-
<td data-value="
|
|
246
|
+
<td data-value="35" class="abs high">35/35</td>
|
|
247
247
|
<td data-value="50" class="pct medium">50%</td>
|
|
248
248
|
<td data-value="2" class="abs medium">1/2</td>
|
|
249
249
|
<td data-value="100" class="pct high">100%</td>
|
|
250
250
|
<td data-value="2" class="abs high">2/2</td>
|
|
251
251
|
<td data-value="100" class="pct high">100%</td>
|
|
252
|
-
<td data-value="
|
|
252
|
+
<td data-value="34" class="abs high">34/34</td>
|
|
253
253
|
</tr>
|
|
254
254
|
|
|
255
255
|
<tr>
|
|
@@ -314,32 +314,32 @@
|
|
|
314
314
|
|
|
315
315
|
<tr>
|
|
316
316
|
<td class="file high" data-value="middleware"><a href="middleware/index.html">middleware</a></td>
|
|
317
|
-
<td data-value="
|
|
318
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
317
|
+
<td data-value="80.67" class="pic high">
|
|
318
|
+
<div class="chart"><div class="cover-fill" style="width: 80%"></div><div class="cover-empty" style="width: 20%"></div></div>
|
|
319
319
|
</td>
|
|
320
|
-
<td data-value="
|
|
321
|
-
<td data-value="
|
|
322
|
-
<td data-value="
|
|
323
|
-
<td data-value="
|
|
320
|
+
<td data-value="80.67" class="pct high">80.67%</td>
|
|
321
|
+
<td data-value="295" class="abs high">238/295</td>
|
|
322
|
+
<td data-value="71.62" class="pct medium">71.62%</td>
|
|
323
|
+
<td data-value="215" class="abs medium">154/215</td>
|
|
324
324
|
<td data-value="86.84" class="pct high">86.84%</td>
|
|
325
325
|
<td data-value="38" class="abs high">33/38</td>
|
|
326
|
-
<td data-value="
|
|
327
|
-
<td data-value="
|
|
326
|
+
<td data-value="81.5" class="pct high">81.5%</td>
|
|
327
|
+
<td data-value="292" class="abs high">238/292</td>
|
|
328
328
|
</tr>
|
|
329
329
|
|
|
330
330
|
<tr>
|
|
331
331
|
<td class="file medium" data-value="threads"><a href="threads/index.html">threads</a></td>
|
|
332
|
-
<td data-value="
|
|
333
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
332
|
+
<td data-value="68.19" class="pic medium">
|
|
333
|
+
<div class="chart"><div class="cover-fill" style="width: 68%"></div><div class="cover-empty" style="width: 32%"></div></div>
|
|
334
334
|
</td>
|
|
335
|
-
<td data-value="
|
|
336
|
-
<td data-value="
|
|
337
|
-
<td data-value="
|
|
338
|
-
<td data-value="
|
|
339
|
-
<td data-value="
|
|
340
|
-
<td data-value="
|
|
341
|
-
<td data-value="
|
|
342
|
-
<td data-value="
|
|
335
|
+
<td data-value="68.19" class="pct medium">68.19%</td>
|
|
336
|
+
<td data-value="349" class="abs medium">238/349</td>
|
|
337
|
+
<td data-value="52.86" class="pct medium">52.86%</td>
|
|
338
|
+
<td data-value="157" class="abs medium">83/157</td>
|
|
339
|
+
<td data-value="88.09" class="pct high">88.09%</td>
|
|
340
|
+
<td data-value="42" class="abs high">37/42</td>
|
|
341
|
+
<td data-value="68.42" class="pct medium">68.42%</td>
|
|
342
|
+
<td data-value="342" class="abs medium">234/342</td>
|
|
343
343
|
</tr>
|
|
344
344
|
|
|
345
345
|
<tr>
|
|
@@ -425,7 +425,7 @@
|
|
|
425
425
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
426
426
|
Code coverage generated by
|
|
427
427
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
428
|
-
at
|
|
428
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
429
429
|
</div>
|
|
430
430
|
</div>
|
|
431
431
|
<script src="prettify.js"></script>
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
65
65
|
Code coverage generated by
|
|
66
66
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
67
|
-
at
|
|
67
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
68
68
|
</div>
|
|
69
69
|
</div>
|
|
70
70
|
<script src="../../prettify.js"></script>
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
96
96
|
Code coverage generated by
|
|
97
97
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
98
|
-
at
|
|
98
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
99
99
|
</div>
|
|
100
100
|
</div>
|
|
101
101
|
<script src="../../prettify.js"></script>
|
|
@@ -121,7 +121,7 @@ exports.middleware =
|
|
|
121
121
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
122
122
|
Code coverage generated by
|
|
123
123
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
124
|
-
at
|
|
124
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
125
125
|
</div>
|
|
126
126
|
</div>
|
|
127
127
|
<script src="../prettify.js"></script>
|
|
@@ -442,7 +442,7 @@ module.exports =
|
|
|
442
442
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
443
443
|
Code coverage generated by
|
|
444
444
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
445
|
-
at
|
|
445
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
446
446
|
</div>
|
|
447
447
|
</div>
|
|
448
448
|
<script src="../prettify.js"></script>
|
|
@@ -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
|
|
301
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
302
302
|
</div>
|
|
303
303
|
</div>
|
|
304
304
|
<script src="../prettify.js"></script>
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">79.36% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>50/63</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">80% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>44/55</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">79.36% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>50/63</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>
|
|
@@ -173,7 +173,22 @@
|
|
|
173
173
|
<a name='L114'></a><a href='#L114'>114</a>
|
|
174
174
|
<a name='L115'></a><a href='#L115'>115</a>
|
|
175
175
|
<a name='L116'></a><a href='#L116'>116</a>
|
|
176
|
-
<a name='L117'></a><a href='#L117'>117</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
177
192
|
<span class="cline-any cline-neutral"> </span>
|
|
178
193
|
<span class="cline-any cline-neutral"> </span>
|
|
179
194
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -241,6 +256,21 @@
|
|
|
241
256
|
<span class="cline-any cline-neutral"> </span>
|
|
242
257
|
<span class="cline-any cline-neutral"> </span>
|
|
243
258
|
<span class="cline-any cline-neutral"> </span>
|
|
259
|
+
<span class="cline-any cline-yes">185x</span>
|
|
260
|
+
<span class="cline-any cline-yes">185x</span>
|
|
261
|
+
<span class="cline-any cline-yes">185x</span>
|
|
262
|
+
<span class="cline-any cline-yes">185x</span>
|
|
263
|
+
<span class="cline-any cline-neutral"> </span>
|
|
264
|
+
<span class="cline-any cline-no"> </span>
|
|
265
|
+
<span class="cline-any cline-no"> </span>
|
|
266
|
+
<span class="cline-any cline-no"> </span>
|
|
267
|
+
<span class="cline-any cline-neutral"> </span>
|
|
268
|
+
<span class="cline-any cline-neutral"> </span>
|
|
269
|
+
<span class="cline-any cline-neutral"> </span>
|
|
270
|
+
<span class="cline-any cline-neutral"> </span>
|
|
271
|
+
<span class="cline-any cline-neutral"> </span>
|
|
272
|
+
<span class="cline-any cline-neutral"> </span>
|
|
273
|
+
<span class="cline-any cline-neutral"> </span>
|
|
244
274
|
<span class="cline-any cline-yes">190x</span>
|
|
245
275
|
<span class="cline-any cline-no"> </span>
|
|
246
276
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -295,7 +325,7 @@
|
|
|
295
325
|
getCookie,
|
|
296
326
|
clearCookie,
|
|
297
327
|
} = require("@budibase/backend-core/utils")
|
|
298
|
-
const { Cookies } = require("@budibase/backend-core/constants")
|
|
328
|
+
const { Cookies, Headers } = require("@budibase/backend-core/constants")
|
|
299
329
|
const { getRole } = require("@budibase/backend-core/roles")
|
|
300
330
|
const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles")
|
|
301
331
|
const { generateUserMetadataID, isDevAppID } = require("../db/utils")
|
|
@@ -354,6 +384,21 @@ module.exports = async (ctx, next) => {
|
|
|
354
384
|
appId = requestAppId
|
|
355
385
|
// retrieving global user gets the right role
|
|
356
386
|
roleId = globalUser.roleId || roleId
|
|
387
|
+
|
|
388
|
+
// Allow builders to specify their role via a header
|
|
389
|
+
const isBuilder =
|
|
390
|
+
globalUser && globalUser.builder && globalUser.builder.global
|
|
391
|
+
const isDevApp = appId && isDevAppID(appId)
|
|
392
|
+
const roleHeader = ctx.request && ctx.request.headers[Headers.PREVIEW_ROLE]
|
|
393
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (isBuilder && isDevApp && roleHeader) {
|
|
394
|
+
// Ensure the role is valid by ensuring a definition exists
|
|
395
|
+
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
396
|
+
<span class="cstat-no" title="statement not covered" > await getRole(roleHeader)</span>
|
|
397
|
+
<span class="cstat-no" title="statement not covered" > roleId = roleHeader</span>
|
|
398
|
+
} catch (error) {
|
|
399
|
+
// Swallow error and do nothing
|
|
400
|
+
}
|
|
401
|
+
}
|
|
357
402
|
}
|
|
358
403
|
|
|
359
404
|
// nothing more to do
|
|
@@ -412,7 +457,7 @@ module.exports = async (ctx, next) => {
|
|
|
412
457
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
413
458
|
Code coverage generated by
|
|
414
459
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
415
|
-
at
|
|
460
|
+
at Wed Apr 20 2022 07:47:37 GMT+0000 (Coordinated Universal Time)
|
|
416
461
|
</div>
|
|
417
462
|
</div>
|
|
418
463
|
<script src="../prettify.js"></script>
|