@budibase/server 1.0.49-alpha.1 → 1.0.49-alpha.13
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/__mocks__/arangojs.ts +1 -1
- package/__mocks__/aws-sdk.ts +4 -4
- package/__mocks__/mongodb.ts +4 -5
- package/__mocks__/mssql.ts +3 -3
- package/__mocks__/node-fetch.ts +2 -1
- package/__mocks__/pg.ts +3 -5
- package/builder/assets/{index.ba78c49d.css → index.83c0944f.css} +1 -1
- package/builder/assets/{index.ed1cf508.js → index.f686d3cd.js} +184 -184
- package/builder/index.html +2 -2
- package/coverage/clover.xml +2656 -2712
- package/coverage/coverage-final.json +104 -105
- 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 +157 -136
- package/coverage/lcov-report/api/controllers/auth.js.html +11 -14
- package/coverage/lcov-report/api/controllers/automation.js.html +39 -69
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +8 -11
- package/coverage/lcov-report/api/controllers/component.js.html +10 -13
- package/coverage/lcov-report/api/controllers/datasource.js.html +31 -37
- package/coverage/lcov-report/api/controllers/dev.js.html +6 -6
- package/coverage/lcov-report/api/controllers/index.html +69 -54
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +9 -9
- package/coverage/lcov-report/api/controllers/metadata.js.html +6 -21
- package/coverage/lcov-report/{migrations/usageQuotas/syncApps.js.html → api/controllers/migrations.js.html} +30 -45
- package/coverage/lcov-report/api/controllers/permission.js.html +19 -19
- package/coverage/lcov-report/api/controllers/query/index.html +10 -10
- package/coverage/lcov-report/api/controllers/query/index.js.html +38 -35
- package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -6
- package/coverage/lcov-report/api/controllers/role.js.html +16 -16
- package/coverage/lcov-report/api/controllers/routing.js.html +7 -10
- package/coverage/lcov-report/api/controllers/row/external.js.html +48 -141
- package/coverage/lcov-report/api/controllers/row/index.html +28 -28
- package/coverage/lcov-report/api/controllers/row/index.js.html +13 -13
- package/coverage/lcov-report/api/controllers/row/internal.js.html +60 -105
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +25 -31
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +21 -24
- package/coverage/lcov-report/api/controllers/row/utils.js.html +27 -24
- package/coverage/lcov-report/api/controllers/screen.js.html +15 -21
- package/coverage/lcov-report/api/controllers/script.js.html +4 -4
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +27 -57
- package/coverage/lcov-report/api/controllers/table/external.js.html +25 -34
- package/coverage/lcov-report/api/controllers/table/index.html +37 -37
- package/coverage/lcov-report/api/controllers/table/index.js.html +20 -20
- package/coverage/lcov-report/api/controllers/table/internal.js.html +45 -54
- package/coverage/lcov-report/api/controllers/table/utils.js.html +67 -103
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +43 -52
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
- package/coverage/lcov-report/api/controllers/view/index.html +16 -16
- package/coverage/lcov-report/api/controllers/view/index.js.html +27 -33
- package/coverage/lcov-report/api/controllers/view/utils.js.html +35 -20
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
- package/coverage/lcov-report/api/controllers/webhook.js.html +34 -28
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +3 -3
- 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 +22 -7
- package/coverage/lcov-report/api/routes/index.js.html +10 -4
- 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/{migrations/usageQuotas/index.js.html → api/routes/migrations.js.html} +25 -55
- package/coverage/lcov-report/api/routes/permission.js.html +1 -1
- package/coverage/lcov-report/api/routes/query.js.html +1 -1
- package/coverage/lcov-report/api/routes/role.js.html +1 -1
- package/coverage/lcov-report/api/routes/routing.js.html +1 -1
- package/coverage/lcov-report/api/routes/row.js.html +1 -1
- package/coverage/lcov-report/api/routes/screen.js.html +1 -1
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- package/coverage/lcov-report/api/routes/static.js.html +1 -1
- package/coverage/lcov-report/api/routes/table.js.html +1 -1
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +1 -1
- package/coverage/lcov-report/api/routes/view.js.html +1 -1
- package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/actions.js.html +24 -24
- package/coverage/lcov-report/automations/automationUtils.js.html +7 -10
- package/coverage/lcov-report/automations/bullboard.js.html +16 -16
- package/coverage/lcov-report/automations/index.html +18 -18
- package/coverage/lcov-report/automations/index.js.html +1 -1
- package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
- package/coverage/lcov-report/automations/steps/createRow.js.html +7 -10
- package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +7 -7
- 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 +1 -1
- 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 +7 -7
- 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 +61 -55
- package/coverage/lcov-report/automations/utils.js.html +54 -42
- package/coverage/lcov-report/constants/index.html +1 -1
- package/coverage/lcov-report/constants/index.js.html +26 -26
- package/coverage/lcov-report/constants/layouts.js.html +5 -5
- package/coverage/lcov-report/constants/screens.js.html +4 -4
- package/coverage/lcov-report/db/client.js.html +18 -18
- package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
- package/coverage/lcov-report/db/index.html +1 -1
- package/coverage/lcov-report/db/index.js.html +3 -3
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +15 -27
- package/coverage/lcov-report/db/linkedRows/index.html +27 -27
- package/coverage/lcov-report/db/linkedRows/index.js.html +40 -82
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +40 -40
- package/coverage/lcov-report/db/newid.js.html +4 -4
- package/coverage/lcov-report/db/utils.js.html +74 -74
- 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 +97 -112
- 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 +21 -15
- package/coverage/lcov-report/middleware/builder.js.html +3 -3
- package/coverage/lcov-report/middleware/currentapp.js.html +72 -60
- package/coverage/lcov-report/middleware/index.html +28 -28
- 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 +29 -35
- package/coverage/lcov-report/middleware/utils.js.html +2 -2
- package/coverage/lcov-report/threads/automation.js.html +30 -24
- package/coverage/lcov-report/threads/index.html +25 -25
- package/coverage/lcov-report/threads/index.js.html +10 -10
- package/coverage/lcov-report/threads/query.js.html +26 -47
- 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 +57 -48
- package/coverage/lcov-report/utilities/index.html +27 -27
- package/coverage/lcov-report/utilities/index.js.html +42 -72
- 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 +7 -7
- package/coverage/lcov-report/utilities/rowProcessor/index.html +11 -11
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +32 -74
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +4 -4
- 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 +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.js.html +13 -10
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +5 -2
- package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +9 -9
- package/coverage/lcov-report/utilities/workerRequests.js.html +16 -16
- package/coverage/lcov.info +4018 -4092
- package/dist/api/controllers/application.js +49 -48
- package/dist/api/controllers/auth.js +4 -5
- package/dist/api/controllers/automation.js +14 -19
- package/dist/api/controllers/cloud.js +2 -3
- package/dist/api/controllers/component.js +3 -4
- package/dist/api/controllers/datasource.js +9 -10
- package/dist/api/controllers/deploy/Deployment.js +3 -6
- package/dist/api/controllers/deploy/index.js +12 -13
- package/dist/api/controllers/dev.js +5 -5
- package/dist/api/controllers/layout.js +3 -3
- package/dist/api/controllers/metadata.js +4 -4
- package/dist/api/controllers/migrations.js +21 -0
- package/dist/api/controllers/permission.js +4 -4
- package/dist/api/controllers/query/import/index.js +4 -6
- package/dist/api/controllers/query/index.js +11 -10
- package/dist/api/controllers/role.js +5 -5
- package/dist/api/controllers/routing.js +5 -6
- package/dist/api/controllers/row/ExternalRequest.js +90 -67
- package/dist/api/controllers/row/external.js +14 -22
- package/dist/api/controllers/row/internal.js +29 -44
- package/dist/api/controllers/row/internalSearch.js +11 -13
- package/dist/api/controllers/row/staticFormula.js +11 -11
- package/dist/api/controllers/row/utils.js +7 -6
- package/dist/api/controllers/screen.js +5 -7
- package/dist/api/controllers/static/index.js +4 -4
- package/dist/api/controllers/table/bulkFormula.js +14 -15
- package/dist/api/controllers/table/external.js +7 -10
- package/dist/api/controllers/table/index.js +5 -5
- package/dist/api/controllers/table/internal.js +16 -19
- package/dist/api/controllers/table/utils.js +29 -31
- package/dist/api/controllers/user.js +16 -20
- package/dist/api/controllers/view/index.js +8 -10
- package/dist/api/controllers/view/utils.js +9 -4
- package/dist/api/controllers/webhook.js +10 -8
- package/dist/api/routes/index.js +2 -0
- package/dist/api/routes/migrations.js +9 -0
- package/dist/api/routes/tests/utilities/TestFunctions.js +37 -17
- package/dist/app.js +35 -5
- package/dist/automations/automationUtils.js +2 -3
- package/dist/automations/steps/createRow.js +1 -1
- package/dist/automations/steps/updateRow.js +1 -1
- package/dist/automations/triggers.js +27 -25
- package/dist/automations/utils.js +10 -5
- package/dist/db/linkedRows/LinkController.js +3 -7
- package/dist/db/linkedRows/index.js +16 -26
- package/dist/db/linkedRows/linkUtils.js +6 -6
- package/dist/db/views/staticViews.js +9 -10
- package/dist/environment.js +3 -1
- package/dist/integrations/base/sql.js +49 -15
- package/dist/integrations/utils.js +3 -0
- package/dist/middleware/authorized.js +5 -3
- package/dist/middleware/builder.js +2 -2
- package/dist/middleware/currentapp.js +41 -37
- package/dist/middleware/usageQuota.js +2 -4
- package/dist/migrations/functions/appUrls.js +46 -0
- package/dist/migrations/functions/quotas1.js +50 -0
- package/dist/migrations/{usageQuotas → functions/usageQuotas}/index.js +6 -10
- package/dist/migrations/{usageQuotas → functions/usageQuotas}/syncApps.js +12 -9
- package/dist/migrations/{usageQuotas → functions/usageQuotas}/syncRows.js +16 -12
- package/dist/migrations/functions/userEmailViewCasing.js +24 -0
- package/dist/migrations/index.js +62 -0
- package/dist/package.json +4 -4
- package/dist/tests/utilities/TestConfiguration.js +70 -44
- package/dist/threads/automation.js +13 -11
- package/dist/threads/query.js +13 -19
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/index.js +4 -3
- package/dist/utilities/global.js +15 -12
- package/dist/utilities/index.js +7 -17
- package/dist/utilities/routing/index.js +5 -5
- package/dist/utilities/rowProcessor/index.js +9 -10
- package/dist/utilities/usageQuota/index.js +1 -0
- package/dist/utilities/usageQuota/rows.js +1 -0
- package/dist/utilities/users.js +3 -3
- package/dist/utilities/workerRequests.js +4 -4
- package/package.json +5 -5
- package/scripts/integrations/mssql/data/Dockerfile +1 -1
- package/scripts/integrations/mssql/data/setup.sql +17 -4
- package/scripts/integrations/postgres/init.sql +11 -6
- package/scripts/likeCypress.ts +1 -1
- package/src/api/controllers/application.js +38 -31
- package/src/api/controllers/auth.js +4 -5
- package/src/api/controllers/automation.js +13 -23
- package/src/api/controllers/cloud.js +2 -3
- package/src/api/controllers/component.js +3 -4
- package/src/api/controllers/datasource.js +9 -11
- package/src/api/controllers/deploy/Deployment.js +3 -7
- package/src/api/controllers/deploy/index.js +20 -13
- package/src/api/controllers/dev.js +5 -5
- package/src/api/controllers/layout.js +3 -3
- package/src/api/controllers/metadata.js +4 -9
- package/src/api/controllers/migrations.js +13 -0
- package/src/api/controllers/permission.js +4 -4
- package/src/api/controllers/query/import/index.ts +4 -6
- package/src/api/controllers/query/import/tests/index.spec.js +2 -1
- package/src/api/controllers/query/index.js +11 -10
- package/src/api/controllers/role.js +5 -5
- package/src/api/controllers/routing.js +5 -6
- package/src/api/controllers/row/ExternalRequest.ts +67 -43
- package/src/api/controllers/row/external.js +27 -58
- package/src/api/controllers/row/internal.js +29 -44
- package/src/api/controllers/row/internalSearch.js +11 -13
- package/src/api/controllers/row/staticFormula.js +10 -11
- package/src/api/controllers/row/utils.js +7 -6
- package/src/api/controllers/screen.js +5 -7
- package/src/api/controllers/static/index.js +4 -4
- package/src/api/controllers/table/bulkFormula.js +13 -23
- package/src/api/controllers/table/external.js +7 -10
- package/src/api/controllers/table/index.js +5 -5
- package/src/api/controllers/table/internal.js +18 -21
- package/src/api/controllers/table/utils.js +29 -41
- package/src/api/controllers/user.js +17 -20
- package/src/api/controllers/view/index.js +8 -10
- package/src/api/controllers/view/utils.js +9 -4
- package/src/api/controllers/webhook.js +10 -8
- package/src/api/routes/index.js +2 -0
- package/src/api/routes/migrations.js +14 -0
- package/src/api/routes/tests/automation.spec.js +1 -0
- package/src/api/routes/tests/misc.spec.js +0 -1
- package/src/api/routes/tests/routing.spec.js +21 -12
- package/src/api/routes/tests/row.spec.js +7 -4
- package/src/api/routes/tests/utilities/TestFunctions.js +39 -17
- package/src/app.ts +18 -5
- package/src/automations/automationUtils.js +2 -3
- package/src/automations/steps/createRow.js +0 -1
- package/src/automations/steps/updateRow.js +1 -1
- package/src/automations/triggers.js +33 -31
- package/src/automations/utils.js +9 -5
- package/src/db/linkedRows/LinkController.js +3 -7
- package/src/db/linkedRows/index.js +16 -30
- package/src/db/linkedRows/linkUtils.js +6 -6
- package/src/db/tests/linkController.spec.js +0 -1
- package/src/db/tests/linkTests.spec.js +5 -6
- package/src/db/views/staticViews.js +8 -10
- package/src/environment.js +3 -1
- package/src/integrations/base/sql.ts +61 -22
- package/src/integrations/utils.ts +4 -1
- package/src/middleware/authorized.js +5 -3
- package/src/middleware/builder.js +2 -2
- package/src/middleware/currentapp.js +50 -46
- package/src/middleware/tests/authorized.spec.js +7 -2
- package/src/middleware/tests/currentapp.spec.js +6 -0
- package/src/middleware/usageQuota.js +2 -4
- package/src/migrations/functions/appUrls.ts +34 -0
- package/src/migrations/functions/quotas1.ts +20 -0
- package/src/migrations/functions/tests/appUrls.spec.js +29 -0
- package/src/migrations/{tests/usageQuotas/index.spec.js → functions/tests/quotas1.spec.js} +5 -5
- package/src/migrations/functions/tests/userEmailViewCasing.spec.js +25 -0
- package/src/migrations/functions/usageQuotas/index.ts +8 -0
- package/src/migrations/{usageQuotas/syncApps.js → functions/usageQuotas/syncApps.ts} +6 -6
- package/src/migrations/functions/usageQuotas/syncRows.ts +22 -0
- package/src/migrations/{tests/usageQuotas → functions/usageQuotas/tests}/syncApps.spec.js +4 -4
- package/src/migrations/{tests/usageQuotas → functions/usageQuotas/tests}/syncRows.spec.js +4 -4
- package/src/migrations/functions/userEmailViewCasing.ts +13 -0
- package/src/migrations/index.ts +56 -0
- package/src/module.d.ts +3 -0
- package/src/tests/utilities/TestConfiguration.js +73 -50
- package/src/threads/automation.js +17 -15
- package/src/threads/query.js +14 -21
- package/src/utilities/fileSystem/index.js +4 -3
- package/src/utilities/global.js +15 -12
- package/src/utilities/index.js +7 -17
- package/src/utilities/routing/index.js +5 -5
- package/src/utilities/rowProcessor/index.js +9 -23
- package/src/utilities/usageQuota/index.js +1 -0
- package/src/utilities/usageQuota/rows.js +1 -0
- package/src/utilities/users.js +3 -3
- package/src/utilities/workerRequests.js +4 -4
- package/tsconfig.json +2 -1
- package/coverage/lcov-report/migrations/usageQuotas/index.html +0 -141
- package/coverage/lcov-report/migrations/usageQuotas/syncRows.js.html +0 -143
- package/src/migrations/usageQuotas/index.js +0 -24
- package/src/migrations/usageQuotas/syncRows.js +0 -21
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">5.16% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>8/155</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">5.26% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>8/152</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -452,11 +452,10 @@
|
|
|
452
452
|
<a name='L393'></a><a href='#L393'>393</a>
|
|
453
453
|
<a name='L394'></a><a href='#L394'>394</a>
|
|
454
454
|
<a name='L395'></a><a href='#L395'>395</a>
|
|
455
|
-
<a name='L396'></a><a href='#L396'>396</a>
|
|
456
|
-
<
|
|
457
|
-
<
|
|
458
|
-
<span class="cline-any cline-yes">
|
|
459
|
-
<span class="cline-any cline-yes">36x</span>
|
|
455
|
+
<a name='L396'></a><a href='#L396'>396</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
|
|
456
|
+
<span class="cline-any cline-yes">38x</span>
|
|
457
|
+
<span class="cline-any cline-yes">38x</span>
|
|
458
|
+
<span class="cline-any cline-yes">38x</span>
|
|
460
459
|
<span class="cline-any cline-neutral"> </span>
|
|
461
460
|
<span class="cline-any cline-neutral"> </span>
|
|
462
461
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -465,7 +464,6 @@
|
|
|
465
464
|
<span class="cline-any cline-neutral"> </span>
|
|
466
465
|
<span class="cline-any cline-neutral"> </span>
|
|
467
466
|
<span class="cline-any cline-no"> </span>
|
|
468
|
-
<span class="cline-any cline-no"> </span>
|
|
469
467
|
<span class="cline-any cline-neutral"> </span>
|
|
470
468
|
<span class="cline-any cline-neutral"> </span>
|
|
471
469
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -698,6 +696,7 @@
|
|
|
698
696
|
<span class="cline-any cline-neutral"> </span>
|
|
699
697
|
<span class="cline-any cline-neutral"> </span>
|
|
700
698
|
<span class="cline-any cline-no"> </span>
|
|
699
|
+
<span class="cline-any cline-no"> </span>
|
|
701
700
|
<span class="cline-any cline-neutral"> </span>
|
|
702
701
|
<span class="cline-any cline-neutral"> </span>
|
|
703
702
|
<span class="cline-any cline-no"> </span>
|
|
@@ -711,7 +710,7 @@
|
|
|
711
710
|
<span class="cline-any cline-neutral"> </span>
|
|
712
711
|
<span class="cline-any cline-neutral"> </span>
|
|
713
712
|
<span class="cline-any cline-neutral"> </span>
|
|
714
|
-
<span class="cline-any cline-yes">
|
|
713
|
+
<span class="cline-any cline-yes">38x</span>
|
|
715
714
|
<span class="cline-any cline-no"> </span>
|
|
716
715
|
<span class="cline-any cline-neutral"> </span>
|
|
717
716
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -746,8 +745,7 @@
|
|
|
746
745
|
<span class="cline-any cline-neutral"> </span>
|
|
747
746
|
<span class="cline-any cline-neutral"> </span>
|
|
748
747
|
<span class="cline-any cline-neutral"> </span>
|
|
749
|
-
<span class="cline-any cline-
|
|
750
|
-
<span class="cline-any cline-yes">36x</span>
|
|
748
|
+
<span class="cline-any cline-yes">38x</span>
|
|
751
749
|
<span class="cline-any cline-no"> </span>
|
|
752
750
|
<span class="cline-any cline-no"> </span>
|
|
753
751
|
<span class="cline-any cline-no"> </span>
|
|
@@ -795,8 +793,7 @@
|
|
|
795
793
|
<span class="cline-any cline-neutral"> </span>
|
|
796
794
|
<span class="cline-any cline-neutral"> </span>
|
|
797
795
|
<span class="cline-any cline-neutral"> </span>
|
|
798
|
-
<span class="cline-any cline-
|
|
799
|
-
<span class="cline-any cline-yes">36x</span>
|
|
796
|
+
<span class="cline-any cline-yes">38x</span>
|
|
800
797
|
<span class="cline-any cline-no"> </span>
|
|
801
798
|
<span class="cline-any cline-no"> </span>
|
|
802
799
|
<span class="cline-any cline-no"> </span>
|
|
@@ -841,8 +838,7 @@
|
|
|
841
838
|
<span class="cline-any cline-neutral"> </span>
|
|
842
839
|
<span class="cline-any cline-neutral"> </span>
|
|
843
840
|
<span class="cline-any cline-neutral"> </span>
|
|
844
|
-
<span class="cline-any cline-
|
|
845
|
-
<span class="cline-any cline-yes">36x</span>
|
|
841
|
+
<span class="cline-any cline-yes">38x</span>
|
|
846
842
|
<span class="cline-any cline-no"> </span>
|
|
847
843
|
<span class="cline-any cline-no"> </span>
|
|
848
844
|
<span class="cline-any cline-no"> </span>
|
|
@@ -854,14 +850,14 @@
|
|
|
854
850
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const { SearchIndexes } = require("../../../db/utils")
|
|
855
851
|
const fetch = require("node-fetch")
|
|
856
852
|
const { getCouchUrl } = require("@budibase/backend-core/db")
|
|
853
|
+
const { getAppId } = require("@budibase/backend-core/context")
|
|
857
854
|
|
|
858
855
|
/**
|
|
859
856
|
* Class to build lucene query URLs.
|
|
860
857
|
* Optionally takes a base lucene query object.
|
|
861
858
|
*/
|
|
862
859
|
class QueryBuilder {
|
|
863
|
-
<span class="fstat-no" title="function not covered" > co</span>nstructor(
|
|
864
|
-
<span class="cstat-no" title="statement not covered" > this.appId = appId</span>
|
|
860
|
+
<span class="fstat-no" title="function not covered" > co</span>nstructor(base) {
|
|
865
861
|
<span class="cstat-no" title="statement not covered" > this.query = {</span>
|
|
866
862
|
string: {},
|
|
867
863
|
fuzzy: {},
|
|
@@ -1094,7 +1090,8 @@ class QueryBuilder {
|
|
|
1094
1090
|
}
|
|
1095
1091
|
|
|
1096
1092
|
<span class="fstat-no" title="function not covered" > as</span>ync run() {
|
|
1097
|
-
const
|
|
1093
|
+
const appId = <span class="cstat-no" title="statement not covered" >getAppId()</span>
|
|
1094
|
+
const url = <span class="cstat-no" title="statement not covered" >`${getCouchUrl()}/${appId}/_design/database/_search/${</span>
|
|
1098
1095
|
SearchIndexes.ROWS
|
|
1099
1096
|
}`
|
|
1100
1097
|
const body = <span class="cstat-no" title="statement not covered" >this.buildSearchBody()</span>
|
|
@@ -1131,7 +1128,6 @@ const runQuery = <span class="fstat-no" title="function not covered" >as</span>y
|
|
|
1131
1128
|
* Gets round the fixed limit of 200 results from a query by fetching as many
|
|
1132
1129
|
* pages as required and concatenating the results. This recursively operates
|
|
1133
1130
|
* until enough results have been found.
|
|
1134
|
-
* @param appId {string} The app ID to search
|
|
1135
1131
|
* @param query {object} The JSON query structure
|
|
1136
1132
|
* @param params {object} The search params including:
|
|
1137
1133
|
* tableId {string} The table ID to search
|
|
@@ -1144,7 +1140,7 @@ const runQuery = <span class="fstat-no" title="function not covered" >as</span>y
|
|
|
1144
1140
|
* rows {array|null} Current results in the recursive search
|
|
1145
1141
|
* @returns {Promise<*[]|*>}
|
|
1146
1142
|
*/
|
|
1147
|
-
const recursiveSearch = <span class="fstat-no" title="function not covered" >as</span>ync (
|
|
1143
|
+
const recursiveSearch = <span class="fstat-no" title="function not covered" >as</span>ync (query, params) => {
|
|
1148
1144
|
const bookmark = <span class="cstat-no" title="statement not covered" >params.bookmark</span>
|
|
1149
1145
|
const rows = <span class="cstat-no" title="statement not covered" >params.rows || []</span>
|
|
1150
1146
|
<span class="cstat-no" title="statement not covered" > if (rows.length >= params.limit) {</span>
|
|
@@ -1154,7 +1150,7 @@ const recursiveSearch = <span class="fstat-no" title="function not covered" >as<
|
|
|
1154
1150
|
<span class="cstat-no" title="statement not covered" > if (rows.length > params.limit - 200) {</span>
|
|
1155
1151
|
<span class="cstat-no" title="statement not covered" > pageSize = params.limit - rows.length</span>
|
|
1156
1152
|
}
|
|
1157
|
-
const page = <span class="cstat-no" title="statement not covered" >await new QueryBuilder(
|
|
1153
|
+
const page = <span class="cstat-no" title="statement not covered" >await new QueryBuilder(query)</span>
|
|
1158
1154
|
.setVersion(params.version)
|
|
1159
1155
|
.setTable(params.tableId)
|
|
1160
1156
|
.setBookmark(bookmark)
|
|
@@ -1174,14 +1170,13 @@ const recursiveSearch = <span class="fstat-no" title="function not covered" >as<
|
|
|
1174
1170
|
bookmark: page.bookmark,
|
|
1175
1171
|
rows: [...rows, ...page.rows],
|
|
1176
1172
|
}
|
|
1177
|
-
<span class="cstat-no" title="statement not covered" > return await recursiveSearch(
|
|
1173
|
+
<span class="cstat-no" title="statement not covered" > return await recursiveSearch(query, newParams)</span>
|
|
1178
1174
|
}
|
|
1179
1175
|
|
|
1180
1176
|
/**
|
|
1181
1177
|
* Performs a paginated search. A bookmark will be returned to allow the next
|
|
1182
1178
|
* page to be fetched. There is a max limit off 200 results per page in a
|
|
1183
1179
|
* paginated search.
|
|
1184
|
-
* @param appId {string} The app ID to search
|
|
1185
1180
|
* @param query {object} The JSON query structure
|
|
1186
1181
|
* @param params {object} The search params including:
|
|
1187
1182
|
* tableId {string} The table ID to search
|
|
@@ -1193,13 +1188,13 @@ const recursiveSearch = <span class="fstat-no" title="function not covered" >as<
|
|
|
1193
1188
|
* bookmark {string} The bookmark to resume from
|
|
1194
1189
|
* @returns {Promise<{hasNextPage: boolean, rows: *[]}>}
|
|
1195
1190
|
*/
|
|
1196
|
-
exports.paginatedSearch = <span class="fstat-no" title="function not covered" >as</span>ync (
|
|
1191
|
+
exports.paginatedSearch = <span class="fstat-no" title="function not covered" >as</span>ync (query, params) => {
|
|
1197
1192
|
let limit = <span class="cstat-no" title="statement not covered" >params.limit</span>
|
|
1198
1193
|
<span class="cstat-no" title="statement not covered" > if (limit == null || isNaN(limit) || limit < 0) {</span>
|
|
1199
1194
|
<span class="cstat-no" title="statement not covered" > limit = 50</span>
|
|
1200
1195
|
}
|
|
1201
1196
|
<span class="cstat-no" title="statement not covered" > limit = Math.min(limit, 200)</span>
|
|
1202
|
-
const search = <span class="cstat-no" title="statement not covered" >new QueryBuilder(
|
|
1197
|
+
const search = <span class="cstat-no" title="statement not covered" >new QueryBuilder(query)</span>
|
|
1203
1198
|
.setVersion(params.version)
|
|
1204
1199
|
.setTable(params.tableId)
|
|
1205
1200
|
.setSort(params.sort)
|
|
@@ -1228,7 +1223,6 @@ exports.paginatedSearch = <span class="fstat-no" title="function not covered" >a
|
|
|
1228
1223
|
* desired amount of results. There is a limit of 1000 results to avoid
|
|
1229
1224
|
* heavy performance hits, and to avoid client components breaking from
|
|
1230
1225
|
* handling too much data.
|
|
1231
|
-
* @param appId {string} The app ID to search
|
|
1232
1226
|
* @param query {object} The JSON query structure
|
|
1233
1227
|
* @param params {object} The search params including:
|
|
1234
1228
|
* tableId {string} The table ID to search
|
|
@@ -1239,13 +1233,13 @@ exports.paginatedSearch = <span class="fstat-no" title="function not covered" >a
|
|
|
1239
1233
|
* limit {number} The desired number of results
|
|
1240
1234
|
* @returns {Promise<{rows: *}>}
|
|
1241
1235
|
*/
|
|
1242
|
-
exports.fullSearch = <span class="fstat-no" title="function not covered" >as</span>ync (
|
|
1236
|
+
exports.fullSearch = <span class="fstat-no" title="function not covered" >as</span>ync (query, params) => {
|
|
1243
1237
|
let limit = <span class="cstat-no" title="statement not covered" >params.limit</span>
|
|
1244
1238
|
<span class="cstat-no" title="statement not covered" > if (limit == null || isNaN(limit) || limit < 0) {</span>
|
|
1245
1239
|
<span class="cstat-no" title="statement not covered" > limit = 1000</span>
|
|
1246
1240
|
}
|
|
1247
1241
|
<span class="cstat-no" title="statement not covered" > params.limit = Math.min(limit, 1000)</span>
|
|
1248
|
-
const rows = <span class="cstat-no" title="statement not covered" >await recursiveSearch(
|
|
1242
|
+
const rows = <span class="cstat-no" title="statement not covered" >await recursiveSearch(query, params)</span>
|
|
1249
1243
|
<span class="cstat-no" title="statement not covered" > return { rows }</span>
|
|
1250
1244
|
}
|
|
1251
1245
|
</pre></td></tr></table></pre>
|
|
@@ -1255,7 +1249,7 @@ exports.fullSearch = <span class="fstat-no" title="function not covered" >as</sp
|
|
|
1255
1249
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1256
1250
|
Code coverage generated by
|
|
1257
1251
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
1258
|
-
at Mon
|
|
1252
|
+
at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
|
|
1259
1253
|
</div>
|
|
1260
1254
|
</div>
|
|
1261
1255
|
<script src="../../../prettify.js"></script>
|
|
@@ -213,17 +213,16 @@
|
|
|
213
213
|
<a name='L154'></a><a href='#L154'>154</a>
|
|
214
214
|
<a name='L155'></a><a href='#L155'>155</a>
|
|
215
215
|
<a name='L156'></a><a href='#L156'>156</a>
|
|
216
|
-
<a name='L157'></a><a href='#L157'>157</a>
|
|
217
|
-
<a name='L158'></a><a href='#L158'>158</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">37x</span>
|
|
218
|
-
<span class="cline-any cline-yes">37x</span>
|
|
216
|
+
<a name='L157'></a><a href='#L157'>157</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
|
|
219
217
|
<span class="cline-any cline-neutral"> </span>
|
|
220
218
|
<span class="cline-any cline-neutral"> </span>
|
|
221
219
|
<span class="cline-any cline-neutral"> </span>
|
|
222
220
|
<span class="cline-any cline-neutral"> </span>
|
|
223
|
-
<span class="cline-any cline-yes">
|
|
224
|
-
<span class="cline-any cline-yes">
|
|
225
|
-
<span class="cline-any cline-yes">
|
|
226
|
-
<span class="cline-any cline-yes">
|
|
221
|
+
<span class="cline-any cline-yes">39x</span>
|
|
222
|
+
<span class="cline-any cline-yes">39x</span>
|
|
223
|
+
<span class="cline-any cline-yes">39x</span>
|
|
224
|
+
<span class="cline-any cline-yes">39x</span>
|
|
225
|
+
<span class="cline-any cline-yes">39x</span>
|
|
227
226
|
<span class="cline-any cline-neutral"> </span>
|
|
228
227
|
<span class="cline-any cline-neutral"> </span>
|
|
229
228
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -231,7 +230,7 @@
|
|
|
231
230
|
<span class="cline-any cline-neutral"> </span>
|
|
232
231
|
<span class="cline-any cline-neutral"> </span>
|
|
233
232
|
<span class="cline-any cline-neutral"> </span>
|
|
234
|
-
<span class="cline-any cline-yes">
|
|
233
|
+
<span class="cline-any cline-yes">39x</span>
|
|
235
234
|
<span class="cline-any cline-yes">77x</span>
|
|
236
235
|
<span class="cline-any cline-neutral"> </span>
|
|
237
236
|
<span class="cline-any cline-yes">77x</span>
|
|
@@ -285,7 +284,7 @@
|
|
|
285
284
|
<span class="cline-any cline-no"> </span>
|
|
286
285
|
<span class="cline-any cline-neutral"> </span>
|
|
287
286
|
<span class="cline-any cline-neutral"> </span>
|
|
288
|
-
<span class="cline-any cline-yes">
|
|
287
|
+
<span class="cline-any cline-yes">39x</span>
|
|
289
288
|
<span class="cline-any cline-no"> </span>
|
|
290
289
|
<span class="cline-any cline-neutral"> </span>
|
|
291
290
|
<span class="cline-any cline-no"> </span>
|
|
@@ -324,8 +323,7 @@
|
|
|
324
323
|
<span class="cline-any cline-neutral"> </span>
|
|
325
324
|
<span class="cline-any cline-neutral"> </span>
|
|
326
325
|
<span class="cline-any cline-neutral"> </span>
|
|
327
|
-
<span class="cline-any cline-yes">
|
|
328
|
-
<span class="cline-any cline-neutral"> </span>
|
|
326
|
+
<span class="cline-any cline-yes">39x</span>
|
|
329
327
|
<span class="cline-any cline-neutral"> </span>
|
|
330
328
|
<span class="cline-any cline-neutral"> </span>
|
|
331
329
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -371,8 +369,7 @@
|
|
|
371
369
|
<span class="cline-any cline-neutral"> </span>
|
|
372
370
|
<span class="cline-any cline-yes">73x</span>
|
|
373
371
|
<span class="cline-any cline-neutral"> </span>
|
|
374
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const
|
|
375
|
-
const { getRowParams } = require("../../../db/utils")
|
|
372
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const { getRowParams } = require("../../../db/utils")
|
|
376
373
|
const {
|
|
377
374
|
outputProcessing,
|
|
378
375
|
processAutoColumn,
|
|
@@ -381,6 +378,7 @@ const {
|
|
|
381
378
|
const { FieldTypes, FormulaTypes } = require("../../../constants")
|
|
382
379
|
const { isEqual } = require("lodash")
|
|
383
380
|
const { cloneDeep } = require("lodash/fp")
|
|
381
|
+
const { getAppDB } = require("@budibase/backend-core/context")
|
|
384
382
|
|
|
385
383
|
/**
|
|
386
384
|
* This function runs through a list of enriched rows, looks at the rows which
|
|
@@ -388,8 +386,8 @@ const { cloneDeep } = require("lodash/fp")
|
|
|
388
386
|
* updated.
|
|
389
387
|
* NOTE: this will only for affect static formulas.
|
|
390
388
|
*/
|
|
391
|
-
exports.updateRelatedFormula = async (
|
|
392
|
-
const db =
|
|
389
|
+
exports.updateRelatedFormula = async (table, enrichedRows) => {
|
|
390
|
+
const db = getAppDB()
|
|
393
391
|
// no formula to update, we're done
|
|
394
392
|
if (!table.relatedFormula) {
|
|
395
393
|
return
|
|
@@ -430,7 +428,7 @@ exports.updateRelatedFormula = async (appId, table, enrichedRows) => {
|
|
|
430
428
|
// re-enrich rows for all the related, don't update the related formula for them
|
|
431
429
|
<span class="cstat-no" title="statement not covered" > promises = promises.concat(</span>
|
|
432
430
|
relatedRows[tableId].map(<span class="fstat-no" title="function not covered" >re</span>lated =>
|
|
433
|
-
<span class="cstat-no" title="statement not covered" > exports.finaliseRow(
|
|
431
|
+
<span class="cstat-no" title="statement not covered" > exports.finaliseRow(relatedTable, related, {</span>
|
|
434
432
|
updateFormula: false,
|
|
435
433
|
})
|
|
436
434
|
)
|
|
@@ -442,8 +440,8 @@ exports.updateRelatedFormula = async (appId, table, enrichedRows) => {
|
|
|
442
440
|
<span class="cstat-no" title="statement not covered" > await Promise.all(promises)</span>
|
|
443
441
|
}
|
|
444
442
|
|
|
445
|
-
exports.updateAllFormulasInTable = <span class="fstat-no" title="function not covered" >as</span>ync
|
|
446
|
-
const db = <span class="cstat-no" title="statement not covered" >
|
|
443
|
+
exports.updateAllFormulasInTable = <span class="fstat-no" title="function not covered" >as</span>ync table => {
|
|
444
|
+
const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
|
|
447
445
|
// start by getting the raw rows (which will be written back to DB after update)
|
|
448
446
|
let rows = <span class="cstat-no" title="statement not covered" >(</span>
|
|
449
447
|
await db.allDocs(
|
|
@@ -454,7 +452,7 @@ exports.updateAllFormulasInTable = <span class="fstat-no" title="function not co
|
|
|
454
452
|
).rows.map(<span class="fstat-no" title="function not covered" >ro</span>w => <span class="cstat-no" title="statement not covered" >row.doc)</span>
|
|
455
453
|
// now enrich the rows, note the clone so that we have the base state of the
|
|
456
454
|
// rows so that we don't write any of the enriched information back
|
|
457
|
-
let enrichedRows = <span class="cstat-no" title="statement not covered" >await outputProcessing(
|
|
455
|
+
let enrichedRows = <span class="cstat-no" title="statement not covered" >await outputProcessing(table, cloneDeep(rows), {</span>
|
|
458
456
|
squash: false,
|
|
459
457
|
})
|
|
460
458
|
const updatedRows = <span class="cstat-no" title="statement not covered" >[]</span>
|
|
@@ -482,15 +480,14 @@ exports.updateAllFormulasInTable = <span class="fstat-no" title="function not co
|
|
|
482
480
|
* expects the row to be totally enriched/contain all relationships.
|
|
483
481
|
*/
|
|
484
482
|
exports.finaliseRow = async (
|
|
485
|
-
appId,
|
|
486
483
|
table,
|
|
487
484
|
row,
|
|
488
485
|
{ oldTable, updateFormula } = <span class="branch-0 cbranch-no" title="branch not covered" >{ updateFormula: true }</span>
|
|
489
486
|
) => {
|
|
490
|
-
const db =
|
|
487
|
+
const db = getAppDB()
|
|
491
488
|
row.type = "row"
|
|
492
489
|
// process the row before return, to include relationships
|
|
493
|
-
let enrichedRow = await outputProcessing(
|
|
490
|
+
let enrichedRow = await outputProcessing(table, cloneDeep(row), {
|
|
494
491
|
squash: false,
|
|
495
492
|
})
|
|
496
493
|
// use enriched row to generate formulas for saving, specifically only use as context
|
|
@@ -524,7 +521,7 @@ exports.finaliseRow = async (
|
|
|
524
521
|
enrichedRow = await processFormulas(table, enrichedRow, { dynamic: false })
|
|
525
522
|
// this updates the related formulas in other rows based on the relations to this row
|
|
526
523
|
if (updateFormula) {
|
|
527
|
-
await exports.updateRelatedFormula(
|
|
524
|
+
await exports.updateRelatedFormula(table, enrichedRow)
|
|
528
525
|
}
|
|
529
526
|
return { row: enrichedRow, table }
|
|
530
527
|
}
|
|
@@ -535,7 +532,7 @@ exports.finaliseRow = async (
|
|
|
535
532
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
536
533
|
Code coverage generated by
|
|
537
534
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
538
|
-
at Mon
|
|
535
|
+
at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
|
|
539
536
|
</div>
|
|
540
537
|
</div>
|
|
541
538
|
<script src="../../../prettify.js"></script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">69.
|
|
26
|
+
<span class="strong">69.81% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>37/53</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">69.23% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>36/52</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -147,16 +147,17 @@
|
|
|
147
147
|
<a name='L88'></a><a href='#L88'>88</a>
|
|
148
148
|
<a name='L89'></a><a href='#L89'>89</a>
|
|
149
149
|
<a name='L90'></a><a href='#L90'>90</a>
|
|
150
|
-
<a name='L91'></a><a href='#L91'>91</a
|
|
151
|
-
<span class="cline-any cline-yes">
|
|
152
|
-
<span class="cline-any cline-yes">
|
|
153
|
-
<span class="cline-any cline-yes">
|
|
154
|
-
<span class="cline-any cline-yes">
|
|
155
|
-
<span class="cline-any cline-yes">
|
|
156
|
-
<span class="cline-any cline-yes">
|
|
157
|
-
<span class="cline-any cline-yes">
|
|
158
|
-
<span class="cline-any cline-
|
|
159
|
-
<span class="cline-any cline-
|
|
150
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
151
|
+
<a name='L92'></a><a href='#L92'>92</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
|
|
152
|
+
<span class="cline-any cline-yes">39x</span>
|
|
153
|
+
<span class="cline-any cline-yes">39x</span>
|
|
154
|
+
<span class="cline-any cline-yes">39x</span>
|
|
155
|
+
<span class="cline-any cline-yes">39x</span>
|
|
156
|
+
<span class="cline-any cline-yes">39x</span>
|
|
157
|
+
<span class="cline-any cline-yes">39x</span>
|
|
158
|
+
<span class="cline-any cline-yes">39x</span>
|
|
159
|
+
<span class="cline-any cline-neutral"> </span>
|
|
160
|
+
<span class="cline-any cline-yes">39x</span>
|
|
160
161
|
<span class="cline-any cline-neutral"> </span>
|
|
161
162
|
<span class="cline-any cline-yes">2x</span>
|
|
162
163
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -166,14 +167,15 @@
|
|
|
166
167
|
<span class="cline-any cline-neutral"> </span>
|
|
167
168
|
<span class="cline-any cline-neutral"> </span>
|
|
168
169
|
<span class="cline-any cline-neutral"> </span>
|
|
169
|
-
<span class="cline-any cline-yes">
|
|
170
|
+
<span class="cline-any cline-yes">39x</span>
|
|
170
171
|
<span class="cline-any cline-yes">1x</span>
|
|
171
172
|
<span class="cline-any cline-yes">1x</span>
|
|
172
173
|
<span class="cline-any cline-yes">1x</span>
|
|
173
174
|
<span class="cline-any cline-yes">1x</span>
|
|
174
175
|
<span class="cline-any cline-neutral"> </span>
|
|
175
176
|
<span class="cline-any cline-neutral"> </span>
|
|
176
|
-
<span class="cline-any cline-yes">
|
|
177
|
+
<span class="cline-any cline-yes">39x</span>
|
|
178
|
+
<span class="cline-any cline-yes">19x</span>
|
|
177
179
|
<span class="cline-any cline-neutral"> </span>
|
|
178
180
|
<span class="cline-any cline-neutral"> </span>
|
|
179
181
|
<span class="cline-any cline-yes">19x</span>
|
|
@@ -191,7 +193,7 @@
|
|
|
191
193
|
<span class="cline-any cline-yes">16x</span>
|
|
192
194
|
<span class="cline-any cline-neutral"> </span>
|
|
193
195
|
<span class="cline-any cline-neutral"> </span>
|
|
194
|
-
<span class="cline-any cline-yes">
|
|
196
|
+
<span class="cline-any cline-yes">39x</span>
|
|
195
197
|
<span class="cline-any cline-yes">77x</span>
|
|
196
198
|
<span class="cline-any cline-yes">2x</span>
|
|
197
199
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -239,12 +241,12 @@
|
|
|
239
241
|
<span class="cline-any cline-neutral"> </span>
|
|
240
242
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const validateJs = require("validate.js")
|
|
241
243
|
const { cloneDeep } = require("lodash/fp")
|
|
242
|
-
const CouchDB = require("../../../db")
|
|
243
244
|
const { InternalTables } = require("../../../db/utils")
|
|
244
245
|
const userController = require("../user")
|
|
245
246
|
const { FieldTypes } = require("../../../constants")
|
|
246
247
|
const { processStringSync } = require("@budibase/string-templates")
|
|
247
248
|
const { makeExternalQuery } = require("../../../integrations/base/utils")
|
|
249
|
+
const { getAppDB } = require("@budibase/backend-core/context")
|
|
248
250
|
|
|
249
251
|
validateJs.extend(validateJs.validators.datetime, {
|
|
250
252
|
parse: function (value) {
|
|
@@ -256,14 +258,15 @@ validateJs.extend(validateJs.validators.datetime, {
|
|
|
256
258
|
},
|
|
257
259
|
})
|
|
258
260
|
|
|
259
|
-
exports.getDatasourceAndQuery = async
|
|
261
|
+
exports.getDatasourceAndQuery = async json => {
|
|
260
262
|
const datasourceId = json.endpoint.datasourceId
|
|
261
|
-
const db =
|
|
263
|
+
const db = getAppDB()
|
|
262
264
|
const datasource = await db.get(datasourceId)
|
|
263
265
|
return makeExternalQuery(datasource, json)
|
|
264
266
|
}
|
|
265
267
|
|
|
266
|
-
exports.findRow = async (ctx,
|
|
268
|
+
exports.findRow = async (ctx, tableId, rowId) => {
|
|
269
|
+
const db = getAppDB()
|
|
267
270
|
let row
|
|
268
271
|
// TODO remove special user case in future
|
|
269
272
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (tableId === InternalTables.USER_METADATA) {
|
|
@@ -281,9 +284,9 @@ exports.findRow = async (ctx, db, tableId, rowId) => {
|
|
|
281
284
|
return row
|
|
282
285
|
}
|
|
283
286
|
|
|
284
|
-
exports.validate = async ({
|
|
287
|
+
exports.validate = async ({ tableId, row, table }) => {
|
|
285
288
|
if (!table) {
|
|
286
|
-
const db =
|
|
289
|
+
const db = getAppDB()
|
|
287
290
|
table = await db.get(tableId)
|
|
288
291
|
}
|
|
289
292
|
const errors = {}
|
|
@@ -334,7 +337,7 @@ exports.validate = async ({ appId, tableId, row, table }) => {
|
|
|
334
337
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
335
338
|
Code coverage generated by
|
|
336
339
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
337
|
-
at Mon
|
|
340
|
+
at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
|
|
338
341
|
</div>
|
|
339
342
|
</div>
|
|
340
343
|
<script src="../../../prettify.js"></script>
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>21/21</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>21/21</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -103,14 +103,11 @@
|
|
|
103
103
|
<a name='L44'></a><a href='#L44'>44</a>
|
|
104
104
|
<a name='L45'></a><a href='#L45'>45</a>
|
|
105
105
|
<a name='L46'></a><a href='#L46'>46</a>
|
|
106
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
107
|
-
<
|
|
108
|
-
<
|
|
109
|
-
<span class="cline-any cline-yes">36x</span>
|
|
110
|
-
<span class="cline-any cline-yes">36x</span>
|
|
106
|
+
<a name='L47'></a><a href='#L47'>47</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
|
|
107
|
+
<span class="cline-any cline-yes">38x</span>
|
|
108
|
+
<span class="cline-any cline-yes">38x</span>
|
|
111
109
|
<span class="cline-any cline-neutral"> </span>
|
|
112
|
-
<span class="cline-any cline-yes">
|
|
113
|
-
<span class="cline-any cline-yes">1x</span>
|
|
110
|
+
<span class="cline-any cline-yes">38x</span>
|
|
114
111
|
<span class="cline-any cline-yes">1x</span>
|
|
115
112
|
<span class="cline-any cline-neutral"> </span>
|
|
116
113
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -127,8 +124,7 @@
|
|
|
127
124
|
<span class="cline-any cline-neutral"> </span>
|
|
128
125
|
<span class="cline-any cline-neutral"> </span>
|
|
129
126
|
<span class="cline-any cline-neutral"> </span>
|
|
130
|
-
<span class="cline-any cline-yes">
|
|
131
|
-
<span class="cline-any cline-yes">19x</span>
|
|
127
|
+
<span class="cline-any cline-yes">38x</span>
|
|
132
128
|
<span class="cline-any cline-yes">19x</span>
|
|
133
129
|
<span class="cline-any cline-yes">19x</span>
|
|
134
130
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -145,7 +141,7 @@
|
|
|
145
141
|
<span class="cline-any cline-neutral"> </span>
|
|
146
142
|
<span class="cline-any cline-neutral"> </span>
|
|
147
143
|
<span class="cline-any cline-neutral"> </span>
|
|
148
|
-
<span class="cline-any cline-yes">
|
|
144
|
+
<span class="cline-any cline-yes">38x</span>
|
|
149
145
|
<span class="cline-any cline-yes">1x</span>
|
|
150
146
|
<span class="cline-any cline-yes">1x</span>
|
|
151
147
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -153,13 +149,12 @@
|
|
|
153
149
|
<span class="cline-any cline-neutral"> </span>
|
|
154
150
|
<span class="cline-any cline-yes">1x</span>
|
|
155
151
|
<span class="cline-any cline-neutral"> </span>
|
|
156
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const
|
|
157
|
-
const { getScreenParams, generateScreenID } = require("../../db/utils")
|
|
152
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const { getScreenParams, generateScreenID } = require("../../db/utils")
|
|
158
153
|
const { AccessController } = require("@budibase/backend-core/roles")
|
|
154
|
+
const { getAppDB } = require("@budibase/backend-core/context")
|
|
159
155
|
|
|
160
156
|
exports.fetch = async ctx => {
|
|
161
|
-
const
|
|
162
|
-
const db = new CouchDB(appId)
|
|
157
|
+
const db = getAppDB()
|
|
163
158
|
|
|
164
159
|
const screens = (
|
|
165
160
|
await db.allDocs(
|
|
@@ -169,15 +164,14 @@ exports.fetch = async ctx => {
|
|
|
169
164
|
)
|
|
170
165
|
).rows.map(element => element.doc)
|
|
171
166
|
|
|
172
|
-
ctx.body = await new AccessController(
|
|
167
|
+
ctx.body = await new AccessController().checkScreensAccess(
|
|
173
168
|
screens,
|
|
174
169
|
ctx.user.role._id
|
|
175
170
|
)
|
|
176
171
|
}
|
|
177
172
|
|
|
178
173
|
exports.save = async ctx => {
|
|
179
|
-
const
|
|
180
|
-
const db = new CouchDB(appId)
|
|
174
|
+
const db = getAppDB()
|
|
181
175
|
let screen = ctx.request.body
|
|
182
176
|
|
|
183
177
|
if (!screen._id) {
|
|
@@ -194,7 +188,7 @@ exports.save = async ctx => {
|
|
|
194
188
|
}
|
|
195
189
|
|
|
196
190
|
exports.destroy = async ctx => {
|
|
197
|
-
const db =
|
|
191
|
+
const db = getAppDB()
|
|
198
192
|
await db.remove(ctx.params.screenId, ctx.params.screenRev)
|
|
199
193
|
ctx.body = {
|
|
200
194
|
message: "Screen deleted successfully",
|
|
@@ -208,7 +202,7 @@ exports.destroy = async ctx => {
|
|
|
208
202
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
209
203
|
Code coverage generated by
|
|
210
204
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
211
|
-
at Mon
|
|
205
|
+
at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
|
|
212
206
|
</div>
|
|
213
207
|
</div>
|
|
214
208
|
<script src="../../prettify.js"></script>
|
|
@@ -68,15 +68,15 @@
|
|
|
68
68
|
<a name='L9'></a><a href='#L9'>9</a>
|
|
69
69
|
<a name='L10'></a><a href='#L10'>10</a>
|
|
70
70
|
<a name='L11'></a><a href='#L11'>11</a>
|
|
71
|
-
<a name='L12'></a><a href='#L12'>12</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">
|
|
71
|
+
<a name='L12'></a><a href='#L12'>12</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
|
|
72
72
|
<span class="cline-any cline-neutral"> </span>
|
|
73
|
-
<span class="cline-any cline-yes">
|
|
73
|
+
<span class="cline-any cline-yes">39x</span>
|
|
74
74
|
<span class="cline-any cline-no"> </span>
|
|
75
75
|
<span class="cline-any cline-no"> </span>
|
|
76
76
|
<span class="cline-any cline-no"> </span>
|
|
77
77
|
<span class="cline-any cline-neutral"> </span>
|
|
78
78
|
<span class="cline-any cline-neutral"> </span>
|
|
79
|
-
<span class="cline-any cline-yes">
|
|
79
|
+
<span class="cline-any cline-yes">39x</span>
|
|
80
80
|
<span class="cline-any cline-no"> </span>
|
|
81
81
|
<span class="cline-any cline-neutral"> </span>
|
|
82
82
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const ScriptRunner = require("../../utilities/scriptRunner")
|
|
@@ -97,7 +97,7 @@ exports.save = <span class="fstat-no" title="function not covered" >as</span>ync
|
|
|
97
97
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
98
98
|
Code coverage generated by
|
|
99
99
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
100
|
-
at Mon
|
|
100
|
+
at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
|
|
101
101
|
</div>
|
|
102
102
|
</div>
|
|
103
103
|
<script src="../../prettify.js"></script>
|