@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,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">58.01% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>76/131</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">43% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>43/
|
|
35
|
+
<span class='fraction'>43/100</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">50% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>10/
|
|
42
|
+
<span class='fraction'>10/20</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">60.48% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>75/124</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -396,28 +396,26 @@
|
|
|
396
396
|
<a name='L337'></a><a href='#L337'>337</a>
|
|
397
397
|
<a name='L338'></a><a href='#L338'>338</a>
|
|
398
398
|
<a name='L339'></a><a href='#L339'>339</a>
|
|
399
|
-
<a name='L340'></a><a href='#L340'>340</a>
|
|
400
|
-
<
|
|
401
|
-
<
|
|
402
|
-
<span class="cline-any cline-yes">
|
|
403
|
-
<span class="cline-any cline-yes">
|
|
404
|
-
<span class="cline-any cline-yes">
|
|
405
|
-
<span class="cline-any cline-yes">
|
|
406
|
-
<span class="cline-any cline-yes">34x</span>
|
|
407
|
-
<span class="cline-any cline-yes">34x</span>
|
|
399
|
+
<a name='L340'></a><a href='#L340'>340</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
|
|
400
|
+
<span class="cline-any cline-yes">39x</span>
|
|
401
|
+
<span class="cline-any cline-yes">39x</span>
|
|
402
|
+
<span class="cline-any cline-yes">39x</span>
|
|
403
|
+
<span class="cline-any cline-yes">39x</span>
|
|
404
|
+
<span class="cline-any cline-yes">39x</span>
|
|
405
|
+
<span class="cline-any cline-yes">39x</span>
|
|
408
406
|
<span class="cline-any cline-neutral"> </span>
|
|
409
407
|
<span class="cline-any cline-neutral"> </span>
|
|
410
408
|
<span class="cline-any cline-neutral"> </span>
|
|
411
409
|
<span class="cline-any cline-neutral"> </span>
|
|
412
|
-
<span class="cline-any cline-yes">
|
|
413
|
-
<span class="cline-any cline-yes">
|
|
410
|
+
<span class="cline-any cline-yes">39x</span>
|
|
411
|
+
<span class="cline-any cline-yes">39x</span>
|
|
414
412
|
<span class="cline-any cline-neutral"> </span>
|
|
415
|
-
<span class="cline-any cline-yes">
|
|
413
|
+
<span class="cline-any cline-yes">39x</span>
|
|
416
414
|
<span class="cline-any cline-neutral"> </span>
|
|
417
415
|
<span class="cline-any cline-neutral"> </span>
|
|
418
416
|
<span class="cline-any cline-neutral"> </span>
|
|
419
417
|
<span class="cline-any cline-neutral"> </span>
|
|
420
|
-
<span class="cline-any cline-yes">
|
|
418
|
+
<span class="cline-any cline-yes">39x</span>
|
|
421
419
|
<span class="cline-any cline-neutral"> </span>
|
|
422
420
|
<span class="cline-any cline-neutral"> </span>
|
|
423
421
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -536,13 +534,13 @@
|
|
|
536
534
|
<span class="cline-any cline-neutral"> </span>
|
|
537
535
|
<span class="cline-any cline-neutral"> </span>
|
|
538
536
|
<span class="cline-any cline-neutral"> </span>
|
|
539
|
-
<span class="cline-any cline-yes">
|
|
540
|
-
<span class="cline-any cline-yes">
|
|
537
|
+
<span class="cline-any cline-yes">76x</span>
|
|
538
|
+
<span class="cline-any cline-yes">76x</span>
|
|
541
539
|
<span class="cline-any cline-neutral"> </span>
|
|
542
|
-
<span class="cline-any cline-yes">
|
|
543
|
-
<span class="cline-any cline-yes">
|
|
544
|
-
<span class="cline-any cline-yes">
|
|
545
|
-
<span class="cline-any cline-yes">
|
|
540
|
+
<span class="cline-any cline-yes">76x</span>
|
|
541
|
+
<span class="cline-any cline-yes">76x</span>
|
|
542
|
+
<span class="cline-any cline-yes">212x</span>
|
|
543
|
+
<span class="cline-any cline-yes">212x</span>
|
|
546
544
|
<span class="cline-any cline-neutral"> </span>
|
|
547
545
|
<span class="cline-any cline-no"> </span>
|
|
548
546
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -576,29 +574,31 @@
|
|
|
576
574
|
<span class="cline-any cline-no"> </span>
|
|
577
575
|
<span class="cline-any cline-neutral"> </span>
|
|
578
576
|
<span class="cline-any cline-neutral"> </span>
|
|
579
|
-
<span class="cline-any cline-yes">
|
|
577
|
+
<span class="cline-any cline-yes">76x</span>
|
|
580
578
|
<span class="cline-any cline-neutral"> </span>
|
|
581
|
-
<span class="cline-any cline-yes">
|
|
579
|
+
<span class="cline-any cline-yes">39x</span>
|
|
582
580
|
<span class="cline-any cline-neutral"> </span>
|
|
581
|
+
<span class="cline-any cline-yes">39x</span>
|
|
583
582
|
<span class="cline-any cline-neutral"> </span>
|
|
584
583
|
<span class="cline-any cline-neutral"> </span>
|
|
585
584
|
<span class="cline-any cline-neutral"> </span>
|
|
586
585
|
<span class="cline-any cline-neutral"> </span>
|
|
587
586
|
<span class="cline-any cline-neutral"> </span>
|
|
588
587
|
<span class="cline-any cline-neutral"> </span>
|
|
589
|
-
<span class="cline-any cline-yes">34x</span>
|
|
590
588
|
<span class="cline-any cline-neutral"> </span>
|
|
591
|
-
<span class="cline-any cline-yes">
|
|
589
|
+
<span class="cline-any cline-yes">39x</span>
|
|
590
|
+
<span class="cline-any cline-neutral"> </span>
|
|
591
|
+
<span class="cline-any cline-yes">180x</span>
|
|
592
592
|
<span class="cline-any cline-no"> </span>
|
|
593
593
|
<span class="cline-any cline-neutral"> </span>
|
|
594
594
|
<span class="cline-any cline-neutral"> </span>
|
|
595
|
-
<span class="cline-any cline-yes">
|
|
595
|
+
<span class="cline-any cline-yes">180x</span>
|
|
596
596
|
<span class="cline-any cline-yes">16x</span>
|
|
597
|
-
<span class="cline-any cline-yes">
|
|
597
|
+
<span class="cline-any cline-yes">164x</span>
|
|
598
598
|
<span class="cline-any cline-yes">22x</span>
|
|
599
599
|
<span class="cline-any cline-neutral"> </span>
|
|
600
600
|
<span class="cline-any cline-neutral"> </span>
|
|
601
|
-
<span class="cline-any cline-yes">
|
|
601
|
+
<span class="cline-any cline-yes">142x</span>
|
|
602
602
|
<span class="cline-any cline-neutral"> </span>
|
|
603
603
|
<span class="cline-any cline-neutral"> </span>
|
|
604
604
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -610,45 +610,42 @@
|
|
|
610
610
|
<span class="cline-any cline-neutral"> </span>
|
|
611
611
|
<span class="cline-any cline-neutral"> </span>
|
|
612
612
|
<span class="cline-any cline-neutral"> </span>
|
|
613
|
-
<span class="cline-any cline-yes">
|
|
613
|
+
<span class="cline-any cline-yes">39x</span>
|
|
614
614
|
<span class="cline-any cline-neutral"> </span>
|
|
615
615
|
<span class="cline-any cline-neutral"> </span>
|
|
616
616
|
<span class="cline-any cline-neutral"> </span>
|
|
617
617
|
<span class="cline-any cline-neutral"> </span>
|
|
618
618
|
<span class="cline-any cline-neutral"> </span>
|
|
619
|
-
<span class="cline-any cline-yes">
|
|
619
|
+
<span class="cline-any cline-yes">76x</span>
|
|
620
620
|
<span class="cline-any cline-neutral"> </span>
|
|
621
|
-
<span class="cline-any cline-yes">
|
|
622
|
-
<span class="cline-any cline-yes">
|
|
623
|
-
<span class="cline-any cline-yes">
|
|
624
|
-
<span class="cline-any cline-yes">
|
|
621
|
+
<span class="cline-any cline-yes">76x</span>
|
|
622
|
+
<span class="cline-any cline-yes">76x</span>
|
|
623
|
+
<span class="cline-any cline-yes">76x</span>
|
|
624
|
+
<span class="cline-any cline-yes">344x</span>
|
|
625
625
|
<span class="cline-any cline-neutral"> </span>
|
|
626
|
-
<span class="cline-any cline-yes">
|
|
627
|
-
<span class="cline-any cline-yes">
|
|
626
|
+
<span class="cline-any cline-yes">344x</span>
|
|
627
|
+
<span class="cline-any cline-yes">165x</span>
|
|
628
628
|
<span class="cline-any cline-yes">3x</span>
|
|
629
629
|
<span class="cline-any cline-neutral"> </span>
|
|
630
|
-
<span class="cline-any cline-yes">
|
|
631
|
-
<span class="cline-any cline-neutral"> </span>
|
|
630
|
+
<span class="cline-any cline-yes">165x</span>
|
|
632
631
|
<span class="cline-any cline-neutral"> </span>
|
|
633
632
|
<span class="cline-any cline-neutral"> </span>
|
|
634
|
-
<span class="cline-any cline-yes">
|
|
633
|
+
<span class="cline-any cline-yes">179x</span>
|
|
635
634
|
<span class="cline-any cline-no"> </span>
|
|
636
635
|
<span class="cline-any cline-neutral"> </span>
|
|
637
|
-
<span class="cline-any cline-yes">173x</span>
|
|
638
|
-
<span class="cline-any cline-neutral"> </span>
|
|
639
|
-
<span class="cline-any cline-neutral"> </span>
|
|
640
636
|
<span class="cline-any cline-neutral"> </span>
|
|
641
|
-
<span class="cline-any cline-yes">73x</span>
|
|
642
|
-
<span class="cline-any cline-yes">68x</span>
|
|
643
|
-
<span class="cline-any cline-yes">68x</span>
|
|
644
637
|
<span class="cline-any cline-neutral"> </span>
|
|
638
|
+
<span class="cline-any cline-yes">179x</span>
|
|
645
639
|
<span class="cline-any cline-neutral"> </span>
|
|
646
640
|
<span class="cline-any cline-neutral"> </span>
|
|
647
|
-
<span class="cline-any cline-yes">73x</span>
|
|
648
641
|
<span class="cline-any cline-neutral"> </span>
|
|
642
|
+
<span class="cline-any cline-yes">76x</span>
|
|
643
|
+
<span class="cline-any cline-yes">71x</span>
|
|
644
|
+
<span class="cline-any cline-yes">71x</span>
|
|
649
645
|
<span class="cline-any cline-neutral"> </span>
|
|
650
646
|
<span class="cline-any cline-neutral"> </span>
|
|
651
647
|
<span class="cline-any cline-neutral"> </span>
|
|
648
|
+
<span class="cline-any cline-yes">76x</span>
|
|
652
649
|
<span class="cline-any cline-neutral"> </span>
|
|
653
650
|
<span class="cline-any cline-neutral"> </span>
|
|
654
651
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -657,27 +654,24 @@
|
|
|
657
654
|
<span class="cline-any cline-neutral"> </span>
|
|
658
655
|
<span class="cline-any cline-neutral"> </span>
|
|
659
656
|
<span class="cline-any cline-neutral"> </span>
|
|
660
|
-
<span class="cline-any cline-yes">34x</span>
|
|
661
657
|
<span class="cline-any cline-neutral"> </span>
|
|
662
658
|
<span class="cline-any cline-neutral"> </span>
|
|
663
659
|
<span class="cline-any cline-neutral"> </span>
|
|
660
|
+
<span class="cline-any cline-yes">39x</span>
|
|
661
|
+
<span class="cline-any cline-yes">103x</span>
|
|
662
|
+
<span class="cline-any cline-yes">103x</span>
|
|
663
|
+
<span class="cline-any cline-yes">90x</span>
|
|
664
|
+
<span class="cline-any cline-yes">90x</span>
|
|
664
665
|
<span class="cline-any cline-neutral"> </span>
|
|
665
666
|
<span class="cline-any cline-neutral"> </span>
|
|
666
|
-
<span class="cline-any cline-yes">
|
|
667
|
-
<span class="cline-any cline-yes">100x</span>
|
|
668
|
-
<span class="cline-any cline-yes">100x</span>
|
|
669
|
-
<span class="cline-any cline-yes">87x</span>
|
|
670
|
-
<span class="cline-any cline-yes">87x</span>
|
|
667
|
+
<span class="cline-any cline-yes">103x</span>
|
|
671
668
|
<span class="cline-any cline-neutral"> </span>
|
|
672
669
|
<span class="cline-any cline-neutral"> </span>
|
|
673
|
-
<span class="cline-any cline-yes">
|
|
670
|
+
<span class="cline-any cline-yes">103x</span>
|
|
674
671
|
<span class="cline-any cline-neutral"> </span>
|
|
675
672
|
<span class="cline-any cline-neutral"> </span>
|
|
676
|
-
<span class="cline-any cline-yes">
|
|
677
|
-
<span class="cline-any cline-
|
|
678
|
-
<span class="cline-any cline-neutral"> </span>
|
|
679
|
-
<span class="cline-any cline-yes">100x</span>
|
|
680
|
-
<span class="cline-any cline-yes">296x</span>
|
|
673
|
+
<span class="cline-any cline-yes">103x</span>
|
|
674
|
+
<span class="cline-any cline-yes">302x</span>
|
|
681
675
|
<span class="cline-any cline-yes">8x</span>
|
|
682
676
|
<span class="cline-any cline-yes">8x</span>
|
|
683
677
|
<span class="cline-any cline-yes">6x</span>
|
|
@@ -688,16 +682,14 @@
|
|
|
688
682
|
<span class="cline-any cline-neutral"> </span>
|
|
689
683
|
<span class="cline-any cline-neutral"> </span>
|
|
690
684
|
<span class="cline-any cline-neutral"> </span>
|
|
691
|
-
<span class="cline-any cline-yes">
|
|
685
|
+
<span class="cline-any cline-yes">103x</span>
|
|
692
686
|
<span class="cline-any cline-yes">26x</span>
|
|
693
687
|
<span class="cline-any cline-neutral"> </span>
|
|
688
|
+
<span class="cline-any cline-yes">103x</span>
|
|
694
689
|
<span class="cline-any cline-neutral"> </span>
|
|
695
690
|
<span class="cline-any cline-neutral"> </span>
|
|
696
691
|
<span class="cline-any cline-neutral"> </span>
|
|
697
692
|
<span class="cline-any cline-neutral"> </span>
|
|
698
|
-
<span class="cline-any cline-yes">100x</span>
|
|
699
|
-
<span class="cline-any cline-neutral"> </span>
|
|
700
|
-
<span class="cline-any cline-neutral"> </span>
|
|
701
693
|
<span class="cline-any cline-neutral"> </span>
|
|
702
694
|
<span class="cline-any cline-neutral"> </span>
|
|
703
695
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -706,14 +698,14 @@
|
|
|
706
698
|
<span class="cline-any cline-neutral"> </span>
|
|
707
699
|
<span class="cline-any cline-neutral"> </span>
|
|
708
700
|
<span class="cline-any cline-neutral"> </span>
|
|
701
|
+
<span class="cline-any cline-yes">39x</span>
|
|
702
|
+
<span class="cline-any cline-yes">11x</span>
|
|
703
|
+
<span class="cline-any cline-yes">11x</span>
|
|
704
|
+
<span class="cline-any cline-yes">11x</span>
|
|
709
705
|
<span class="cline-any cline-neutral"> </span>
|
|
710
|
-
<span class="cline-any cline-yes">
|
|
711
|
-
<span class="cline-any cline-yes">
|
|
712
|
-
<span class="cline-any cline-yes">
|
|
713
|
-
<span class="cline-any cline-neutral"> </span>
|
|
714
|
-
<span class="cline-any cline-yes">8x</span>
|
|
715
|
-
<span class="cline-any cline-yes">8x</span>
|
|
716
|
-
<span class="cline-any cline-yes">8x</span>
|
|
706
|
+
<span class="cline-any cline-yes">11x</span>
|
|
707
|
+
<span class="cline-any cline-yes">11x</span>
|
|
708
|
+
<span class="cline-any cline-yes">11x</span>
|
|
717
709
|
<span class="cline-any cline-neutral"> </span>
|
|
718
710
|
<span class="cline-any cline-neutral"> </span>
|
|
719
711
|
<span class="cline-any cline-no"> </span>
|
|
@@ -725,11 +717,15 @@
|
|
|
725
717
|
<span class="cline-any cline-no"> </span>
|
|
726
718
|
<span class="cline-any cline-no"> </span>
|
|
727
719
|
<span class="cline-any cline-no"> </span>
|
|
720
|
+
<span class="cline-any cline-no"> </span>
|
|
728
721
|
<span class="cline-any cline-neutral"> </span>
|
|
729
722
|
<span class="cline-any cline-neutral"> </span>
|
|
730
723
|
<span class="cline-any cline-no"> </span>
|
|
731
724
|
<span class="cline-any cline-no"> </span>
|
|
732
725
|
<span class="cline-any cline-no"> </span>
|
|
726
|
+
<span class="cline-any cline-neutral"> </span>
|
|
727
|
+
<span class="cline-any cline-no"> </span>
|
|
728
|
+
<span class="cline-any cline-no"> </span>
|
|
733
729
|
<span class="cline-any cline-no"> </span>
|
|
734
730
|
<span class="cline-any cline-no"> </span>
|
|
735
731
|
<span class="cline-any cline-no"> </span>
|
|
@@ -748,10 +744,10 @@ const { deleteFiles } = require("../../utilities/fileSystem/utilities")
|
|
|
748
744
|
const { ObjectStoreBuckets } = require("../../constants")
|
|
749
745
|
const {
|
|
750
746
|
isProdAppID,
|
|
751
|
-
|
|
747
|
+
getProdAppID,
|
|
752
748
|
dbExists,
|
|
753
749
|
} = require("@budibase/backend-core/db")
|
|
754
|
-
const
|
|
750
|
+
const { getAppId } = require("@budibase/backend-core/context")
|
|
755
751
|
|
|
756
752
|
const BASE_AUTO_ID = 1
|
|
757
753
|
|
|
@@ -921,6 +917,8 @@ function processAutoColumn(
|
|
|
921
917
|
}
|
|
922
918
|
exports.processAutoColumn = processAutoColumn
|
|
923
919
|
|
|
920
|
+
exports.processFormulas = processFormulas
|
|
921
|
+
|
|
924
922
|
/**
|
|
925
923
|
* This will coerce a value to the correct types based on the type transform map
|
|
926
924
|
* @param {object} row The value to coerce
|
|
@@ -970,11 +968,12 @@ exports.inputProcessing = (
|
|
|
970
968
|
}
|
|
971
969
|
continue
|
|
972
970
|
}
|
|
973
|
-
//
|
|
974
|
-
// type coercion cannot completely remove the field, so have to do it here
|
|
971
|
+
// remove any formula values, they are to be generated
|
|
975
972
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (field.type === FieldTypes.FORMULA) {
|
|
976
973
|
<span class="cstat-no" title="statement not covered" > delete clonedRow[key]</span>
|
|
977
|
-
}
|
|
974
|
+
}
|
|
975
|
+
// otherwise coerce what is there to correct types
|
|
976
|
+
else {
|
|
978
977
|
clonedRow[key] = exports.coerce(value, field.type)
|
|
979
978
|
}
|
|
980
979
|
}
|
|
@@ -991,30 +990,23 @@ exports.inputProcessing = (
|
|
|
991
990
|
/**
|
|
992
991
|
* This function enriches the input rows with anything they are supposed to contain, for example
|
|
993
992
|
* link records or attachment links.
|
|
994
|
-
* @param {object} ctx the request which is looking for enriched rows.
|
|
995
993
|
* @param {object} table the table from which these rows came from originally, this is used to determine
|
|
996
994
|
* the schema of the rows and then enrich.
|
|
997
995
|
* @param {object[]|object} rows the rows which are to be enriched.
|
|
998
996
|
* @param {object} opts used to set some options for the output, such as disabling relationship squashing.
|
|
999
997
|
* @returns {object[]|object} the enriched rows will be returned.
|
|
1000
998
|
*/
|
|
1001
|
-
exports.outputProcessing = async (
|
|
1002
|
-
ctx,
|
|
1003
|
-
table,
|
|
1004
|
-
rows,
|
|
1005
|
-
opts = { squash: true }
|
|
1006
|
-
) => {
|
|
1007
|
-
const appId = ctx.appId
|
|
999
|
+
exports.outputProcessing = async (table, rows, opts = { squash: true }) => {
|
|
1008
1000
|
let wasArray = true
|
|
1009
1001
|
if (!(rows instanceof Array)) {
|
|
1010
1002
|
rows = [rows]
|
|
1011
1003
|
wasArray = false
|
|
1012
1004
|
}
|
|
1013
1005
|
// attach any linked row information
|
|
1014
|
-
let enriched = await linkRows.attachFullLinkedDocs(
|
|
1006
|
+
let enriched = await linkRows.attachFullLinkedDocs(table, rows)
|
|
1015
1007
|
|
|
1016
1008
|
// process formulas
|
|
1017
|
-
enriched = processFormulas(table, enriched)
|
|
1009
|
+
enriched = processFormulas(table, enriched, { dynamic: true })
|
|
1018
1010
|
|
|
1019
1011
|
// update the attachments URL depending on hosting
|
|
1020
1012
|
for (let [property, column] of Object.entries(table.schema)) {
|
|
@@ -1030,29 +1022,27 @@ exports.outputProcessing = async (
|
|
|
1030
1022
|
}
|
|
1031
1023
|
}
|
|
1032
1024
|
if (opts.squash) {
|
|
1033
|
-
enriched = await linkRows.squashLinksToPrimaryDisplay(
|
|
1034
|
-
appId,
|
|
1035
|
-
table,
|
|
1036
|
-
enriched
|
|
1037
|
-
)
|
|
1025
|
+
enriched = await linkRows.squashLinksToPrimaryDisplay(table, enriched)
|
|
1038
1026
|
}
|
|
1039
1027
|
return wasArray ? enriched : enriched[0]
|
|
1040
1028
|
}
|
|
1041
1029
|
|
|
1042
1030
|
/**
|
|
1043
1031
|
* Clean up any attachments that were attached to a row.
|
|
1044
|
-
* @param {string} appId The ID of the app from which a row is being deleted.
|
|
1045
1032
|
* @param {object} table The table from which a row is being removed.
|
|
1046
1033
|
* @param {any} row optional - the row being removed.
|
|
1047
1034
|
* @param {any} rows optional - if multiple rows being deleted can do this in bulk.
|
|
1048
1035
|
* @param {any} oldRow optional - if updating a row this will determine the difference.
|
|
1036
|
+
* @param {any} oldTable optional - if updating a table, can supply the old table to look for
|
|
1037
|
+
* deleted attachment columns.
|
|
1049
1038
|
* @return {Promise<void>} When all attachments have been removed this will return.
|
|
1050
1039
|
*/
|
|
1051
|
-
exports.cleanupAttachments = async (
|
|
1040
|
+
exports.cleanupAttachments = async (table, { row, rows, oldRow, oldTable }) => {
|
|
1041
|
+
const appId = getAppId()
|
|
1052
1042
|
if (!isProdAppID(appId)) {
|
|
1053
|
-
const prodAppId =
|
|
1043
|
+
const prodAppId = getProdAppID(appId)
|
|
1054
1044
|
// if prod exists, then don't allow deleting
|
|
1055
|
-
const exists = await dbExists(
|
|
1045
|
+
const exists = await dbExists(prodAppId)
|
|
1056
1046
|
if (exists) {
|
|
1057
1047
|
return
|
|
1058
1048
|
}
|
|
@@ -1063,12 +1053,16 @@ exports.cleanupAttachments = async (appId, table, { row, rows, oldRow }) => {
|
|
|
1063
1053
|
<span class="cstat-no" title="statement not covered" > files = files.concat(row[key].map(<span class="fstat-no" title="function not covered" >at</span>tachment => <span class="cstat-no" title="statement not covered" >attachment.key)</span>)</span>
|
|
1064
1054
|
}
|
|
1065
1055
|
}
|
|
1066
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1056
|
+
const schemaToUse = <span class="cstat-no" title="statement not covered" >oldTable ? oldTable.schema : table.schema</span>
|
|
1057
|
+
<span class="cstat-no" title="statement not covered" > for (let [key, schema] of Object.entries(schemaToUse)) {</span>
|
|
1067
1058
|
<span class="cstat-no" title="statement not covered" > if (schema.type !== FieldTypes.ATTACHMENT) {</span>
|
|
1068
1059
|
<span class="cstat-no" title="statement not covered" > continue</span>
|
|
1069
1060
|
}
|
|
1070
|
-
//
|
|
1071
|
-
<span class="cstat-no" title="statement not covered" > if (
|
|
1061
|
+
// old table had this column, new table doesn't - delete it
|
|
1062
|
+
<span class="cstat-no" title="statement not covered" > if (oldTable && !table.schema[key]) {</span>
|
|
1063
|
+
<span class="cstat-no" title="statement not covered" > rows.forEach(<span class="fstat-no" title="function not covered" >ro</span>w => <span class="cstat-no" title="statement not covered" >addFiles(row, key))</span></span>
|
|
1064
|
+
} else <span class="cstat-no" title="statement not covered" >if (oldRow && row) {</span>
|
|
1065
|
+
// if updating, need to manage the differences
|
|
1072
1066
|
<span class="cstat-no" title="statement not covered" > files = files.concat(getRemovedAttachmentKeys(oldRow, row, key))</span>
|
|
1073
1067
|
} else <span class="cstat-no" title="statement not covered" >if (row) {</span>
|
|
1074
1068
|
<span class="cstat-no" title="statement not covered" > addFiles(row, key)</span>
|
|
@@ -1087,7 +1081,7 @@ exports.cleanupAttachments = async (appId, table, { row, rows, oldRow }) => {
|
|
|
1087
1081
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1088
1082
|
Code coverage generated by
|
|
1089
1083
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
1090
|
-
at
|
|
1084
|
+
at Mon Feb 07 2022 20:42:11 GMT+0000 (Coordinated Universal Time)
|
|
1091
1085
|
</div>
|
|
1092
1086
|
</div>
|
|
1093
1087
|
<script src="../../prettify.js"></script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">66.66% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>12/18</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">50% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>9/18</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>1/
|
|
42
|
+
<span class='fraction'>1/1</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">70.58% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>12/17</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
56
|
</p>
|
|
57
57
|
</div>
|
|
58
|
-
<div class='status-line
|
|
58
|
+
<div class='status-line medium'></div>
|
|
59
59
|
<pre><table class="coverage">
|
|
60
60
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
61
61
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -80,49 +80,97 @@
|
|
|
80
80
|
<a name='L21'></a><a href='#L21'>21</a>
|
|
81
81
|
<a name='L22'></a><a href='#L22'>22</a>
|
|
82
82
|
<a name='L23'></a><a href='#L23'>23</a>
|
|
83
|
-
<a name='L24'></a><a href='#L24'>24</a
|
|
84
|
-
<
|
|
83
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
84
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
|
85
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
|
86
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
|
87
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
88
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
89
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
90
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
91
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
92
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
93
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
94
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
95
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
96
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
97
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
98
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
99
|
+
<a name='L40'></a><a href='#L40'>40</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
|
|
100
|
+
<span class="cline-any cline-yes">39x</span>
|
|
101
|
+
<span class="cline-any cline-neutral"> </span>
|
|
102
|
+
<span class="cline-any cline-neutral"> </span>
|
|
103
|
+
<span class="cline-any cline-neutral"> </span>
|
|
104
|
+
<span class="cline-any cline-neutral"> </span>
|
|
105
|
+
<span class="cline-any cline-yes">39x</span>
|
|
106
|
+
<span class="cline-any cline-neutral"> </span>
|
|
107
|
+
<span class="cline-any cline-neutral"> </span>
|
|
108
|
+
<span class="cline-any cline-neutral"> </span>
|
|
85
109
|
<span class="cline-any cline-neutral"> </span>
|
|
110
|
+
<span class="cline-any cline-yes">267x</span>
|
|
111
|
+
<span class="cline-any cline-yes">267x</span>
|
|
112
|
+
<span class="cline-any cline-yes">164x</span>
|
|
113
|
+
<span class="cline-any cline-yes">164x</span>
|
|
86
114
|
<span class="cline-any cline-neutral"> </span>
|
|
115
|
+
<span class="cline-any cline-yes">267x</span>
|
|
116
|
+
<span class="cline-any cline-yes">776x</span>
|
|
117
|
+
<span class="cline-any cline-yes">776x</span>
|
|
87
118
|
<span class="cline-any cline-neutral"> </span>
|
|
88
119
|
<span class="cline-any cline-neutral"> </span>
|
|
89
|
-
<span class="cline-any cline-yes">34x</span>
|
|
90
|
-
<span class="cline-any cline-yes">118x</span>
|
|
91
|
-
<span class="cline-any cline-yes">118x</span>
|
|
92
|
-
<span class="cline-any cline-yes">18x</span>
|
|
93
120
|
<span class="cline-any cline-neutral"> </span>
|
|
94
|
-
<span class="cline-any cline-yes">118x</span>
|
|
95
|
-
<span class="cline-any cline-yes">364x</span>
|
|
96
|
-
<span class="cline-any cline-yes">364x</span>
|
|
97
121
|
<span class="cline-any cline-neutral"> </span>
|
|
122
|
+
<span class="cline-any cline-yes">776x</span>
|
|
98
123
|
<span class="cline-any cline-neutral"> </span>
|
|
124
|
+
<span class="cline-any cline-neutral"> </span>
|
|
125
|
+
<span class="cline-any cline-no"> </span>
|
|
126
|
+
<span class="cline-any cline-no"> </span>
|
|
127
|
+
<span class="cline-any cline-no"> </span>
|
|
128
|
+
<span class="cline-any cline-no"> </span>
|
|
99
129
|
<span class="cline-any cline-no"> </span>
|
|
100
130
|
<span class="cline-any cline-neutral"> </span>
|
|
101
131
|
<span class="cline-any cline-neutral"> </span>
|
|
102
132
|
<span class="cline-any cline-neutral"> </span>
|
|
103
133
|
<span class="cline-any cline-neutral"> </span>
|
|
104
|
-
<span class="cline-any cline-yes">118x</span>
|
|
105
134
|
<span class="cline-any cline-neutral"> </span>
|
|
106
|
-
<span class="cline-any cline-neutral"> </span
|
|
135
|
+
<span class="cline-any cline-neutral"> </span>
|
|
136
|
+
<span class="cline-any cline-yes">267x</span>
|
|
137
|
+
<span class="cline-any cline-neutral"> </span>
|
|
138
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const { FieldTypes, FormulaTypes } = require("../../constants")
|
|
107
139
|
const { processStringSync } = require("@budibase/string-templates")
|
|
108
140
|
|
|
109
141
|
/**
|
|
110
142
|
* Looks through the rows provided and finds formulas - which it then processes.
|
|
111
143
|
*/
|
|
112
|
-
exports.processFormulas = (
|
|
144
|
+
exports.processFormulas = (
|
|
145
|
+
table,
|
|
146
|
+
rows,
|
|
147
|
+
{ dynamic, contextRows } = { dynamic: true }
|
|
148
|
+
) => {
|
|
113
149
|
const single = !Array.isArray(rows)
|
|
114
150
|
if (single) {
|
|
115
151
|
rows = [rows]
|
|
152
|
+
contextRows = contextRows ? [contextRows] : contextRows
|
|
116
153
|
}
|
|
117
154
|
for (let [column, schema] of Object.entries(table.schema)) {
|
|
118
|
-
|
|
155
|
+
const isStatic = schema.formulaType === FormulaTypes.STATIC
|
|
156
|
+
if (
|
|
157
|
+
schema.type !== FieldTypes.FORMULA ||
|
|
158
|
+
(<span class="branch-1 cbranch-no" title="branch not covered" >dynamic </span>&& <span class="branch-2 cbranch-no" title="branch not covered" >isStatic)</span> ||
|
|
159
|
+
(<span class="branch-3 cbranch-no" title="branch not covered" >!dynamic </span>&& <span class="branch-4 cbranch-no" title="branch not covered" >!isStatic)</span>
|
|
160
|
+
) {
|
|
119
161
|
continue
|
|
120
162
|
}
|
|
121
163
|
// iterate through rows and process formula
|
|
122
|
-
<span class="cstat-no" title="statement not covered" >
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
164
|
+
<span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i < rows.length; i++) {</span>
|
|
165
|
+
<span class="cstat-no" title="statement not covered" > if (schema.formula) {</span>
|
|
166
|
+
let row = <span class="cstat-no" title="statement not covered" >rows[i]</span>
|
|
167
|
+
let context = <span class="cstat-no" title="statement not covered" >contextRows ? contextRows[i] : row</span>
|
|
168
|
+
<span class="cstat-no" title="statement not covered" > rows[i] = {</span>
|
|
169
|
+
...row,
|
|
170
|
+
[column]: processStringSync(schema.formula, context),
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
126
174
|
}
|
|
127
175
|
return single ? rows[0] : rows
|
|
128
176
|
}
|
|
@@ -133,7 +181,7 @@ exports.processFormulas = (table, rows) => {
|
|
|
133
181
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
134
182
|
Code coverage generated by
|
|
135
183
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
136
|
-
at
|
|
184
|
+
at Mon Feb 07 2022 20:42:11 GMT+0000 (Coordinated Universal Time)
|
|
137
185
|
</div>
|
|
138
186
|
</div>
|
|
139
187
|
<script src="../../prettify.js"></script>
|
|
@@ -81,9 +81,9 @@
|
|
|
81
81
|
<a name='L22'></a><a href='#L22'>22</a>
|
|
82
82
|
<a name='L23'></a><a href='#L23'>23</a>
|
|
83
83
|
<a name='L24'></a><a href='#L24'>24</a>
|
|
84
|
-
<a name='L25'></a><a href='#L25'>25</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">
|
|
85
|
-
<span class="cline-any cline-yes">
|
|
86
|
-
<span class="cline-any cline-yes">
|
|
84
|
+
<a name='L25'></a><a href='#L25'>25</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
|
|
85
|
+
<span class="cline-any cline-yes">39x</span>
|
|
86
|
+
<span class="cline-any cline-yes">39x</span>
|
|
87
87
|
<span class="cline-any cline-neutral"> </span>
|
|
88
88
|
<span class="cline-any cline-neutral"> </span>
|
|
89
89
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
<span class="cline-any cline-neutral"> </span>
|
|
105
105
|
<span class="cline-any cline-neutral"> </span>
|
|
106
106
|
<span class="cline-any cline-neutral"> </span>
|
|
107
|
-
<span class="cline-any cline-yes">
|
|
107
|
+
<span class="cline-any cline-yes">39x</span>
|
|
108
108
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const fetch = require("node-fetch")
|
|
109
109
|
const { VM, VMScript } = require("vm2")
|
|
110
110
|
const JS_TIMEOUT_MS = 1000
|
|
@@ -136,7 +136,7 @@ module.exports = ScriptRunner
|
|
|
136
136
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
137
137
|
Code coverage generated by
|
|
138
138
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
139
|
-
at
|
|
139
|
+
at Mon Feb 07 2022 20:42:11 GMT+0000 (Coordinated Universal Time)
|
|
140
140
|
</div>
|
|
141
141
|
</div>
|
|
142
142
|
<script src="../prettify.js"></script>
|