@budibase/server 1.0.47 → 1.0.49-alpha.2
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.937b2767.js → index.82e12602.js} +234 -231
- package/builder/assets/index.83c0944f.css +1 -0
- package/builder/assets/{vendor.f9faf6ab.js → vendor.d526bfe8.js} +12 -12
- package/builder/index.html +3 -3
- package/coverage/clover.xml +2334 -2013
- package/coverage/coverage-final.json +100 -95
- package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
- package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/controllers/application.js.html +210 -126
- package/coverage/lcov-report/api/controllers/auth.js.html +18 -6
- package/coverage/lcov-report/api/controllers/automation.js.html +21 -21
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
- package/coverage/lcov-report/api/controllers/component.js.html +4 -4
- package/coverage/lcov-report/api/controllers/datasource.js.html +72 -36
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +53 -53
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +6 -6
- package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
- package/coverage/lcov-report/api/controllers/migrations.js.html +119 -0
- package/coverage/lcov-report/api/controllers/permission.js.html +15 -15
- package/coverage/lcov-report/api/controllers/query/index.html +1 -1
- package/coverage/lcov-report/api/controllers/query/index.js.html +19 -19
- package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -6
- package/coverage/lcov-report/api/controllers/role.js.html +9 -9
- package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/external.js.html +16 -16
- package/coverage/lcov-report/api/controllers/row/index.html +48 -33
- package/coverage/lcov-report/api/controllers/row/index.js.html +26 -26
- package/coverage/lcov-report/api/controllers/row/internal.js.html +95 -158
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +41 -17
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +551 -0
- package/coverage/lcov-report/api/controllers/row/utils.js.html +39 -57
- package/coverage/lcov-report/api/controllers/screen.js.html +7 -7
- package/coverage/lcov-report/api/controllers/script.js.html +4 -4
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +629 -0
- package/coverage/lcov-report/api/controllers/table/external.js.html +12 -12
- package/coverage/lcov-report/api/controllers/table/index.html +49 -34
- package/coverage/lcov-report/api/controllers/table/index.js.html +53 -77
- package/coverage/lcov-report/api/controllers/table/internal.js.html +59 -35
- package/coverage/lcov-report/api/controllers/table/utils.js.html +283 -76
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +30 -24
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
- package/coverage/lcov-report/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.js.html +14 -14
- package/coverage/lcov-report/api/controllers/view/utils.js.html +11 -11
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
- package/coverage/lcov-report/api/controllers/webhook.js.html +15 -15
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +8 -8
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/routes/application.js.html +1 -1
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +1 -1
- package/coverage/lcov-report/api/routes/backup.js.html +1 -1
- package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
- package/coverage/lcov-report/api/routes/component.js.html +1 -1
- package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
- package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
- package/coverage/lcov-report/api/routes/dev.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +18 -18
- package/coverage/lcov-report/api/routes/index.js.html +3 -3
- package/coverage/lcov-report/api/routes/integration.js.html +1 -1
- package/coverage/lcov-report/api/routes/layout.js.html +1 -1
- package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
- package/coverage/lcov-report/api/routes/{hosting.js.html → migrations.js.html} +17 -14
- package/coverage/lcov-report/api/routes/permission.js.html +1 -1
- package/coverage/lcov-report/api/routes/query.js.html +1 -1
- package/coverage/lcov-report/api/routes/role.js.html +1 -1
- package/coverage/lcov-report/api/routes/routing.js.html +1 -1
- package/coverage/lcov-report/api/routes/row.js.html +1 -1
- package/coverage/lcov-report/api/routes/screen.js.html +1 -1
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- package/coverage/lcov-report/api/routes/static.js.html +17 -2
- package/coverage/lcov-report/api/routes/table.js.html +1 -1
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +1 -1
- package/coverage/lcov-report/api/routes/view.js.html +1 -1
- package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/actions.js.html +24 -24
- package/coverage/lcov-report/automations/automationUtils.js.html +5 -5
- package/coverage/lcov-report/automations/bullboard.js.html +16 -16
- package/coverage/lcov-report/automations/index.html +1 -1
- package/coverage/lcov-report/automations/index.js.html +1 -1
- package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
- package/coverage/lcov-report/automations/steps/createRow.js.html +13 -19
- package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +11 -20
- package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
- package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
- package/coverage/lcov-report/automations/steps/filter.js.html +7 -7
- package/coverage/lcov-report/automations/steps/index.html +13 -13
- package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
- package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -10
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
- package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
- package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
- package/coverage/lcov-report/automations/steps/updateRow.js.html +6 -6
- package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
- package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
- package/coverage/lcov-report/automations/triggers.js.html +18 -18
- package/coverage/lcov-report/automations/utils.js.html +32 -32
- package/coverage/lcov-report/constants/index.html +11 -11
- package/coverage/lcov-report/constants/index.js.html +68 -32
- package/coverage/lcov-report/constants/layouts.js.html +5 -5
- package/coverage/lcov-report/constants/screens.js.html +4 -4
- package/coverage/lcov-report/db/client.js.html +18 -18
- package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
- package/coverage/lcov-report/db/index.html +15 -15
- package/coverage/lcov-report/db/index.js.html +3 -3
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +18 -18
- package/coverage/lcov-report/db/linkedRows/index.html +10 -10
- package/coverage/lcov-report/db/linkedRows/index.js.html +38 -41
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +15 -15
- package/coverage/lcov-report/db/newid.js.html +4 -4
- package/coverage/lcov-report/db/utils.js.html +86 -86
- package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
- package/coverage/lcov-report/events/index.html +1 -1
- package/coverage/lcov-report/events/index.js.html +5 -5
- package/coverage/lcov-report/events/utils.js.html +3 -3
- package/coverage/lcov-report/index.html +117 -102
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
- package/coverage/lcov-report/middleware/authorized.js.html +166 -64
- package/coverage/lcov-report/middleware/builder.js.html +8 -8
- package/coverage/lcov-report/middleware/currentapp.js.html +29 -29
- package/coverage/lcov-report/middleware/index.html +30 -30
- package/coverage/lcov-report/middleware/joi-validator.js.html +3 -3
- package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/usageQuota.js.html +270 -42
- package/coverage/lcov-report/middleware/utils.js.html +2 -2
- package/coverage/lcov-report/threads/automation.js.html +1 -1
- package/coverage/lcov-report/threads/index.html +15 -15
- package/coverage/lcov-report/threads/index.js.html +10 -10
- package/coverage/lcov-report/threads/query.js.html +23 -8
- package/coverage/lcov-report/threads/utils.js.html +14 -14
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
- package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
- package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
- package/coverage/lcov-report/utilities/global.js.html +26 -26
- package/coverage/lcov-report/utilities/index.html +19 -19
- package/coverage/lcov-report/utilities/index.js.html +25 -25
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +8 -8
- package/coverage/lcov-report/utilities/queue/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.html +27 -27
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +115 -79
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +75 -27
- package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
- package/coverage/lcov-report/utilities/security.js.html +8 -8
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.html +141 -0
- package/coverage/lcov-report/utilities/usageQuota/index.js.html +356 -0
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +302 -0
- package/coverage/lcov-report/{api/controllers/hosting.js.html → utilities/usageQuota/usageQuoteReset.js.html} +36 -48
- package/coverage/lcov-report/utilities/users.js.html +5 -5
- package/coverage/lcov-report/utilities/workerRequests.js.html +39 -108
- package/coverage/lcov.info +3665 -3040
- package/dist/api/controllers/application.js +61 -34
- package/dist/api/controllers/auth.js +4 -0
- package/dist/api/controllers/datasource.js +11 -0
- package/dist/api/controllers/migrations.js +21 -0
- package/dist/api/controllers/row/ExternalRequest.js +2 -1
- package/dist/api/controllers/row/internal.js +30 -53
- package/dist/api/controllers/row/internalSearch.js +12 -4
- package/dist/api/controllers/row/staticFormula.js +147 -0
- package/dist/api/controllers/row/utils.js +6 -8
- package/dist/api/controllers/static/index.js +59 -10
- package/dist/api/controllers/table/bulkFormula.js +160 -0
- package/dist/api/controllers/table/index.js +12 -9
- package/dist/api/controllers/table/internal.js +9 -0
- package/dist/api/controllers/table/utils.js +56 -14
- package/dist/api/controllers/user.js +2 -0
- package/dist/api/routes/index.js +2 -2
- package/dist/api/routes/migrations.js +9 -0
- package/dist/api/routes/static.js +2 -1
- package/dist/app.js +35 -5
- package/dist/automations/steps/createRow.js +2 -4
- package/dist/automations/steps/deleteRow.js +1 -4
- package/dist/constants/index.js +12 -5
- package/dist/db/linkedRows/index.js +4 -5
- package/dist/definitions/datasource.js +1 -0
- package/dist/environment.js +2 -0
- package/dist/integrations/base/sql.js +13 -6
- package/dist/integrations/googlesheets.js +340 -0
- package/dist/integrations/index.js +3 -0
- package/dist/integrations/utils.js +57 -8
- package/dist/middleware/authorized.js +55 -30
- package/dist/middleware/usageQuota.js +80 -13
- package/dist/migrations/functions/appUrls.js +37 -0
- package/dist/migrations/functions/quotas1.js +50 -0
- package/dist/migrations/functions/usageQuotas/index.js +20 -0
- package/dist/migrations/functions/usageQuotas/syncApps.js +32 -0
- package/dist/migrations/functions/usageQuotas/syncRows.js +35 -0
- package/dist/migrations/functions/userEmailViewCasing.js +24 -0
- package/dist/migrations/index.js +62 -0
- package/dist/package.json +8 -5
- package/dist/tests/utilities/TestConfiguration.js +13 -6
- package/dist/threads/query.js +4 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/rowProcessor/index.js +18 -11
- package/dist/utilities/rowProcessor/utils.js +14 -4
- package/dist/utilities/{usageQuota.js → usageQuota/index.js} +44 -31
- package/dist/utilities/usageQuota/rows.js +77 -0
- package/dist/utilities/usageQuota/usageQuoteReset.js +16 -0
- package/dist/utilities/workerRequests.js +0 -20
- package/nodemon.json +1 -1
- package/package.json +9 -6
- package/src/api/controllers/application.js +52 -24
- package/src/api/controllers/auth.js +4 -0
- package/src/api/controllers/datasource.js +12 -0
- package/src/api/controllers/migrations.js +13 -0
- package/src/api/controllers/row/ExternalRequest.ts +1 -1
- package/src/api/controllers/row/internal.js +29 -50
- package/src/api/controllers/row/internalSearch.js +12 -4
- package/src/api/controllers/row/staticFormula.js +157 -0
- package/src/api/controllers/row/utils.js +6 -12
- package/src/api/controllers/static/index.js +63 -10
- package/src/api/controllers/table/bulkFormula.js +183 -0
- package/src/api/controllers/table/index.js +16 -24
- package/src/api/controllers/table/internal.js +9 -1
- package/src/api/controllers/table/utils.js +80 -11
- package/src/api/controllers/user.js +2 -0
- package/src/api/routes/index.js +2 -2
- package/src/api/routes/migrations.js +14 -0
- package/src/api/routes/static.js +5 -0
- package/src/api/routes/tests/application.spec.js +2 -2
- package/src/api/routes/tests/auth.spec.js +1 -2
- package/src/api/routes/tests/static.spec.js +98 -0
- package/src/app.ts +18 -5
- package/src/automations/steps/createRow.js +2 -4
- package/src/automations/steps/deleteRow.js +1 -4
- package/src/constants/index.js +17 -5
- package/src/db/linkedRows/index.js +4 -5
- package/src/definitions/common.ts +3 -0
- package/src/definitions/datasource.ts +3 -0
- package/src/environment.js +2 -0
- package/src/integrations/base/sql.ts +14 -7
- package/src/integrations/googlesheets.ts +353 -0
- package/src/integrations/index.ts +3 -0
- package/src/integrations/tests/sql.spec.js +16 -0
- package/src/integrations/utils.ts +71 -10
- package/src/middleware/authorized.js +64 -30
- package/src/middleware/tests/authorized.spec.js +6 -4
- package/src/middleware/tests/usageQuota.spec.js +18 -24
- package/src/middleware/usageQuota.js +91 -15
- package/src/migrations/functions/appUrls.ts +25 -0
- package/src/migrations/functions/quotas1.ts +20 -0
- package/src/migrations/functions/tests/appUrls.spec.js +29 -0
- package/src/migrations/functions/tests/quotas1.spec.js +27 -0
- package/src/migrations/functions/tests/userEmailViewCasing.spec.js +25 -0
- package/src/migrations/functions/usageQuotas/index.ts +8 -0
- package/src/migrations/functions/usageQuotas/syncApps.ts +18 -0
- package/src/migrations/functions/usageQuotas/syncRows.ts +21 -0
- package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +37 -0
- package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +43 -0
- package/src/migrations/functions/userEmailViewCasing.ts +13 -0
- package/src/migrations/index.ts +56 -0
- package/src/tests/utilities/TestConfiguration.js +14 -6
- package/src/threads/query.js +5 -0
- package/src/utilities/rowProcessor/index.js +24 -12
- package/src/utilities/rowProcessor/utils.js +23 -7
- package/src/utilities/tests/usageQuota/usageQuota.spec.js +72 -0
- package/src/utilities/usageQuota/index.js +92 -0
- package/src/utilities/usageQuota/rows.js +74 -0
- package/src/utilities/usageQuota/usageQuoteReset.js +18 -0
- package/src/utilities/workerRequests.js +0 -23
- package/builder/assets/index.39e01193.css +0 -1
- package/dist/api/controllers/hosting.js +0 -30
- package/dist/api/routes/hosting.js +0 -11
- package/src/api/controllers/hosting.js +0 -22
- package/src/api/routes/hosting.js +0 -13
- package/src/api/routes/tests/hosting.spec.js +0 -36
- package/src/utilities/usageQuota.js +0 -73
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">64.07% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>132/206</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">41.41% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>41/
|
|
35
|
+
<span class='fraction'>41/99</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">58.82% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>20/34</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">64.5% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>129/200</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -417,35 +417,131 @@
|
|
|
417
417
|
<a name='L358'></a><a href='#L358'>358</a>
|
|
418
418
|
<a name='L359'></a><a href='#L359'>359</a>
|
|
419
419
|
<a name='L360'></a><a href='#L360'>360</a>
|
|
420
|
-
<a name='L361'></a><a href='#L361'>361</a
|
|
421
|
-
<
|
|
420
|
+
<a name='L361'></a><a href='#L361'>361</a>
|
|
421
|
+
<a name='L362'></a><a href='#L362'>362</a>
|
|
422
|
+
<a name='L363'></a><a href='#L363'>363</a>
|
|
423
|
+
<a name='L364'></a><a href='#L364'>364</a>
|
|
424
|
+
<a name='L365'></a><a href='#L365'>365</a>
|
|
425
|
+
<a name='L366'></a><a href='#L366'>366</a>
|
|
426
|
+
<a name='L367'></a><a href='#L367'>367</a>
|
|
427
|
+
<a name='L368'></a><a href='#L368'>368</a>
|
|
428
|
+
<a name='L369'></a><a href='#L369'>369</a>
|
|
429
|
+
<a name='L370'></a><a href='#L370'>370</a>
|
|
430
|
+
<a name='L371'></a><a href='#L371'>371</a>
|
|
431
|
+
<a name='L372'></a><a href='#L372'>372</a>
|
|
432
|
+
<a name='L373'></a><a href='#L373'>373</a>
|
|
433
|
+
<a name='L374'></a><a href='#L374'>374</a>
|
|
434
|
+
<a name='L375'></a><a href='#L375'>375</a>
|
|
435
|
+
<a name='L376'></a><a href='#L376'>376</a>
|
|
436
|
+
<a name='L377'></a><a href='#L377'>377</a>
|
|
437
|
+
<a name='L378'></a><a href='#L378'>378</a>
|
|
438
|
+
<a name='L379'></a><a href='#L379'>379</a>
|
|
439
|
+
<a name='L380'></a><a href='#L380'>380</a>
|
|
440
|
+
<a name='L381'></a><a href='#L381'>381</a>
|
|
441
|
+
<a name='L382'></a><a href='#L382'>382</a>
|
|
442
|
+
<a name='L383'></a><a href='#L383'>383</a>
|
|
443
|
+
<a name='L384'></a><a href='#L384'>384</a>
|
|
444
|
+
<a name='L385'></a><a href='#L385'>385</a>
|
|
445
|
+
<a name='L386'></a><a href='#L386'>386</a>
|
|
446
|
+
<a name='L387'></a><a href='#L387'>387</a>
|
|
447
|
+
<a name='L388'></a><a href='#L388'>388</a>
|
|
448
|
+
<a name='L389'></a><a href='#L389'>389</a>
|
|
449
|
+
<a name='L390'></a><a href='#L390'>390</a>
|
|
450
|
+
<a name='L391'></a><a href='#L391'>391</a>
|
|
451
|
+
<a name='L392'></a><a href='#L392'>392</a>
|
|
452
|
+
<a name='L393'></a><a href='#L393'>393</a>
|
|
453
|
+
<a name='L394'></a><a href='#L394'>394</a>
|
|
454
|
+
<a name='L395'></a><a href='#L395'>395</a>
|
|
455
|
+
<a name='L396'></a><a href='#L396'>396</a>
|
|
456
|
+
<a name='L397'></a><a href='#L397'>397</a>
|
|
457
|
+
<a name='L398'></a><a href='#L398'>398</a>
|
|
458
|
+
<a name='L399'></a><a href='#L399'>399</a>
|
|
459
|
+
<a name='L400'></a><a href='#L400'>400</a>
|
|
460
|
+
<a name='L401'></a><a href='#L401'>401</a>
|
|
461
|
+
<a name='L402'></a><a href='#L402'>402</a>
|
|
462
|
+
<a name='L403'></a><a href='#L403'>403</a>
|
|
463
|
+
<a name='L404'></a><a href='#L404'>404</a>
|
|
464
|
+
<a name='L405'></a><a href='#L405'>405</a>
|
|
465
|
+
<a name='L406'></a><a href='#L406'>406</a>
|
|
466
|
+
<a name='L407'></a><a href='#L407'>407</a>
|
|
467
|
+
<a name='L408'></a><a href='#L408'>408</a>
|
|
468
|
+
<a name='L409'></a><a href='#L409'>409</a>
|
|
469
|
+
<a name='L410'></a><a href='#L410'>410</a>
|
|
470
|
+
<a name='L411'></a><a href='#L411'>411</a>
|
|
471
|
+
<a name='L412'></a><a href='#L412'>412</a>
|
|
472
|
+
<a name='L413'></a><a href='#L413'>413</a>
|
|
473
|
+
<a name='L414'></a><a href='#L414'>414</a>
|
|
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
|
|
490
|
+
<span class="cline-any cline-yes">39x</span>
|
|
491
|
+
<span class="cline-any cline-neutral"> </span>
|
|
492
|
+
<span class="cline-any cline-neutral"> </span>
|
|
493
|
+
<span class="cline-any cline-neutral"> </span>
|
|
494
|
+
<span class="cline-any cline-neutral"> </span>
|
|
495
|
+
<span class="cline-any cline-neutral"> </span>
|
|
496
|
+
<span class="cline-any cline-neutral"> </span>
|
|
497
|
+
<span class="cline-any cline-yes">39x</span>
|
|
498
|
+
<span class="cline-any cline-yes">39x</span>
|
|
499
|
+
<span class="cline-any cline-yes">39x</span>
|
|
500
|
+
<span class="cline-any cline-neutral"> </span>
|
|
501
|
+
<span class="cline-any cline-neutral"> </span>
|
|
502
|
+
<span class="cline-any cline-neutral"> </span>
|
|
503
|
+
<span class="cline-any cline-yes">39x</span>
|
|
504
|
+
<span class="cline-any cline-neutral"> </span>
|
|
505
|
+
<span class="cline-any cline-neutral"> </span>
|
|
506
|
+
<span class="cline-any cline-neutral"> </span>
|
|
507
|
+
<span class="cline-any cline-neutral"> </span>
|
|
508
|
+
<span class="cline-any cline-yes">39x</span>
|
|
509
|
+
<span class="cline-any cline-neutral"> </span>
|
|
510
|
+
<span class="cline-any cline-neutral"> </span>
|
|
511
|
+
<span class="cline-any cline-neutral"> </span>
|
|
512
|
+
<span class="cline-any cline-neutral"> </span>
|
|
513
|
+
<span class="cline-any cline-yes">39x</span>
|
|
514
|
+
<span class="cline-any cline-yes">39x</span>
|
|
515
|
+
<span class="cline-any cline-yes">39x</span>
|
|
516
|
+
<span class="cline-any cline-yes">39x</span>
|
|
517
|
+
<span class="cline-any cline-yes">39x</span>
|
|
518
|
+
<span class="cline-any cline-neutral"> </span>
|
|
519
|
+
<span class="cline-any cline-yes">39x</span>
|
|
520
|
+
<span class="cline-any cline-no"> </span>
|
|
521
|
+
<span class="cline-any cline-no"> </span>
|
|
422
522
|
<span class="cline-any cline-neutral"> </span>
|
|
423
523
|
<span class="cline-any cline-neutral"> </span>
|
|
424
524
|
<span class="cline-any cline-neutral"> </span>
|
|
425
525
|
<span class="cline-any cline-neutral"> </span>
|
|
426
|
-
<span class="cline-any cline-
|
|
427
|
-
<span class="cline-any cline-
|
|
428
|
-
<span class="cline-any cline-
|
|
429
|
-
<span class="cline-any cline-
|
|
430
|
-
<span class="cline-any cline-yes">34x</span>
|
|
526
|
+
<span class="cline-any cline-no"> </span>
|
|
527
|
+
<span class="cline-any cline-neutral"> </span>
|
|
528
|
+
<span class="cline-any cline-no"> </span>
|
|
529
|
+
<span class="cline-any cline-no"> </span>
|
|
431
530
|
<span class="cline-any cline-neutral"> </span>
|
|
432
531
|
<span class="cline-any cline-neutral"> </span>
|
|
433
532
|
<span class="cline-any cline-neutral"> </span>
|
|
434
|
-
<span class="cline-any cline-yes">34x</span>
|
|
435
|
-
<span class="cline-any cline-yes">34x</span>
|
|
436
|
-
<span class="cline-any cline-yes">34x</span>
|
|
437
533
|
<span class="cline-any cline-neutral"> </span>
|
|
438
|
-
<span class="cline-any cline-yes">
|
|
439
|
-
<span class="cline-any cline-yes">
|
|
440
|
-
<span class="cline-any cline-yes">
|
|
441
|
-
<span class="cline-any cline-yes">
|
|
442
|
-
<span class="cline-any cline-yes">
|
|
534
|
+
<span class="cline-any cline-yes">39x</span>
|
|
535
|
+
<span class="cline-any cline-yes">101x</span>
|
|
536
|
+
<span class="cline-any cline-yes">101x</span>
|
|
537
|
+
<span class="cline-any cline-yes">101x</span>
|
|
538
|
+
<span class="cline-any cline-yes">101x</span>
|
|
443
539
|
<span class="cline-any cline-yes">4x</span>
|
|
444
540
|
<span class="cline-any cline-yes">11x</span>
|
|
445
541
|
<span class="cline-any cline-neutral"> </span>
|
|
446
542
|
<span class="cline-any cline-neutral"> </span>
|
|
447
543
|
<span class="cline-any cline-neutral"> </span>
|
|
448
|
-
<span class="cline-any cline-yes">
|
|
544
|
+
<span class="cline-any cline-yes">101x</span>
|
|
449
545
|
<span class="cline-any cline-neutral"> </span>
|
|
450
546
|
<span class="cline-any cline-yes">1x</span>
|
|
451
547
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -456,6 +552,8 @@
|
|
|
456
552
|
<span class="cline-any cline-yes">1x</span>
|
|
457
553
|
<span class="cline-any cline-yes">1x</span>
|
|
458
554
|
<span class="cline-any cline-yes">1x</span>
|
|
555
|
+
<span class="cline-any cline-yes">1x</span>
|
|
556
|
+
<span class="cline-any cline-yes">1x</span>
|
|
459
557
|
<span class="cline-any cline-no"> </span>
|
|
460
558
|
<span class="cline-any cline-no"> </span>
|
|
461
559
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -464,13 +562,15 @@
|
|
|
464
562
|
<span class="cline-any cline-neutral"> </span>
|
|
465
563
|
<span class="cline-any cline-neutral"> </span>
|
|
466
564
|
<span class="cline-any cline-yes">1x</span>
|
|
565
|
+
<span class="cline-any cline-neutral"> </span>
|
|
566
|
+
<span class="cline-any cline-yes">1x</span>
|
|
467
567
|
<span class="cline-any cline-yes">1x</span>
|
|
468
568
|
<span class="cline-any cline-neutral"> </span>
|
|
469
|
-
<span class="cline-any cline-yes">
|
|
569
|
+
<span class="cline-any cline-yes">101x</span>
|
|
470
570
|
<span class="cline-any cline-neutral"> </span>
|
|
471
571
|
<span class="cline-any cline-neutral"> </span>
|
|
472
572
|
<span class="cline-any cline-neutral"> </span>
|
|
473
|
-
<span class="cline-any cline-yes">
|
|
573
|
+
<span class="cline-any cline-yes">39x</span>
|
|
474
574
|
<span class="cline-any cline-yes">4x</span>
|
|
475
575
|
<span class="cline-any cline-no"> </span>
|
|
476
576
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -490,9 +590,9 @@
|
|
|
490
590
|
<span class="cline-any cline-yes">4x</span>
|
|
491
591
|
<span class="cline-any cline-neutral"> </span>
|
|
492
592
|
<span class="cline-any cline-neutral"> </span>
|
|
493
|
-
<span class="cline-any cline-yes">
|
|
494
|
-
<span class="cline-any cline-yes">
|
|
495
|
-
<span class="cline-any cline-yes">
|
|
593
|
+
<span class="cline-any cline-yes">39x</span>
|
|
594
|
+
<span class="cline-any cline-yes">102x</span>
|
|
595
|
+
<span class="cline-any cline-yes">101x</span>
|
|
496
596
|
<span class="cline-any cline-neutral"> </span>
|
|
497
597
|
<span class="cline-any cline-neutral"> </span>
|
|
498
598
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -531,15 +631,19 @@
|
|
|
531
631
|
<span class="cline-any cline-neutral"> </span>
|
|
532
632
|
<span class="cline-any cline-neutral"> </span>
|
|
533
633
|
<span class="cline-any cline-yes">1x</span>
|
|
634
|
+
<span class="cline-any cline-neutral"> </span>
|
|
635
|
+
<span class="cline-any cline-neutral"> </span>
|
|
636
|
+
<span class="cline-any cline-yes">1x</span>
|
|
637
|
+
<span class="cline-any cline-yes">1x</span>
|
|
534
638
|
<span class="cline-any cline-yes">1x</span>
|
|
535
639
|
<span class="cline-any cline-yes">1x</span>
|
|
536
640
|
<span class="cline-any cline-yes">1x</span>
|
|
537
641
|
<span class="cline-any cline-neutral"> </span>
|
|
538
642
|
<span class="cline-any cline-neutral"> </span>
|
|
539
|
-
<span class="cline-any cline-yes">
|
|
540
|
-
<span class="cline-any cline-yes">
|
|
643
|
+
<span class="cline-any cline-yes">39x</span>
|
|
644
|
+
<span class="cline-any cline-yes">101x</span>
|
|
541
645
|
<span class="cline-any cline-neutral"> </span>
|
|
542
|
-
<span class="cline-any cline-yes">
|
|
646
|
+
<span class="cline-any cline-yes">101x</span>
|
|
543
647
|
<span class="cline-any cline-yes">2x</span>
|
|
544
648
|
<span class="cline-any cline-yes">2x</span>
|
|
545
649
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -577,12 +681,12 @@
|
|
|
577
681
|
<span class="cline-any cline-neutral"> </span>
|
|
578
682
|
<span class="cline-any cline-neutral"> </span>
|
|
579
683
|
<span class="cline-any cline-neutral"> </span>
|
|
580
|
-
<span class="cline-any cline-yes">
|
|
684
|
+
<span class="cline-any cline-yes">101x</span>
|
|
581
685
|
<span class="cline-any cline-neutral"> </span>
|
|
582
686
|
<span class="cline-any cline-neutral"> </span>
|
|
583
|
-
<span class="cline-any cline-yes">
|
|
687
|
+
<span class="cline-any cline-yes">39x</span>
|
|
584
688
|
<span class="cline-any cline-neutral"> </span>
|
|
585
|
-
<span class="cline-any cline-yes">
|
|
689
|
+
<span class="cline-any cline-yes">101x</span>
|
|
586
690
|
<span class="cline-any cline-yes">1x</span>
|
|
587
691
|
<span class="cline-any cline-neutral"> </span>
|
|
588
692
|
<span class="cline-any cline-yes">5x</span>
|
|
@@ -590,60 +694,75 @@
|
|
|
590
694
|
<span class="cline-any cline-neutral"> </span>
|
|
591
695
|
<span class="cline-any cline-neutral"> </span>
|
|
592
696
|
<span class="cline-any cline-neutral"> </span>
|
|
593
|
-
<span class="cline-any cline-yes">
|
|
697
|
+
<span class="cline-any cline-yes">101x</span>
|
|
594
698
|
<span class="cline-any cline-neutral"> </span>
|
|
595
699
|
<span class="cline-any cline-neutral"> </span>
|
|
596
700
|
<span class="cline-any cline-neutral"> </span>
|
|
597
701
|
<span class="cline-any cline-neutral"> </span>
|
|
598
|
-
<span class="cline-any cline-yes">
|
|
599
|
-
<span class="cline-any cline-yes">
|
|
600
|
-
<span class="cline-any cline-yes">
|
|
601
|
-
<span class="cline-any cline-yes">
|
|
702
|
+
<span class="cline-any cline-yes">101x</span>
|
|
703
|
+
<span class="cline-any cline-yes">101x</span>
|
|
704
|
+
<span class="cline-any cline-yes">101x</span>
|
|
705
|
+
<span class="cline-any cline-yes">101x</span>
|
|
602
706
|
<span class="cline-any cline-neutral"> </span>
|
|
603
|
-
<span class="cline-any cline-yes">
|
|
604
|
-
<span class="cline-any cline-yes">
|
|
707
|
+
<span class="cline-any cline-yes">101x</span>
|
|
708
|
+
<span class="cline-any cline-yes">101x</span>
|
|
605
709
|
<span class="cline-any cline-neutral"> </span>
|
|
606
|
-
<span class="cline-any cline-yes">
|
|
710
|
+
<span class="cline-any cline-yes">101x</span>
|
|
607
711
|
<span class="cline-any cline-neutral"> </span>
|
|
608
712
|
<span class="cline-any cline-neutral"> </span>
|
|
609
713
|
<span class="cline-any cline-neutral"> </span>
|
|
610
714
|
<span class="cline-any cline-neutral"> </span>
|
|
611
|
-
<span class="cline-any cline-yes">
|
|
715
|
+
<span class="cline-any cline-yes">101x</span>
|
|
612
716
|
<span class="cline-any cline-yes">4x</span>
|
|
613
717
|
<span class="cline-any cline-neutral"> </span>
|
|
614
|
-
<span class="cline-any cline-yes">
|
|
615
|
-
<span class="cline-any cline-yes">
|
|
718
|
+
<span class="cline-any cline-yes">101x</span>
|
|
719
|
+
<span class="cline-any cline-yes">101x</span>
|
|
720
|
+
<span class="cline-any cline-neutral"> </span>
|
|
721
|
+
<span class="cline-any cline-neutral"> </span>
|
|
616
722
|
<span class="cline-any cline-neutral"> </span>
|
|
617
723
|
<span class="cline-any cline-neutral"> </span>
|
|
724
|
+
<span class="cline-any cline-yes">101x</span>
|
|
618
725
|
<span class="cline-any cline-neutral"> </span>
|
|
619
726
|
<span class="cline-any cline-neutral"> </span>
|
|
620
|
-
<span class="cline-any cline-yes">99x</span>
|
|
621
727
|
<span class="cline-any cline-neutral"> </span>
|
|
622
728
|
<span class="cline-any cline-neutral"> </span>
|
|
623
729
|
<span class="cline-any cline-neutral"> </span>
|
|
730
|
+
<span class="cline-any cline-yes">101x</span>
|
|
731
|
+
<span class="cline-any cline-yes">101x</span>
|
|
624
732
|
<span class="cline-any cline-neutral"> </span>
|
|
625
|
-
<span class="cline-any cline-yes">99x</span>
|
|
626
|
-
<span class="cline-any cline-yes">99x</span>
|
|
627
733
|
<span class="cline-any cline-neutral"> </span>
|
|
628
734
|
<span class="cline-any cline-neutral"> </span>
|
|
629
735
|
<span class="cline-any cline-neutral"> </span>
|
|
736
|
+
<span class="cline-any cline-yes">101x</span>
|
|
737
|
+
<span class="cline-any cline-yes">101x</span>
|
|
630
738
|
<span class="cline-any cline-neutral"> </span>
|
|
631
|
-
<span class="cline-any cline-yes">99x</span>
|
|
632
|
-
<span class="cline-any cline-yes">99x</span>
|
|
633
739
|
<span class="cline-any cline-neutral"> </span>
|
|
634
740
|
<span class="cline-any cline-neutral"> </span>
|
|
635
741
|
<span class="cline-any cline-neutral"> </span>
|
|
636
742
|
<span class="cline-any cline-neutral"> </span>
|
|
743
|
+
<span class="cline-any cline-yes">101x</span>
|
|
637
744
|
<span class="cline-any cline-neutral"> </span>
|
|
638
|
-
<span class="cline-any cline-yes">99x</span>
|
|
639
745
|
<span class="cline-any cline-neutral"> </span>
|
|
640
746
|
<span class="cline-any cline-neutral"> </span>
|
|
747
|
+
<span class="cline-any cline-yes">101x</span>
|
|
641
748
|
<span class="cline-any cline-neutral"> </span>
|
|
642
|
-
<span class="cline-any cline-yes">99x</span>
|
|
643
749
|
<span class="cline-any cline-neutral"> </span>
|
|
644
750
|
<span class="cline-any cline-neutral"> </span>
|
|
751
|
+
<span class="cline-any cline-yes">39x</span>
|
|
752
|
+
<span class="cline-any cline-yes">207x</span>
|
|
753
|
+
<span class="cline-any cline-yes">207x</span>
|
|
645
754
|
<span class="cline-any cline-neutral"> </span>
|
|
646
|
-
<span class="cline-any cline-
|
|
755
|
+
<span class="cline-any cline-neutral"> </span>
|
|
756
|
+
<span class="cline-any cline-neutral"> </span>
|
|
757
|
+
<span class="cline-any cline-neutral"> </span>
|
|
758
|
+
<span class="cline-any cline-yes">474x</span>
|
|
759
|
+
<span class="cline-any cline-neutral"> </span>
|
|
760
|
+
<span class="cline-any cline-neutral"> </span>
|
|
761
|
+
<span class="cline-any cline-neutral"> </span>
|
|
762
|
+
<span class="cline-any cline-neutral"> </span>
|
|
763
|
+
<span class="cline-any cline-neutral"> </span>
|
|
764
|
+
<span class="cline-any cline-neutral"> </span>
|
|
765
|
+
<span class="cline-any cline-yes">39x</span>
|
|
647
766
|
<span class="cline-any cline-no"> </span>
|
|
648
767
|
<span class="cline-any cline-no"> </span>
|
|
649
768
|
<span class="cline-any cline-no"> </span>
|
|
@@ -652,22 +771,24 @@
|
|
|
652
771
|
<span class="cline-any cline-no"> </span>
|
|
653
772
|
<span class="cline-any cline-neutral"> </span>
|
|
654
773
|
<span class="cline-any cline-neutral"> </span>
|
|
655
|
-
<span class="cline-any cline-yes">
|
|
774
|
+
<span class="cline-any cline-yes">39x</span>
|
|
656
775
|
<span class="cline-any cline-no"> </span>
|
|
657
776
|
<span class="cline-any cline-no"> </span>
|
|
658
777
|
<span class="cline-any cline-neutral"> </span>
|
|
659
778
|
<span class="cline-any cline-neutral"> </span>
|
|
660
|
-
<span class="cline-any cline-yes">
|
|
779
|
+
<span class="cline-any cline-yes">39x</span>
|
|
661
780
|
<span class="cline-any cline-yes">30x</span>
|
|
662
781
|
<span class="cline-any cline-yes">30x</span>
|
|
663
782
|
<span class="cline-any cline-no"> </span>
|
|
664
783
|
<span class="cline-any cline-no"> </span>
|
|
784
|
+
<span class="cline-any cline-no"> </span>
|
|
785
|
+
<span class="cline-any cline-no"> </span>
|
|
665
786
|
<span class="cline-any cline-neutral"> </span>
|
|
666
787
|
<span class="cline-any cline-yes">30x</span>
|
|
667
788
|
<span class="cline-any cline-neutral"> </span>
|
|
668
789
|
<span class="cline-any cline-neutral"> </span>
|
|
669
790
|
<span class="cline-any cline-neutral"> </span>
|
|
670
|
-
<span class="cline-any cline-yes">
|
|
791
|
+
<span class="cline-any cline-yes">39x</span>
|
|
671
792
|
<span class="cline-any cline-yes">1x</span>
|
|
672
793
|
<span class="cline-any cline-yes">1x</span>
|
|
673
794
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -739,29 +860,46 @@
|
|
|
739
860
|
<span class="cline-any cline-neutral"> </span>
|
|
740
861
|
<span class="cline-any cline-neutral"> </span>
|
|
741
862
|
<span class="cline-any cline-neutral"> </span>
|
|
742
|
-
<span class="cline-any cline-yes">
|
|
863
|
+
<span class="cline-any cline-yes">39x</span>
|
|
864
|
+
<span class="cline-any cline-no"> </span>
|
|
865
|
+
<span class="cline-any cline-neutral"> </span>
|
|
866
|
+
<span class="cline-any cline-neutral"> </span>
|
|
867
|
+
<span class="cline-any cline-yes">39x</span>
|
|
868
|
+
<span class="cline-any cline-no"> </span>
|
|
869
|
+
<span class="cline-any cline-neutral"> </span>
|
|
870
|
+
<span class="cline-any cline-neutral"> </span>
|
|
871
|
+
<span class="cline-any cline-yes">39x</span>
|
|
743
872
|
<span class="cline-any cline-no"> </span>
|
|
744
873
|
<span class="cline-any cline-neutral"> </span>
|
|
745
874
|
<span class="cline-any cline-neutral"> </span>
|
|
746
|
-
<span class="cline-any cline-
|
|
875
|
+
<span class="cline-any cline-neutral"> </span>
|
|
876
|
+
<span class="cline-any cline-neutral"> </span>
|
|
877
|
+
<span class="cline-any cline-no"> </span>
|
|
878
|
+
<span class="cline-any cline-no"> </span>
|
|
879
|
+
<span class="cline-any cline-neutral"> </span>
|
|
747
880
|
<span class="cline-any cline-no"> </span>
|
|
748
881
|
<span class="cline-any cline-neutral"> </span>
|
|
749
882
|
<span class="cline-any cline-neutral"> </span>
|
|
750
|
-
<span class="cline-any cline-yes">
|
|
883
|
+
<span class="cline-any cline-yes">39x</span>
|
|
751
884
|
<span class="cline-any cline-no"> </span>
|
|
752
885
|
<span class="cline-any cline-neutral"> </span>
|
|
753
886
|
<span class="cline-any cline-neutral"> </span>
|
|
754
887
|
<span class="cline-any cline-neutral"> </span>
|
|
888
|
+
<span class="cline-any cline-no"> </span>
|
|
755
889
|
<span class="cline-any cline-neutral"> </span>
|
|
756
890
|
<span class="cline-any cline-no"> </span>
|
|
757
891
|
<span class="cline-any cline-no"> </span>
|
|
892
|
+
<span class="cline-any cline-no"> </span>
|
|
893
|
+
<span class="cline-any cline-no"> </span>
|
|
894
|
+
<span class="cline-any cline-no"> </span>
|
|
895
|
+
<span class="cline-any cline-neutral"> </span>
|
|
758
896
|
<span class="cline-any cline-neutral"> </span>
|
|
759
897
|
<span class="cline-any cline-no"> </span>
|
|
760
898
|
<span class="cline-any cline-neutral"> </span>
|
|
761
899
|
<span class="cline-any cline-neutral"> </span>
|
|
762
|
-
<span class="cline-any cline-yes">
|
|
763
|
-
<span class="cline-any cline-yes">
|
|
764
|
-
<span class="cline-any cline-yes">
|
|
900
|
+
<span class="cline-any cline-yes">39x</span>
|
|
901
|
+
<span class="cline-any cline-yes">101x</span>
|
|
902
|
+
<span class="cline-any cline-yes">97x</span>
|
|
765
903
|
<span class="cline-any cline-neutral"> </span>
|
|
766
904
|
<span class="cline-any cline-yes">4x</span>
|
|
767
905
|
<span class="cline-any cline-yes">11x</span>
|
|
@@ -776,26 +914,53 @@
|
|
|
776
914
|
<span class="cline-any cline-yes">4x</span>
|
|
777
915
|
<span class="cline-any cline-neutral"> </span>
|
|
778
916
|
<span class="cline-any cline-neutral"> </span>
|
|
779
|
-
<span class="cline-any cline-yes">
|
|
917
|
+
<span class="cline-any cline-yes">39x</span>
|
|
780
918
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../../db")
|
|
781
919
|
const csvParser = require("../../../utilities/csvParser")
|
|
782
920
|
const {
|
|
783
921
|
getRowParams,
|
|
784
922
|
generateRowID,
|
|
785
923
|
InternalTables,
|
|
924
|
+
getTableParams,
|
|
925
|
+
BudibaseInternalDB,
|
|
786
926
|
} = require("../../../db/utils")
|
|
787
|
-
const { isEqual } = require("lodash
|
|
927
|
+
const { isEqual } = require("lodash")
|
|
788
928
|
const { AutoFieldSubTypes, FieldTypes } = require("../../../constants")
|
|
789
|
-
const {
|
|
790
|
-
|
|
929
|
+
const {
|
|
930
|
+
inputProcessing,
|
|
931
|
+
cleanupAttachments,
|
|
932
|
+
} = require("../../../utilities/rowProcessor")
|
|
933
|
+
const {
|
|
934
|
+
USERS_TABLE_SCHEMA,
|
|
935
|
+
SwitchableTypes,
|
|
936
|
+
CanSwitchTypes,
|
|
937
|
+
} = require("../../../constants")
|
|
791
938
|
const {
|
|
792
939
|
isExternalTable,
|
|
793
940
|
breakExternalTableId,
|
|
941
|
+
isSQL,
|
|
794
942
|
} = require("../../../integrations/utils")
|
|
795
943
|
const { getViews, saveView } = require("../view/utils")
|
|
796
944
|
const viewTemplate = require("../view/viewBuilder")
|
|
945
|
+
const usageQuota = require("../../../utilities/usageQuota")
|
|
946
|
+
const { cloneDeep } = require("lodash/fp")
|
|
797
947
|
|
|
798
|
-
exports.
|
|
948
|
+
exports.clearColumns = <span class="fstat-no" title="function not covered" >as</span>ync (appId, table, columnNames) => {
|
|
949
|
+
const db = <span class="cstat-no" title="statement not covered" >new CouchDB(appId)</span>
|
|
950
|
+
const rows = <span class="cstat-no" title="statement not covered" >await db.allDocs(</span>
|
|
951
|
+
getRowParams(table._id, null, {
|
|
952
|
+
include_docs: true,
|
|
953
|
+
})
|
|
954
|
+
)
|
|
955
|
+
<span class="cstat-no" title="statement not covered" > return db.bulkDocs(</span>
|
|
956
|
+
rows.rows.map(<span class="fstat-no" title="function not covered" >({</span> doc }) => {
|
|
957
|
+
<span class="cstat-no" title="statement not covered" > columnNames.forEach(<span class="fstat-no" title="function not covered" >co</span>lName => <span class="cstat-no" title="statement not covered" >delete doc[colName])</span></span>
|
|
958
|
+
<span class="cstat-no" title="statement not covered" > return doc</span>
|
|
959
|
+
})
|
|
960
|
+
)
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
exports.checkForColumnUpdates = async (appId, db, oldTable, updatedTable) => {
|
|
799
964
|
let updatedRows = []
|
|
800
965
|
const rename = updatedTable._rename
|
|
801
966
|
let deletedColumns = []
|
|
@@ -812,16 +977,20 @@ exports.checkForColumnUpdates = async (db, oldTable, updatedTable) => {
|
|
|
812
977
|
include_docs: true,
|
|
813
978
|
})
|
|
814
979
|
)
|
|
815
|
-
|
|
980
|
+
const rawRows = rows.rows.map(({ doc }) => doc)
|
|
981
|
+
updatedRows = rawRows.map(row => {
|
|
982
|
+
row = cloneDeep(row)
|
|
816
983
|
if (rename) {
|
|
817
|
-
|
|
818
|
-
delete
|
|
984
|
+
row[rename.updated] = row[rename.old]
|
|
985
|
+
delete row[rename.old]
|
|
819
986
|
} else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="else path not taken" >E</span>if (deletedColumns.length !== 0) {</span>
|
|
820
|
-
<span class="cstat-no" title="statement not covered" > deletedColumns.forEach(<span class="fstat-no" title="function not covered" >co</span>lName => <span class="cstat-no" title="statement not covered" >delete
|
|
987
|
+
<span class="cstat-no" title="statement not covered" > deletedColumns.forEach(<span class="fstat-no" title="function not covered" >co</span>lName => <span class="cstat-no" title="statement not covered" >delete row[colName])</span></span>
|
|
821
988
|
}
|
|
822
|
-
return
|
|
989
|
+
return row
|
|
823
990
|
})
|
|
824
991
|
|
|
992
|
+
// cleanup any attachments from object storage for deleted attachment columns
|
|
993
|
+
await cleanupAttachments(appId, updatedTable, { oldTable, rows: rawRows })
|
|
825
994
|
// Update views
|
|
826
995
|
await exports.checkForViewUpdates(db, updatedTable, rename, deletedColumns)
|
|
827
996
|
delete updatedTable._rename
|
|
@@ -890,7 +1059,11 @@ exports.handleDataImport = async (appId, user, table, dataImport) => {
|
|
|
890
1059
|
finalData.push(row)
|
|
891
1060
|
}
|
|
892
1061
|
|
|
1062
|
+
await usageQuota.update(usageQuota.Properties.ROW, finalData.length, {
|
|
1063
|
+
dryRun: true,
|
|
1064
|
+
})
|
|
893
1065
|
await db.bulkDocs(finalData)
|
|
1066
|
+
await usageQuota.update(usageQuota.Properties.ROW, finalData.length)
|
|
894
1067
|
let response = await db.put(table)
|
|
895
1068
|
table._rev = response._rev
|
|
896
1069
|
return table
|
|
@@ -978,6 +1151,7 @@ class TableSaveFunctions {
|
|
|
978
1151
|
// when confirmed valid
|
|
979
1152
|
async mid(table) {
|
|
980
1153
|
let response = await exports.checkForColumnUpdates(
|
|
1154
|
+
this.appId,
|
|
981
1155
|
this.db,
|
|
982
1156
|
this.oldTable,
|
|
983
1157
|
table
|
|
@@ -1003,6 +1177,20 @@ class TableSaveFunctions {
|
|
|
1003
1177
|
}
|
|
1004
1178
|
}
|
|
1005
1179
|
|
|
1180
|
+
exports.getAllInternalTables = async appId => {
|
|
1181
|
+
const db = new CouchDB(appId)
|
|
1182
|
+
const internalTables = await db.allDocs(
|
|
1183
|
+
getTableParams(null, {
|
|
1184
|
+
include_docs: true,
|
|
1185
|
+
})
|
|
1186
|
+
)
|
|
1187
|
+
return internalTables.rows.map(tableDoc => ({
|
|
1188
|
+
...tableDoc.doc,
|
|
1189
|
+
type: "internal",
|
|
1190
|
+
sourceId: BudibaseInternalDB._id,
|
|
1191
|
+
}))
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1006
1194
|
exports.getAllExternalTables = <span class="fstat-no" title="function not covered" >as</span>ync (appId, datasourceId) => {
|
|
1007
1195
|
const db = <span class="cstat-no" title="statement not covered" >new CouchDB(appId)</span>
|
|
1008
1196
|
const datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
|
|
@@ -1021,7 +1209,9 @@ exports.getTable = async (appId, tableId) => {
|
|
|
1021
1209
|
const db = new CouchDB(appId)
|
|
1022
1210
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (isExternalTable(tableId)) {
|
|
1023
1211
|
let { datasourceId, tableName } = <span class="cstat-no" title="statement not covered" >breakExternalTableId(tableId)</span>
|
|
1024
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1212
|
+
const datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
|
|
1213
|
+
const table = <span class="cstat-no" title="statement not covered" >await exports.getExternalTable(appId, datasourceId, tableName)</span>
|
|
1214
|
+
<span class="cstat-no" title="statement not covered" > return { ...table, sql: isSQL(datasource) }</span>
|
|
1025
1215
|
} else {
|
|
1026
1216
|
return db.get(tableId)
|
|
1027
1217
|
}
|
|
@@ -1119,6 +1309,23 @@ exports.foreignKeyStructure = <span class="fstat-no" title="function not covered
|
|
|
1119
1309
|
<span class="cstat-no" title="statement not covered" > return structure</span>
|
|
1120
1310
|
}
|
|
1121
1311
|
|
|
1312
|
+
exports.areSwitchableTypes = <span class="fstat-no" title="function not covered" >(t</span>ype1, type2) => {
|
|
1313
|
+
<span class="cstat-no" title="statement not covered" > if (</span>
|
|
1314
|
+
SwitchableTypes.indexOf(type1) === -1 &&
|
|
1315
|
+
SwitchableTypes.indexOf(type2) === -1
|
|
1316
|
+
) {
|
|
1317
|
+
<span class="cstat-no" title="statement not covered" > return false</span>
|
|
1318
|
+
}
|
|
1319
|
+
<span class="cstat-no" title="statement not covered" > for (let option of CanSwitchTypes) {</span>
|
|
1320
|
+
const index1 = <span class="cstat-no" title="statement not covered" >option.indexOf(type1),</span>
|
|
1321
|
+
index2 = <span class="cstat-no" title="statement not covered" >option.indexOf(type2)</span>
|
|
1322
|
+
<span class="cstat-no" title="statement not covered" > if (index1 !== -1 && index2 !== -1 && index1 !== index2) {</span>
|
|
1323
|
+
<span class="cstat-no" title="statement not covered" > return true</span>
|
|
1324
|
+
}
|
|
1325
|
+
}
|
|
1326
|
+
<span class="cstat-no" title="statement not covered" > return false</span>
|
|
1327
|
+
}
|
|
1328
|
+
|
|
1122
1329
|
exports.hasTypeChanged = (table, oldTable) => {
|
|
1123
1330
|
if (!oldTable) {
|
|
1124
1331
|
return false
|
|
@@ -1129,7 +1336,7 @@ exports.hasTypeChanged = (table, oldTable) => {
|
|
|
1129
1336
|
continue
|
|
1130
1337
|
}
|
|
1131
1338
|
const newType = table.schema[key].type
|
|
1132
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (oldType !== newType && <span class="branch-1 cbranch-no" title="branch not covered"
|
|
1339
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (oldType !== newType && <span class="branch-1 cbranch-no" title="branch not covered" >!exports.areSwitchableTypes(oldType, newType))</span> {
|
|
1133
1340
|
<span class="cstat-no" title="statement not covered" > return true</span>
|
|
1134
1341
|
}
|
|
1135
1342
|
}
|
|
@@ -1144,7 +1351,7 @@ exports.TableSaveFunctions = TableSaveFunctions
|
|
|
1144
1351
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1145
1352
|
Code coverage generated by
|
|
1146
1353
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
1147
|
-
at Mon Jan
|
|
1354
|
+
at Mon Jan 31 2022 16:54:35 GMT+0000 (Coordinated Universal Time)
|
|
1148
1355
|
</div>
|
|
1149
1356
|
</div>
|
|
1150
1357
|
<script src="../../../prettify.js"></script>
|
|
@@ -181,7 +181,7 @@ exports.downloadTemplate = async function (ctx) {
|
|
|
181
181
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
182
182
|
Code coverage generated by
|
|
183
183
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
184
|
-
at Mon Jan
|
|
184
|
+
at Mon Jan 31 2022 16:54:35 GMT+0000 (Coordinated Universal Time)
|
|
185
185
|
</div>
|
|
186
186
|
</div>
|
|
187
187
|
<script src="../../prettify.js"></script>
|