@budibase/server 1.0.49 → 1.0.50-alpha.0
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.c0cc369d.css +6 -0
- package/builder/assets/{index.2c37968e.js → index.ff2bad21.js} +252 -249
- package/builder/assets/{vendor.f9faf6ab.js → vendor.5ad9695a.js} +202 -106
- package/builder/index.html +3 -3
- package/coverage/clover.xml +3105 -2814
- package/coverage/coverage-final.json +106 -101
- 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 +257 -152
- package/coverage/lcov-report/api/controllers/auth.js.html +22 -13
- 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 +13 -16
- package/coverage/lcov-report/api/controllers/datasource.js.html +81 -51
- package/coverage/lcov-report/api/controllers/dev.js.html +6 -6
- package/coverage/lcov-report/api/controllers/index.html +78 -78
- 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/api/controllers/migrations.js.html +119 -0
- 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 +55 -40
- package/coverage/lcov-report/api/controllers/row/index.js.html +26 -26
- package/coverage/lcov-report/api/controllers/row/internal.js.html +118 -226
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +52 -34
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +548 -0
- package/coverage/lcov-report/api/controllers/row/utils.js.html +47 -62
- 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 +599 -0
- package/coverage/lcov-report/api/controllers/table/external.js.html +25 -34
- package/coverage/lcov-report/api/controllers/table/index.html +58 -43
- package/coverage/lcov-report/api/controllers/table/index.js.html +58 -82
- package/coverage/lcov-report/api/controllers/table/internal.js.html +81 -66
- package/coverage/lcov-report/api/controllers/table/utils.js.html +218 -110
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +79 -76
- 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 +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 +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 +13 -22
- 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 +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 +5 -5
- package/coverage/lcov-report/constants/index.js.html +53 -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 +15 -15
- package/coverage/lcov-report/db/index.js.html +3 -3
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +25 -37
- package/coverage/lcov-report/db/linkedRows/index.html +27 -27
- package/coverage/lcov-report/db/linkedRows/index.js.html +51 -96
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +42 -42
- package/coverage/lcov-report/db/newid.js.html +4 -4
- package/coverage/lcov-report/db/utils.js.html +87 -87
- 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 +135 -120
- 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 +173 -65
- package/coverage/lcov-report/middleware/builder.js.html +10 -10
- package/coverage/lcov-report/middleware/currentapp.js.html +95 -83
- package/coverage/lcov-report/middleware/index.html +38 -38
- 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 +281 -53
- 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 +26 -26
- package/coverage/lcov-report/threads/index.js.html +10 -10
- package/coverage/lcov-report/threads/query.js.html +39 -24
- 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 +58 -49
- package/coverage/lcov-report/utilities/index.html +37 -37
- package/coverage/lcov-report/utilities/index.js.html +43 -73
- 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 +27 -27
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +97 -103
- 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 +359 -0
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +305 -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 +9 -9
- package/coverage/lcov-report/utilities/workerRequests.js.html +43 -112
- package/coverage/lcov.info +5010 -4425
- package/dist/api/controllers/application.js +90 -60
- package/dist/api/controllers/auth.js +8 -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 +20 -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 +55 -93
- package/dist/api/controllers/row/internalSearch.js +23 -17
- package/dist/api/controllers/row/staticFormula.js +147 -0
- package/dist/api/controllers/row/utils.js +13 -14
- package/dist/api/controllers/screen.js +5 -7
- package/dist/api/controllers/static/index.js +62 -16
- package/dist/api/controllers/table/bulkFormula.js +159 -0
- package/dist/api/controllers/table/external.js +7 -10
- package/dist/api/controllers/table/index.js +16 -13
- package/dist/api/controllers/table/internal.js +22 -16
- package/dist/api/controllers/table/utils.js +62 -35
- package/dist/api/controllers/user.js +43 -43
- 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 -2
- package/dist/api/routes/migrations.js +9 -0
- package/dist/api/routes/static.js +2 -1
- 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 +3 -5
- package/dist/automations/steps/deleteRow.js +1 -4
- package/dist/automations/steps/updateRow.js +1 -1
- package/dist/automations/triggers.js +27 -25
- package/dist/automations/utils.js +10 -5
- package/dist/constants/index.js +7 -0
- package/dist/db/linkedRows/LinkController.js +3 -7
- package/dist/db/linkedRows/index.js +16 -27
- package/dist/db/linkedRows/linkUtils.js +6 -6
- package/dist/db/views/staticViews.js +9 -10
- package/dist/definitions/datasource.js +1 -0
- package/dist/environment.js +4 -1
- package/dist/integrations/base/sql.js +62 -21
- package/dist/integrations/googlesheets.js +340 -0
- package/dist/integrations/index.js +3 -0
- package/dist/integrations/utils.js +60 -9
- package/dist/middleware/authorized.js +57 -30
- package/dist/middleware/builder.js +2 -2
- package/dist/middleware/currentapp.js +41 -37
- package/dist/middleware/usageQuota.js +82 -15
- package/dist/migrations/functions/appUrls.js +46 -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 +29 -0
- package/dist/migrations/functions/usageQuotas/syncRows.js +33 -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 +80 -50
- package/dist/threads/automation.js +13 -11
- package/dist/threads/query.js +15 -11
- 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 +23 -17
- package/dist/utilities/rowProcessor/utils.js +14 -4
- package/dist/utilities/{usageQuota.js → usageQuota/index.js} +45 -31
- package/dist/utilities/usageQuota/rows.js +78 -0
- package/dist/utilities/usageQuota/usageQuoteReset.js +16 -0
- package/dist/utilities/users.js +3 -3
- package/dist/utilities/workerRequests.js +4 -24
- package/nodemon.json +1 -1
- package/package.json +9 -6
- 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 +85 -50
- package/src/api/controllers/auth.js +8 -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 +21 -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 +54 -90
- package/src/api/controllers/row/internalSearch.js +23 -17
- package/src/api/controllers/row/staticFormula.js +156 -0
- package/src/api/controllers/row/utils.js +13 -18
- package/src/api/controllers/screen.js +5 -7
- package/src/api/controllers/static/index.js +66 -15
- package/src/api/controllers/table/bulkFormula.js +173 -0
- package/src/api/controllers/table/external.js +7 -10
- package/src/api/controllers/table/index.js +20 -28
- package/src/api/controllers/table/internal.js +24 -19
- package/src/api/controllers/table/utils.js +78 -42
- package/src/api/controllers/user.js +46 -45
- 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 -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/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/static.spec.js +98 -0
- 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 +2 -5
- package/src/automations/steps/deleteRow.js +1 -4
- package/src/automations/steps/updateRow.js +1 -1
- package/src/automations/triggers.js +33 -31
- package/src/automations/utils.js +9 -5
- package/src/constants/index.js +9 -0
- package/src/db/linkedRows/LinkController.js +3 -7
- package/src/db/linkedRows/index.js +16 -31
- 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/definitions/common.ts +3 -0
- package/src/definitions/datasource.ts +3 -0
- package/src/environment.js +4 -1
- package/src/integrations/base/sql.ts +75 -29
- 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 +75 -12
- package/src/middleware/authorized.js +66 -30
- package/src/middleware/builder.js +2 -2
- package/src/middleware/currentapp.js +50 -46
- package/src/middleware/tests/authorized.spec.js +13 -6
- package/src/middleware/tests/currentapp.spec.js +6 -0
- package/src/middleware/tests/usageQuota.spec.js +18 -24
- package/src/middleware/usageQuota.js +93 -17
- 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/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 +22 -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/module.d.ts +3 -0
- package/src/tests/utilities/TestConfiguration.js +82 -55
- package/src/threads/automation.js +17 -15
- package/src/threads/query.js +17 -12
- 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 +25 -27
- package/src/utilities/rowProcessor/utils.js +23 -7
- package/src/utilities/tests/usageQuota/usageQuota.spec.js +72 -0
- package/src/utilities/usageQuota/index.js +93 -0
- package/src/utilities/usageQuota/rows.js +75 -0
- package/src/utilities/usageQuota/usageQuoteReset.js +18 -0
- package/src/utilities/users.js +3 -3
- package/src/utilities/workerRequests.js +4 -27
- package/tsconfig.json +2 -1
- 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,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">96.
|
|
26
|
+
<span class="strong">96.02% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>145/151</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">96.
|
|
47
|
+
<span class="strong">96.66% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>145/150</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -521,19 +521,15 @@
|
|
|
521
521
|
<a name='L462'></a><a href='#L462'>462</a>
|
|
522
522
|
<a name='L463'></a><a href='#L463'>463</a>
|
|
523
523
|
<a name='L464'></a><a href='#L464'>464</a>
|
|
524
|
-
<a name='L465'></a><a href='#L465'>465</a>
|
|
525
|
-
<a name='L466'></a><a href='#L466'>466</a>
|
|
526
|
-
<a name='L467'></a><a href='#L467'>467</a>
|
|
527
|
-
<a name='L468'></a><a href='#L468'>468</a>
|
|
528
|
-
<a name='L469'></a><a href='#L469'>469</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
|
|
529
|
-
<span class="cline-any cline-yes">34x</span>
|
|
524
|
+
<a name='L465'></a><a href='#L465'>465</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
|
|
530
525
|
<span class="cline-any cline-neutral"> </span>
|
|
531
526
|
<span class="cline-any cline-neutral"> </span>
|
|
532
527
|
<span class="cline-any cline-neutral"> </span>
|
|
533
528
|
<span class="cline-any cline-neutral"> </span>
|
|
534
|
-
<span class="cline-any cline-yes">
|
|
535
|
-
<span class="cline-any cline-yes">
|
|
536
|
-
<span class="cline-any cline-yes">
|
|
529
|
+
<span class="cline-any cline-yes">39x</span>
|
|
530
|
+
<span class="cline-any cline-yes">39x</span>
|
|
531
|
+
<span class="cline-any cline-yes">39x</span>
|
|
532
|
+
<span class="cline-any cline-yes">39x</span>
|
|
537
533
|
<span class="cline-any cline-neutral"> </span>
|
|
538
534
|
<span class="cline-any cline-neutral"> </span>
|
|
539
535
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -580,12 +576,11 @@
|
|
|
580
576
|
<span class="cline-any cline-neutral"> </span>
|
|
581
577
|
<span class="cline-any cline-neutral"> </span>
|
|
582
578
|
<span class="cline-any cline-neutral"> </span>
|
|
583
|
-
<span class="cline-any cline-yes">
|
|
584
|
-
<span class="cline-any cline-yes">
|
|
585
|
-
<span class="cline-any cline-yes">
|
|
586
|
-
<span class="cline-any cline-yes">
|
|
587
|
-
<span class="cline-any cline-yes">
|
|
588
|
-
<span class="cline-any cline-yes">187x</span>
|
|
579
|
+
<span class="cline-any cline-yes">192x</span>
|
|
580
|
+
<span class="cline-any cline-yes">192x</span>
|
|
581
|
+
<span class="cline-any cline-yes">192x</span>
|
|
582
|
+
<span class="cline-any cline-yes">192x</span>
|
|
583
|
+
<span class="cline-any cline-yes">192x</span>
|
|
589
584
|
<span class="cline-any cline-neutral"> </span>
|
|
590
585
|
<span class="cline-any cline-neutral"> </span>
|
|
591
586
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -609,16 +604,16 @@
|
|
|
609
604
|
<span class="cline-any cline-neutral"> </span>
|
|
610
605
|
<span class="cline-any cline-neutral"> </span>
|
|
611
606
|
<span class="cline-any cline-neutral"> </span>
|
|
612
|
-
<span class="cline-any cline-yes">
|
|
607
|
+
<span class="cline-any cline-yes">185x</span>
|
|
613
608
|
<span class="cline-any cline-yes">5x</span>
|
|
614
609
|
<span class="cline-any cline-neutral"> </span>
|
|
615
|
-
<span class="cline-any cline-yes">
|
|
616
|
-
<span class="cline-any cline-yes">
|
|
617
|
-
<span class="cline-any cline-yes">
|
|
610
|
+
<span class="cline-any cline-yes">185x</span>
|
|
611
|
+
<span class="cline-any cline-yes">460x</span>
|
|
612
|
+
<span class="cline-any cline-yes">460x</span>
|
|
618
613
|
<span class="cline-any cline-yes">41x</span>
|
|
619
614
|
<span class="cline-any cline-neutral"> </span>
|
|
620
615
|
<span class="cline-any cline-neutral"> </span>
|
|
621
|
-
<span class="cline-any cline-yes">
|
|
616
|
+
<span class="cline-any cline-yes">144x</span>
|
|
622
617
|
<span class="cline-any cline-neutral"> </span>
|
|
623
618
|
<span class="cline-any cline-neutral"> </span>
|
|
624
619
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -636,7 +631,6 @@
|
|
|
636
631
|
<span class="cline-any cline-neutral"> </span>
|
|
637
632
|
<span class="cline-any cline-neutral"> </span>
|
|
638
633
|
<span class="cline-any cline-neutral"> </span>
|
|
639
|
-
<span class="cline-any cline-neutral"> </span>
|
|
640
634
|
<span class="cline-any cline-yes">9x</span>
|
|
641
635
|
<span class="cline-any cline-neutral"> </span>
|
|
642
636
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -647,7 +641,6 @@
|
|
|
647
641
|
<span class="cline-any cline-neutral"> </span>
|
|
648
642
|
<span class="cline-any cline-neutral"> </span>
|
|
649
643
|
<span class="cline-any cline-neutral"> </span>
|
|
650
|
-
<span class="cline-any cline-neutral"> </span>
|
|
651
644
|
<span class="cline-any cline-yes">22x</span>
|
|
652
645
|
<span class="cline-any cline-yes">22x</span>
|
|
653
646
|
<span class="cline-any cline-yes">82x</span>
|
|
@@ -763,7 +756,6 @@
|
|
|
763
756
|
<span class="cline-any cline-neutral"> </span>
|
|
764
757
|
<span class="cline-any cline-neutral"> </span>
|
|
765
758
|
<span class="cline-any cline-neutral"> </span>
|
|
766
|
-
<span class="cline-any cline-neutral"> </span>
|
|
767
759
|
<span class="cline-any cline-yes">1x</span>
|
|
768
760
|
<span class="cline-any cline-neutral"> </span>
|
|
769
761
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -992,9 +984,8 @@
|
|
|
992
984
|
<span class="cline-any cline-neutral"> </span>
|
|
993
985
|
<span class="cline-any cline-neutral"> </span>
|
|
994
986
|
<span class="cline-any cline-neutral"> </span>
|
|
995
|
-
<span class="cline-any cline-yes">
|
|
996
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const
|
|
997
|
-
const { IncludeDocs, getLinkDocuments } = require("./linkUtils")
|
|
987
|
+
<span class="cline-any cline-yes">39x</span>
|
|
988
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const { IncludeDocs, getLinkDocuments } = require("./linkUtils")
|
|
998
989
|
const {
|
|
999
990
|
generateLinkID,
|
|
1000
991
|
InternalTables,
|
|
@@ -1002,6 +993,7 @@ const {
|
|
|
1002
993
|
} = require("../utils")
|
|
1003
994
|
const Sentry = require("@sentry/node")
|
|
1004
995
|
const { FieldTypes, RelationshipTypes } = require("../../constants")
|
|
996
|
+
const { getAppDB } = require("@budibase/backend-core/context")
|
|
1005
997
|
|
|
1006
998
|
/**
|
|
1007
999
|
* Creates a new link document structure which can be put to the database. It is important to
|
|
@@ -1047,9 +1039,8 @@ function LinkDocument(
|
|
|
1047
1039
|
}
|
|
1048
1040
|
|
|
1049
1041
|
class LinkController {
|
|
1050
|
-
constructor({
|
|
1051
|
-
this.
|
|
1052
|
-
this._db = new CouchDB(appId)
|
|
1042
|
+
constructor({ tableId, row, table, oldTable }) {
|
|
1043
|
+
this._db = getAppDB()
|
|
1053
1044
|
this._tableId = tableId
|
|
1054
1045
|
this._row = row
|
|
1055
1046
|
this._table = table
|
|
@@ -1094,7 +1085,6 @@ class LinkController {
|
|
|
1094
1085
|
*/
|
|
1095
1086
|
getRowLinkDocs(rowId) {
|
|
1096
1087
|
return getLinkDocuments({
|
|
1097
|
-
appId: this._appId,
|
|
1098
1088
|
tableId: this._tableId,
|
|
1099
1089
|
rowId,
|
|
1100
1090
|
includeDocs: IncludeDocs.INCLUDE,
|
|
@@ -1106,7 +1096,6 @@ class LinkController {
|
|
|
1106
1096
|
*/
|
|
1107
1097
|
getTableLinkDocs() {
|
|
1108
1098
|
return getLinkDocuments({
|
|
1109
|
-
appId: this._appId,
|
|
1110
1099
|
tableId: this._tableId,
|
|
1111
1100
|
includeDocs: IncludeDocs.INCLUDE,
|
|
1112
1101
|
})
|
|
@@ -1225,7 +1214,6 @@ class LinkController {
|
|
|
1225
1214
|
if (linkedSchema.relationshipType === RelationshipTypes.ONE_TO_MANY) {
|
|
1226
1215
|
let links = (
|
|
1227
1216
|
await getLinkDocuments({
|
|
1228
|
-
appId: this._appId,
|
|
1229
1217
|
tableId: field.tableId,
|
|
1230
1218
|
rowId: linkId,
|
|
1231
1219
|
includeDocs: IncludeDocs.EXCLUDE,
|
|
@@ -1468,7 +1456,7 @@ module.exports = LinkController
|
|
|
1468
1456
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1469
1457
|
Code coverage generated by
|
|
1470
1458
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
1471
|
-
at
|
|
1459
|
+
at Mon Feb 07 2022 20:42:11 GMT+0000 (Coordinated Universal Time)
|
|
1472
1460
|
</div>
|
|
1473
1461
|
</div>
|
|
1474
1462
|
<script src="../../prettify.js"></script>
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">95.75% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>293/306</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">84.32% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>113/134</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">95.93% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>283/295</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -74,47 +74,47 @@
|
|
|
74
74
|
</thead>
|
|
75
75
|
<tbody><tr>
|
|
76
76
|
<td class="file high" data-value="LinkController.js"><a href="LinkController.js.html">LinkController.js</a></td>
|
|
77
|
-
<td data-value="96.
|
|
77
|
+
<td data-value="96.02" class="pic high">
|
|
78
78
|
<div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
|
|
79
79
|
</td>
|
|
80
|
-
<td data-value="96.
|
|
81
|
-
<td data-value="
|
|
80
|
+
<td data-value="96.02" class="pct high">96.02%</td>
|
|
81
|
+
<td data-value="151" class="abs high">145/151</td>
|
|
82
82
|
<td data-value="88.23" class="pct high">88.23%</td>
|
|
83
83
|
<td data-value="68" class="abs high">60/68</td>
|
|
84
84
|
<td data-value="88.88" class="pct high">88.88%</td>
|
|
85
85
|
<td data-value="27" class="abs high">24/27</td>
|
|
86
|
-
<td data-value="96.
|
|
87
|
-
<td data-value="
|
|
86
|
+
<td data-value="96.66" class="pct high">96.66%</td>
|
|
87
|
+
<td data-value="150" class="abs high">145/150</td>
|
|
88
88
|
</tr>
|
|
89
89
|
|
|
90
90
|
<tr>
|
|
91
91
|
<td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
|
|
92
|
-
<td data-value="96.
|
|
92
|
+
<td data-value="96.9" class="pic high">
|
|
93
93
|
<div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
|
|
94
94
|
</td>
|
|
95
|
-
<td data-value="96.
|
|
96
|
-
<td data-value="
|
|
97
|
-
<td data-value="
|
|
98
|
-
<td data-value="
|
|
95
|
+
<td data-value="96.9" class="pct high">96.9%</td>
|
|
96
|
+
<td data-value="97" class="abs high">94/97</td>
|
|
97
|
+
<td data-value="82.5" class="pct high">82.5%</td>
|
|
98
|
+
<td data-value="40" class="abs high">33/40</td>
|
|
99
99
|
<td data-value="100" class="pct high">100%</td>
|
|
100
100
|
<td data-value="20" class="abs high">20/20</td>
|
|
101
|
-
<td data-value="
|
|
102
|
-
<td data-value="
|
|
101
|
+
<td data-value="96.7" class="pct high">96.7%</td>
|
|
102
|
+
<td data-value="91" class="abs high">88/91</td>
|
|
103
103
|
</tr>
|
|
104
104
|
|
|
105
105
|
<tr>
|
|
106
106
|
<td class="file high" data-value="linkUtils.js"><a href="linkUtils.js.html">linkUtils.js</a></td>
|
|
107
|
-
<td data-value="
|
|
108
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
107
|
+
<td data-value="93.1" class="pic high">
|
|
108
|
+
<div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
|
|
109
109
|
</td>
|
|
110
|
-
<td data-value="
|
|
111
|
-
<td data-value="
|
|
112
|
-
<td data-value="
|
|
113
|
-
<td data-value="26" class="abs
|
|
110
|
+
<td data-value="93.1" class="pct high">93.1%</td>
|
|
111
|
+
<td data-value="58" class="abs high">54/58</td>
|
|
112
|
+
<td data-value="76.92" class="pct medium">76.92%</td>
|
|
113
|
+
<td data-value="26" class="abs medium">20/26</td>
|
|
114
114
|
<td data-value="100" class="pct high">100%</td>
|
|
115
115
|
<td data-value="13" class="abs high">13/13</td>
|
|
116
|
-
<td data-value="
|
|
117
|
-
<td data-value="
|
|
116
|
+
<td data-value="92.59" class="pct high">92.59%</td>
|
|
117
|
+
<td data-value="54" class="abs high">50/54</td>
|
|
118
118
|
</tr>
|
|
119
119
|
|
|
120
120
|
</tbody>
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
126
126
|
Code coverage generated by
|
|
127
127
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
128
|
-
at
|
|
128
|
+
at Mon Feb 07 2022 20:42:11 GMT+0000 (Coordinated Universal Time)
|
|
129
129
|
</div>
|
|
130
130
|
</div>
|
|
131
131
|
<script src="../../prettify.js"></script>
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">96.
|
|
26
|
+
<span class="strong">96.9% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>94/97</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">82.5% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>33/40</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">96.7% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>88/91</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -268,22 +268,7 @@
|
|
|
268
268
|
<a name='L209'></a><a href='#L209'>209</a>
|
|
269
269
|
<a name='L210'></a><a href='#L210'>210</a>
|
|
270
270
|
<a name='L211'></a><a href='#L211'>211</a>
|
|
271
|
-
<a name='L212'></a><a href='#L212'>212</a>
|
|
272
|
-
<a name='L213'></a><a href='#L213'>213</a>
|
|
273
|
-
<a name='L214'></a><a href='#L214'>214</a>
|
|
274
|
-
<a name='L215'></a><a href='#L215'>215</a>
|
|
275
|
-
<a name='L216'></a><a href='#L216'>216</a>
|
|
276
|
-
<a name='L217'></a><a href='#L217'>217</a>
|
|
277
|
-
<a name='L218'></a><a href='#L218'>218</a>
|
|
278
|
-
<a name='L219'></a><a href='#L219'>219</a>
|
|
279
|
-
<a name='L220'></a><a href='#L220'>220</a>
|
|
280
|
-
<a name='L221'></a><a href='#L221'>221</a>
|
|
281
|
-
<a name='L222'></a><a href='#L222'>222</a>
|
|
282
|
-
<a name='L223'></a><a href='#L223'>223</a>
|
|
283
|
-
<a name='L224'></a><a href='#L224'>224</a>
|
|
284
|
-
<a name='L225'></a><a href='#L225'>225</a>
|
|
285
|
-
<a name='L226'></a><a href='#L226'>226</a>
|
|
286
|
-
<a name='L227'></a><a href='#L227'>227</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
|
|
271
|
+
<a name='L212'></a><a href='#L212'>212</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
|
|
287
272
|
<span class="cline-any cline-neutral"> </span>
|
|
288
273
|
<span class="cline-any cline-neutral"> </span>
|
|
289
274
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -292,21 +277,21 @@
|
|
|
292
277
|
<span class="cline-any cline-neutral"> </span>
|
|
293
278
|
<span class="cline-any cline-neutral"> </span>
|
|
294
279
|
<span class="cline-any cline-neutral"> </span>
|
|
295
|
-
<span class="cline-any cline-yes">
|
|
296
|
-
<span class="cline-any cline-yes">
|
|
297
|
-
<span class="cline-any cline-yes">
|
|
298
|
-
<span class="cline-any cline-yes">
|
|
299
|
-
<span class="cline-any cline-yes">
|
|
300
|
-
<span class="cline-any cline-yes">
|
|
301
|
-
<span class="cline-any cline-yes">
|
|
302
|
-
<span class="cline-any cline-yes">
|
|
280
|
+
<span class="cline-any cline-yes">39x</span>
|
|
281
|
+
<span class="cline-any cline-yes">39x</span>
|
|
282
|
+
<span class="cline-any cline-yes">39x</span>
|
|
283
|
+
<span class="cline-any cline-yes">39x</span>
|
|
284
|
+
<span class="cline-any cline-yes">39x</span>
|
|
285
|
+
<span class="cline-any cline-yes">39x</span>
|
|
286
|
+
<span class="cline-any cline-yes">39x</span>
|
|
287
|
+
<span class="cline-any cline-yes">39x</span>
|
|
303
288
|
<span class="cline-any cline-neutral"> </span>
|
|
304
289
|
<span class="cline-any cline-neutral"> </span>
|
|
305
290
|
<span class="cline-any cline-neutral"> </span>
|
|
306
291
|
<span class="cline-any cline-neutral"> </span>
|
|
307
292
|
<span class="cline-any cline-neutral"> </span>
|
|
308
293
|
<span class="cline-any cline-neutral"> </span>
|
|
309
|
-
<span class="cline-any cline-yes">
|
|
294
|
+
<span class="cline-any cline-yes">39x</span>
|
|
310
295
|
<span class="cline-any cline-neutral"> </span>
|
|
311
296
|
<span class="cline-any cline-neutral"> </span>
|
|
312
297
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -315,11 +300,11 @@
|
|
|
315
300
|
<span class="cline-any cline-neutral"> </span>
|
|
316
301
|
<span class="cline-any cline-neutral"> </span>
|
|
317
302
|
<span class="cline-any cline-neutral"> </span>
|
|
318
|
-
<span class="cline-any cline-yes">
|
|
303
|
+
<span class="cline-any cline-yes">39x</span>
|
|
319
304
|
<span class="cline-any cline-neutral"> </span>
|
|
320
|
-
<span class="cline-any cline-yes">
|
|
321
|
-
<span class="cline-any cline-yes">
|
|
322
|
-
<span class="cline-any cline-yes">
|
|
305
|
+
<span class="cline-any cline-yes">39x</span>
|
|
306
|
+
<span class="cline-any cline-yes">39x</span>
|
|
307
|
+
<span class="cline-any cline-yes">39x</span>
|
|
323
308
|
<span class="cline-any cline-neutral"> </span>
|
|
324
309
|
<span class="cline-any cline-neutral"> </span>
|
|
325
310
|
<span class="cline-any cline-yes">30x</span>
|
|
@@ -348,7 +333,6 @@
|
|
|
348
333
|
<span class="cline-any cline-neutral"> </span>
|
|
349
334
|
<span class="cline-any cline-neutral"> </span>
|
|
350
335
|
<span class="cline-any cline-neutral"> </span>
|
|
351
|
-
<span class="cline-any cline-neutral"> </span>
|
|
352
336
|
<span class="cline-any cline-yes">30x</span>
|
|
353
337
|
<span class="cline-any cline-neutral"> </span>
|
|
354
338
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -388,25 +372,21 @@
|
|
|
388
372
|
<span class="cline-any cline-neutral"> </span>
|
|
389
373
|
<span class="cline-any cline-neutral"> </span>
|
|
390
374
|
<span class="cline-any cline-neutral"> </span>
|
|
375
|
+
<span class="cline-any cline-yes">39x</span>
|
|
376
|
+
<span class="cline-any cline-yes">182x</span>
|
|
377
|
+
<span class="cline-any cline-yes">182x</span>
|
|
391
378
|
<span class="cline-any cline-neutral"> </span>
|
|
392
|
-
<span class="cline-any cline-yes">
|
|
393
|
-
<span class="cline-any cline-yes">
|
|
394
|
-
<span class="cline-any cline-yes">177x</span>
|
|
395
|
-
<span class="cline-any cline-yes">177x</span>
|
|
396
|
-
<span class="cline-any cline-no"> </span>
|
|
397
|
-
<span class="cline-any cline-neutral"> </span>
|
|
398
|
-
<span class="cline-any cline-neutral"> </span>
|
|
399
|
-
<span class="cline-any cline-yes">177x</span>
|
|
400
|
-
<span class="cline-any cline-yes">101x</span>
|
|
379
|
+
<span class="cline-any cline-yes">182x</span>
|
|
380
|
+
<span class="cline-any cline-yes">103x</span>
|
|
401
381
|
<span class="cline-any cline-neutral"> </span>
|
|
402
|
-
<span class="cline-any cline-yes">
|
|
403
|
-
<span class="cline-any cline-yes">
|
|
404
|
-
<span class="cline-any cline-yes">
|
|
382
|
+
<span class="cline-any cline-yes">182x</span>
|
|
383
|
+
<span class="cline-any cline-yes">182x</span>
|
|
384
|
+
<span class="cline-any cline-yes">182x</span>
|
|
405
385
|
<span class="cline-any cline-neutral"> </span>
|
|
406
386
|
<span class="cline-any cline-neutral"> </span>
|
|
407
387
|
<span class="cline-any cline-neutral"> </span>
|
|
408
388
|
<span class="cline-any cline-neutral"> </span>
|
|
409
|
-
<span class="cline-any cline-yes">
|
|
389
|
+
<span class="cline-any cline-yes">141x</span>
|
|
410
390
|
<span class="cline-any cline-neutral"> </span>
|
|
411
391
|
<span class="cline-any cline-neutral"> </span>
|
|
412
392
|
<span class="cline-any cline-no"> </span>
|
|
@@ -435,15 +415,11 @@
|
|
|
435
415
|
<span class="cline-any cline-neutral"> </span>
|
|
436
416
|
<span class="cline-any cline-neutral"> </span>
|
|
437
417
|
<span class="cline-any cline-neutral"> </span>
|
|
418
|
+
<span class="cline-any cline-yes">39x</span>
|
|
419
|
+
<span class="cline-any cline-yes">103x</span>
|
|
420
|
+
<span class="cline-any cline-yes">103x</span>
|
|
421
|
+
<span class="cline-any cline-yes">73x</span>
|
|
438
422
|
<span class="cline-any cline-neutral"> </span>
|
|
439
|
-
<span class="cline-any cline-yes">34x</span>
|
|
440
|
-
<span class="cline-any cline-yes">100x</span>
|
|
441
|
-
<span class="cline-any cline-yes">100x</span>
|
|
442
|
-
<span class="cline-any cline-yes">100x</span>
|
|
443
|
-
<span class="cline-any cline-yes">70x</span>
|
|
444
|
-
<span class="cline-any cline-neutral"> </span>
|
|
445
|
-
<span class="cline-any cline-neutral"> </span>
|
|
446
|
-
<span class="cline-any cline-yes">30x</span>
|
|
447
423
|
<span class="cline-any cline-neutral"> </span>
|
|
448
424
|
<span class="cline-any cline-yes">30x</span>
|
|
449
425
|
<span class="cline-any cline-yes">25x</span>
|
|
@@ -463,10 +439,6 @@
|
|
|
463
439
|
<span class="cline-any cline-neutral"> </span>
|
|
464
440
|
<span class="cline-any cline-yes">18x</span>
|
|
465
441
|
<span class="cline-any cline-yes">18x</span>
|
|
466
|
-
<span class="cline-any cline-neutral"> </span>
|
|
467
|
-
<span class="cline-any cline-neutral"> </span>
|
|
468
|
-
<span class="cline-any cline-neutral"> </span>
|
|
469
|
-
<span class="cline-any cline-neutral"> </span>
|
|
470
442
|
<span class="cline-any cline-yes">18x</span>
|
|
471
443
|
<span class="cline-any cline-yes">18x</span>
|
|
472
444
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -482,9 +454,7 @@
|
|
|
482
454
|
<span class="cline-any cline-neutral"> </span>
|
|
483
455
|
<span class="cline-any cline-neutral"> </span>
|
|
484
456
|
<span class="cline-any cline-neutral"> </span>
|
|
485
|
-
<span class="cline-any cline-
|
|
486
|
-
<span class="cline-any cline-yes">34x</span>
|
|
487
|
-
<span class="cline-any cline-yes">26x</span>
|
|
457
|
+
<span class="cline-any cline-yes">39x</span>
|
|
488
458
|
<span class="cline-any cline-neutral"> </span>
|
|
489
459
|
<span class="cline-any cline-yes">26x</span>
|
|
490
460
|
<span class="cline-any cline-yes">26x</span>
|
|
@@ -520,12 +490,12 @@ const {
|
|
|
520
490
|
getLinkedTable,
|
|
521
491
|
} = require("./linkUtils")
|
|
522
492
|
const { flatten } = require("lodash")
|
|
523
|
-
const CouchDB = require("../../db")
|
|
524
493
|
const { FieldTypes } = require("../../constants")
|
|
525
494
|
const { getMultiIDParams, USER_METDATA_PREFIX } = require("../../db/utils")
|
|
526
495
|
const { partition } = require("lodash")
|
|
527
496
|
const { getGlobalUsersFromMetadata } = require("../../utilities/global")
|
|
528
497
|
const { processFormulas } = require("../../utilities/rowProcessor/utils")
|
|
498
|
+
const { getAppDB } = require("@budibase/backend-core/context")
|
|
529
499
|
|
|
530
500
|
/**
|
|
531
501
|
* This functionality makes sure that when rows with links are created, updated or deleted they are processed
|
|
@@ -559,14 +529,13 @@ function clearRelationshipFields(table, rows) {
|
|
|
559
529
|
return rows
|
|
560
530
|
}
|
|
561
531
|
|
|
562
|
-
async function getLinksForRows(
|
|
532
|
+
async function getLinksForRows(rows) {
|
|
563
533
|
const tableIds = [...new Set(rows.map(el => el.tableId))]
|
|
564
534
|
// start by getting all the link values for performance reasons
|
|
565
535
|
const responses = flatten(
|
|
566
536
|
await Promise.all(
|
|
567
537
|
tableIds.map(tableId =>
|
|
568
538
|
getLinkDocuments({
|
|
569
|
-
appId,
|
|
570
539
|
tableId: tableId,
|
|
571
540
|
includeDocs: IncludeDocs.EXCLUDE,
|
|
572
541
|
})
|
|
@@ -583,9 +552,9 @@ async function getLinksForRows(appId, rows) {
|
|
|
583
552
|
)
|
|
584
553
|
}
|
|
585
554
|
|
|
586
|
-
async function getFullLinkedDocs(
|
|
555
|
+
async function getFullLinkedDocs(links) {
|
|
587
556
|
// create DBs
|
|
588
|
-
const db =
|
|
557
|
+
const db = getAppDB()
|
|
589
558
|
const linkedRowIds = links.map(link => link.id)
|
|
590
559
|
const uniqueRowIds = [...new Set(linkedRowIds)]
|
|
591
560
|
let dbRows = (await db.allDocs(getMultiIDParams(uniqueRowIds))).rows.map(
|
|
@@ -599,7 +568,7 @@ async function getFullLinkedDocs(ctx, appId, links) {
|
|
|
599
568
|
let [users, other] = partition(linked, linkRow =>
|
|
600
569
|
linkRow._id.startsWith(USER_METDATA_PREFIX)
|
|
601
570
|
)
|
|
602
|
-
users = await getGlobalUsersFromMetadata(
|
|
571
|
+
users = await getGlobalUsersFromMetadata(users)
|
|
603
572
|
return [...other, ...users]
|
|
604
573
|
}
|
|
605
574
|
|
|
@@ -607,20 +576,16 @@ async function getFullLinkedDocs(ctx, appId, links) {
|
|
|
607
576
|
* Update link documents for a row or table - this is to be called by the API controller when a change is occurring.
|
|
608
577
|
* @param {string} args.eventType states what type of change which is occurring, means this can be expanded upon in the
|
|
609
578
|
* future quite easily (all updates go through one function).
|
|
610
|
-
* @param {string} args.appId The ID of the instance in which the change is occurring.
|
|
611
579
|
* @param {string} args.tableId The ID of the of the table which is being changed.
|
|
612
|
-
* @param {object|
|
|
613
|
-
* @param {object|
|
|
614
|
-
* @param {object|
|
|
580
|
+
* @param {object|undefined} args.row The row which is changing, e.g. created, updated or deleted.
|
|
581
|
+
* @param {object|undefined} args.table If the table has already been retrieved this can be used to reduce database gets.
|
|
582
|
+
* @param {object|undefined} args.oldTable If the table is being updated then the old table can be provided for differencing.
|
|
615
583
|
* @returns {Promise<object>} When the update is complete this will respond successfully. Returns the row for
|
|
616
584
|
* row operations and the table for table operations.
|
|
617
585
|
*/
|
|
618
586
|
exports.updateLinks = async function (args) {
|
|
619
|
-
const { eventType,
|
|
587
|
+
const { eventType, row, tableId, table, oldTable } = args
|
|
620
588
|
const baseReturnObj = row == null ? table : row
|
|
621
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (appId == null) {
|
|
622
|
-
<span class="cstat-no" title="statement not covered" > throw "Cannot operate without an instance ID."</span>
|
|
623
|
-
}
|
|
624
589
|
// make sure table ID is set
|
|
625
590
|
if (tableId == null && table != null) {
|
|
626
591
|
args.tableId = table._id
|
|
@@ -657,27 +622,23 @@ exports.updateLinks = async function (args) {
|
|
|
657
622
|
/**
|
|
658
623
|
* Given a table and a list of rows this will retrieve all of the attached docs and enrich them into the row.
|
|
659
624
|
* This is required for formula fields, this may only be utilised internally (for now).
|
|
660
|
-
* @param {object} ctx The request which is looking for rows.
|
|
661
625
|
* @param {object} table The table from which the rows originated.
|
|
662
626
|
* @param {array<object>} rows The rows which are to be enriched.
|
|
663
627
|
* @return {Promise<*>} returns the rows with all of the enriched relationships on it.
|
|
664
628
|
*/
|
|
665
|
-
exports.attachFullLinkedDocs = async (
|
|
666
|
-
const appId = ctx.appId
|
|
629
|
+
exports.attachFullLinkedDocs = async (table, rows) => {
|
|
667
630
|
const linkedTableIds = getLinkedTableIDs(table)
|
|
668
631
|
if (linkedTableIds.length === 0) {
|
|
669
632
|
return rows
|
|
670
633
|
}
|
|
671
|
-
// create DBs
|
|
672
|
-
const db = new CouchDB(appId)
|
|
673
634
|
// get all the links
|
|
674
|
-
const links = (await getLinksForRows(
|
|
635
|
+
const links = (await getLinksForRows(rows)).filter(link =>
|
|
675
636
|
rows.some(row => row._id === link.thisId)
|
|
676
637
|
)
|
|
677
638
|
// clear any existing links that could be dupe'd
|
|
678
639
|
rows = clearRelationshipFields(table, rows)
|
|
679
640
|
// now get the docs and combine into the rows
|
|
680
|
-
let linked = await getFullLinkedDocs(
|
|
641
|
+
let linked = await getFullLinkedDocs(links)
|
|
681
642
|
const linkedTables = []
|
|
682
643
|
for (let row of rows) {
|
|
683
644
|
for (let link of links.filter(link => link.thisId === row._id)) {
|
|
@@ -688,11 +649,7 @@ exports.attachFullLinkedDocs = async (ctx, table, rows) => {
|
|
|
688
649
|
if (linkedRow) {
|
|
689
650
|
const linkedTableId =
|
|
690
651
|
linkedRow.tableId || <span class="branch-1 cbranch-no" title="branch not covered" >getRelatedTableForField(table, link.fieldName)</span>
|
|
691
|
-
const linkedTable = await getLinkedTable(
|
|
692
|
-
db,
|
|
693
|
-
linkedTableId,
|
|
694
|
-
linkedTables
|
|
695
|
-
)
|
|
652
|
+
const linkedTable = await getLinkedTable(linkedTableId, linkedTables)
|
|
696
653
|
if (linkedTable) {
|
|
697
654
|
row[link.fieldName].push(processFormulas(linkedTable, linkedRow))
|
|
698
655
|
}
|
|
@@ -704,18 +661,16 @@ exports.attachFullLinkedDocs = async (ctx, table, rows) => {
|
|
|
704
661
|
|
|
705
662
|
/**
|
|
706
663
|
* This function will take the given enriched rows and squash the links to only contain the primary display field.
|
|
707
|
-
* @param {string} appId The app in which the tables/rows/links exist.
|
|
708
664
|
* @param {object} table The table from which the rows originated.
|
|
709
665
|
* @param {array<object>} enriched The pre-enriched rows (full docs) which are to be squashed.
|
|
710
666
|
* @returns {Promise<Array>} The rows after having their links squashed to only contain the ID and primary display.
|
|
711
667
|
*/
|
|
712
|
-
exports.squashLinksToPrimaryDisplay = async (
|
|
713
|
-
const db = new CouchDB(appId)
|
|
668
|
+
exports.squashLinksToPrimaryDisplay = async (table, enriched) => {
|
|
714
669
|
// will populate this as we find them
|
|
715
670
|
const linkedTables = [table]
|
|
716
671
|
for (let row of enriched) {
|
|
717
672
|
// this only fetches the table if its not already in array
|
|
718
|
-
const rowTable = await getLinkedTable(
|
|
673
|
+
const rowTable = await getLinkedTable(row.tableId, linkedTables)
|
|
719
674
|
for (let [column, schema] of Object.entries(rowTable.schema)) {
|
|
720
675
|
if (schema.type !== FieldTypes.LINK || !Array.isArray(row[column])) {
|
|
721
676
|
continue
|
|
@@ -723,7 +678,7 @@ exports.squashLinksToPrimaryDisplay = async (appId, table, enriched) => {
|
|
|
723
678
|
const newLinks = []
|
|
724
679
|
for (let link of row[column]) {
|
|
725
680
|
const linkTblId = link.tableId || <span class="branch-1 cbranch-no" title="branch not covered" >getRelatedTableForField(table, column)</span>
|
|
726
|
-
const linkedTable = await getLinkedTable(
|
|
681
|
+
const linkedTable = await getLinkedTable(linkTblId, linkedTables)
|
|
727
682
|
const obj = { _id: link._id }
|
|
728
683
|
if (link[linkedTable.primaryDisplay]) {
|
|
729
684
|
obj.primaryDisplay = link[linkedTable.primaryDisplay]
|
|
@@ -742,7 +697,7 @@ exports.squashLinksToPrimaryDisplay = async (appId, table, enriched) => {
|
|
|
742
697
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
743
698
|
Code coverage generated by
|
|
744
699
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
745
|
-
at
|
|
700
|
+
at Mon Feb 07 2022 20:42:11 GMT+0000 (Coordinated Universal Time)
|
|
746
701
|
</div>
|
|
747
702
|
</div>
|
|
748
703
|
<script src="../../prettify.js"></script>
|