@budibase/server 1.0.46-alpha.2 → 1.0.46-alpha.6
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.89280093.js → index.00221ff2.js} +244 -244
- package/builder/assets/{index.0df4f7ab.css → index.dd9e386f.css} +1 -1
- package/builder/assets/{vendor.10e2ad1b.js → vendor.3bd2f661.js} +1 -1
- package/builder/index.html +3 -3
- package/coverage/clover.xml +1802 -1639
- package/coverage/coverage-final.json +98 -94
- 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 +192 -129
- 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 +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 +27 -42
- 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 +15 -15
- package/coverage/lcov-report/api/controllers/query/index.js.html +61 -28
- 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 +5 -5
- 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 +29 -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 +16 -16
- package/coverage/lcov-report/api/controllers/table/index.js.html +25 -25
- package/coverage/lcov-report/api/controllers/table/internal.js.html +40 -34
- package/coverage/lcov-report/api/controllers/table/utils.js.html +76 -61
- 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 +10 -10
- 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 +7 -22
- package/coverage/lcov-report/api/routes/index.js.html +4 -10
- 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 +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 +36 -24
- 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 +85 -85
- 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 +110 -80
- 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 +11 -11
- package/coverage/lcov-report/middleware/builder.js.html +8 -8
- package/coverage/lcov-report/middleware/currentapp.js.html +34 -61
- 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 +2 -2
- 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/{api/routes/hosting.js.html → migrations/usageQuotas/syncApps.js.html} +42 -27
- package/coverage/lcov-report/{api/controllers/hosting.js.html → migrations/usageQuotas/syncRows.js.html} +41 -44
- 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 +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 +39 -108
- package/coverage/lcov.info +2644 -2356
- package/dist/api/controllers/application.js +45 -24
- package/dist/api/controllers/datasource.js +11 -0
- package/dist/api/controllers/query/index.js +11 -3
- package/dist/api/controllers/row/utils.js +1 -2
- package/dist/api/controllers/static/index.js +59 -10
- package/dist/api/controllers/table/internal.js +2 -0
- package/dist/api/controllers/table/utils.js +5 -0
- package/dist/api/routes/index.js +0 -2
- package/dist/api/routes/static.js +2 -1
- package/dist/automations/steps/createRow.js +2 -4
- package/dist/automations/steps/deleteRow.js +1 -4
- package/dist/constants/index.js +3 -0
- package/dist/definitions/datasource.js +1 -0
- package/dist/environment.js +1 -0
- package/dist/integrations/googlesheets.js +340 -0
- package/dist/integrations/index.js +3 -0
- package/dist/integrations/utils.js +6 -3
- package/dist/middleware/currentapp.js +0 -9
- 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 +8 -5
- package/dist/tests/utilities/TestConfiguration.js +3 -1
- package/dist/threads/query.js +4 -0
- 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/dist/utilities/workerRequests.js +0 -20
- package/nodemon.json +1 -1
- package/package.json +9 -6
- package/src/api/controllers/application.js +48 -27
- package/src/api/controllers/datasource.js +12 -0
- package/src/api/controllers/query/index.js +14 -3
- package/src/api/controllers/row/utils.js +1 -4
- package/src/api/controllers/static/index.js +63 -10
- package/src/api/controllers/table/internal.js +2 -0
- package/src/api/controllers/table/utils.js +5 -0
- package/src/api/routes/index.js +0 -2
- package/src/api/routes/static.js +5 -0
- package/src/api/routes/tests/application.spec.js +2 -2
- package/src/api/routes/tests/static.spec.js +98 -0
- package/src/automations/steps/createRow.js +2 -4
- package/src/automations/steps/deleteRow.js +1 -4
- package/src/constants/index.js +4 -0
- package/src/definitions/datasource.ts +3 -0
- package/src/environment.js +1 -0
- package/src/integrations/googlesheets.ts +353 -0
- package/src/integrations/index.ts +3 -0
- package/src/integrations/utils.ts +18 -5
- package/src/middleware/currentapp.js +0 -9
- 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/tests/utilities/TestConfiguration.js +3 -1
- package/src/threads/query.js +5 -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/workerRequests.js +0 -23
- 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">79% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>158/200</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">55.71% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>39/70</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">88.46% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>23/26</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">79.38% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>154/194</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -471,19 +471,40 @@
|
|
|
471
471
|
<a name='L412'></a><a href='#L412'>412</a>
|
|
472
472
|
<a name='L413'></a><a href='#L413'>413</a>
|
|
473
473
|
<a name='L414'></a><a href='#L414'>414</a>
|
|
474
|
-
<a name='L415'></a><a href='#L415'>415</a
|
|
475
|
-
<
|
|
476
|
-
<
|
|
474
|
+
<a name='L415'></a><a href='#L415'>415</a>
|
|
475
|
+
<a name='L416'></a><a href='#L416'>416</a>
|
|
476
|
+
<a name='L417'></a><a href='#L417'>417</a>
|
|
477
|
+
<a name='L418'></a><a href='#L418'>418</a>
|
|
478
|
+
<a name='L419'></a><a href='#L419'>419</a>
|
|
479
|
+
<a name='L420'></a><a href='#L420'>420</a>
|
|
480
|
+
<a name='L421'></a><a href='#L421'>421</a>
|
|
481
|
+
<a name='L422'></a><a href='#L422'>422</a>
|
|
482
|
+
<a name='L423'></a><a href='#L423'>423</a>
|
|
483
|
+
<a name='L424'></a><a href='#L424'>424</a>
|
|
484
|
+
<a name='L425'></a><a href='#L425'>425</a>
|
|
485
|
+
<a name='L426'></a><a href='#L426'>426</a>
|
|
486
|
+
<a name='L427'></a><a href='#L427'>427</a>
|
|
487
|
+
<a name='L428'></a><a href='#L428'>428</a>
|
|
488
|
+
<a name='L429'></a><a href='#L429'>429</a>
|
|
489
|
+
<a name='L430'></a><a href='#L430'>430</a>
|
|
490
|
+
<a name='L431'></a><a href='#L431'>431</a>
|
|
491
|
+
<a name='L432'></a><a href='#L432'>432</a>
|
|
492
|
+
<a name='L433'></a><a href='#L433'>433</a>
|
|
493
|
+
<a name='L434'></a><a href='#L434'>434</a>
|
|
494
|
+
<a name='L435'></a><a href='#L435'>435</a>
|
|
495
|
+
<a name='L436'></a><a href='#L436'>436</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">36x</span>
|
|
496
|
+
<span class="cline-any cline-yes">36x</span>
|
|
497
|
+
<span class="cline-any cline-yes">36x</span>
|
|
477
498
|
<span class="cline-any cline-neutral"> </span>
|
|
478
499
|
<span class="cline-any cline-neutral"> </span>
|
|
479
500
|
<span class="cline-any cline-neutral"> </span>
|
|
480
501
|
<span class="cline-any cline-neutral"> </span>
|
|
481
|
-
<span class="cline-any cline-yes">
|
|
502
|
+
<span class="cline-any cline-yes">36x</span>
|
|
482
503
|
<span class="cline-any cline-neutral"> </span>
|
|
483
504
|
<span class="cline-any cline-neutral"> </span>
|
|
484
505
|
<span class="cline-any cline-neutral"> </span>
|
|
485
506
|
<span class="cline-any cline-neutral"> </span>
|
|
486
|
-
<span class="cline-any cline-yes">
|
|
507
|
+
<span class="cline-any cline-yes">36x</span>
|
|
487
508
|
<span class="cline-any cline-neutral"> </span>
|
|
488
509
|
<span class="cline-any cline-neutral"> </span>
|
|
489
510
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -491,98 +512,107 @@
|
|
|
491
512
|
<span class="cline-any cline-neutral"> </span>
|
|
492
513
|
<span class="cline-any cline-neutral"> </span>
|
|
493
514
|
<span class="cline-any cline-neutral"> </span>
|
|
494
|
-
<span class="cline-any cline-yes">
|
|
515
|
+
<span class="cline-any cline-yes">36x</span>
|
|
495
516
|
<span class="cline-any cline-neutral"> </span>
|
|
496
517
|
<span class="cline-any cline-neutral"> </span>
|
|
497
518
|
<span class="cline-any cline-neutral"> </span>
|
|
498
|
-
<span class="cline-any cline-yes">
|
|
499
|
-
<span class="cline-any cline-yes">
|
|
500
|
-
<span class="cline-any cline-yes">
|
|
501
|
-
<span class="cline-any cline-yes">
|
|
519
|
+
<span class="cline-any cline-yes">36x</span>
|
|
520
|
+
<span class="cline-any cline-yes">36x</span>
|
|
521
|
+
<span class="cline-any cline-yes">36x</span>
|
|
522
|
+
<span class="cline-any cline-yes">36x</span>
|
|
502
523
|
<span class="cline-any cline-neutral"> </span>
|
|
503
524
|
<span class="cline-any cline-neutral"> </span>
|
|
504
525
|
<span class="cline-any cline-neutral"> </span>
|
|
505
526
|
<span class="cline-any cline-neutral"> </span>
|
|
506
527
|
<span class="cline-any cline-neutral"> </span>
|
|
507
|
-
<span class="cline-any cline-yes">
|
|
508
|
-
<span class="cline-any cline-yes">
|
|
528
|
+
<span class="cline-any cline-yes">36x</span>
|
|
529
|
+
<span class="cline-any cline-yes">36x</span>
|
|
530
|
+
<span class="cline-any cline-yes">36x</span>
|
|
531
|
+
<span class="cline-any cline-yes">36x</span>
|
|
532
|
+
<span class="cline-any cline-yes">36x</span>
|
|
509
533
|
<span class="cline-any cline-neutral"> </span>
|
|
510
534
|
<span class="cline-any cline-neutral"> </span>
|
|
511
535
|
<span class="cline-any cline-neutral"> </span>
|
|
512
|
-
<span class="cline-any cline-yes">33x</span>
|
|
513
|
-
<span class="cline-any cline-yes">33x</span>
|
|
514
|
-
<span class="cline-any cline-yes">33x</span>
|
|
515
536
|
<span class="cline-any cline-neutral"> </span>
|
|
537
|
+
<span class="cline-any cline-yes">36x</span>
|
|
538
|
+
<span class="cline-any cline-yes">36x</span>
|
|
539
|
+
<span class="cline-any cline-yes">36x</span>
|
|
540
|
+
<span class="cline-any cline-yes">36x</span>
|
|
541
|
+
<span class="cline-any cline-yes">36x</span>
|
|
516
542
|
<span class="cline-any cline-neutral"> </span>
|
|
543
|
+
<span class="cline-any cline-yes">36x</span>
|
|
517
544
|
<span class="cline-any cline-neutral"> </span>
|
|
518
545
|
<span class="cline-any cline-neutral"> </span>
|
|
519
|
-
<span class="cline-any cline-yes">33x</span>
|
|
520
|
-
<span class="cline-any cline-yes">33x</span>
|
|
521
|
-
<span class="cline-any cline-yes">33x</span>
|
|
522
|
-
<span class="cline-any cline-yes">33x</span>
|
|
523
|
-
<span class="cline-any cline-yes">33x</span>
|
|
524
546
|
<span class="cline-any cline-neutral"> </span>
|
|
525
|
-
<span class="cline-any cline-yes">
|
|
547
|
+
<span class="cline-any cline-yes">202x</span>
|
|
526
548
|
<span class="cline-any cline-neutral"> </span>
|
|
527
549
|
<span class="cline-any cline-neutral"> </span>
|
|
528
550
|
<span class="cline-any cline-neutral"> </span>
|
|
529
|
-
<span class="cline-any cline-yes">195x</span>
|
|
530
551
|
<span class="cline-any cline-neutral"> </span>
|
|
531
552
|
<span class="cline-any cline-neutral"> </span>
|
|
553
|
+
<span class="cline-any cline-yes">404x</span>
|
|
532
554
|
<span class="cline-any cline-neutral"> </span>
|
|
533
555
|
<span class="cline-any cline-neutral"> </span>
|
|
534
556
|
<span class="cline-any cline-neutral"> </span>
|
|
535
|
-
<span class="cline-any cline-yes">
|
|
557
|
+
<span class="cline-any cline-yes">202x</span>
|
|
536
558
|
<span class="cline-any cline-neutral"> </span>
|
|
537
559
|
<span class="cline-any cline-neutral"> </span>
|
|
538
560
|
<span class="cline-any cline-neutral"> </span>
|
|
539
|
-
<span class="cline-any cline-yes">195x</span>
|
|
540
|
-
<span class="cline-any cline-neutral"> </span>
|
|
541
561
|
<span class="cline-any cline-neutral"> </span>
|
|
542
562
|
<span class="cline-any cline-neutral"> </span>
|
|
563
|
+
<span class="cline-any cline-yes">12x</span>
|
|
543
564
|
<span class="cline-any cline-neutral"> </span>
|
|
544
565
|
<span class="cline-any cline-neutral"> </span>
|
|
545
|
-
<span class="cline-any cline-yes">12x</span>
|
|
546
566
|
<span class="cline-any cline-neutral"> </span>
|
|
567
|
+
<span class="cline-any cline-yes">200x</span>
|
|
547
568
|
<span class="cline-any cline-neutral"> </span>
|
|
548
569
|
<span class="cline-any cline-neutral"> </span>
|
|
549
|
-
<span class="cline-any cline-yes">193x</span>
|
|
550
570
|
<span class="cline-any cline-neutral"> </span>
|
|
551
571
|
<span class="cline-any cline-neutral"> </span>
|
|
552
572
|
<span class="cline-any cline-neutral"> </span>
|
|
553
573
|
<span class="cline-any cline-neutral"> </span>
|
|
554
574
|
<span class="cline-any cline-neutral"> </span>
|
|
575
|
+
<span class="cline-any cline-yes">194x</span>
|
|
555
576
|
<span class="cline-any cline-neutral"> </span>
|
|
556
|
-
<span class="cline-any cline-yes">190x</span>
|
|
557
577
|
<span class="cline-any cline-no"> </span>
|
|
558
|
-
<span class="cline-any cline-yes">190x</span>
|
|
559
|
-
<span class="cline-any cline-yes">187x</span>
|
|
560
578
|
<span class="cline-any cline-neutral"> </span>
|
|
561
|
-
<span class="cline-any cline-yes">190x</span>
|
|
562
|
-
<span class="cline-any cline-yes">187x</span>
|
|
563
579
|
<span class="cline-any cline-neutral"> </span>
|
|
564
|
-
<span class="cline-any cline-yes">
|
|
565
|
-
<span class="cline-any cline-
|
|
580
|
+
<span class="cline-any cline-yes">194x</span>
|
|
581
|
+
<span class="cline-any cline-neutral"> </span>
|
|
582
|
+
<span class="cline-any cline-yes">194x</span>
|
|
583
|
+
<span class="cline-any cline-neutral"> </span>
|
|
584
|
+
<span class="cline-any cline-yes">194x</span>
|
|
585
|
+
<span class="cline-any cline-neutral"> </span>
|
|
586
|
+
<span class="cline-any cline-neutral"> </span>
|
|
587
|
+
<span class="cline-any cline-yes">36x</span>
|
|
588
|
+
<span class="cline-any cline-yes">194x</span>
|
|
589
|
+
<span class="cline-any cline-yes">2x</span>
|
|
566
590
|
<span class="cline-any cline-neutral"> </span>
|
|
567
|
-
<span class="cline-any cline-yes">
|
|
568
|
-
<span class="cline-any cline-
|
|
591
|
+
<span class="cline-any cline-yes">732x</span>
|
|
592
|
+
<span class="cline-any cline-no"> </span>
|
|
569
593
|
<span class="cline-any cline-neutral"> </span>
|
|
570
594
|
<span class="cline-any cline-neutral"> </span>
|
|
571
595
|
<span class="cline-any cline-neutral"> </span>
|
|
596
|
+
<span class="cline-any cline-yes">36x</span>
|
|
572
597
|
<span class="cline-any cline-neutral"> </span>
|
|
598
|
+
<span class="cline-any cline-yes">194x</span>
|
|
599
|
+
<span class="cline-any cline-no"> </span>
|
|
573
600
|
<span class="cline-any cline-neutral"> </span>
|
|
601
|
+
<span class="cline-any cline-yes">194x</span>
|
|
602
|
+
<span class="cline-any cline-yes">2x</span>
|
|
603
|
+
<span class="cline-any cline-neutral"> </span>
|
|
604
|
+
<span class="cline-any cline-yes">732x</span>
|
|
574
605
|
<span class="cline-any cline-no"> </span>
|
|
575
606
|
<span class="cline-any cline-neutral"> </span>
|
|
576
|
-
<span class="cline-any cline-yes">175x</span>
|
|
577
607
|
<span class="cline-any cline-neutral"> </span>
|
|
578
608
|
<span class="cline-any cline-neutral"> </span>
|
|
579
609
|
<span class="cline-any cline-neutral"> </span>
|
|
580
|
-
<span class="cline-any cline-yes">
|
|
581
|
-
<span class="cline-any cline-yes">
|
|
582
|
-
<span class="cline-any cline-yes">
|
|
610
|
+
<span class="cline-any cline-yes">192x</span>
|
|
611
|
+
<span class="cline-any cline-yes">192x</span>
|
|
612
|
+
<span class="cline-any cline-yes">192x</span>
|
|
583
613
|
<span class="cline-any cline-neutral"> </span>
|
|
584
|
-
<span class="cline-any cline-yes">
|
|
585
|
-
<span class="cline-any cline-yes">
|
|
614
|
+
<span class="cline-any cline-yes">192x</span>
|
|
615
|
+
<span class="cline-any cline-yes">192x</span>
|
|
586
616
|
<span class="cline-any cline-neutral"> </span>
|
|
587
617
|
<span class="cline-any cline-neutral"> </span>
|
|
588
618
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -591,18 +621,18 @@
|
|
|
591
621
|
<span class="cline-any cline-neutral"> </span>
|
|
592
622
|
<span class="cline-any cline-neutral"> </span>
|
|
593
623
|
<span class="cline-any cline-neutral"> </span>
|
|
594
|
-
<span class="cline-any cline-yes">
|
|
595
|
-
<span class="cline-any cline-yes">
|
|
596
|
-
<span class="cline-any cline-yes">
|
|
624
|
+
<span class="cline-any cline-yes">192x</span>
|
|
625
|
+
<span class="cline-any cline-yes">192x</span>
|
|
626
|
+
<span class="cline-any cline-yes">192x</span>
|
|
597
627
|
<span class="cline-any cline-neutral"> </span>
|
|
598
628
|
<span class="cline-any cline-neutral"> </span>
|
|
599
629
|
<span class="cline-any cline-neutral"> </span>
|
|
600
|
-
<span class="cline-any cline-yes">
|
|
630
|
+
<span class="cline-any cline-yes">192x</span>
|
|
601
631
|
<span class="cline-any cline-no"> </span>
|
|
602
632
|
<span class="cline-any cline-no"> </span>
|
|
603
633
|
<span class="cline-any cline-no"> </span>
|
|
604
634
|
<span class="cline-any cline-neutral"> </span>
|
|
605
|
-
<span class="cline-any cline-yes">
|
|
635
|
+
<span class="cline-any cline-yes">192x</span>
|
|
606
636
|
<span class="cline-any cline-neutral"> </span>
|
|
607
637
|
<span class="cline-any cline-neutral"> </span>
|
|
608
638
|
<span class="cline-any cline-no"> </span>
|
|
@@ -610,13 +640,13 @@
|
|
|
610
640
|
<span class="cline-any cline-neutral"> </span>
|
|
611
641
|
<span class="cline-any cline-neutral"> </span>
|
|
612
642
|
<span class="cline-any cline-neutral"> </span>
|
|
613
|
-
<span class="cline-any cline-yes">
|
|
643
|
+
<span class="cline-any cline-yes">192x</span>
|
|
614
644
|
<span class="cline-any cline-neutral"> </span>
|
|
615
645
|
<span class="cline-any cline-neutral"> </span>
|
|
616
|
-
<span class="cline-any cline-yes">
|
|
646
|
+
<span class="cline-any cline-yes">192x</span>
|
|
617
647
|
<span class="cline-any cline-neutral"> </span>
|
|
618
648
|
<span class="cline-any cline-neutral"> </span>
|
|
619
|
-
<span class="cline-any cline-yes">
|
|
649
|
+
<span class="cline-any cline-yes">36x</span>
|
|
620
650
|
<span class="cline-any cline-yes">10x</span>
|
|
621
651
|
<span class="cline-any cline-yes">10x</span>
|
|
622
652
|
<span class="cline-any cline-yes">10x</span>
|
|
@@ -641,7 +671,7 @@
|
|
|
641
671
|
<span class="cline-any cline-yes">10x</span>
|
|
642
672
|
<span class="cline-any cline-neutral"> </span>
|
|
643
673
|
<span class="cline-any cline-neutral"> </span>
|
|
644
|
-
<span class="cline-any cline-yes">
|
|
674
|
+
<span class="cline-any cline-yes">36x</span>
|
|
645
675
|
<span class="cline-any cline-yes">1x</span>
|
|
646
676
|
<span class="cline-any cline-yes">1x</span>
|
|
647
677
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -657,51 +687,57 @@
|
|
|
657
687
|
<span class="cline-any cline-neutral"> </span>
|
|
658
688
|
<span class="cline-any cline-neutral"> </span>
|
|
659
689
|
<span class="cline-any cline-neutral"> </span>
|
|
660
|
-
<span class="cline-any cline-yes">
|
|
661
|
-
<span class="cline-any cline-yes">
|
|
662
|
-
<span class="cline-any cline-yes">
|
|
663
|
-
<span class="cline-any cline-yes">
|
|
664
|
-
<span class="cline-any cline-yes">
|
|
690
|
+
<span class="cline-any cline-yes">36x</span>
|
|
691
|
+
<span class="cline-any cline-yes">201x</span>
|
|
692
|
+
<span class="cline-any cline-yes">201x</span>
|
|
693
|
+
<span class="cline-any cline-yes">201x</span>
|
|
694
|
+
<span class="cline-any cline-yes">201x</span>
|
|
665
695
|
<span class="cline-any cline-neutral"> </span>
|
|
666
696
|
<span class="cline-any cline-neutral"> </span>
|
|
667
|
-
<span class="cline-any cline-yes">
|
|
668
|
-
<span class="cline-any cline-yes">
|
|
669
|
-
<span class="cline-any cline-yes">
|
|
670
|
-
<span class="cline-any cline-yes">
|
|
697
|
+
<span class="cline-any cline-yes">201x</span>
|
|
698
|
+
<span class="cline-any cline-yes">199x</span>
|
|
699
|
+
<span class="cline-any cline-yes">199x</span>
|
|
700
|
+
<span class="cline-any cline-yes">199x</span>
|
|
671
701
|
<span class="cline-any cline-neutral"> </span>
|
|
672
702
|
<span class="cline-any cline-neutral"> </span>
|
|
673
|
-
<span class="cline-any cline-yes">
|
|
703
|
+
<span class="cline-any cline-yes">201x</span>
|
|
704
|
+
<span class="cline-any cline-neutral"> </span>
|
|
674
705
|
<span class="cline-any cline-neutral"> </span>
|
|
675
706
|
<span class="cline-any cline-neutral"> </span>
|
|
676
707
|
<span class="cline-any cline-neutral"> </span>
|
|
677
708
|
<span class="cline-any cline-neutral"> </span>
|
|
678
709
|
<span class="cline-any cline-neutral"> </span>
|
|
679
710
|
<span class="cline-any cline-neutral"> </span>
|
|
711
|
+
<span class="cline-any cline-yes">36x</span>
|
|
712
|
+
<span class="cline-any cline-yes">192x</span>
|
|
713
|
+
<span class="cline-any cline-yes">192x</span>
|
|
714
|
+
<span class="cline-any cline-yes">192x</span>
|
|
715
|
+
<span class="cline-any cline-yes">192x</span>
|
|
716
|
+
<span class="cline-any cline-yes">192x</span>
|
|
680
717
|
<span class="cline-any cline-neutral"> </span>
|
|
681
|
-
<span class="cline-any cline-yes">
|
|
682
|
-
<span class="cline-any cline-yes">
|
|
683
|
-
<span class="cline-any cline-yes">185x</span>
|
|
718
|
+
<span class="cline-any cline-yes">192x</span>
|
|
719
|
+
<span class="cline-any cline-yes">192x</span>
|
|
684
720
|
<span class="cline-any cline-neutral"> </span>
|
|
685
721
|
<span class="cline-any cline-neutral"> </span>
|
|
686
722
|
<span class="cline-any cline-neutral"> </span>
|
|
687
723
|
<span class="cline-any cline-neutral"> </span>
|
|
688
|
-
<span class="cline-any cline-yes">
|
|
724
|
+
<span class="cline-any cline-yes">192x</span>
|
|
689
725
|
<span class="cline-any cline-no"> </span>
|
|
690
726
|
<span class="cline-any cline-neutral"> </span>
|
|
691
|
-
<span class="cline-any cline-yes">
|
|
692
|
-
<span class="cline-any cline-yes">
|
|
727
|
+
<span class="cline-any cline-yes">192x</span>
|
|
728
|
+
<span class="cline-any cline-yes">192x</span>
|
|
693
729
|
<span class="cline-any cline-neutral"> </span>
|
|
694
|
-
<span class="cline-any cline-yes">
|
|
695
|
-
<span class="cline-any cline-yes">185x</span>
|
|
730
|
+
<span class="cline-any cline-yes">192x</span>
|
|
696
731
|
<span class="cline-any cline-neutral"> </span>
|
|
697
|
-
<span class="cline-any cline-yes">
|
|
732
|
+
<span class="cline-any cline-yes">192x</span>
|
|
698
733
|
<span class="cline-any cline-neutral"> </span>
|
|
699
|
-
<span class="cline-any cline-yes">
|
|
734
|
+
<span class="cline-any cline-yes">192x</span>
|
|
700
735
|
<span class="cline-any cline-no"> </span>
|
|
701
736
|
<span class="cline-any cline-neutral"> </span>
|
|
702
737
|
<span class="cline-any cline-neutral"> </span>
|
|
703
738
|
<span class="cline-any cline-neutral"> </span>
|
|
704
|
-
<span class="cline-any cline-yes">
|
|
739
|
+
<span class="cline-any cline-yes">192x</span>
|
|
740
|
+
<span class="cline-any cline-neutral"> </span>
|
|
705
741
|
<span class="cline-any cline-neutral"> </span>
|
|
706
742
|
<span class="cline-any cline-neutral"> </span>
|
|
707
743
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -715,33 +751,40 @@
|
|
|
715
751
|
<span class="cline-any cline-neutral"> </span>
|
|
716
752
|
<span class="cline-any cline-neutral"> </span>
|
|
717
753
|
<span class="cline-any cline-neutral"> </span>
|
|
754
|
+
<span class="cline-any cline-yes">192x</span>
|
|
755
|
+
<span class="cline-any cline-yes">192x</span>
|
|
718
756
|
<span class="cline-any cline-neutral"> </span>
|
|
719
|
-
<span class="cline-any cline-yes">185x</span>
|
|
720
|
-
<span class="cline-any cline-yes">185x</span>
|
|
721
757
|
<span class="cline-any cline-neutral"> </span>
|
|
722
758
|
<span class="cline-any cline-neutral"> </span>
|
|
759
|
+
<span class="cline-any cline-yes">192x</span>
|
|
760
|
+
<span class="cline-any cline-yes">192x</span>
|
|
723
761
|
<span class="cline-any cline-neutral"> </span>
|
|
724
|
-
<span class="cline-any cline-yes">185x</span>
|
|
725
|
-
<span class="cline-any cline-yes">185x</span>
|
|
726
762
|
<span class="cline-any cline-neutral"> </span>
|
|
727
763
|
<span class="cline-any cline-neutral"> </span>
|
|
728
764
|
<span class="cline-any cline-neutral"> </span>
|
|
729
765
|
<span class="cline-any cline-neutral"> </span>
|
|
730
766
|
<span class="cline-any cline-neutral"> </span>
|
|
731
767
|
<span class="cline-any cline-neutral"> </span>
|
|
768
|
+
<span class="cline-any cline-yes">192x</span>
|
|
769
|
+
<span class="cline-any cline-yes">192x</span>
|
|
770
|
+
<span class="cline-any cline-yes">192x</span>
|
|
732
771
|
<span class="cline-any cline-neutral"> </span>
|
|
733
|
-
<span class="cline-any cline-yes">185x</span>
|
|
734
|
-
<span class="cline-any cline-yes">185x</span>
|
|
735
|
-
<span class="cline-any cline-yes">185x</span>
|
|
736
772
|
<span class="cline-any cline-neutral"> </span>
|
|
773
|
+
<span class="cline-any cline-yes">36x</span>
|
|
774
|
+
<span class="cline-any cline-yes">2x</span>
|
|
775
|
+
<span class="cline-any cline-neutral"> </span>
|
|
776
|
+
<span class="cline-any cline-yes">2x</span>
|
|
777
|
+
<span class="cline-any cline-yes">2x</span>
|
|
778
|
+
<span class="cline-any cline-yes">2x</span>
|
|
779
|
+
<span class="cline-any cline-yes">2x</span>
|
|
737
780
|
<span class="cline-any cline-neutral"> </span>
|
|
738
|
-
<span class="cline-any cline-yes">
|
|
781
|
+
<span class="cline-any cline-yes">2x</span>
|
|
739
782
|
<span class="cline-any cline-yes">2x</span>
|
|
740
783
|
<span class="cline-any cline-yes">2x</span>
|
|
741
784
|
<span class="cline-any cline-yes">2x</span>
|
|
742
785
|
<span class="cline-any cline-neutral"> </span>
|
|
743
786
|
<span class="cline-any cline-neutral"> </span>
|
|
744
|
-
<span class="cline-any cline-yes">
|
|
787
|
+
<span class="cline-any cline-yes">36x</span>
|
|
745
788
|
<span class="cline-any cline-neutral"> </span>
|
|
746
789
|
<span class="cline-any cline-yes">2x</span>
|
|
747
790
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -763,7 +806,7 @@
|
|
|
763
806
|
<span class="cline-any cline-yes">2x</span>
|
|
764
807
|
<span class="cline-any cline-neutral"> </span>
|
|
765
808
|
<span class="cline-any cline-neutral"> </span>
|
|
766
|
-
<span class="cline-any cline-yes">
|
|
809
|
+
<span class="cline-any cline-yes">36x</span>
|
|
767
810
|
<span class="cline-any cline-neutral"> </span>
|
|
768
811
|
<span class="cline-any cline-yes">1x</span>
|
|
769
812
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -786,7 +829,7 @@
|
|
|
786
829
|
<span class="cline-any cline-yes">1x</span>
|
|
787
830
|
<span class="cline-any cline-neutral"> </span>
|
|
788
831
|
<span class="cline-any cline-neutral"> </span>
|
|
789
|
-
<span class="cline-any cline-yes">
|
|
832
|
+
<span class="cline-any cline-yes">36x</span>
|
|
790
833
|
<span class="cline-any cline-yes">11x</span>
|
|
791
834
|
<span class="cline-any cline-neutral"> </span>
|
|
792
835
|
<span class="cline-any cline-yes">11x</span>
|
|
@@ -805,7 +848,7 @@
|
|
|
805
848
|
<span class="cline-any cline-yes">11x</span>
|
|
806
849
|
<span class="cline-any cline-neutral"> </span>
|
|
807
850
|
<span class="cline-any cline-neutral"> </span>
|
|
808
|
-
<span class="cline-any cline-yes">
|
|
851
|
+
<span class="cline-any cline-yes">36x</span>
|
|
809
852
|
<span class="cline-any cline-no"> </span>
|
|
810
853
|
<span class="cline-any cline-no"> </span>
|
|
811
854
|
<span class="cline-any cline-no"> </span>
|
|
@@ -854,8 +897,7 @@
|
|
|
854
897
|
<span class="cline-any cline-neutral"> </span>
|
|
855
898
|
<span class="cline-any cline-neutral"> </span>
|
|
856
899
|
<span class="cline-any cline-neutral"> </span>
|
|
857
|
-
<span class="cline-any cline-yes">
|
|
858
|
-
<span class="cline-any cline-yes">5x</span>
|
|
900
|
+
<span class="cline-any cline-yes">36x</span>
|
|
859
901
|
<span class="cline-any cline-yes">5x</span>
|
|
860
902
|
<span class="cline-any cline-yes">5x</span>
|
|
861
903
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -874,16 +916,16 @@
|
|
|
874
916
|
<span class="cline-any cline-yes">5x</span>
|
|
875
917
|
<span class="cline-any cline-neutral"> </span>
|
|
876
918
|
<span class="cline-any cline-neutral"> </span>
|
|
877
|
-
<span class="cline-any cline-yes">
|
|
878
|
-
<span class="cline-any cline-yes">
|
|
919
|
+
<span class="cline-any cline-yes">36x</span>
|
|
920
|
+
<span class="cline-any cline-yes">192x</span>
|
|
879
921
|
<span class="cline-any cline-neutral"> </span>
|
|
880
|
-
<span class="cline-any cline-yes">
|
|
881
|
-
<span class="cline-any cline-yes">
|
|
882
|
-
<span class="cline-any cline-yes">
|
|
883
|
-
<span class="cline-any cline-yes">
|
|
922
|
+
<span class="cline-any cline-yes">192x</span>
|
|
923
|
+
<span class="cline-any cline-yes">192x</span>
|
|
924
|
+
<span class="cline-any cline-yes">384x</span>
|
|
925
|
+
<span class="cline-any cline-yes">384x</span>
|
|
884
926
|
<span class="cline-any cline-neutral"> </span>
|
|
885
927
|
<span class="cline-any cline-neutral"> </span>
|
|
886
|
-
<span class="cline-any cline-yes">
|
|
928
|
+
<span class="cline-any cline-yes">192x</span>
|
|
887
929
|
<span class="cline-any cline-neutral"> </span>
|
|
888
930
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../db")
|
|
889
931
|
const env = require("../../environment")
|
|
@@ -920,10 +962,7 @@ const {
|
|
|
920
962
|
Replication,
|
|
921
963
|
} = require("@budibase/backend-core/db")
|
|
922
964
|
const { USERS_TABLE_SCHEMA } = require("../../constants")
|
|
923
|
-
const {
|
|
924
|
-
getDeployedApps,
|
|
925
|
-
removeAppFromUserRoles,
|
|
926
|
-
} = require("../../utilities/workerRequests")
|
|
965
|
+
const { removeAppFromUserRoles } = require("../../utilities/workerRequests")
|
|
927
966
|
const { clientLibraryPath, stringToReadStream } = require("../../utilities")
|
|
928
967
|
const { getAllLocks } = require("../../utilities/redis")
|
|
929
968
|
const {
|
|
@@ -965,29 +1004,41 @@ function getUserRoleId(ctx) {
|
|
|
965
1004
|
: ctx.user.role._id
|
|
966
1005
|
}
|
|
967
1006
|
|
|
968
|
-
async function
|
|
1007
|
+
async function getAppUrl(ctx) {
|
|
1008
|
+
// construct the url
|
|
969
1009
|
let url
|
|
970
1010
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.request.body.url) {
|
|
1011
|
+
// if the url is provided, use that
|
|
971
1012
|
<span class="cstat-no" title="statement not covered" > url = encodeURI(ctx.request.body.url)</span>
|
|
972
|
-
} else
|
|
1013
|
+
} else {
|
|
1014
|
+
// otherwise use the name
|
|
973
1015
|
url = encodeURI(`${ctx.request.body.name}`)
|
|
974
1016
|
}
|
|
975
|
-
|
|
976
|
-
|
|
1017
|
+
url = `/${url.replace(URL_REGEX_SLASH, "")}`.toLowerCase()
|
|
1018
|
+
|
|
1019
|
+
return url
|
|
1020
|
+
}
|
|
1021
|
+
|
|
1022
|
+
const checkAppUrl = (ctx, apps, url, currentAppId) => {
|
|
1023
|
+
if (currentAppId) {
|
|
1024
|
+
apps = apps.filter(app => app.appId !== currentAppId)
|
|
977
1025
|
}
|
|
978
|
-
if (
|
|
979
|
-
|
|
1026
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (apps.some(app => app.url === url)) {
|
|
1027
|
+
<span class="cstat-no" title="statement not covered" > ctx.throw(400, "App URL is already in use.")</span>
|
|
980
1028
|
}
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
<span class="
|
|
986
|
-
<span class="
|
|
987
|
-
|
|
988
|
-
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
const checkAppName = (ctx, apps, name, currentAppId) => {
|
|
1032
|
+
// TODO: Replace with Joi
|
|
1033
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!name) {
|
|
1034
|
+
<span class="cstat-no" title="statement not covered" > ctx.throw(400, "Name is required")</span>
|
|
1035
|
+
}
|
|
1036
|
+
if (currentAppId) {
|
|
1037
|
+
apps = apps.filter(app => app.appId !== currentAppId)
|
|
1038
|
+
}
|
|
1039
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (apps.some(app => app.name === name)) {
|
|
1040
|
+
<span class="cstat-no" title="statement not covered" > ctx.throw(400, "App name is already in use.")</span>
|
|
989
1041
|
}
|
|
990
|
-
return url
|
|
991
1042
|
}
|
|
992
1043
|
|
|
993
1044
|
async function createInstance(template) {
|
|
@@ -1093,6 +1144,12 @@ exports.fetchAppPackage = async ctx => {
|
|
|
1093
1144
|
}
|
|
1094
1145
|
|
|
1095
1146
|
exports.create = async ctx => {
|
|
1147
|
+
const apps = await getAllApps(CouchDB, { dev: true })
|
|
1148
|
+
const name = ctx.request.body.name
|
|
1149
|
+
checkAppName(ctx, apps, name)
|
|
1150
|
+
const url = await getAppUrl(ctx)
|
|
1151
|
+
checkAppUrl(ctx, apps, url)
|
|
1152
|
+
|
|
1096
1153
|
const { useTemplate, templateKey, templateString } = ctx.request.body
|
|
1097
1154
|
const instanceConfig = {
|
|
1098
1155
|
useTemplate,
|
|
@@ -1105,7 +1162,6 @@ exports.create = async ctx => {
|
|
|
1105
1162
|
const instance = await createInstance(instanceConfig)
|
|
1106
1163
|
const appId = instance._id
|
|
1107
1164
|
|
|
1108
|
-
const url = await getAppUrlIfNotInUse(ctx)
|
|
1109
1165
|
const db = new CouchDB(appId)
|
|
1110
1166
|
let _rev
|
|
1111
1167
|
try {
|
|
@@ -1122,7 +1178,7 @@ exports.create = async ctx => {
|
|
|
1122
1178
|
type: "app",
|
|
1123
1179
|
version: packageJson.version,
|
|
1124
1180
|
componentLibraries: ["@budibase/standard-components"],
|
|
1125
|
-
name:
|
|
1181
|
+
name: name,
|
|
1126
1182
|
url: url,
|
|
1127
1183
|
template: ctx.request.body.template,
|
|
1128
1184
|
instance: instance,
|
|
@@ -1150,7 +1206,15 @@ exports.create = async ctx => {
|
|
|
1150
1206
|
}
|
|
1151
1207
|
|
|
1152
1208
|
exports.update = async ctx => {
|
|
1153
|
-
const
|
|
1209
|
+
const apps = await getAllApps(CouchDB, { dev: true })
|
|
1210
|
+
// validation
|
|
1211
|
+
const name = ctx.request.body.name
|
|
1212
|
+
checkAppName(ctx, apps, name, ctx.params.appId)
|
|
1213
|
+
const url = await getAppUrl(ctx)
|
|
1214
|
+
checkAppUrl(ctx, apps, url, ctx.params.appId)
|
|
1215
|
+
|
|
1216
|
+
const appPackageUpdates = { name, url }
|
|
1217
|
+
const data = await updateAppPackage(appPackageUpdates, ctx.params.appId)
|
|
1154
1218
|
ctx.status = 200
|
|
1155
1219
|
ctx.body = data
|
|
1156
1220
|
}
|
|
@@ -1172,7 +1236,7 @@ exports.updateClient = async ctx => {
|
|
|
1172
1236
|
version: packageJson.version,
|
|
1173
1237
|
revertableVersion: currentVersion,
|
|
1174
1238
|
}
|
|
1175
|
-
const data = await updateAppPackage(
|
|
1239
|
+
const data = await updateAppPackage(appPackageUpdates, ctx.params.appId)
|
|
1176
1240
|
ctx.status = 200
|
|
1177
1241
|
ctx.body = data
|
|
1178
1242
|
}
|
|
@@ -1195,7 +1259,7 @@ exports.revertClient = async ctx => {
|
|
|
1195
1259
|
version: application.revertableVersion,
|
|
1196
1260
|
revertableVersion: null,
|
|
1197
1261
|
}
|
|
1198
|
-
const data = await updateAppPackage(
|
|
1262
|
+
const data = await updateAppPackage(appPackageUpdates, ctx.params.appId)
|
|
1199
1263
|
ctx.status = 200
|
|
1200
1264
|
ctx.body = data
|
|
1201
1265
|
}
|
|
@@ -1268,12 +1332,11 @@ exports.sync = <span class="fstat-no" title="function not covered" >as</span>ync
|
|
|
1268
1332
|
}
|
|
1269
1333
|
}
|
|
1270
1334
|
|
|
1271
|
-
const updateAppPackage = async (
|
|
1272
|
-
const url = await getAppUrlIfNotInUse(ctx)
|
|
1335
|
+
const updateAppPackage = async (appPackage, appId) => {
|
|
1273
1336
|
const db = new CouchDB(appId)
|
|
1274
1337
|
const application = await db.get(DocumentTypes.APP_METADATA)
|
|
1275
1338
|
|
|
1276
|
-
const newAppPackage = { ...application, ...appPackage
|
|
1339
|
+
const newAppPackage = { ...application, ...appPackage }
|
|
1277
1340
|
if (appPackage._rev !== application._rev) {
|
|
1278
1341
|
newAppPackage._rev = application._rev
|
|
1279
1342
|
}
|
|
@@ -1306,7 +1369,7 @@ const createEmptyAppPackage = async (ctx, app) => {
|
|
|
1306
1369
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1307
1370
|
Code coverage generated by
|
|
1308
1371
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
1309
|
-
at
|
|
1372
|
+
at Wed Jan 26 2022 17:11:28 GMT+0000 (Coordinated Universal Time)
|
|
1310
1373
|
</div>
|
|
1311
1374
|
</div>
|
|
1312
1375
|
<script src="../../prettify.js"></script>
|
|
@@ -229,7 +229,7 @@ exports.fetchSelf = async ctx => {
|
|
|
229
229
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
230
230
|
Code coverage generated by
|
|
231
231
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
232
|
-
at
|
|
232
|
+
at Wed Jan 26 2022 17:11:28 GMT+0000 (Coordinated Universal Time)
|
|
233
233
|
</div>
|
|
234
234
|
</div>
|
|
235
235
|
<script src="../../prettify.js"></script>
|