@budibase/server 1.0.49-alpha.6 → 1.0.49
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 +5 -4
- package/__mocks__/mssql.ts +3 -3
- package/__mocks__/node-fetch.ts +1 -2
- package/__mocks__/pg.ts +5 -3
- package/builder/assets/{index.1b905242.js → index.2c37968e.js} +231 -234
- package/builder/assets/index.39e01193.css +1 -0
- package/builder/assets/{vendor.d526bfe8.js → vendor.f9faf6ab.js} +12 -12
- package/builder/index.html +3 -3
- package/coverage/clover.xml +2816 -3119
- package/coverage/coverage-final.json +101 -106
- 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 +152 -257
- package/coverage/lcov-report/api/controllers/auth.js.html +13 -22
- package/coverage/lcov-report/api/controllers/automation.js.html +69 -39
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +11 -8
- package/coverage/lcov-report/api/controllers/component.js.html +16 -13
- package/coverage/lcov-report/api/controllers/datasource.js.html +51 -81
- package/coverage/lcov-report/api/controllers/dev.js.html +6 -6
- package/coverage/lcov-report/{utilities/usageQuota/usageQuoteReset.js.html → api/controllers/hosting.js.html} +48 -36
- package/coverage/lcov-report/api/controllers/index.html +76 -76
- 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 +21 -6
- 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 +35 -38
- 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 +10 -7
- package/coverage/lcov-report/api/controllers/row/external.js.html +27 -21
- package/coverage/lcov-report/api/controllers/row/index.html +34 -49
- package/coverage/lcov-report/api/controllers/row/index.js.html +26 -26
- package/coverage/lcov-report/api/controllers/row/internal.js.html +226 -118
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +34 -52
- package/coverage/lcov-report/api/controllers/row/utils.js.html +62 -47
- package/coverage/lcov-report/api/controllers/screen.js.html +21 -15
- package/coverage/lcov-report/api/controllers/script.js.html +4 -4
- package/coverage/lcov-report/api/controllers/table/external.js.html +34 -25
- package/coverage/lcov-report/api/controllers/table/index.html +43 -58
- package/coverage/lcov-report/api/controllers/table/index.js.html +82 -58
- package/coverage/lcov-report/api/controllers/table/internal.js.html +66 -81
- package/coverage/lcov-report/api/controllers/table/utils.js.html +110 -218
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +50 -47
- 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 +33 -27
- package/coverage/lcov-report/api/controllers/view/utils.js.html +20 -35
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
- package/coverage/lcov-report/api/controllers/webhook.js.html +28 -34
- 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/{migrations.js.html → hosting.js.html} +14 -17
- 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/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 +2 -17
- 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 +10 -7
- 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 +22 -13
- package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +20 -11
- 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 +55 -61
- package/coverage/lcov-report/automations/utils.js.html +42 -54
- package/coverage/lcov-report/constants/index.html +5 -5
- package/coverage/lcov-report/constants/index.js.html +26 -53
- 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 +37 -25
- package/coverage/lcov-report/db/linkedRows/index.html +27 -27
- package/coverage/lcov-report/db/linkedRows/index.js.html +96 -51
- 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 +120 -135
- 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 +65 -173
- package/coverage/lcov-report/middleware/builder.js.html +10 -10
- package/coverage/lcov-report/middleware/currentapp.js.html +83 -95
- 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 +53 -281
- package/coverage/lcov-report/middleware/utils.js.html +2 -2
- package/coverage/lcov-report/threads/automation.js.html +24 -30
- 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 +26 -62
- 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 +49 -58
- package/coverage/lcov-report/utilities/index.html +37 -37
- package/coverage/lcov-report/utilities/index.js.html +73 -43
- 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 +103 -97
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +27 -75
- 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/users.js.html +9 -9
- package/coverage/lcov-report/utilities/workerRequests.js.html +112 -43
- package/coverage/lcov.info +4423 -5022
- package/dist/api/controllers/application.js +60 -90
- package/dist/api/controllers/auth.js +5 -8
- package/dist/api/controllers/automation.js +19 -14
- package/dist/api/controllers/cloud.js +3 -2
- package/dist/api/controllers/component.js +4 -3
- package/dist/api/controllers/datasource.js +10 -20
- package/dist/api/controllers/deploy/Deployment.js +6 -3
- package/dist/api/controllers/deploy/index.js +13 -12
- package/dist/api/controllers/dev.js +5 -5
- package/dist/api/controllers/hosting.js +30 -0
- package/dist/api/controllers/layout.js +3 -3
- package/dist/api/controllers/metadata.js +4 -4
- package/dist/api/controllers/permission.js +4 -4
- package/dist/api/controllers/query/import/index.js +6 -4
- package/dist/api/controllers/query/index.js +10 -11
- package/dist/api/controllers/role.js +5 -5
- package/dist/api/controllers/routing.js +6 -5
- package/dist/api/controllers/row/ExternalRequest.js +63 -76
- package/dist/api/controllers/row/external.js +4 -4
- package/dist/api/controllers/row/internal.js +93 -55
- package/dist/api/controllers/row/internalSearch.js +17 -23
- package/dist/api/controllers/row/utils.js +14 -13
- package/dist/api/controllers/screen.js +7 -5
- package/dist/api/controllers/static/index.js +12 -61
- package/dist/api/controllers/table/external.js +10 -7
- package/dist/api/controllers/table/index.js +13 -16
- package/dist/api/controllers/table/internal.js +16 -22
- package/dist/api/controllers/table/utils.js +35 -62
- package/dist/api/controllers/user.js +20 -18
- package/dist/api/controllers/view/index.js +10 -8
- package/dist/api/controllers/view/utils.js +4 -9
- package/dist/api/controllers/webhook.js +8 -10
- package/dist/api/routes/hosting.js +11 -0
- package/dist/api/routes/index.js +2 -2
- package/dist/api/routes/static.js +1 -2
- package/dist/api/routes/tests/utilities/TestFunctions.js +17 -37
- package/dist/app.js +5 -35
- package/dist/automations/automationUtils.js +3 -2
- package/dist/automations/steps/createRow.js +5 -3
- package/dist/automations/steps/deleteRow.js +4 -1
- package/dist/automations/steps/updateRow.js +1 -1
- package/dist/automations/triggers.js +25 -27
- package/dist/automations/utils.js +5 -10
- package/dist/constants/index.js +0 -7
- package/dist/db/linkedRows/LinkController.js +7 -3
- package/dist/db/linkedRows/index.js +27 -16
- package/dist/db/linkedRows/linkUtils.js +6 -6
- package/dist/db/views/staticViews.js +10 -9
- package/dist/definitions/datasource.js +0 -1
- package/dist/environment.js +1 -4
- package/dist/integrations/base/sql.js +6 -13
- package/dist/integrations/index.js +0 -3
- package/dist/integrations/utils.js +9 -60
- package/dist/middleware/authorized.js +30 -57
- package/dist/middleware/builder.js +2 -2
- package/dist/middleware/currentapp.js +37 -41
- package/dist/middleware/usageQuota.js +15 -82
- package/dist/package.json +5 -8
- package/dist/tests/utilities/TestConfiguration.js +50 -80
- package/dist/threads/automation.js +11 -13
- package/dist/threads/query.js +13 -23
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/index.js +3 -4
- package/dist/utilities/global.js +12 -15
- package/dist/utilities/index.js +17 -7
- package/dist/utilities/routing/index.js +5 -5
- package/dist/utilities/rowProcessor/index.js +17 -23
- package/dist/utilities/rowProcessor/utils.js +4 -14
- package/dist/utilities/{usageQuota/index.js → usageQuota.js} +31 -45
- package/dist/utilities/users.js +3 -3
- package/dist/utilities/workerRequests.js +24 -4
- package/nodemon.json +1 -1
- package/package.json +6 -9
- package/scripts/likeCypress.ts +1 -1
- package/src/api/controllers/application.js +50 -85
- package/src/api/controllers/auth.js +5 -8
- package/src/api/controllers/automation.js +23 -13
- package/src/api/controllers/cloud.js +3 -2
- package/src/api/controllers/component.js +4 -3
- package/src/api/controllers/datasource.js +11 -21
- package/src/api/controllers/deploy/Deployment.js +7 -3
- package/src/api/controllers/deploy/index.js +13 -20
- package/src/api/controllers/dev.js +5 -5
- package/src/api/controllers/hosting.js +22 -0
- package/src/api/controllers/layout.js +3 -3
- package/src/api/controllers/metadata.js +9 -4
- package/src/api/controllers/permission.js +4 -4
- package/src/api/controllers/query/import/index.ts +6 -4
- package/src/api/controllers/query/import/tests/index.spec.js +1 -2
- package/src/api/controllers/query/index.js +10 -11
- package/src/api/controllers/role.js +5 -5
- package/src/api/controllers/routing.js +6 -5
- package/src/api/controllers/row/ExternalRequest.ts +42 -53
- package/src/api/controllers/row/external.js +6 -4
- package/src/api/controllers/row/internal.js +90 -54
- package/src/api/controllers/row/internalSearch.js +17 -23
- package/src/api/controllers/row/utils.js +18 -13
- package/src/api/controllers/screen.js +7 -5
- package/src/api/controllers/static/index.js +12 -65
- package/src/api/controllers/table/external.js +10 -7
- package/src/api/controllers/table/index.js +28 -20
- package/src/api/controllers/table/internal.js +19 -24
- package/src/api/controllers/table/utils.js +42 -78
- package/src/api/controllers/user.js +20 -19
- package/src/api/controllers/view/index.js +10 -8
- package/src/api/controllers/view/utils.js +4 -9
- package/src/api/controllers/webhook.js +8 -10
- package/src/api/routes/hosting.js +13 -0
- package/src/api/routes/index.js +2 -2
- package/src/api/routes/static.js +0 -5
- package/src/api/routes/tests/application.spec.js +2 -2
- package/src/api/routes/tests/auth.spec.js +2 -1
- package/src/api/routes/tests/automation.spec.js +0 -1
- package/src/api/routes/tests/hosting.spec.js +36 -0
- package/src/api/routes/tests/misc.spec.js +1 -0
- package/src/api/routes/tests/routing.spec.js +12 -21
- package/src/api/routes/tests/row.spec.js +4 -7
- package/src/api/routes/tests/utilities/TestFunctions.js +17 -39
- package/src/app.ts +5 -18
- package/src/automations/automationUtils.js +3 -2
- package/src/automations/steps/createRow.js +5 -2
- package/src/automations/steps/deleteRow.js +4 -1
- package/src/automations/steps/updateRow.js +1 -1
- package/src/automations/triggers.js +31 -33
- package/src/automations/utils.js +5 -9
- package/src/constants/index.js +0 -9
- package/src/db/linkedRows/LinkController.js +7 -3
- package/src/db/linkedRows/index.js +31 -16
- package/src/db/linkedRows/linkUtils.js +6 -6
- package/src/db/tests/linkController.spec.js +1 -0
- package/src/db/tests/linkTests.spec.js +6 -5
- package/src/db/views/staticViews.js +10 -8
- package/src/definitions/common.ts +0 -3
- package/src/definitions/datasource.ts +0 -3
- package/src/environment.js +1 -4
- package/src/integrations/base/sql.ts +7 -14
- package/src/integrations/index.ts +0 -3
- package/src/integrations/tests/sql.spec.js +0 -16
- package/src/integrations/utils.ts +12 -75
- package/src/middleware/authorized.js +30 -66
- package/src/middleware/builder.js +2 -2
- package/src/middleware/currentapp.js +46 -50
- package/src/middleware/tests/authorized.spec.js +6 -13
- package/src/middleware/tests/currentapp.spec.js +0 -6
- package/src/middleware/tests/usageQuota.spec.js +24 -18
- package/src/middleware/usageQuota.js +17 -93
- package/src/tests/utilities/TestConfiguration.js +55 -82
- package/src/threads/automation.js +15 -17
- package/src/threads/query.js +14 -26
- package/src/utilities/fileSystem/index.js +3 -4
- package/src/utilities/global.js +12 -15
- package/src/utilities/index.js +17 -7
- package/src/utilities/routing/index.js +5 -5
- package/src/utilities/rowProcessor/index.js +27 -25
- package/src/utilities/rowProcessor/utils.js +7 -23
- package/src/utilities/usageQuota.js +73 -0
- package/src/utilities/users.js +3 -3
- package/src/utilities/workerRequests.js +27 -4
- package/builder/assets/index.83c0944f.css +0 -1
- package/coverage/lcov-report/api/controllers/migrations.js.html +0 -119
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +0 -548
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +0 -599
- package/coverage/lcov-report/utilities/usageQuota/index.html +0 -141
- package/coverage/lcov-report/utilities/usageQuota/index.js.html +0 -359
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +0 -305
- package/dist/api/controllers/migrations.js +0 -21
- package/dist/api/controllers/row/staticFormula.js +0 -147
- package/dist/api/controllers/table/bulkFormula.js +0 -159
- package/dist/api/routes/migrations.js +0 -9
- package/dist/integrations/googlesheets.js +0 -340
- package/dist/migrations/functions/appUrls.js +0 -46
- package/dist/migrations/functions/quotas1.js +0 -50
- package/dist/migrations/functions/usageQuotas/index.js +0 -20
- package/dist/migrations/functions/usageQuotas/syncApps.js +0 -30
- package/dist/migrations/functions/usageQuotas/syncRows.js +0 -33
- package/dist/migrations/functions/userEmailViewCasing.js +0 -24
- package/dist/migrations/index.js +0 -62
- package/dist/utilities/usageQuota/rows.js +0 -78
- package/dist/utilities/usageQuota/usageQuoteReset.js +0 -16
- package/src/api/controllers/migrations.js +0 -13
- package/src/api/controllers/row/staticFormula.js +0 -156
- package/src/api/controllers/table/bulkFormula.js +0 -173
- package/src/api/routes/migrations.js +0 -14
- package/src/api/routes/tests/static.spec.js +0 -98
- package/src/integrations/googlesheets.ts +0 -353
- package/src/migrations/functions/appUrls.ts +0 -34
- package/src/migrations/functions/quotas1.ts +0 -20
- package/src/migrations/functions/tests/appUrls.spec.js +0 -29
- package/src/migrations/functions/tests/quotas1.spec.js +0 -27
- package/src/migrations/functions/tests/userEmailViewCasing.spec.js +0 -25
- package/src/migrations/functions/usageQuotas/index.ts +0 -8
- package/src/migrations/functions/usageQuotas/syncApps.ts +0 -19
- package/src/migrations/functions/usageQuotas/syncRows.ts +0 -22
- package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +0 -37
- package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +0 -43
- package/src/migrations/functions/userEmailViewCasing.ts +0 -13
- package/src/migrations/index.ts +0 -56
- package/src/utilities/tests/usageQuota/usageQuota.spec.js +0 -72
- package/src/utilities/usageQuota/index.js +0 -93
- package/src/utilities/usageQuota/rows.js +0 -75
- package/src/utilities/usageQuota/usageQuoteReset.js +0 -18
|
@@ -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.05% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>146/152</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.68% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>146/151</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -521,15 +521,19 @@
|
|
|
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
|
|
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>
|
|
525
530
|
<span class="cline-any cline-neutral"> </span>
|
|
526
531
|
<span class="cline-any cline-neutral"> </span>
|
|
527
532
|
<span class="cline-any cline-neutral"> </span>
|
|
528
533
|
<span class="cline-any cline-neutral"> </span>
|
|
529
|
-
<span class="cline-any cline-yes">
|
|
530
|
-
<span class="cline-any cline-yes">
|
|
531
|
-
<span class="cline-any cline-yes">
|
|
532
|
-
<span class="cline-any cline-yes">39x</span>
|
|
534
|
+
<span class="cline-any cline-yes">34x</span>
|
|
535
|
+
<span class="cline-any cline-yes">34x</span>
|
|
536
|
+
<span class="cline-any cline-yes">34x</span>
|
|
533
537
|
<span class="cline-any cline-neutral"> </span>
|
|
534
538
|
<span class="cline-any cline-neutral"> </span>
|
|
535
539
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -576,11 +580,12 @@
|
|
|
576
580
|
<span class="cline-any cline-neutral"> </span>
|
|
577
581
|
<span class="cline-any cline-neutral"> </span>
|
|
578
582
|
<span class="cline-any cline-neutral"> </span>
|
|
579
|
-
<span class="cline-any cline-yes">
|
|
580
|
-
<span class="cline-any cline-yes">
|
|
581
|
-
<span class="cline-any cline-yes">
|
|
582
|
-
<span class="cline-any cline-yes">
|
|
583
|
-
<span class="cline-any cline-yes">
|
|
583
|
+
<span class="cline-any cline-yes">187x</span>
|
|
584
|
+
<span class="cline-any cline-yes">187x</span>
|
|
585
|
+
<span class="cline-any cline-yes">187x</span>
|
|
586
|
+
<span class="cline-any cline-yes">187x</span>
|
|
587
|
+
<span class="cline-any cline-yes">187x</span>
|
|
588
|
+
<span class="cline-any cline-yes">187x</span>
|
|
584
589
|
<span class="cline-any cline-neutral"> </span>
|
|
585
590
|
<span class="cline-any cline-neutral"> </span>
|
|
586
591
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -604,16 +609,16 @@
|
|
|
604
609
|
<span class="cline-any cline-neutral"> </span>
|
|
605
610
|
<span class="cline-any cline-neutral"> </span>
|
|
606
611
|
<span class="cline-any cline-neutral"> </span>
|
|
607
|
-
<span class="cline-any cline-yes">
|
|
612
|
+
<span class="cline-any cline-yes">180x</span>
|
|
608
613
|
<span class="cline-any cline-yes">5x</span>
|
|
609
614
|
<span class="cline-any cline-neutral"> </span>
|
|
610
|
-
<span class="cline-any cline-yes">
|
|
611
|
-
<span class="cline-any cline-yes">
|
|
612
|
-
<span class="cline-any cline-yes">
|
|
615
|
+
<span class="cline-any cline-yes">180x</span>
|
|
616
|
+
<span class="cline-any cline-yes">450x</span>
|
|
617
|
+
<span class="cline-any cline-yes">450x</span>
|
|
613
618
|
<span class="cline-any cline-yes">41x</span>
|
|
614
619
|
<span class="cline-any cline-neutral"> </span>
|
|
615
620
|
<span class="cline-any cline-neutral"> </span>
|
|
616
|
-
<span class="cline-any cline-yes">
|
|
621
|
+
<span class="cline-any cline-yes">139x</span>
|
|
617
622
|
<span class="cline-any cline-neutral"> </span>
|
|
618
623
|
<span class="cline-any cline-neutral"> </span>
|
|
619
624
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -631,6 +636,7 @@
|
|
|
631
636
|
<span class="cline-any cline-neutral"> </span>
|
|
632
637
|
<span class="cline-any cline-neutral"> </span>
|
|
633
638
|
<span class="cline-any cline-neutral"> </span>
|
|
639
|
+
<span class="cline-any cline-neutral"> </span>
|
|
634
640
|
<span class="cline-any cline-yes">9x</span>
|
|
635
641
|
<span class="cline-any cline-neutral"> </span>
|
|
636
642
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -641,6 +647,7 @@
|
|
|
641
647
|
<span class="cline-any cline-neutral"> </span>
|
|
642
648
|
<span class="cline-any cline-neutral"> </span>
|
|
643
649
|
<span class="cline-any cline-neutral"> </span>
|
|
650
|
+
<span class="cline-any cline-neutral"> </span>
|
|
644
651
|
<span class="cline-any cline-yes">22x</span>
|
|
645
652
|
<span class="cline-any cline-yes">22x</span>
|
|
646
653
|
<span class="cline-any cline-yes">82x</span>
|
|
@@ -756,6 +763,7 @@
|
|
|
756
763
|
<span class="cline-any cline-neutral"> </span>
|
|
757
764
|
<span class="cline-any cline-neutral"> </span>
|
|
758
765
|
<span class="cline-any cline-neutral"> </span>
|
|
766
|
+
<span class="cline-any cline-neutral"> </span>
|
|
759
767
|
<span class="cline-any cline-yes">1x</span>
|
|
760
768
|
<span class="cline-any cline-neutral"> </span>
|
|
761
769
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -984,8 +992,9 @@
|
|
|
984
992
|
<span class="cline-any cline-neutral"> </span>
|
|
985
993
|
<span class="cline-any cline-neutral"> </span>
|
|
986
994
|
<span class="cline-any cline-neutral"> </span>
|
|
987
|
-
<span class="cline-any cline-yes">
|
|
988
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const
|
|
995
|
+
<span class="cline-any cline-yes">34x</span>
|
|
996
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../index")
|
|
997
|
+
const { IncludeDocs, getLinkDocuments } = require("./linkUtils")
|
|
989
998
|
const {
|
|
990
999
|
generateLinkID,
|
|
991
1000
|
InternalTables,
|
|
@@ -993,7 +1002,6 @@ const {
|
|
|
993
1002
|
} = require("../utils")
|
|
994
1003
|
const Sentry = require("@sentry/node")
|
|
995
1004
|
const { FieldTypes, RelationshipTypes } = require("../../constants")
|
|
996
|
-
const { getAppDB } = require("@budibase/backend-core/context")
|
|
997
1005
|
|
|
998
1006
|
/**
|
|
999
1007
|
* Creates a new link document structure which can be put to the database. It is important to
|
|
@@ -1039,8 +1047,9 @@ function LinkDocument(
|
|
|
1039
1047
|
}
|
|
1040
1048
|
|
|
1041
1049
|
class LinkController {
|
|
1042
|
-
constructor({ tableId, row, table, oldTable }) {
|
|
1043
|
-
this.
|
|
1050
|
+
constructor({ appId, tableId, row, table, oldTable }) {
|
|
1051
|
+
this._appId = appId
|
|
1052
|
+
this._db = new CouchDB(appId)
|
|
1044
1053
|
this._tableId = tableId
|
|
1045
1054
|
this._row = row
|
|
1046
1055
|
this._table = table
|
|
@@ -1085,6 +1094,7 @@ class LinkController {
|
|
|
1085
1094
|
*/
|
|
1086
1095
|
getRowLinkDocs(rowId) {
|
|
1087
1096
|
return getLinkDocuments({
|
|
1097
|
+
appId: this._appId,
|
|
1088
1098
|
tableId: this._tableId,
|
|
1089
1099
|
rowId,
|
|
1090
1100
|
includeDocs: IncludeDocs.INCLUDE,
|
|
@@ -1096,6 +1106,7 @@ class LinkController {
|
|
|
1096
1106
|
*/
|
|
1097
1107
|
getTableLinkDocs() {
|
|
1098
1108
|
return getLinkDocuments({
|
|
1109
|
+
appId: this._appId,
|
|
1099
1110
|
tableId: this._tableId,
|
|
1100
1111
|
includeDocs: IncludeDocs.INCLUDE,
|
|
1101
1112
|
})
|
|
@@ -1214,6 +1225,7 @@ class LinkController {
|
|
|
1214
1225
|
if (linkedSchema.relationshipType === RelationshipTypes.ONE_TO_MANY) {
|
|
1215
1226
|
let links = (
|
|
1216
1227
|
await getLinkDocuments({
|
|
1228
|
+
appId: this._appId,
|
|
1217
1229
|
tableId: field.tableId,
|
|
1218
1230
|
rowId: linkId,
|
|
1219
1231
|
includeDocs: IncludeDocs.EXCLUDE,
|
|
@@ -1456,7 +1468,7 @@ module.exports = LinkController
|
|
|
1456
1468
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1457
1469
|
Code coverage generated by
|
|
1458
1470
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
1459
|
-
at
|
|
1471
|
+
at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
|
|
1460
1472
|
</div>
|
|
1461
1473
|
</div>
|
|
1462
1474
|
<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">96.46% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>300/311</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">86.02% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>117/136</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.66% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>290/300</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.05" 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.05" class="pct high">96.05%</td>
|
|
81
|
+
<td data-value="152" class="abs high">146/152</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.68" class="pct high">96.68%</td>
|
|
87
|
+
<td data-value="151" class="abs high">146/151</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.07" 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.07" class="pct high">96.07%</td>
|
|
96
|
+
<td data-value="102" class="abs high">98/102</td>
|
|
97
|
+
<td data-value="80.95" class="pct high">80.95%</td>
|
|
98
|
+
<td data-value="42" class="abs high">34/42</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="95.83" class="pct high">95.83%</td>
|
|
102
|
+
<td data-value="96" class="abs high">92/96</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="98.24" class="pic high">
|
|
108
|
+
<div class="chart"><div class="cover-fill" style="width: 98%"></div><div class="cover-empty" style="width: 2%"></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="98.24" class="pct high">98.24%</td>
|
|
111
|
+
<td data-value="57" class="abs high">56/57</td>
|
|
112
|
+
<td data-value="88.46" class="pct high">88.46%</td>
|
|
113
|
+
<td data-value="26" class="abs high">23/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="98.11" class="pct high">98.11%</td>
|
|
117
|
+
<td data-value="53" class="abs high">52/53</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 Fri Feb 04 2022 12:19:28 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.07% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>98/102</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">80.95% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>34/42</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.83% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>92/96</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -268,7 +268,22 @@
|
|
|
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
|
|
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>
|
|
272
287
|
<span class="cline-any cline-neutral"> </span>
|
|
273
288
|
<span class="cline-any cline-neutral"> </span>
|
|
274
289
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -277,21 +292,21 @@
|
|
|
277
292
|
<span class="cline-any cline-neutral"> </span>
|
|
278
293
|
<span class="cline-any cline-neutral"> </span>
|
|
279
294
|
<span class="cline-any cline-neutral"> </span>
|
|
280
|
-
<span class="cline-any cline-yes">
|
|
281
|
-
<span class="cline-any cline-yes">
|
|
282
|
-
<span class="cline-any cline-yes">
|
|
283
|
-
<span class="cline-any cline-yes">
|
|
284
|
-
<span class="cline-any cline-yes">
|
|
285
|
-
<span class="cline-any cline-yes">
|
|
286
|
-
<span class="cline-any cline-yes">
|
|
287
|
-
<span class="cline-any cline-yes">
|
|
295
|
+
<span class="cline-any cline-yes">34x</span>
|
|
296
|
+
<span class="cline-any cline-yes">34x</span>
|
|
297
|
+
<span class="cline-any cline-yes">34x</span>
|
|
298
|
+
<span class="cline-any cline-yes">34x</span>
|
|
299
|
+
<span class="cline-any cline-yes">34x</span>
|
|
300
|
+
<span class="cline-any cline-yes">34x</span>
|
|
301
|
+
<span class="cline-any cline-yes">34x</span>
|
|
302
|
+
<span class="cline-any cline-yes">34x</span>
|
|
288
303
|
<span class="cline-any cline-neutral"> </span>
|
|
289
304
|
<span class="cline-any cline-neutral"> </span>
|
|
290
305
|
<span class="cline-any cline-neutral"> </span>
|
|
291
306
|
<span class="cline-any cline-neutral"> </span>
|
|
292
307
|
<span class="cline-any cline-neutral"> </span>
|
|
293
308
|
<span class="cline-any cline-neutral"> </span>
|
|
294
|
-
<span class="cline-any cline-yes">
|
|
309
|
+
<span class="cline-any cline-yes">34x</span>
|
|
295
310
|
<span class="cline-any cline-neutral"> </span>
|
|
296
311
|
<span class="cline-any cline-neutral"> </span>
|
|
297
312
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -300,11 +315,11 @@
|
|
|
300
315
|
<span class="cline-any cline-neutral"> </span>
|
|
301
316
|
<span class="cline-any cline-neutral"> </span>
|
|
302
317
|
<span class="cline-any cline-neutral"> </span>
|
|
303
|
-
<span class="cline-any cline-yes">
|
|
318
|
+
<span class="cline-any cline-yes">34x</span>
|
|
304
319
|
<span class="cline-any cline-neutral"> </span>
|
|
305
|
-
<span class="cline-any cline-yes">
|
|
306
|
-
<span class="cline-any cline-yes">
|
|
307
|
-
<span class="cline-any cline-yes">
|
|
320
|
+
<span class="cline-any cline-yes">34x</span>
|
|
321
|
+
<span class="cline-any cline-yes">34x</span>
|
|
322
|
+
<span class="cline-any cline-yes">34x</span>
|
|
308
323
|
<span class="cline-any cline-neutral"> </span>
|
|
309
324
|
<span class="cline-any cline-neutral"> </span>
|
|
310
325
|
<span class="cline-any cline-yes">30x</span>
|
|
@@ -333,6 +348,7 @@
|
|
|
333
348
|
<span class="cline-any cline-neutral"> </span>
|
|
334
349
|
<span class="cline-any cline-neutral"> </span>
|
|
335
350
|
<span class="cline-any cline-neutral"> </span>
|
|
351
|
+
<span class="cline-any cline-neutral"> </span>
|
|
336
352
|
<span class="cline-any cline-yes">30x</span>
|
|
337
353
|
<span class="cline-any cline-neutral"> </span>
|
|
338
354
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -372,21 +388,25 @@
|
|
|
372
388
|
<span class="cline-any cline-neutral"> </span>
|
|
373
389
|
<span class="cline-any cline-neutral"> </span>
|
|
374
390
|
<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>
|
|
378
391
|
<span class="cline-any cline-neutral"> </span>
|
|
379
|
-
<span class="cline-any cline-yes">
|
|
380
|
-
<span class="cline-any cline-yes">
|
|
392
|
+
<span class="cline-any cline-yes">34x</span>
|
|
393
|
+
<span class="cline-any cline-yes">177x</span>
|
|
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>
|
|
381
401
|
<span class="cline-any cline-neutral"> </span>
|
|
382
|
-
<span class="cline-any cline-yes">
|
|
383
|
-
<span class="cline-any cline-yes">
|
|
384
|
-
<span class="cline-any cline-yes">
|
|
402
|
+
<span class="cline-any cline-yes">177x</span>
|
|
403
|
+
<span class="cline-any cline-yes">177x</span>
|
|
404
|
+
<span class="cline-any cline-yes">177x</span>
|
|
385
405
|
<span class="cline-any cline-neutral"> </span>
|
|
386
406
|
<span class="cline-any cline-neutral"> </span>
|
|
387
407
|
<span class="cline-any cline-neutral"> </span>
|
|
388
408
|
<span class="cline-any cline-neutral"> </span>
|
|
389
|
-
<span class="cline-any cline-yes">
|
|
409
|
+
<span class="cline-any cline-yes">136x</span>
|
|
390
410
|
<span class="cline-any cline-neutral"> </span>
|
|
391
411
|
<span class="cline-any cline-neutral"> </span>
|
|
392
412
|
<span class="cline-any cline-no"> </span>
|
|
@@ -415,11 +435,15 @@
|
|
|
415
435
|
<span class="cline-any cline-neutral"> </span>
|
|
416
436
|
<span class="cline-any cline-neutral"> </span>
|
|
417
437
|
<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>
|
|
422
438
|
<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>
|
|
423
447
|
<span class="cline-any cline-neutral"> </span>
|
|
424
448
|
<span class="cline-any cline-yes">30x</span>
|
|
425
449
|
<span class="cline-any cline-yes">25x</span>
|
|
@@ -439,6 +463,10 @@
|
|
|
439
463
|
<span class="cline-any cline-neutral"> </span>
|
|
440
464
|
<span class="cline-any cline-yes">18x</span>
|
|
441
465
|
<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>
|
|
442
470
|
<span class="cline-any cline-yes">18x</span>
|
|
443
471
|
<span class="cline-any cline-yes">18x</span>
|
|
444
472
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -454,7 +482,9 @@
|
|
|
454
482
|
<span class="cline-any cline-neutral"> </span>
|
|
455
483
|
<span class="cline-any cline-neutral"> </span>
|
|
456
484
|
<span class="cline-any cline-neutral"> </span>
|
|
457
|
-
<span class="cline-any cline-
|
|
485
|
+
<span class="cline-any cline-neutral"> </span>
|
|
486
|
+
<span class="cline-any cline-yes">34x</span>
|
|
487
|
+
<span class="cline-any cline-yes">26x</span>
|
|
458
488
|
<span class="cline-any cline-neutral"> </span>
|
|
459
489
|
<span class="cline-any cline-yes">26x</span>
|
|
460
490
|
<span class="cline-any cline-yes">26x</span>
|
|
@@ -490,12 +520,12 @@ const {
|
|
|
490
520
|
getLinkedTable,
|
|
491
521
|
} = require("./linkUtils")
|
|
492
522
|
const { flatten } = require("lodash")
|
|
523
|
+
const CouchDB = require("../../db")
|
|
493
524
|
const { FieldTypes } = require("../../constants")
|
|
494
525
|
const { getMultiIDParams, USER_METDATA_PREFIX } = require("../../db/utils")
|
|
495
526
|
const { partition } = require("lodash")
|
|
496
527
|
const { getGlobalUsersFromMetadata } = require("../../utilities/global")
|
|
497
528
|
const { processFormulas } = require("../../utilities/rowProcessor/utils")
|
|
498
|
-
const { getAppDB } = require("@budibase/backend-core/context")
|
|
499
529
|
|
|
500
530
|
/**
|
|
501
531
|
* This functionality makes sure that when rows with links are created, updated or deleted they are processed
|
|
@@ -529,13 +559,14 @@ function clearRelationshipFields(table, rows) {
|
|
|
529
559
|
return rows
|
|
530
560
|
}
|
|
531
561
|
|
|
532
|
-
async function getLinksForRows(rows) {
|
|
562
|
+
async function getLinksForRows(appId, rows) {
|
|
533
563
|
const tableIds = [...new Set(rows.map(el => el.tableId))]
|
|
534
564
|
// start by getting all the link values for performance reasons
|
|
535
565
|
const responses = flatten(
|
|
536
566
|
await Promise.all(
|
|
537
567
|
tableIds.map(tableId =>
|
|
538
568
|
getLinkDocuments({
|
|
569
|
+
appId,
|
|
539
570
|
tableId: tableId,
|
|
540
571
|
includeDocs: IncludeDocs.EXCLUDE,
|
|
541
572
|
})
|
|
@@ -552,9 +583,9 @@ async function getLinksForRows(rows) {
|
|
|
552
583
|
)
|
|
553
584
|
}
|
|
554
585
|
|
|
555
|
-
async function getFullLinkedDocs(links) {
|
|
586
|
+
async function getFullLinkedDocs(ctx, appId, links) {
|
|
556
587
|
// create DBs
|
|
557
|
-
const db =
|
|
588
|
+
const db = new CouchDB(appId)
|
|
558
589
|
const linkedRowIds = links.map(link => link.id)
|
|
559
590
|
const uniqueRowIds = [...new Set(linkedRowIds)]
|
|
560
591
|
let dbRows = (await db.allDocs(getMultiIDParams(uniqueRowIds))).rows.map(
|
|
@@ -568,7 +599,7 @@ async function getFullLinkedDocs(links) {
|
|
|
568
599
|
let [users, other] = partition(linked, linkRow =>
|
|
569
600
|
linkRow._id.startsWith(USER_METDATA_PREFIX)
|
|
570
601
|
)
|
|
571
|
-
users = await getGlobalUsersFromMetadata(users)
|
|
602
|
+
users = await getGlobalUsersFromMetadata(appId, users)
|
|
572
603
|
return [...other, ...users]
|
|
573
604
|
}
|
|
574
605
|
|
|
@@ -576,16 +607,20 @@ async function getFullLinkedDocs(links) {
|
|
|
576
607
|
* Update link documents for a row or table - this is to be called by the API controller when a change is occurring.
|
|
577
608
|
* @param {string} args.eventType states what type of change which is occurring, means this can be expanded upon in the
|
|
578
609
|
* 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.
|
|
579
611
|
* @param {string} args.tableId The ID of the of the table which is being changed.
|
|
580
|
-
* @param {object|
|
|
581
|
-
* @param {object|
|
|
582
|
-
* @param {object|
|
|
612
|
+
* @param {object|null} args.row The row which is changing, e.g. created, updated or deleted.
|
|
613
|
+
* @param {object|null} args.table If the table has already been retrieved this can be used to reduce database gets.
|
|
614
|
+
* @param {object|null} args.oldTable If the table is being updated then the old table can be provided for differencing.
|
|
583
615
|
* @returns {Promise<object>} When the update is complete this will respond successfully. Returns the row for
|
|
584
616
|
* row operations and the table for table operations.
|
|
585
617
|
*/
|
|
586
618
|
exports.updateLinks = async function (args) {
|
|
587
|
-
const { eventType, row, tableId, table, oldTable } = args
|
|
619
|
+
const { eventType, appId, row, tableId, table, oldTable } = args
|
|
588
620
|
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
|
+
}
|
|
589
624
|
// make sure table ID is set
|
|
590
625
|
if (tableId == null && table != null) {
|
|
591
626
|
args.tableId = table._id
|
|
@@ -622,23 +657,27 @@ exports.updateLinks = async function (args) {
|
|
|
622
657
|
/**
|
|
623
658
|
* Given a table and a list of rows this will retrieve all of the attached docs and enrich them into the row.
|
|
624
659
|
* 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.
|
|
625
661
|
* @param {object} table The table from which the rows originated.
|
|
626
662
|
* @param {array<object>} rows The rows which are to be enriched.
|
|
627
663
|
* @return {Promise<*>} returns the rows with all of the enriched relationships on it.
|
|
628
664
|
*/
|
|
629
|
-
exports.attachFullLinkedDocs = async (table, rows) => {
|
|
665
|
+
exports.attachFullLinkedDocs = async (ctx, table, rows) => {
|
|
666
|
+
const appId = ctx.appId
|
|
630
667
|
const linkedTableIds = getLinkedTableIDs(table)
|
|
631
668
|
if (linkedTableIds.length === 0) {
|
|
632
669
|
return rows
|
|
633
670
|
}
|
|
671
|
+
// create DBs
|
|
672
|
+
const db = new CouchDB(appId)
|
|
634
673
|
// get all the links
|
|
635
|
-
const links = (await getLinksForRows(rows)).filter(link =>
|
|
674
|
+
const links = (await getLinksForRows(appId, rows)).filter(link =>
|
|
636
675
|
rows.some(row => row._id === link.thisId)
|
|
637
676
|
)
|
|
638
677
|
// clear any existing links that could be dupe'd
|
|
639
678
|
rows = clearRelationshipFields(table, rows)
|
|
640
679
|
// now get the docs and combine into the rows
|
|
641
|
-
let linked = await getFullLinkedDocs(links)
|
|
680
|
+
let linked = await getFullLinkedDocs(ctx, appId, links)
|
|
642
681
|
const linkedTables = []
|
|
643
682
|
for (let row of rows) {
|
|
644
683
|
for (let link of links.filter(link => link.thisId === row._id)) {
|
|
@@ -649,7 +688,11 @@ exports.attachFullLinkedDocs = async (table, rows) => {
|
|
|
649
688
|
if (linkedRow) {
|
|
650
689
|
const linkedTableId =
|
|
651
690
|
linkedRow.tableId || <span class="branch-1 cbranch-no" title="branch not covered" >getRelatedTableForField(table, link.fieldName)</span>
|
|
652
|
-
const linkedTable = await getLinkedTable(
|
|
691
|
+
const linkedTable = await getLinkedTable(
|
|
692
|
+
db,
|
|
693
|
+
linkedTableId,
|
|
694
|
+
linkedTables
|
|
695
|
+
)
|
|
653
696
|
if (linkedTable) {
|
|
654
697
|
row[link.fieldName].push(processFormulas(linkedTable, linkedRow))
|
|
655
698
|
}
|
|
@@ -661,16 +704,18 @@ exports.attachFullLinkedDocs = async (table, rows) => {
|
|
|
661
704
|
|
|
662
705
|
/**
|
|
663
706
|
* 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.
|
|
664
708
|
* @param {object} table The table from which the rows originated.
|
|
665
709
|
* @param {array<object>} enriched The pre-enriched rows (full docs) which are to be squashed.
|
|
666
710
|
* @returns {Promise<Array>} The rows after having their links squashed to only contain the ID and primary display.
|
|
667
711
|
*/
|
|
668
|
-
exports.squashLinksToPrimaryDisplay = async (table, enriched) => {
|
|
712
|
+
exports.squashLinksToPrimaryDisplay = async (appId, table, enriched) => {
|
|
713
|
+
const db = new CouchDB(appId)
|
|
669
714
|
// will populate this as we find them
|
|
670
715
|
const linkedTables = [table]
|
|
671
716
|
for (let row of enriched) {
|
|
672
717
|
// this only fetches the table if its not already in array
|
|
673
|
-
const rowTable = await getLinkedTable(row.tableId, linkedTables)
|
|
718
|
+
const rowTable = await getLinkedTable(db, row.tableId, linkedTables)
|
|
674
719
|
for (let [column, schema] of Object.entries(rowTable.schema)) {
|
|
675
720
|
if (schema.type !== FieldTypes.LINK || !Array.isArray(row[column])) {
|
|
676
721
|
continue
|
|
@@ -678,7 +723,7 @@ exports.squashLinksToPrimaryDisplay = async (table, enriched) => {
|
|
|
678
723
|
const newLinks = []
|
|
679
724
|
for (let link of row[column]) {
|
|
680
725
|
const linkTblId = link.tableId || <span class="branch-1 cbranch-no" title="branch not covered" >getRelatedTableForField(table, column)</span>
|
|
681
|
-
const linkedTable = await getLinkedTable(linkTblId, linkedTables)
|
|
726
|
+
const linkedTable = await getLinkedTable(db, linkTblId, linkedTables)
|
|
682
727
|
const obj = { _id: link._id }
|
|
683
728
|
if (link[linkedTable.primaryDisplay]) {
|
|
684
729
|
obj.primaryDisplay = link[linkedTable.primaryDisplay]
|
|
@@ -697,7 +742,7 @@ exports.squashLinksToPrimaryDisplay = async (table, enriched) => {
|
|
|
697
742
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
698
743
|
Code coverage generated by
|
|
699
744
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
700
|
-
at
|
|
745
|
+
at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
|
|
701
746
|
</div>
|
|
702
747
|
</div>
|
|
703
748
|
<script src="../../prettify.js"></script>
|