@budibase/server 2.3.18-alpha.9 → 2.3.19
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__/aws-sdk.ts +1 -1
- package/builder/assets/index.4488f38d.css +6 -0
- package/builder/assets/{index.956858d3.js → index.a3f8cb92.js} +415 -422
- package/builder/index.html +2 -2
- package/coverage/clover.xml +11774 -0
- package/coverage/coverage-final.json +284 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +1031 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov-report/src/api/controllers/analytics.ts.html +190 -0
- package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +247 -0
- package/coverage/lcov-report/src/api/controllers/application.ts.html +1987 -0
- package/coverage/lcov-report/src/api/controllers/auth.ts.html +301 -0
- package/coverage/lcov-report/src/api/controllers/automation.ts.html +940 -0
- package/coverage/lcov-report/src/api/controllers/backup.ts.html +148 -0
- package/coverage/lcov-report/src/api/controllers/cloud.ts.html +442 -0
- package/coverage/lcov-report/src/api/controllers/component.ts.html +259 -0
- package/coverage/lcov-report/src/api/controllers/datasource.ts.html +1135 -0
- package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +262 -0
- package/coverage/lcov-report/src/api/controllers/deploy/index.html +131 -0
- package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +694 -0
- package/coverage/lcov-report/src/api/controllers/dev.ts.html +472 -0
- package/coverage/lcov-report/src/api/controllers/index.html +431 -0
- package/coverage/lcov-report/src/api/controllers/integration.ts.html +124 -0
- package/coverage/lcov-report/src/api/controllers/layout.ts.html +226 -0
- package/coverage/lcov-report/src/api/controllers/metadata.ts.html +211 -0
- package/coverage/lcov-report/src/api/controllers/migrations.ts.html +127 -0
- package/coverage/lcov-report/src/api/controllers/permission.ts.html +619 -0
- package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +130 -0
- package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +310 -0
- package/coverage/lcov-report/src/api/controllers/plugin/index.html +206 -0
- package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +499 -0
- package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +253 -0
- package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +97 -0
- package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +121 -0
- package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +136 -0
- package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +385 -0
- package/coverage/lcov-report/src/api/controllers/public/index.html +191 -0
- package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +181 -0
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +191 -0
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +124 -0
- package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +202 -0
- package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +178 -0
- package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +163 -0
- package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +181 -0
- package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +145 -0
- package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +328 -0
- package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +253 -0
- package/coverage/lcov-report/src/api/controllers/public/users.ts.html +325 -0
- package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +220 -0
- package/coverage/lcov-report/src/api/controllers/query/import/index.html +116 -0
- package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +373 -0
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +131 -0
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +379 -0
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +157 -0
- package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +403 -0
- package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +146 -0
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +586 -0
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +712 -0
- package/coverage/lcov-report/src/api/controllers/query/index.html +131 -0
- package/coverage/lcov-report/src/api/controllers/query/index.ts.html +1000 -0
- package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +235 -0
- package/coverage/lcov-report/src/api/controllers/role.ts.html +397 -0
- package/coverage/lcov-report/src/api/controllers/routing.ts.html +370 -0
- package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +2305 -0
- package/coverage/lcov-report/src/api/controllers/row/external.ts.html +931 -0
- package/coverage/lcov-report/src/api/controllers/row/index.html +206 -0
- package/coverage/lcov-report/src/api/controllers/row/index.ts.html +541 -0
- package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +1609 -0
- package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +1678 -0
- package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +595 -0
- package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +556 -0
- package/coverage/lcov-report/src/api/controllers/screen.ts.html +463 -0
- package/coverage/lcov-report/src/api/controllers/script.ts.html +121 -0
- package/coverage/lcov-report/src/api/controllers/static/index.html +116 -0
- package/coverage/lcov-report/src/api/controllers/static/index.ts.html +679 -0
- package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +649 -0
- package/coverage/lcov-report/src/api/controllers/table/external.ts.html +1153 -0
- package/coverage/lcov-report/src/api/controllers/table/index.html +176 -0
- package/coverage/lcov-report/src/api/controllers/table/index.ts.html +514 -0
- package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +658 -0
- package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +1273 -0
- package/coverage/lcov-report/src/api/controllers/templates.ts.html +214 -0
- package/coverage/lcov-report/src/api/controllers/user.ts.html +634 -0
- package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +214 -0
- package/coverage/lcov-report/src/api/controllers/view/index.html +161 -0
- package/coverage/lcov-report/src/api/controllers/view/index.ts.html +661 -0
- package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +580 -0
- package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +694 -0
- package/coverage/lcov-report/src/api/controllers/webhook.ts.html +385 -0
- package/coverage/lcov-report/src/api/index.html +116 -0
- package/coverage/lcov-report/src/api/index.ts.html +352 -0
- package/coverage/lcov-report/src/api/routes/analytics.ts.html +112 -0
- package/coverage/lcov-report/src/api/routes/apikeys.ts.html +121 -0
- package/coverage/lcov-report/src/api/routes/application.ts.html +256 -0
- package/coverage/lcov-report/src/api/routes/auth.ts.html +109 -0
- package/coverage/lcov-report/src/api/routes/automation.ts.html +346 -0
- package/coverage/lcov-report/src/api/routes/backup.ts.html +127 -0
- package/coverage/lcov-report/src/api/routes/cloud.ts.html +139 -0
- package/coverage/lcov-report/src/api/routes/component.ts.html +127 -0
- package/coverage/lcov-report/src/api/routes/datasource.ts.html +265 -0
- package/coverage/lcov-report/src/api/routes/deploy.ts.html +145 -0
- package/coverage/lcov-report/src/api/routes/dev.ts.html +199 -0
- package/coverage/lcov-report/src/api/routes/index.html +551 -0
- package/coverage/lcov-report/src/api/routes/index.ts.html +298 -0
- package/coverage/lcov-report/src/api/routes/integration.ts.html +133 -0
- package/coverage/lcov-report/src/api/routes/layout.ts.html +133 -0
- package/coverage/lcov-report/src/api/routes/metadata.ts.html +199 -0
- package/coverage/lcov-report/src/api/routes/migrations.ts.html +127 -0
- package/coverage/lcov-report/src/api/routes/permission.ts.html +208 -0
- package/coverage/lcov-report/src/api/routes/plugin.ts.html +151 -0
- package/coverage/lcov-report/src/api/routes/public/applications.ts.html +673 -0
- package/coverage/lcov-report/src/api/routes/public/index.html +191 -0
- package/coverage/lcov-report/src/api/routes/public/index.ts.html +493 -0
- package/coverage/lcov-report/src/api/routes/public/middleware/index.html +116 -0
- package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +340 -0
- package/coverage/lcov-report/src/api/routes/public/queries.ts.html +313 -0
- package/coverage/lcov-report/src/api/routes/public/rows.ts.html +598 -0
- package/coverage/lcov-report/src/api/routes/public/tables.ts.html +586 -0
- package/coverage/lcov-report/src/api/routes/public/tests/index.html +116 -0
- package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +169 -0
- package/coverage/lcov-report/src/api/routes/public/users.ts.html +511 -0
- package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +238 -0
- package/coverage/lcov-report/src/api/routes/public/utils/index.html +116 -0
- package/coverage/lcov-report/src/api/routes/query.ts.html +268 -0
- package/coverage/lcov-report/src/api/routes/role.ts.html +157 -0
- package/coverage/lcov-report/src/api/routes/routing.ts.html +127 -0
- package/coverage/lcov-report/src/api/routes/row.ts.html +883 -0
- package/coverage/lcov-report/src/api/routes/screen.ts.html +154 -0
- package/coverage/lcov-report/src/api/routes/script.ts.html +115 -0
- package/coverage/lcov-report/src/api/routes/static.ts.html +280 -0
- package/coverage/lcov-report/src/api/routes/table.ts.html +595 -0
- package/coverage/lcov-report/src/api/routes/templates.ts.html +133 -0
- package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +550 -0
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +131 -0
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +367 -0
- package/coverage/lcov-report/src/api/routes/user.ts.html +238 -0
- package/coverage/lcov-report/src/api/routes/utils/index.html +116 -0
- package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +805 -0
- package/coverage/lcov-report/src/api/routes/view.ts.html +187 -0
- package/coverage/lcov-report/src/api/routes/webhook.ts.html +166 -0
- package/coverage/lcov-report/src/app.ts.html +424 -0
- package/coverage/lcov-report/src/automations/actions.ts.html +316 -0
- package/coverage/lcov-report/src/automations/automationUtils.ts.html +562 -0
- package/coverage/lcov-report/src/automations/bullboard.ts.html +199 -0
- package/coverage/lcov-report/src/automations/index.html +191 -0
- package/coverage/lcov-report/src/automations/index.ts.html +163 -0
- package/coverage/lcov-report/src/automations/logging/index.html +116 -0
- package/coverage/lcov-report/src/automations/logging/index.ts.html +199 -0
- package/coverage/lcov-report/src/automations/steps/bash.ts.html +319 -0
- package/coverage/lcov-report/src/automations/steps/createRow.ts.html +382 -0
- package/coverage/lcov-report/src/automations/steps/delay.ts.html +217 -0
- package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +349 -0
- package/coverage/lcov-report/src/automations/steps/discord.ts.html +397 -0
- package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +370 -0
- package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +325 -0
- package/coverage/lcov-report/src/automations/steps/filter.ts.html +394 -0
- package/coverage/lcov-report/src/automations/steps/index.html +371 -0
- package/coverage/lcov-report/src/automations/steps/integromat.ts.html +409 -0
- package/coverage/lcov-report/src/automations/steps/loop.ts.html +241 -0
- package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +499 -0
- package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +664 -0
- package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +355 -0
- package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +256 -0
- package/coverage/lcov-report/src/automations/steps/slack.ts.html +340 -0
- package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +439 -0
- package/coverage/lcov-report/src/automations/steps/utils.ts.html +223 -0
- package/coverage/lcov-report/src/automations/steps/zapier.ts.html +403 -0
- package/coverage/lcov-report/src/automations/tests/utilities/index.html +116 -0
- package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +265 -0
- package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +196 -0
- package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +193 -0
- package/coverage/lcov-report/src/automations/triggerInfo/index.html +206 -0
- package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +130 -0
- package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +196 -0
- package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +220 -0
- package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +220 -0
- package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +208 -0
- package/coverage/lcov-report/src/automations/triggers.ts.html +553 -0
- package/coverage/lcov-report/src/automations/utils.ts.html +886 -0
- package/coverage/lcov-report/src/constants/index.html +146 -0
- package/coverage/lcov-report/src/constants/index.ts.html +697 -0
- package/coverage/lcov-report/src/constants/layouts.ts.html +526 -0
- package/coverage/lcov-report/src/constants/screens.ts.html +229 -0
- package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +2059 -0
- package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +541 -0
- package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +427 -0
- package/coverage/lcov-report/src/db/defaultData/index.html +176 -0
- package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +403 -0
- package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +559 -0
- package/coverage/lcov-report/src/db/dynamoClient.ts.html +526 -0
- package/coverage/lcov-report/src/db/inMemoryView.ts.html +250 -0
- package/coverage/lcov-report/src/db/index.html +176 -0
- package/coverage/lcov-report/src/db/index.ts.html +133 -0
- package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +1417 -0
- package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +265 -0
- package/coverage/lcov-report/src/db/linkedRows/index.html +161 -0
- package/coverage/lcov-report/src/db/linkedRows/index.ts.html +736 -0
- package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +460 -0
- package/coverage/lcov-report/src/db/newid.ts.html +100 -0
- package/coverage/lcov-report/src/db/utils.ts.html +913 -0
- package/coverage/lcov-report/src/definitions/automations.ts.html +184 -0
- package/coverage/lcov-report/src/definitions/index.html +116 -0
- package/coverage/lcov-report/src/environment.ts.html +472 -0
- package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +259 -0
- package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +172 -0
- package/coverage/lcov-report/src/events/index.html +161 -0
- package/coverage/lcov-report/src/events/index.ts.html +100 -0
- package/coverage/lcov-report/src/events/utils.ts.html +319 -0
- package/coverage/lcov-report/src/index.html +191 -0
- package/coverage/lcov-report/src/index.ts.html +133 -0
- package/coverage/lcov-report/src/integrations/airtable.ts.html +529 -0
- package/coverage/lcov-report/src/integrations/arangodb.ts.html +415 -0
- package/coverage/lcov-report/src/integrations/base/index.html +161 -0
- package/coverage/lcov-report/src/integrations/base/query.ts.html +139 -0
- package/coverage/lcov-report/src/integrations/base/sql.ts.html +2017 -0
- package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +691 -0
- package/coverage/lcov-report/src/integrations/base/utils.ts.html +121 -0
- package/coverage/lcov-report/src/integrations/couchdb.ts.html +484 -0
- package/coverage/lcov-report/src/integrations/dynamodb.ts.html +745 -0
- package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +646 -0
- package/coverage/lcov-report/src/integrations/firebase.ts.html +646 -0
- package/coverage/lcov-report/src/integrations/googlesheets.ts.html +1315 -0
- package/coverage/lcov-report/src/integrations/index.html +371 -0
- package/coverage/lcov-report/src/integrations/index.ts.html +460 -0
- package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +1012 -0
- package/coverage/lcov-report/src/integrations/mongodb.ts.html +1999 -0
- package/coverage/lcov-report/src/integrations/mysql.ts.html +979 -0
- package/coverage/lcov-report/src/integrations/oracle.ts.html +1387 -0
- package/coverage/lcov-report/src/integrations/postgres.ts.html +1087 -0
- package/coverage/lcov-report/src/integrations/queries/index.html +116 -0
- package/coverage/lcov-report/src/integrations/queries/sql.ts.html +328 -0
- package/coverage/lcov-report/src/integrations/redis.ts.html +550 -0
- package/coverage/lcov-report/src/integrations/rest.ts.html +1372 -0
- package/coverage/lcov-report/src/integrations/s3.ts.html +862 -0
- package/coverage/lcov-report/src/integrations/snowflake.ts.html +376 -0
- package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +85 -0
- package/coverage/lcov-report/src/integrations/tests/index.html +116 -0
- package/coverage/lcov-report/src/integrations/utils.ts.html +1036 -0
- package/coverage/lcov-report/src/middleware/appInfo.ts.html +145 -0
- package/coverage/lcov-report/src/middleware/authorized.ts.html +472 -0
- package/coverage/lcov-report/src/middleware/builder.ts.html +361 -0
- package/coverage/lcov-report/src/middleware/currentapp.ts.html +508 -0
- package/coverage/lcov-report/src/middleware/index.html +236 -0
- package/coverage/lcov-report/src/middleware/joi-validator.ts.html +205 -0
- package/coverage/lcov-report/src/middleware/publicApi.ts.html +148 -0
- package/coverage/lcov-report/src/middleware/resourceId.ts.html +283 -0
- package/coverage/lcov-report/src/middleware/selfhost.ts.html +121 -0
- package/coverage/lcov-report/src/middleware/utils.ts.html +112 -0
- package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +166 -0
- package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +163 -0
- package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +151 -0
- package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +206 -0
- package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +172 -0
- package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +226 -0
- package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +151 -0
- package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +151 -0
- package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +166 -0
- package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +532 -0
- package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +286 -0
- package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +146 -0
- package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +265 -0
- package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +232 -0
- package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +724 -0
- package/coverage/lcov-report/src/migrations/functions/backfill/index.html +161 -0
- package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +106 -0
- package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +235 -0
- package/coverage/lcov-report/src/migrations/functions/index.html +161 -0
- package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +130 -0
- package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +520 -0
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +161 -0
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +94 -0
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +127 -0
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +115 -0
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +169 -0
- package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +124 -0
- package/coverage/lcov-report/src/migrations/index.html +116 -0
- package/coverage/lcov-report/src/migrations/index.ts.html +430 -0
- package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +205 -0
- package/coverage/lcov-report/src/migrations/tests/index.html +131 -0
- package/coverage/lcov-report/src/migrations/tests/structures.ts.html +283 -0
- package/coverage/lcov-report/src/sdk/app/applications/index.html +146 -0
- package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +106 -0
- package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +268 -0
- package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +136 -0
- package/coverage/lcov-report/src/sdk/app/automations/index.html +131 -0
- package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +100 -0
- package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +214 -0
- package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +91 -0
- package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +604 -0
- package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +640 -0
- package/coverage/lcov-report/src/sdk/app/backups/index.html +176 -0
- package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +112 -0
- package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +292 -0
- package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +562 -0
- package/coverage/lcov-report/src/sdk/app/datasources/index.html +131 -0
- package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +100 -0
- package/coverage/lcov-report/src/sdk/app/queries/index.html +131 -0
- package/coverage/lcov-report/src/sdk/app/queries/index.ts.html +100 -0
- package/coverage/lcov-report/src/sdk/app/queries/queries.ts.html +235 -0
- package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +265 -0
- package/coverage/lcov-report/src/sdk/app/rows/index.html +146 -0
- package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +106 -0
- package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +139 -0
- package/coverage/lcov-report/src/sdk/app/tables/index.html +116 -0
- package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +274 -0
- package/coverage/lcov-report/src/sdk/index.html +116 -0
- package/coverage/lcov-report/src/sdk/index.ts.html +151 -0
- package/coverage/lcov-report/src/sdk/users/index.html +131 -0
- package/coverage/lcov-report/src/sdk/users/index.ts.html +100 -0
- package/coverage/lcov-report/src/sdk/users/utils.ts.html +277 -0
- package/coverage/lcov-report/src/sdk/utils/index.html +116 -0
- package/coverage/lcov-report/src/sdk/utils/index.ts.html +133 -0
- package/coverage/lcov-report/src/startup.ts.html +484 -0
- package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +2032 -0
- package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +127 -0
- package/coverage/lcov-report/src/tests/utilities/index.html +161 -0
- package/coverage/lcov-report/src/tests/utilities/index.ts.html +118 -0
- package/coverage/lcov-report/src/tests/utilities/structures.ts.html +856 -0
- package/coverage/lcov-report/src/threads/automation.ts.html +1555 -0
- package/coverage/lcov-report/src/threads/index.html +161 -0
- package/coverage/lcov-report/src/threads/index.ts.html +418 -0
- package/coverage/lcov-report/src/threads/query.ts.html +1000 -0
- package/coverage/lcov-report/src/threads/utils.ts.html +373 -0
- package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +94 -0
- package/coverage/lcov-report/src/utilities/centralPath.ts.html +151 -0
- package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +343 -0
- package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +547 -0
- package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +601 -0
- package/coverage/lcov-report/src/utilities/fileSystem/index.html +206 -0
- package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +100 -0
- package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +277 -0
- package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +142 -0
- package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +193 -0
- package/coverage/lcov-report/src/utilities/global.ts.html +499 -0
- package/coverage/lcov-report/src/utilities/index.html +251 -0
- package/coverage/lcov-report/src/utilities/index.ts.html +487 -0
- package/coverage/lcov-report/src/utilities/redis.ts.html +343 -0
- package/coverage/lcov-report/src/utilities/routing/index.html +116 -0
- package/coverage/lcov-report/src/utilities/routing/index.ts.html +181 -0
- package/coverage/lcov-report/src/utilities/rowProcessor/index.html +146 -0
- package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +922 -0
- package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +373 -0
- package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +373 -0
- package/coverage/lcov-report/src/utilities/schema.ts.html +508 -0
- package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +169 -0
- package/coverage/lcov-report/src/utilities/security.ts.html +280 -0
- package/coverage/lcov-report/src/utilities/usageQuota/index.html +131 -0
- package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +325 -0
- package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +139 -0
- package/coverage/lcov-report/src/utilities/users.ts.html +232 -0
- package/coverage/lcov-report/src/utilities/workerRequests.ts.html +646 -0
- package/coverage/lcov-report/src/watch.ts.html +196 -0
- package/coverage/lcov-report/src/websocket.ts.html +163 -0
- package/coverage/lcov.info +21777 -0
- package/dist/api/controllers/automation.js +2 -11
- package/dist/api/controllers/query/index.js +0 -2
- package/dist/api/controllers/row/ExternalRequest.js +2 -4
- package/dist/api/controllers/row/external.js +1 -12
- package/dist/api/controllers/table/external.js +8 -8
- package/dist/api/index.js +21 -1
- package/dist/api/routes/automation.js +1 -1
- package/dist/api/routes/public/tests/utils.js +33 -0
- package/dist/app.js +1 -7
- package/dist/constants/index.js +24 -4
- package/dist/db/defaultData/datasource_bb_default.js +5 -6
- package/dist/db/linkedRows/LinkController.js +8 -9
- package/dist/integrations/base/sql.js +3 -10
- package/dist/middleware/authorized.js +3 -5
- package/dist/middleware/builder.js +3 -6
- package/dist/package.json +8 -12
- package/dist/sdk/app/backups/exports.js +2 -8
- package/dist/sdk/app/datasources/datasources.js +0 -3
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/redis.js +0 -2
- package/jest.config.ts +22 -34
- package/package.json +9 -13
- package/specs/openapi.json +6 -6
- package/specs/openapi.yaml +3 -3
- package/specs/resources/query.js +1 -1
- package/specs/resources/table.js +1 -1
- package/src/api/controllers/automation.ts +2 -13
- package/src/api/controllers/query/import/tests/index.spec.js +1 -1
- package/src/api/controllers/query/index.ts +0 -2
- package/src/api/controllers/row/ExternalRequest.ts +2 -6
- package/src/api/controllers/row/external.ts +1 -13
- package/src/api/controllers/table/external.ts +2 -3
- package/src/api/index.ts +22 -3
- package/src/api/routes/automation.ts +1 -1
- package/src/api/routes/public/applications.ts +1 -0
- package/src/api/routes/public/tests/compare.spec.js +1 -1
- package/src/api/routes/public/tests/users.spec.js +1 -1
- package/src/api/routes/public/tests/utils.ts +8 -25
- package/src/api/routes/tests/__snapshots__/datasource.spec.ts.snap +1 -1
- package/src/api/routes/tests/analytics.spec.js +1 -4
- package/src/api/routes/tests/apikeys.spec.js +1 -1
- package/src/api/routes/tests/application.spec.ts +6 -20
- package/src/api/routes/tests/auth.spec.js +2 -2
- package/src/api/routes/tests/automation.spec.js +2 -6
- package/src/api/routes/tests/backup.spec.ts +14 -4
- package/src/api/routes/tests/{cloud.seq.spec.ts → cloud.spec.ts} +15 -11
- package/src/api/routes/tests/component.spec.js +1 -1
- package/src/api/routes/tests/datasource.spec.ts +3 -20
- package/src/api/routes/tests/dev.spec.js +1 -1
- package/src/api/routes/tests/integration.spec.js +1 -1
- package/src/api/routes/tests/layout.spec.js +1 -1
- package/src/api/routes/tests/metadata.spec.js +1 -1
- package/src/api/routes/tests/misc.spec.js +1 -1
- package/src/api/routes/tests/permissions.spec.js +1 -4
- package/src/api/routes/tests/{query.seq.spec.js → query.spec.js} +1 -22
- package/src/api/routes/tests/role.spec.js +1 -6
- package/src/api/routes/tests/routing.spec.js +1 -1
- package/src/api/routes/tests/row.spec.js +3 -11
- package/src/api/routes/tests/screen.spec.js +1 -1
- package/src/api/routes/tests/static.spec.js +13 -2
- package/src/api/routes/tests/table.spec.js +1 -1
- package/src/api/routes/tests/templates.spec.js +1 -1
- package/src/api/routes/tests/user.spec.js +12 -11
- package/src/api/routes/tests/utilities/TestFunctions.ts +2 -25
- package/src/api/routes/tests/utilities/index.ts +3 -5
- package/src/api/routes/tests/view.spec.js +1 -4
- package/src/api/routes/tests/webhook.spec.js +2 -11
- package/src/app.ts +1 -10
- package/src/automations/tests/automation.spec.js +4 -4
- package/src/automations/tests/bash.spec.js +1 -1
- package/src/automations/tests/discord.spec.js +1 -1
- package/src/automations/tests/executeQuery.spec.js +3 -2
- package/src/automations/tests/executeScript.spec.js +1 -1
- package/src/automations/tests/outgoingWebhook.spec.js +1 -1
- package/src/automations/tests/sendSmtpEmail.spec.js +1 -1
- package/src/automations/tests/serverLog.spec.js +1 -1
- package/src/automations/tests/updateRow.spec.js +1 -1
- package/src/automations/tests/zapier.spec.js +1 -1
- package/src/constants/index.ts +23 -1
- package/src/db/defaultData/datasource_bb_default.ts +10 -6
- package/src/db/linkedRows/LinkController.ts +1 -2
- package/src/db/tests/linkController.spec.js +1 -4
- package/src/db/tests/linkTests.spec.js +1 -1
- package/src/integrations/base/sql.ts +5 -15
- package/src/integrations/oracle.ts +1 -1
- package/src/integrations/tests/couchdb.spec.ts +2 -0
- package/src/middleware/authorized.ts +4 -6
- package/src/middleware/builder.ts +3 -8
- package/src/migrations/functions/tests/appUrls.spec.js +1 -1
- package/src/migrations/functions/tests/syncQuotas.spec.js +1 -1
- package/src/migrations/functions/tests/userEmailViewCasing.spec.js +1 -1
- package/src/migrations/tests/index.spec.ts +20 -13
- package/src/sdk/app/backups/exports.ts +2 -8
- package/src/sdk/app/datasources/datasources.ts +0 -3
- package/src/tests/jestEnv.ts +11 -8
- package/src/tests/jestSetup.ts +7 -9
- package/src/tests/utilities/TestConfiguration.ts +92 -166
- package/src/tests/utilities/structures.ts +2 -16
- package/src/utilities/redis.ts +0 -2
- package/tsconfig.build.json +0 -1
- package/builder/assets/blankScreenPreview.72634dd1.png +0 -0
- package/builder/assets/index.22724f34.css +0 -6
- package/builder/assets/listScreenPreview.599c0aae.png +0 -0
- package/dist/ddApm.js +0 -11
- package/dist/elasticApm.js +0 -14
- package/dist/utilities/retry.js +0 -30
- package/jest-testcontainers-config.js +0 -8
- package/scripts/load/create-many-apps.js +0 -24
- package/scripts/load/create-many-rows.js +0 -30
- package/scripts/load/utils.js +0 -66
- package/scripts/test.sh +0 -12
- package/src/api/routes/tests/environmentVariables.spec.ts +0 -144
- package/src/ddApm.ts +0 -7
- package/src/elasticApm.ts +0 -10
- package/src/integration-test/postgres.spec.ts +0 -762
- package/src/tests/logging.ts +0 -34
- package/src/utilities/retry.ts +0 -18
|
@@ -0,0 +1,736 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/db/linkedRows/index.ts</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../../../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../../../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../../../index.html">All files</a> / <a href="index.html">src/db/linkedRows</a> index.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">94.89% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>93/98</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">85.71% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>30/35</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">92.85% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>26/28</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">96.62% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>86/89</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
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
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
+
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
+
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
+
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
+
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
+
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
+
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
+
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
+
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
+
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
+
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
+
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
+
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
+
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
+
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
+
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
+
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
+
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
+
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
+
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
+
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
+
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
+
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
+
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
+
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
+
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
+
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
+
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
+
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
+
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
+
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
+
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
+
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
+
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
+
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
+
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
+
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
+
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
+
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
+
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
+
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
+
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
+
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
+
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
+
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
+
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
+
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
+
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
+
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
+
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
+
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
+
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
+
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
+
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
+
<a name='L218'></a><a href='#L218'>218</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">56x</span>
|
|
284
|
+
<span class="cline-any cline-neutral"> </span>
|
|
285
|
+
<span class="cline-any cline-neutral"> </span>
|
|
286
|
+
<span class="cline-any cline-neutral"> </span>
|
|
287
|
+
<span class="cline-any cline-neutral"> </span>
|
|
288
|
+
<span class="cline-any cline-neutral"> </span>
|
|
289
|
+
<span class="cline-any cline-neutral"> </span>
|
|
290
|
+
<span class="cline-any cline-neutral"> </span>
|
|
291
|
+
<span class="cline-any cline-neutral"> </span>
|
|
292
|
+
<span class="cline-any cline-yes">56x</span>
|
|
293
|
+
<span class="cline-any cline-yes">56x</span>
|
|
294
|
+
<span class="cline-any cline-yes">56x</span>
|
|
295
|
+
<span class="cline-any cline-yes">56x</span>
|
|
296
|
+
<span class="cline-any cline-neutral"> </span>
|
|
297
|
+
<span class="cline-any cline-yes">56x</span>
|
|
298
|
+
<span class="cline-any cline-yes">56x</span>
|
|
299
|
+
<span class="cline-any cline-yes">56x</span>
|
|
300
|
+
<span class="cline-any cline-neutral"> </span>
|
|
301
|
+
<span class="cline-any cline-neutral"> </span>
|
|
302
|
+
<span class="cline-any cline-yes">2x</span>
|
|
303
|
+
<span class="cline-any cline-neutral"> </span>
|
|
304
|
+
<span class="cline-any cline-neutral"> </span>
|
|
305
|
+
<span class="cline-any cline-neutral"> </span>
|
|
306
|
+
<span class="cline-any cline-neutral"> </span>
|
|
307
|
+
<span class="cline-any cline-neutral"> </span>
|
|
308
|
+
<span class="cline-any cline-neutral"> </span>
|
|
309
|
+
<span class="cline-any cline-yes">225x</span>
|
|
310
|
+
<span class="cline-any cline-neutral"> </span>
|
|
311
|
+
<span class="cline-any cline-neutral"> </span>
|
|
312
|
+
<span class="cline-any cline-neutral"> </span>
|
|
313
|
+
<span class="cline-any cline-neutral"> </span>
|
|
314
|
+
<span class="cline-any cline-neutral"> </span>
|
|
315
|
+
<span class="cline-any cline-neutral"> </span>
|
|
316
|
+
<span class="cline-any cline-neutral"> </span>
|
|
317
|
+
<span class="cline-any cline-neutral"> </span>
|
|
318
|
+
<span class="cline-any cline-neutral"> </span>
|
|
319
|
+
<span class="cline-any cline-yes">30x</span>
|
|
320
|
+
<span class="cline-any cline-yes">113x</span>
|
|
321
|
+
<span class="cline-any cline-yes">53x</span>
|
|
322
|
+
<span class="cline-any cline-yes">53x</span>
|
|
323
|
+
<span class="cline-any cline-yes">53x</span>
|
|
324
|
+
<span class="cline-any cline-neutral"> </span>
|
|
325
|
+
<span class="cline-any cline-neutral"> </span>
|
|
326
|
+
<span class="cline-any cline-neutral"> </span>
|
|
327
|
+
<span class="cline-any cline-yes">30x</span>
|
|
328
|
+
<span class="cline-any cline-neutral"> </span>
|
|
329
|
+
<span class="cline-any cline-neutral"> </span>
|
|
330
|
+
<span class="cline-any cline-neutral"> </span>
|
|
331
|
+
<span class="cline-any cline-yes">30x</span>
|
|
332
|
+
<span class="cline-any cline-neutral"> </span>
|
|
333
|
+
<span class="cline-any cline-yes">30x</span>
|
|
334
|
+
<span class="cline-any cline-yes">30x</span>
|
|
335
|
+
<span class="cline-any cline-neutral"> </span>
|
|
336
|
+
<span class="cline-any cline-neutral"> </span>
|
|
337
|
+
<span class="cline-any cline-neutral"> </span>
|
|
338
|
+
<span class="cline-any cline-neutral"> </span>
|
|
339
|
+
<span class="cline-any cline-yes">30x</span>
|
|
340
|
+
<span class="cline-any cline-neutral"> </span>
|
|
341
|
+
<span class="cline-any cline-neutral"> </span>
|
|
342
|
+
<span class="cline-any cline-neutral"> </span>
|
|
343
|
+
<span class="cline-any cline-neutral"> </span>
|
|
344
|
+
<span class="cline-any cline-yes">30x</span>
|
|
345
|
+
<span class="cline-any cline-neutral"> </span>
|
|
346
|
+
<span class="cline-any cline-yes">25x</span>
|
|
347
|
+
<span class="cline-any cline-neutral"> </span>
|
|
348
|
+
<span class="cline-any cline-yes">25x</span>
|
|
349
|
+
<span class="cline-any cline-neutral"> </span>
|
|
350
|
+
<span class="cline-any cline-neutral"> </span>
|
|
351
|
+
<span class="cline-any cline-neutral"> </span>
|
|
352
|
+
<span class="cline-any cline-neutral"> </span>
|
|
353
|
+
<span class="cline-any cline-neutral"> </span>
|
|
354
|
+
<span class="cline-any cline-neutral"> </span>
|
|
355
|
+
<span class="cline-any cline-yes">30x</span>
|
|
356
|
+
<span class="cline-any cline-yes">30x</span>
|
|
357
|
+
<span class="cline-any cline-yes">30x</span>
|
|
358
|
+
<span class="cline-any cline-yes">30x</span>
|
|
359
|
+
<span class="cline-any cline-yes">18x</span>
|
|
360
|
+
<span class="cline-any cline-neutral"> </span>
|
|
361
|
+
<span class="cline-any cline-neutral"> </span>
|
|
362
|
+
<span class="cline-any cline-yes">30x</span>
|
|
363
|
+
<span class="cline-any cline-yes">18x</span>
|
|
364
|
+
<span class="cline-any cline-yes">18x</span>
|
|
365
|
+
<span class="cline-any cline-neutral"> </span>
|
|
366
|
+
<span class="cline-any cline-yes">30x</span>
|
|
367
|
+
<span class="cline-any cline-yes">18x</span>
|
|
368
|
+
<span class="cline-any cline-neutral"> </span>
|
|
369
|
+
<span class="cline-any cline-yes">30x</span>
|
|
370
|
+
<span class="cline-any cline-yes">30x</span>
|
|
371
|
+
<span class="cline-any cline-neutral"> </span>
|
|
372
|
+
<span class="cline-any cline-neutral"> </span>
|
|
373
|
+
<span class="cline-any cline-neutral"> </span>
|
|
374
|
+
<span class="cline-any cline-neutral"> </span>
|
|
375
|
+
<span class="cline-any cline-neutral"> </span>
|
|
376
|
+
<span class="cline-any cline-neutral"> </span>
|
|
377
|
+
<span class="cline-any cline-neutral"> </span>
|
|
378
|
+
<span class="cline-any cline-neutral"> </span>
|
|
379
|
+
<span class="cline-any cline-neutral"> </span>
|
|
380
|
+
<span class="cline-any cline-neutral"> </span>
|
|
381
|
+
<span class="cline-any cline-neutral"> </span>
|
|
382
|
+
<span class="cline-any cline-neutral"> </span>
|
|
383
|
+
<span class="cline-any cline-neutral"> </span>
|
|
384
|
+
<span class="cline-any cline-yes">225x</span>
|
|
385
|
+
<span class="cline-any cline-neutral"> </span>
|
|
386
|
+
<span class="cline-any cline-neutral"> </span>
|
|
387
|
+
<span class="cline-any cline-neutral"> </span>
|
|
388
|
+
<span class="cline-any cline-neutral"> </span>
|
|
389
|
+
<span class="cline-any cline-neutral"> </span>
|
|
390
|
+
<span class="cline-any cline-neutral"> </span>
|
|
391
|
+
<span class="cline-any cline-yes">225x</span>
|
|
392
|
+
<span class="cline-any cline-yes">225x</span>
|
|
393
|
+
<span class="cline-any cline-neutral"> </span>
|
|
394
|
+
<span class="cline-any cline-yes">225x</span>
|
|
395
|
+
<span class="cline-any cline-yes">135x</span>
|
|
396
|
+
<span class="cline-any cline-neutral"> </span>
|
|
397
|
+
<span class="cline-any cline-yes">225x</span>
|
|
398
|
+
<span class="cline-any cline-yes">225x</span>
|
|
399
|
+
<span class="cline-any cline-yes">225x</span>
|
|
400
|
+
<span class="cline-any cline-neutral"> </span>
|
|
401
|
+
<span class="cline-any cline-neutral"> </span>
|
|
402
|
+
<span class="cline-any cline-neutral"> </span>
|
|
403
|
+
<span class="cline-any cline-neutral"> </span>
|
|
404
|
+
<span class="cline-any cline-yes">184x</span>
|
|
405
|
+
<span class="cline-any cline-neutral"> </span>
|
|
406
|
+
<span class="cline-any cline-neutral"> </span>
|
|
407
|
+
<span class="cline-any cline-no"> </span>
|
|
408
|
+
<span class="cline-any cline-neutral"> </span>
|
|
409
|
+
<span class="cline-any cline-yes">41x</span>
|
|
410
|
+
<span class="cline-any cline-neutral"> </span>
|
|
411
|
+
<span class="cline-any cline-neutral"> </span>
|
|
412
|
+
<span class="cline-any cline-yes">21x</span>
|
|
413
|
+
<span class="cline-any cline-neutral"> </span>
|
|
414
|
+
<span class="cline-any cline-no"> </span>
|
|
415
|
+
<span class="cline-any cline-neutral"> </span>
|
|
416
|
+
<span class="cline-any cline-yes">18x</span>
|
|
417
|
+
<span class="cline-any cline-neutral"> </span>
|
|
418
|
+
<span class="cline-any cline-yes">1x</span>
|
|
419
|
+
<span class="cline-any cline-neutral"> </span>
|
|
420
|
+
<span class="cline-any cline-yes">1x</span>
|
|
421
|
+
<span class="cline-any cline-neutral"> </span>
|
|
422
|
+
<span class="cline-any cline-no"> </span>
|
|
423
|
+
<span class="cline-any cline-neutral"> </span>
|
|
424
|
+
<span class="cline-any cline-neutral"> </span>
|
|
425
|
+
<span class="cline-any cline-neutral"> </span>
|
|
426
|
+
<span class="cline-any cline-neutral"> </span>
|
|
427
|
+
<span class="cline-any cline-neutral"> </span>
|
|
428
|
+
<span class="cline-any cline-neutral"> </span>
|
|
429
|
+
<span class="cline-any cline-neutral"> </span>
|
|
430
|
+
<span class="cline-any cline-neutral"> </span>
|
|
431
|
+
<span class="cline-any cline-neutral"> </span>
|
|
432
|
+
<span class="cline-any cline-neutral"> </span>
|
|
433
|
+
<span class="cline-any cline-yes">130x</span>
|
|
434
|
+
<span class="cline-any cline-yes">130x</span>
|
|
435
|
+
<span class="cline-any cline-yes">130x</span>
|
|
436
|
+
<span class="cline-any cline-yes">100x</span>
|
|
437
|
+
<span class="cline-any cline-neutral"> </span>
|
|
438
|
+
<span class="cline-any cline-neutral"> </span>
|
|
439
|
+
<span class="cline-any cline-yes">30x</span>
|
|
440
|
+
<span class="cline-any cline-yes">25x</span>
|
|
441
|
+
<span class="cline-any cline-neutral"> </span>
|
|
442
|
+
<span class="cline-any cline-neutral"> </span>
|
|
443
|
+
<span class="cline-any cline-yes">30x</span>
|
|
444
|
+
<span class="cline-any cline-neutral"> </span>
|
|
445
|
+
<span class="cline-any cline-yes">30x</span>
|
|
446
|
+
<span class="cline-any cline-yes">30x</span>
|
|
447
|
+
<span class="cline-any cline-yes">30x</span>
|
|
448
|
+
<span class="cline-any cline-yes">30x</span>
|
|
449
|
+
<span class="cline-any cline-yes">18x</span>
|
|
450
|
+
<span class="cline-any cline-yes">18x</span>
|
|
451
|
+
<span class="cline-any cline-neutral"> </span>
|
|
452
|
+
<span class="cline-any cline-yes">18x</span>
|
|
453
|
+
<span class="cline-any cline-yes">18x</span>
|
|
454
|
+
<span class="cline-any cline-neutral"> </span>
|
|
455
|
+
<span class="cline-any cline-yes">18x</span>
|
|
456
|
+
<span class="cline-any cline-yes">18x</span>
|
|
457
|
+
<span class="cline-any cline-yes">18x</span>
|
|
458
|
+
<span class="cline-any cline-yes">18x</span>
|
|
459
|
+
<span class="cline-any cline-neutral"> </span>
|
|
460
|
+
<span class="cline-any cline-neutral"> </span>
|
|
461
|
+
<span class="cline-any cline-neutral"> </span>
|
|
462
|
+
<span class="cline-any cline-neutral"> </span>
|
|
463
|
+
<span class="cline-any cline-yes">30x</span>
|
|
464
|
+
<span class="cline-any cline-neutral"> </span>
|
|
465
|
+
<span class="cline-any cline-neutral"> </span>
|
|
466
|
+
<span class="cline-any cline-neutral"> </span>
|
|
467
|
+
<span class="cline-any cline-neutral"> </span>
|
|
468
|
+
<span class="cline-any cline-neutral"> </span>
|
|
469
|
+
<span class="cline-any cline-neutral"> </span>
|
|
470
|
+
<span class="cline-any cline-neutral"> </span>
|
|
471
|
+
<span class="cline-any cline-neutral"> </span>
|
|
472
|
+
<span class="cline-any cline-yes">42x</span>
|
|
473
|
+
<span class="cline-any cline-neutral"> </span>
|
|
474
|
+
<span class="cline-any cline-neutral"> </span>
|
|
475
|
+
<span class="cline-any cline-neutral"> </span>
|
|
476
|
+
<span class="cline-any cline-neutral"> </span>
|
|
477
|
+
<span class="cline-any cline-yes">42x</span>
|
|
478
|
+
<span class="cline-any cline-yes">42x</span>
|
|
479
|
+
<span class="cline-any cline-neutral"> </span>
|
|
480
|
+
<span class="cline-any cline-yes">50x</span>
|
|
481
|
+
<span class="cline-any cline-yes">48x</span>
|
|
482
|
+
<span class="cline-any cline-yes">138x</span>
|
|
483
|
+
<span class="cline-any cline-yes">129x</span>
|
|
484
|
+
<span class="cline-any cline-neutral"> </span>
|
|
485
|
+
<span class="cline-any cline-yes">9x</span>
|
|
486
|
+
<span class="cline-any cline-yes">9x</span>
|
|
487
|
+
<span class="cline-any cline-yes">9x</span>
|
|
488
|
+
<span class="cline-any cline-yes">9x</span>
|
|
489
|
+
<span class="cline-any cline-yes">9x</span>
|
|
490
|
+
<span class="cline-any cline-yes">9x</span>
|
|
491
|
+
<span class="cline-any cline-yes">8x</span>
|
|
492
|
+
<span class="cline-any cline-neutral"> </span>
|
|
493
|
+
<span class="cline-any cline-yes">9x</span>
|
|
494
|
+
<span class="cline-any cline-neutral"> </span>
|
|
495
|
+
<span class="cline-any cline-yes">9x</span>
|
|
496
|
+
<span class="cline-any cline-neutral"> </span>
|
|
497
|
+
<span class="cline-any cline-neutral"> </span>
|
|
498
|
+
<span class="cline-any cline-yes">40x</span>
|
|
499
|
+
<span class="cline-any cline-neutral"> </span>
|
|
500
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import LinkController from "./LinkController"
|
|
501
|
+
import {
|
|
502
|
+
IncludeDocs,
|
|
503
|
+
getLinkDocuments,
|
|
504
|
+
createLinkView,
|
|
505
|
+
getUniqueByProp,
|
|
506
|
+
getRelatedTableForField,
|
|
507
|
+
getLinkedTableIDs,
|
|
508
|
+
getLinkedTable,
|
|
509
|
+
} from "./linkUtils"
|
|
510
|
+
import { flatten } from "lodash"
|
|
511
|
+
import { FieldTypes } from "../../constants"
|
|
512
|
+
import { getMultiIDParams, USER_METDATA_PREFIX } from "../utils"
|
|
513
|
+
import { partition } from "lodash"
|
|
514
|
+
import { getGlobalUsersFromMetadata } from "../../utilities/global"
|
|
515
|
+
import { processFormulas } from "../../utilities/rowProcessor"
|
|
516
|
+
import { context } from "@budibase/backend-core"
|
|
517
|
+
import { Table, Row, LinkDocumentValue } from "@budibase/types"
|
|
518
|
+
|
|
519
|
+
export { <span class="cstat-no" title="statement not covered" >IncludeDocs<span class="fstat-no" title="function not covered" >,</span> g</span>etLinkDocuments, <span class="cstat-no" title="statement not covered" >createLinkView<span class="fstat-no" title="function not covered" > </span>} from "./linkUtils"</span>
|
|
520
|
+
|
|
521
|
+
/**
|
|
522
|
+
* This functionality makes sure that when rows with links are created, updated or deleted they are processed
|
|
523
|
+
* correctly - making sure that no stale links are left around and that all links have been made successfully.
|
|
524
|
+
*/
|
|
525
|
+
|
|
526
|
+
export const EventType = {
|
|
527
|
+
ROW_SAVE: "row:save",
|
|
528
|
+
ROW_UPDATE: "row:update",
|
|
529
|
+
ROW_DELETE: "row:delete",
|
|
530
|
+
TABLE_SAVE: "table:save",
|
|
531
|
+
TABLE_UPDATED: "table:updated",
|
|
532
|
+
TABLE_DELETE: "table:delete",
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
function clearRelationshipFields(table: Table, rows: Row[]) {
|
|
536
|
+
for (let [key, field] of Object.entries(table.schema)) {
|
|
537
|
+
if (field.type === FieldTypes.LINK) {
|
|
538
|
+
rows = rows.map(row => {
|
|
539
|
+
delete row[key]
|
|
540
|
+
return row
|
|
541
|
+
})
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
return rows
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
async function getLinksForRows(rows: Row[]) {
|
|
548
|
+
const tableIds = [...new Set(rows.map(el => el.tableId))]
|
|
549
|
+
// start by getting all the link values for performance reasons
|
|
550
|
+
const promises = tableIds.map(tableId =>
|
|
551
|
+
getLinkDocuments({
|
|
552
|
+
tableId: tableId,
|
|
553
|
+
includeDocs: IncludeDocs.EXCLUDE,
|
|
554
|
+
})
|
|
555
|
+
)
|
|
556
|
+
const responses = flatten(
|
|
557
|
+
(await Promise.all(promises)) as LinkDocumentValue[][]
|
|
558
|
+
)
|
|
559
|
+
// have to get unique as the previous table query can
|
|
560
|
+
// return duplicates, could be querying for both tables in a relation
|
|
561
|
+
return getUniqueByProp(
|
|
562
|
+
responses
|
|
563
|
+
.filter(el => el != null)
|
|
564
|
+
// create a unique ID which we can use for getting only unique ones
|
|
565
|
+
.map(el => ({ ...el, unique: el.id + el.thisId + el.fieldName })),
|
|
566
|
+
"unique"
|
|
567
|
+
)
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
async function getFullLinkedDocs(links: LinkDocumentValue[]) {
|
|
571
|
+
// create DBs
|
|
572
|
+
const db = context.getAppDB()
|
|
573
|
+
const linkedRowIds = links.map(link => link.id)
|
|
574
|
+
const uniqueRowIds = [...new Set(linkedRowIds)]
|
|
575
|
+
let dbRows = (await db.allDocs(getMultiIDParams(uniqueRowIds))).rows.map(
|
|
576
|
+
row => row.doc
|
|
577
|
+
)
|
|
578
|
+
// convert the unique db rows back to a full list of linked rows
|
|
579
|
+
const linked = linkedRowIds
|
|
580
|
+
.map(id => dbRows.find(row => row && row._id === id))
|
|
581
|
+
.filter(row => row != null)
|
|
582
|
+
// need to handle users as specific cases
|
|
583
|
+
let [users, other] = partition(linked, linkRow =>
|
|
584
|
+
linkRow._id.startsWith(USER_METDATA_PREFIX)
|
|
585
|
+
)
|
|
586
|
+
users = await getGlobalUsersFromMetadata(users)
|
|
587
|
+
return [...other, ...users]
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
/**
|
|
591
|
+
* Update link documents for a row or table - this is to be called by the API controller when a change is occurring.
|
|
592
|
+
* @param {string} args.eventType states what type of change which is occurring, means this can be expanded upon in the
|
|
593
|
+
* future quite easily (all updates go through one function).
|
|
594
|
+
* @param {string} args.tableId The ID of the of the table which is being changed.
|
|
595
|
+
* @param {object|undefined} args.row The row which is changing, e.g. created, updated or deleted.
|
|
596
|
+
* @param {object|undefined} args.table If the table has already been retrieved this can be used to reduce database gets.
|
|
597
|
+
* @param {object|undefined} args.oldTable If the table is being updated then the old table can be provided for differencing.
|
|
598
|
+
* @returns {Promise<object>} When the update is complete this will respond successfully. Returns the row for
|
|
599
|
+
* row operations and the table for table operations.
|
|
600
|
+
*/
|
|
601
|
+
export async function updateLinks(args: {
|
|
602
|
+
tableId?: string
|
|
603
|
+
eventType: string
|
|
604
|
+
row?: Row
|
|
605
|
+
table?: Table
|
|
606
|
+
oldTable?: Table
|
|
607
|
+
}) {
|
|
608
|
+
const { eventType, row, tableId, table, oldTable } = args
|
|
609
|
+
const baseReturnObj = row == null ? table : row
|
|
610
|
+
// make sure table ID is set
|
|
611
|
+
if (tableId == null && table != null) {
|
|
612
|
+
args.tableId = table._id!
|
|
613
|
+
}
|
|
614
|
+
let linkController = new LinkController(args)
|
|
615
|
+
try {
|
|
616
|
+
if (
|
|
617
|
+
!(await linkController.doesTableHaveLinkedFields(table)) &&
|
|
618
|
+
(oldTable == null ||
|
|
619
|
+
!(await linkController.doesTableHaveLinkedFields(oldTable)))
|
|
620
|
+
) {
|
|
621
|
+
return baseReturnObj
|
|
622
|
+
}
|
|
623
|
+
} catch (err) {
|
|
624
|
+
<span class="cstat-no" title="statement not covered" > return baseReturnObj</span>
|
|
625
|
+
}
|
|
626
|
+
switch (eventType) {
|
|
627
|
+
case EventType.ROW_SAVE:
|
|
628
|
+
case EventType.ROW_UPDATE:
|
|
629
|
+
return await linkController.rowSaved()
|
|
630
|
+
<span class="branch-2 cbranch-no" title="branch not covered" > case EventType.ROW_DELETE:</span>
|
|
631
|
+
<span class="cstat-no" title="statement not covered" > return await linkController.rowDeleted()</span>
|
|
632
|
+
case EventType.TABLE_SAVE:
|
|
633
|
+
return await linkController.tableSaved()
|
|
634
|
+
case EventType.TABLE_UPDATED:
|
|
635
|
+
return await linkController.tableUpdated()
|
|
636
|
+
case EventType.TABLE_DELETE:
|
|
637
|
+
return await linkController.tableDeleted()
|
|
638
|
+
<span class="branch-6 cbranch-no" title="branch not covered" > default:</span>
|
|
639
|
+
<span class="cstat-no" title="statement not covered" > throw "Type of event is not known, linked row handler requires update."</span>
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
/**
|
|
644
|
+
* Given a table and a list of rows this will retrieve all of the attached docs and enrich them into the row.
|
|
645
|
+
* This is required for formula fields, this may only be utilised internally (for now).
|
|
646
|
+
* @param {object} table The table from which the rows originated.
|
|
647
|
+
* @param {array<object>} rows The rows which are to be enriched.
|
|
648
|
+
* @return {Promise<*>} returns the rows with all of the enriched relationships on it.
|
|
649
|
+
*/
|
|
650
|
+
export async function attachFullLinkedDocs(table: Table, rows: Row[]) {
|
|
651
|
+
const linkedTableIds = getLinkedTableIDs(table)
|
|
652
|
+
if (linkedTableIds.length === 0) {
|
|
653
|
+
return rows
|
|
654
|
+
}
|
|
655
|
+
// get all the links
|
|
656
|
+
const links = (await getLinksForRows(rows)).filter(link =>
|
|
657
|
+
rows.some(row => row._id === link.thisId)
|
|
658
|
+
)
|
|
659
|
+
// clear any existing links that could be dupe'd
|
|
660
|
+
rows = clearRelationshipFields(table, rows)
|
|
661
|
+
// now get the docs and combine into the rows
|
|
662
|
+
let linked = await getFullLinkedDocs(links)
|
|
663
|
+
const linkedTables: Table[] = []
|
|
664
|
+
for (let row of rows) {
|
|
665
|
+
for (let link of links.filter(link => link.thisId === row._id)) {
|
|
666
|
+
if (row[link.fieldName] == null) {
|
|
667
|
+
row[link.fieldName] = []
|
|
668
|
+
}
|
|
669
|
+
const linkedRow = linked.find(row => row._id === link.id)
|
|
670
|
+
if (linkedRow) {
|
|
671
|
+
const linkedTableId =
|
|
672
|
+
linkedRow.tableId || <span class="branch-1 cbranch-no" title="branch not covered" >getRelatedTableForField(table, link.fieldName)</span>
|
|
673
|
+
const linkedTable = await getLinkedTable(linkedTableId, linkedTables)
|
|
674
|
+
if (linkedTable) {
|
|
675
|
+
row[link.fieldName].push(processFormulas(linkedTable, linkedRow))
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
return rows
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
/**
|
|
684
|
+
* This function will take the given enriched rows and squash the links to only contain the primary display field.
|
|
685
|
+
* @param {object} table The table from which the rows originated.
|
|
686
|
+
* @param {array<object>} enriched The pre-enriched rows (full docs) which are to be squashed.
|
|
687
|
+
* @returns {Promise<Array>} The rows after having their links squashed to only contain the ID and primary display.
|
|
688
|
+
*/
|
|
689
|
+
export async function squashLinksToPrimaryDisplay(
|
|
690
|
+
table: Table,
|
|
691
|
+
enriched: Row[]
|
|
692
|
+
) {
|
|
693
|
+
// will populate this as we find them
|
|
694
|
+
const linkedTables = [table]
|
|
695
|
+
for (let row of enriched) {
|
|
696
|
+
// this only fetches the table if its not already in array
|
|
697
|
+
const rowTable = await getLinkedTable(row.tableId!, linkedTables)
|
|
698
|
+
for (let [column, schema] of Object.entries(rowTable?.schema || <span class="branch-1 cbranch-no" title="branch not covered" >{})) {</span>
|
|
699
|
+
if (schema.type !== FieldTypes.LINK || !Array.isArray(row[column])) {
|
|
700
|
+
continue
|
|
701
|
+
}
|
|
702
|
+
const newLinks = []
|
|
703
|
+
for (let link of row[column]) {
|
|
704
|
+
const linkTblId = link.tableId || <span class="branch-1 cbranch-no" title="branch not covered" >getRelatedTableForField(table, column)</span>
|
|
705
|
+
const linkedTable = await getLinkedTable(linkTblId, linkedTables)
|
|
706
|
+
const obj: any = { _id: link._id }
|
|
707
|
+
if (linkedTable?.primaryDisplay && link[linkedTable.primaryDisplay]) {
|
|
708
|
+
obj.primaryDisplay = link[linkedTable.primaryDisplay]
|
|
709
|
+
}
|
|
710
|
+
newLinks.push(obj)
|
|
711
|
+
}
|
|
712
|
+
row[column] = newLinks
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
return enriched
|
|
716
|
+
}
|
|
717
|
+
</pre></td></tr></table></pre>
|
|
718
|
+
|
|
719
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
720
|
+
</div><!-- /wrapper -->
|
|
721
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
722
|
+
Code coverage generated by
|
|
723
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
724
|
+
at Wed Mar 01 2023 19:54:18 GMT+0000 (Coordinated Universal Time)
|
|
725
|
+
</div>
|
|
726
|
+
<script src="../../../prettify.js"></script>
|
|
727
|
+
<script>
|
|
728
|
+
window.onload = function () {
|
|
729
|
+
prettyPrint();
|
|
730
|
+
};
|
|
731
|
+
</script>
|
|
732
|
+
<script src="../../../sorter.js"></script>
|
|
733
|
+
<script src="../../../block-navigation.js"></script>
|
|
734
|
+
</body>
|
|
735
|
+
</html>
|
|
736
|
+
|