@budibase/server 2.2.12-alpha.3 → 2.2.12-alpha.30
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/builder/assets/{bb-emblem.4e4717da.svg → bb-emblem.05f7ae7a.svg} +1 -1
- package/builder/assets/index.2203da4c.css +6 -0
- package/builder/assets/{index.8a1f534a.js → index.4dc7e0fd.js} +389 -401
- package/builder/index.html +2 -2
- package/coverage/clover.xml +1959 -2080
- package/coverage/coverage-final.json +278 -279
- package/coverage/lcov-report/index.html +391 -391
- package/coverage/lcov-report/src/api/controllers/analytics.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/application.ts.html +82 -82
- package/coverage/lcov-report/src/api/controllers/auth.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/automation.ts.html +17 -17
- package/coverage/lcov-report/src/api/controllers/backup.ts.html +3 -3
- package/coverage/lcov-report/src/api/controllers/cloud.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/component.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/datasource.ts.html +23 -23
- package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +16 -16
- package/coverage/lcov-report/src/api/controllers/deploy/index.html +7 -7
- package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +73 -73
- package/coverage/lcov-report/src/api/controllers/dev.ts.html +15 -15
- package/coverage/lcov-report/src/api/controllers/index.html +98 -98
- package/coverage/lcov-report/src/api/controllers/integration.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/layout.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/metadata.ts.html +3 -3
- package/coverage/lcov-report/src/api/controllers/migrations.ts.html +3 -3
- package/coverage/lcov-report/src/api/controllers/permission.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +17 -17
- package/coverage/lcov-report/src/api/controllers/plugin/index.html +31 -31
- package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +21 -21
- package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +7 -7
- package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +27 -27
- package/coverage/lcov-report/src/api/controllers/public/index.html +58 -58
- package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +25 -25
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +3 -3
- package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +7 -7
- package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +3 -3
- package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +3 -3
- package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +3 -3
- package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +13 -13
- package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +18 -18
- package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +19 -19
- package/coverage/lcov-report/src/api/controllers/public/users.ts.html +24 -24
- package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/query/import/index.html +8 -8
- package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +14 -14
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +13 -13
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +23 -23
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/query/index.html +15 -15
- package/coverage/lcov-report/src/api/controllers/query/index.ts.html +20 -20
- package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/role.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/routing.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +48 -30
- package/coverage/lcov-report/src/api/controllers/row/external.ts.html +38 -38
- package/coverage/lcov-report/src/api/controllers/row/index.html +58 -58
- package/coverage/lcov-report/src/api/controllers/row/index.ts.html +12 -12
- package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +39 -36
- package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +28 -28
- package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +14 -14
- package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +7 -7
- package/coverage/lcov-report/src/api/controllers/screen.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/script.ts.html +10 -10
- package/coverage/lcov-report/src/api/controllers/static/index.html +15 -15
- package/coverage/lcov-report/src/api/controllers/static/index.ts.html +17 -17
- package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +10 -10
- package/coverage/lcov-report/src/api/controllers/table/external.ts.html +33 -33
- package/coverage/lcov-report/src/api/controllers/table/index.html +48 -48
- package/coverage/lcov-report/src/api/controllers/table/index.ts.html +128 -41
- package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +19 -22
- package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +52 -55
- package/coverage/lcov-report/src/api/controllers/templates.ts.html +15 -15
- package/coverage/lcov-report/src/api/controllers/user.ts.html +101 -77
- package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +63 -18
- package/coverage/lcov-report/src/api/controllers/view/index.html +38 -38
- package/coverage/lcov-report/src/api/controllers/view/index.ts.html +62 -35
- package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +19 -19
- package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +3 -3
- package/coverage/lcov-report/src/api/controllers/webhook.ts.html +4 -4
- package/coverage/lcov-report/src/api/index.html +15 -15
- package/coverage/lcov-report/src/api/index.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/analytics.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/apikeys.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/application.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/auth.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/automation.ts.html +5 -5
- package/coverage/lcov-report/src/api/routes/backup.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/cloud.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/component.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/datasource.ts.html +5 -5
- package/coverage/lcov-report/src/api/routes/deploy.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/dev.ts.html +5 -5
- package/coverage/lcov-report/src/api/routes/index.html +66 -66
- package/coverage/lcov-report/src/api/routes/index.ts.html +5 -5
- package/coverage/lcov-report/src/api/routes/integration.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/layout.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/metadata.ts.html +5 -5
- package/coverage/lcov-report/src/api/routes/migrations.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/permission.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/plugin.ts.html +3 -3
- package/coverage/lcov-report/src/api/routes/public/applications.ts.html +3 -3
- package/coverage/lcov-report/src/api/routes/public/index.html +24 -24
- package/coverage/lcov-report/src/api/routes/public/index.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/public/middleware/index.html +5 -5
- package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/public/queries.ts.html +3 -3
- package/coverage/lcov-report/src/api/routes/public/rows.ts.html +3 -3
- package/coverage/lcov-report/src/api/routes/public/tables.ts.html +3 -3
- package/coverage/lcov-report/src/api/routes/public/tests/index.html +7 -7
- package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +5 -5
- package/coverage/lcov-report/src/api/routes/public/users.ts.html +3 -3
- package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/public/utils/index.html +5 -5
- package/coverage/lcov-report/src/api/routes/query.ts.html +5 -5
- package/coverage/lcov-report/src/api/routes/role.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/routing.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/row.ts.html +3 -3
- package/coverage/lcov-report/src/api/routes/screen.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/script.ts.html +13 -13
- package/coverage/lcov-report/src/api/routes/static.ts.html +6 -6
- package/coverage/lcov-report/src/api/routes/table.ts.html +20 -89
- package/coverage/lcov-report/src/api/routes/templates.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +13 -13
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +23 -23
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/user.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/utils/index.html +3 -3
- package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/view.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/webhook.ts.html +4 -4
- package/coverage/lcov-report/src/app.ts.html +22 -16
- package/coverage/lcov-report/src/automations/actions.ts.html +9 -9
- package/coverage/lcov-report/src/automations/automationUtils.ts.html +15 -15
- package/coverage/lcov-report/src/automations/bullboard.ts.html +12 -12
- package/coverage/lcov-report/src/automations/index.html +52 -52
- package/coverage/lcov-report/src/automations/index.ts.html +16 -16
- package/coverage/lcov-report/src/automations/logging/index.html +3 -3
- package/coverage/lcov-report/src/automations/logging/index.ts.html +5 -5
- package/coverage/lcov-report/src/automations/steps/bash.ts.html +5 -5
- package/coverage/lcov-report/src/automations/steps/createRow.ts.html +4 -4
- package/coverage/lcov-report/src/automations/steps/delay.ts.html +4 -4
- package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +4 -4
- package/coverage/lcov-report/src/automations/steps/discord.ts.html +5 -5
- package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +4 -4
- package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +4 -4
- package/coverage/lcov-report/src/automations/steps/filter.ts.html +8 -8
- package/coverage/lcov-report/src/automations/steps/index.html +71 -71
- package/coverage/lcov-report/src/automations/steps/integromat.ts.html +6 -6
- package/coverage/lcov-report/src/automations/steps/loop.ts.html +3 -3
- package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +12 -12
- package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +12 -12
- package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +5 -5
- package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +5 -5
- package/coverage/lcov-report/src/automations/steps/slack.ts.html +6 -6
- package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +4 -4
- package/coverage/lcov-report/src/automations/steps/utils.ts.html +4 -4
- package/coverage/lcov-report/src/automations/steps/zapier.ts.html +4 -4
- package/coverage/lcov-report/src/automations/tests/utilities/index.html +15 -15
- package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +14 -14
- package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +5 -5
- package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +5 -5
- package/coverage/lcov-report/src/automations/triggerInfo/index.html +17 -17
- package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +4 -4
- package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +5 -5
- package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +5 -5
- package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +5 -5
- package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +5 -5
- package/coverage/lcov-report/src/automations/triggers.ts.html +11 -11
- package/coverage/lcov-report/src/automations/utils.ts.html +37 -37
- package/coverage/lcov-report/src/constants/index.html +19 -19
- package/coverage/lcov-report/src/constants/index.ts.html +103 -103
- package/coverage/lcov-report/src/constants/layouts.ts.html +6 -6
- package/coverage/lcov-report/src/constants/screens.ts.html +2 -2
- package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +25 -25
- package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +7 -7
- package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +7 -7
- package/coverage/lcov-report/src/db/defaultData/index.html +43 -43
- package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +7 -7
- package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +7 -7
- package/coverage/lcov-report/src/db/dynamoClient.ts.html +12 -12
- package/coverage/lcov-report/src/db/inMemoryView.ts.html +10 -10
- package/coverage/lcov-report/src/db/index.html +32 -32
- package/coverage/lcov-report/src/db/index.ts.html +3 -3
- package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +22 -22
- package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +4 -4
- package/coverage/lcov-report/src/db/linkedRows/index.html +37 -37
- package/coverage/lcov-report/src/db/linkedRows/index.ts.html +18 -18
- package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +15 -15
- package/coverage/lcov-report/src/db/newid.ts.html +4 -4
- package/coverage/lcov-report/src/db/utils.ts.html +59 -59
- package/coverage/lcov-report/src/definitions/automations.ts.html +4 -4
- package/coverage/lcov-report/src/definitions/datasource.ts.html +4 -4
- package/coverage/lcov-report/src/definitions/index.html +4 -4
- package/coverage/lcov-report/src/environment.ts.html +25 -25
- package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +7 -7
- package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +4 -4
- package/coverage/lcov-report/src/events/index.html +20 -20
- package/coverage/lcov-report/src/events/index.ts.html +5 -5
- package/coverage/lcov-report/src/events/utils.ts.html +11 -11
- package/coverage/lcov-report/src/index.html +36 -36
- package/coverage/lcov-report/src/index.ts.html +6 -6
- package/coverage/lcov-report/src/integrations/airtable.ts.html +8 -8
- package/coverage/lcov-report/src/integrations/arangodb.ts.html +7 -7
- package/coverage/lcov-report/src/integrations/base/index.html +20 -20
- package/coverage/lcov-report/src/integrations/base/query.ts.html +2 -2
- package/coverage/lcov-report/src/integrations/base/sql.ts.html +28 -28
- package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +15 -15
- package/coverage/lcov-report/src/integrations/base/utils.ts.html +2 -2
- package/coverage/lcov-report/src/integrations/couchdb.ts.html +8 -8
- package/coverage/lcov-report/src/integrations/dynamodb.ts.html +12 -12
- package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +7 -7
- package/coverage/lcov-report/src/integrations/firebase.ts.html +10 -10
- package/coverage/lcov-report/src/integrations/googlesheets.ts.html +33 -33
- package/coverage/lcov-report/src/integrations/index.html +123 -123
- package/coverage/lcov-report/src/integrations/index.ts.html +13 -13
- package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +26 -26
- package/coverage/lcov-report/src/integrations/mongodb.ts.html +15 -15
- package/coverage/lcov-report/src/integrations/mysql.ts.html +20 -20
- package/coverage/lcov-report/src/integrations/oracle.ts.html +21 -21
- package/coverage/lcov-report/src/integrations/postgres.ts.html +15 -15
- package/coverage/lcov-report/src/integrations/queries/index.html +5 -5
- package/coverage/lcov-report/src/integrations/queries/sql.ts.html +6 -6
- package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/rest.ts.html +15 -15
- package/coverage/lcov-report/src/integrations/s3.ts.html +14 -14
- package/coverage/lcov-report/src/integrations/snowflake.ts.html +12 -12
- package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/src/integrations/utils.ts.html +34 -34
- package/coverage/lcov-report/src/middleware/appInfo.ts.html +8 -8
- package/coverage/lcov-report/src/middleware/authorized.ts.html +26 -14
- package/coverage/lcov-report/src/middleware/builder.ts.html +12 -12
- package/coverage/lcov-report/src/middleware/currentapp.ts.html +14 -11
- package/coverage/lcov-report/src/middleware/index.html +40 -40
- package/coverage/lcov-report/src/middleware/joi-validator.ts.html +10 -10
- package/coverage/lcov-report/src/middleware/publicApi.ts.html +7 -7
- package/coverage/lcov-report/src/middleware/resourceId.ts.html +6 -6
- package/coverage/lcov-report/src/middleware/selfhost.ts.html +2 -2
- package/coverage/lcov-report/src/middleware/utils.ts.html +2 -2
- package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +3 -3
- package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +3 -3
- package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +31 -31
- package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +3 -3
- package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +3 -3
- package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +5 -5
- package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +3 -3
- package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +19 -19
- package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +3 -3
- package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +8 -8
- package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +11 -11
- package/coverage/lcov-report/src/migrations/functions/backfill/index.html +26 -26
- package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +3 -3
- package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/index.html +18 -18
- package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +11 -11
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +2 -2
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +2 -2
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +5 -5
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +2 -2
- package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +3 -3
- package/coverage/lcov-report/src/migrations/index.html +15 -15
- package/coverage/lcov-report/src/migrations/index.ts.html +13 -13
- package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/tests/index.html +6 -6
- package/coverage/lcov-report/src/migrations/tests/structures.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/app/applications/index.html +11 -11
- package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +20 -20
- package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +13 -13
- package/coverage/lcov-report/src/sdk/app/automations/index.html +7 -7
- package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +6 -6
- package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +15 -15
- package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +8 -8
- package/coverage/lcov-report/src/sdk/app/backups/index.html +27 -27
- package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +7 -7
- package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/app/rows/index.html +8 -8
- package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/app/tables/index.html +11 -11
- package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +7 -7
- package/coverage/lcov-report/src/sdk/index.html +5 -5
- package/coverage/lcov-report/src/sdk/index.ts.html +4 -4
- package/coverage/lcov-report/src/sdk/users/index.html +6 -6
- package/coverage/lcov-report/src/sdk/users/index.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/users/utils.ts.html +23 -23
- package/coverage/lcov-report/src/startup.ts.html +10 -25
- package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +61 -61
- package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +11 -11
- package/coverage/lcov-report/src/tests/utilities/index.html +26 -26
- package/coverage/lcov-report/src/tests/utilities/index.ts.html +2 -2
- package/coverage/lcov-report/src/tests/utilities/structures.ts.html +30 -30
- package/coverage/lcov-report/src/threads/automation.ts.html +20 -20
- package/coverage/lcov-report/src/threads/index.html +39 -39
- package/coverage/lcov-report/src/threads/index.ts.html +17 -17
- package/coverage/lcov-report/src/threads/query.ts.html +12 -12
- package/coverage/lcov-report/src/threads/utils.ts.html +19 -19
- package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +5 -5
- package/coverage/lcov-report/src/utilities/centralPath.ts.html +6 -6
- package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +22 -22
- package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +19 -19
- package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +35 -35
- package/coverage/lcov-report/src/utilities/fileSystem/index.html +42 -42
- package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +6 -6
- package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +13 -13
- package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +9 -9
- package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +11 -11
- package/coverage/lcov-report/src/utilities/global.ts.html +51 -51
- package/coverage/lcov-report/src/utilities/index.html +74 -89
- package/coverage/lcov-report/src/utilities/index.ts.html +25 -25
- package/coverage/lcov-report/src/utilities/redis.ts.html +25 -25
- package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/src/utilities/routing/index.ts.html +2 -2
- package/coverage/lcov-report/src/utilities/rowProcessor/index.html +32 -32
- package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +20 -20
- package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +8 -8
- package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +15 -15
- package/coverage/lcov-report/src/utilities/{csvParser.ts.html → schema.ts.html} +174 -234
- package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +4 -4
- package/coverage/lcov-report/src/utilities/security.ts.html +10 -10
- package/coverage/lcov-report/src/utilities/usageQuota/index.html +9 -9
- package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +5 -5
- package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +3 -3
- package/coverage/lcov-report/src/utilities/users.ts.html +4 -4
- package/coverage/lcov-report/src/utilities/workerRequests.ts.html +57 -30
- package/coverage/lcov-report/src/watch.ts.html +13 -13
- package/coverage/lcov-report/src/websocket.ts.html +3 -3
- package/coverage/lcov.info +7522 -7169
- package/dist/api/controllers/query/index.js +5 -2
- package/dist/api/controllers/row/ExternalRequest.js +7 -0
- package/dist/api/controllers/row/internal.js +12 -8
- package/dist/api/controllers/static/index.js +7 -4
- package/dist/api/controllers/static/templates/BudibaseApp.svelte +0 -1
- package/dist/api/controllers/table/external.js +8 -30
- package/dist/api/controllers/table/index.js +44 -15
- package/dist/api/controllers/table/internal.js +6 -7
- package/dist/api/controllers/table/utils.js +9 -9
- package/dist/api/controllers/user.js +14 -6
- package/dist/api/controllers/view/exporters.js +22 -6
- package/dist/api/controllers/view/index.js +19 -34
- package/dist/api/controllers/view/viewBuilder.js +15 -2
- package/dist/api/routes/analytics.js +2 -1
- package/dist/api/routes/apikeys.js +2 -1
- package/dist/api/routes/application.js +2 -1
- package/dist/api/routes/auth.js +2 -1
- package/dist/api/routes/automation.js +2 -1
- package/dist/api/routes/backup.js +2 -1
- package/dist/api/routes/cloud.js +2 -1
- package/dist/api/routes/component.js +2 -1
- package/dist/api/routes/datasource.js +2 -1
- package/dist/api/routes/deploy.js +2 -1
- package/dist/api/routes/dev.js +2 -1
- package/dist/api/routes/integration.js +2 -1
- package/dist/api/routes/layout.js +2 -1
- package/dist/api/routes/metadata.js +2 -1
- package/dist/api/routes/migrations.js +2 -1
- package/dist/api/routes/permission.js +2 -1
- package/dist/api/routes/query.js +2 -1
- package/dist/api/routes/role.js +2 -1
- package/dist/api/routes/routing.js +2 -1
- package/dist/api/routes/screen.js +2 -1
- package/dist/api/routes/script.js +2 -1
- package/dist/api/routes/static.js +6 -5
- package/dist/api/routes/table.js +8 -38
- package/dist/api/routes/templates.js +2 -1
- package/dist/api/routes/user.js +2 -1
- package/dist/api/routes/utils/validators.js +1 -1
- package/dist/api/routes/view.js +2 -1
- package/dist/api/routes/webhook.js +2 -1
- package/dist/app.js +9 -7
- package/dist/automations/logging/index.js +5 -25
- package/dist/db/index.js +5 -2
- package/dist/db/linkedRows/LinkController.js +2 -1
- package/dist/db/linkedRows/LinkDocument.js +2 -1
- package/dist/db/newid.js +4 -2
- package/dist/environment.js +2 -1
- package/dist/events/AutomationEmitter.js +2 -1
- package/dist/events/BudibaseEmitter.js +2 -1
- package/dist/events/index.js +2 -1
- package/dist/integrations/index.js +5 -5
- package/dist/middleware/authorized.js +2 -1
- package/dist/middleware/builder.js +4 -2
- package/dist/middleware/currentapp.js +6 -3
- package/dist/middleware/publicApi.js +4 -2
- package/dist/middleware/selfhost.js +4 -1
- package/dist/package.json +9 -7
- package/dist/startup.js +17 -17
- package/dist/threads/index.js +4 -4
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/filesystem.js +3 -3
- package/dist/utilities/schema.js +108 -0
- package/dist/utilities/scriptRunner.js +2 -1
- package/dist/utilities/statusCodes.js +2 -1
- package/dist/utilities/workerRequests.js +2 -0
- package/dist/watch.js +2 -25
- package/jest.config.ts +5 -2
- package/package.json +10 -8
- package/src/api/controllers/query/index.ts +2 -2
- package/src/api/controllers/row/ExternalRequest.ts +6 -0
- package/src/api/controllers/row/internal.ts +10 -9
- package/src/api/controllers/static/index.ts +1 -1
- package/src/api/controllers/static/templates/BudibaseApp.svelte +0 -1
- package/src/api/controllers/table/external.ts +10 -10
- package/src/api/controllers/table/index.ts +46 -17
- package/src/api/controllers/table/internal.ts +6 -7
- package/src/api/controllers/table/utils.ts +12 -13
- package/src/api/controllers/user.ts +21 -13
- package/src/api/controllers/view/exporters.ts +20 -5
- package/src/api/controllers/view/index.ts +21 -12
- package/src/api/controllers/view/tests/viewBuilder.spec.js +1 -1
- package/src/api/controllers/view/viewBuilder.ts +1 -1
- package/src/api/routes/analytics.ts +1 -1
- package/src/api/routes/apikeys.ts +1 -1
- package/src/api/routes/application.ts +1 -1
- package/src/api/routes/auth.ts +1 -1
- package/src/api/routes/automation.ts +1 -1
- package/src/api/routes/backup.ts +1 -1
- package/src/api/routes/cloud.ts +1 -1
- package/src/api/routes/component.ts +1 -1
- package/src/api/routes/datasource.ts +1 -1
- package/src/api/routes/deploy.ts +1 -1
- package/src/api/routes/dev.ts +1 -1
- package/src/api/routes/integration.ts +1 -1
- package/src/api/routes/layout.ts +1 -1
- package/src/api/routes/metadata.ts +1 -1
- package/src/api/routes/migrations.ts +1 -1
- package/src/api/routes/permission.ts +1 -1
- package/src/api/routes/query.ts +1 -1
- package/src/api/routes/role.ts +1 -1
- package/src/api/routes/routing.ts +1 -1
- package/src/api/routes/screen.ts +1 -1
- package/src/api/routes/script.ts +1 -1
- package/src/api/routes/static.ts +2 -2
- package/src/api/routes/table.ts +16 -39
- package/src/api/routes/templates.ts +1 -1
- package/src/api/routes/tests/misc.spec.js +4 -10
- package/src/api/routes/tests/plugin.spec.ts +10 -10
- package/src/api/routes/tests/table.spec.js +8 -30
- package/src/api/routes/tests/user.spec.js +20 -1
- package/src/api/routes/tests/utilities/TestFunctions.ts +1 -1
- package/src/api/routes/user.ts +1 -1
- package/src/api/routes/utils/validators.ts +1 -1
- package/src/api/routes/view.ts +1 -1
- package/src/api/routes/webhook.ts +1 -1
- package/src/app.ts +5 -3
- package/src/automations/logging/index.ts +1 -1
- package/src/db/index.ts +1 -1
- package/src/db/linkedRows/LinkController.ts +1 -1
- package/src/db/linkedRows/LinkDocument.ts +1 -1
- package/src/db/newid.ts +1 -1
- package/src/db/tests/linkController.spec.js +1 -1
- package/src/environment.ts +1 -1
- package/src/events/AutomationEmitter.ts +1 -1
- package/src/events/BudibaseEmitter.ts +1 -1
- package/src/events/index.ts +1 -1
- package/src/integrations/index.ts +4 -4
- package/src/integrations/tests/rest.spec.ts +15 -13
- package/src/middleware/authorized.ts +5 -1
- package/src/middleware/builder.ts +1 -1
- package/src/middleware/currentapp.ts +4 -3
- package/src/middleware/publicApi.ts +1 -1
- package/src/middleware/selfhost.ts +1 -1
- package/src/middleware/tests/authorized.spec.js +1 -1
- package/src/middleware/tests/currentapp.spec.js +1 -1
- package/src/middleware/tests/selfhost.spec.js +1 -1
- package/src/startup.ts +3 -8
- package/src/tests/jestEnv.ts +13 -0
- package/src/tests/jestSetup.ts +0 -14
- package/src/tests/utilities/TestConfiguration.ts +1 -1
- package/src/threads/index.ts +1 -1
- package/src/utilities/fileSystem/filesystem.ts +1 -1
- package/src/utilities/schema.ts +141 -0
- package/src/utilities/scriptRunner.ts +1 -1
- package/src/utilities/statusCodes.ts +1 -1
- package/src/utilities/workerRequests.ts +10 -1
- package/src/watch.ts +1 -1
- package/builder/assets/index.fa480d5b.css +0 -6
- package/coverage/lcov-report/src/utilities/statusCodes.ts.html +0 -106
- package/dist/utilities/csvParser.js +0 -152
- package/src/utilities/csvParser.ts +0 -161
- package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -15
- package/src/utilities/tests/csvParser.spec.js +0 -112
|
@@ -8,6 +8,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.destroy = exports.executeV2 = exports.executeV1 = exports.preview = exports.find = exports.save = exports.import = exports.fetch = void 0;
|
|
13
16
|
const utils_1 = require("../../../db/utils");
|
|
@@ -16,11 +19,11 @@ const threads_1 = require("../../../threads");
|
|
|
16
19
|
const datasource_1 = require("../datasource");
|
|
17
20
|
const import_1 = require("./import");
|
|
18
21
|
const utils_2 = require("../../../threads/utils");
|
|
19
|
-
const environment_1 = require("../../../environment");
|
|
22
|
+
const environment_1 = __importDefault(require("../../../environment"));
|
|
20
23
|
const pro_1 = require("@budibase/pro");
|
|
21
24
|
const backend_core_1 = require("@budibase/backend-core");
|
|
22
25
|
const Runner = new threads_1.Thread(threads_1.ThreadType.QUERY, {
|
|
23
|
-
timeoutMs: environment_1.QUERY_THREAD_TIMEOUT || 10000,
|
|
26
|
+
timeoutMs: environment_1.default.QUERY_THREAD_TIMEOUT || 10000,
|
|
24
27
|
});
|
|
25
28
|
// simple function to append "readable" to all read queries
|
|
26
29
|
function enrichQueries(input) {
|
|
@@ -562,6 +562,7 @@ class ExternalRequest {
|
|
|
562
562
|
return fields;
|
|
563
563
|
}
|
|
564
564
|
run(config) {
|
|
565
|
+
var _a;
|
|
565
566
|
return __awaiter(this, void 0, void 0, function* () {
|
|
566
567
|
const { operation, tableId } = this;
|
|
567
568
|
let { datasourceId, tableName } = (0, utils_3.breakExternalTableId)(tableId);
|
|
@@ -583,6 +584,12 @@ class ExternalRequest {
|
|
|
583
584
|
}
|
|
584
585
|
// look for specific components of config which may not be considered acceptable
|
|
585
586
|
let { id, row, filters, sort, paginate, rows } = cleanupConfig(config, table);
|
|
587
|
+
//if the sort column is a formula, remove it
|
|
588
|
+
for (let sortColumn of Object.keys(sort || {})) {
|
|
589
|
+
if (((_a = table.schema[sortColumn]) === null || _a === void 0 ? void 0 : _a.type) === "formula") {
|
|
590
|
+
sort === null || sort === void 0 ? true : delete sort[sortColumn];
|
|
591
|
+
}
|
|
592
|
+
}
|
|
586
593
|
filters = buildFilters(id, filters || {}, table);
|
|
587
594
|
const relationships = this.buildRelationships(table);
|
|
588
595
|
// clean up row on ingress using schema
|
|
@@ -61,7 +61,7 @@ const utils_2 = require("../view/utils");
|
|
|
61
61
|
const fp_1 = require("lodash/fp");
|
|
62
62
|
const backend_core_1 = require("@budibase/backend-core");
|
|
63
63
|
const staticFormula_1 = require("./staticFormula");
|
|
64
|
-
const
|
|
64
|
+
const exporters_1 = require("../view/exporters");
|
|
65
65
|
const fileSystem_1 = require("../../../utilities/fileSystem");
|
|
66
66
|
const CALCULATION_TYPES = {
|
|
67
67
|
SUM: "sum",
|
|
@@ -418,13 +418,17 @@ function exportRows(ctx) {
|
|
|
418
418
|
else {
|
|
419
419
|
rows = result;
|
|
420
420
|
}
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
421
|
+
if (format === exporters_1.Format.CSV) {
|
|
422
|
+
ctx.attachment("export.csv");
|
|
423
|
+
return (0, fileSystem_1.apiFileReturn)((0, exporters_1.csv)(Object.keys(rows[0]), rows));
|
|
424
|
+
}
|
|
425
|
+
else if (format === exporters_1.Format.JSON) {
|
|
426
|
+
ctx.attachment("export.json");
|
|
427
|
+
return (0, fileSystem_1.apiFileReturn)((0, exporters_1.json)(rows));
|
|
428
|
+
}
|
|
429
|
+
else {
|
|
430
|
+
throw "Format not recognised";
|
|
431
|
+
}
|
|
428
432
|
});
|
|
429
433
|
}
|
|
430
434
|
exports.exportRows = exportRows;
|
|
@@ -8,6 +8,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.getSignedUploadURL = exports.serveClientLibrary = exports.serveBuilderPreview = exports.serveApp = exports.deleteObjects = exports.uploadFile = exports.serveBuilder = exports.toggleBetaUiFeature = void 0;
|
|
13
16
|
require("svelte/register");
|
|
@@ -17,7 +20,7 @@ const uuid = require("uuid");
|
|
|
17
20
|
const constants_1 = require("../../../constants");
|
|
18
21
|
const { processString } = require("@budibase/string-templates");
|
|
19
22
|
const { loadHandlebarsFile, NODE_MODULES_PATH, TOP_LEVEL_PATH, } = require("../../../utilities/fileSystem");
|
|
20
|
-
const
|
|
23
|
+
const environment_1 = __importDefault(require("../../../environment"));
|
|
21
24
|
const { DocumentType } = require("../../../db/utils");
|
|
22
25
|
const { context, objectStore, utils } = require("@budibase/backend-core");
|
|
23
26
|
const AWS = require("aws-sdk");
|
|
@@ -101,13 +104,13 @@ const serveApp = function (ctx) {
|
|
|
101
104
|
const db = context.getAppDB({ skip_setup: true });
|
|
102
105
|
const appInfo = yield db.get(DocumentType.APP_METADATA);
|
|
103
106
|
let appId = context.getAppId();
|
|
104
|
-
if (!
|
|
107
|
+
if (!environment_1.default.isJest()) {
|
|
105
108
|
const App = require("./templates/BudibaseApp.svelte").default;
|
|
106
109
|
const plugins = objectStore.enrichPluginURLs(appInfo.usedPlugins);
|
|
107
110
|
const { head, html, css } = App.render({
|
|
108
111
|
metaImage: "https://res.cloudinary.com/daog6scxm/image/upload/v1666109324/meta-images/budibase-meta-image_uukc1m.png",
|
|
109
112
|
title: appInfo.name,
|
|
110
|
-
production:
|
|
113
|
+
production: environment_1.default.isProd(),
|
|
111
114
|
appId,
|
|
112
115
|
clientLibPath: objectStore.clientLibraryUrl(appId, appInfo.version),
|
|
113
116
|
usedPlugins: plugins,
|
|
@@ -131,7 +134,7 @@ const serveBuilderPreview = function (ctx) {
|
|
|
131
134
|
return __awaiter(this, void 0, void 0, function* () {
|
|
132
135
|
const db = context.getAppDB({ skip_setup: true });
|
|
133
136
|
const appInfo = yield db.get(DocumentType.APP_METADATA);
|
|
134
|
-
if (!
|
|
137
|
+
if (!environment_1.default.isJest()) {
|
|
135
138
|
let appId = context.getAppId();
|
|
136
139
|
const previewHbs = loadHandlebarsFile(`${__dirname}/templates/preview.hbs`);
|
|
137
140
|
ctx.body = yield processString(previewHbs, {
|
|
@@ -1,27 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -40,9 +17,9 @@ const utils_1 = require("../../../integrations/utils");
|
|
|
40
17
|
const utils_2 = require("./utils");
|
|
41
18
|
const constants_1 = require("../../../constants");
|
|
42
19
|
const query_1 = require("../../../integrations/base/query");
|
|
43
|
-
const csvParser = __importStar(require("../../../utilities/csvParser"));
|
|
44
20
|
const external_1 = require("../row/external");
|
|
45
21
|
const backend_core_1 = require("@budibase/backend-core");
|
|
22
|
+
const schema_1 = require("../../../utilities/schema");
|
|
46
23
|
const types_1 = require("@budibase/types");
|
|
47
24
|
const sdk_1 = __importDefault(require("../../../sdk"));
|
|
48
25
|
const { cloneDeep } = require("lodash/fp");
|
|
@@ -176,7 +153,7 @@ function save(ctx) {
|
|
|
176
153
|
const table = ctx.request.body;
|
|
177
154
|
const renamed = table === null || table === void 0 ? void 0 : table._rename;
|
|
178
155
|
// can't do this right now
|
|
179
|
-
delete table.
|
|
156
|
+
delete table.rows;
|
|
180
157
|
const datasourceId = getDatasourceId(ctx.request.body);
|
|
181
158
|
// table doesn't exist already, note that it is created
|
|
182
159
|
if (!table._id) {
|
|
@@ -279,15 +256,16 @@ exports.destroy = destroy;
|
|
|
279
256
|
function bulkImport(ctx) {
|
|
280
257
|
return __awaiter(this, void 0, void 0, function* () {
|
|
281
258
|
const table = yield sdk_1.default.tables.getTable(ctx.params.tableId);
|
|
282
|
-
const {
|
|
283
|
-
|
|
259
|
+
const { rows } = ctx.request.body;
|
|
260
|
+
const schema = table.schema;
|
|
261
|
+
if (!rows || !(0, schema_1.isRows)(rows) || !(0, schema_1.isSchema)(schema)) {
|
|
284
262
|
ctx.throw(400, "Provided data import information is invalid.");
|
|
285
263
|
}
|
|
286
|
-
const
|
|
264
|
+
const parsedRows = yield (0, schema_1.parse)(rows, schema);
|
|
287
265
|
yield (0, external_1.handleRequest)(types_1.Operation.BULK_CREATE, table._id, {
|
|
288
|
-
rows,
|
|
266
|
+
rows: parsedRows,
|
|
289
267
|
});
|
|
290
|
-
yield backend_core_1.events.rows.imported(table,
|
|
268
|
+
yield backend_core_1.events.rows.imported(table, parsedRows.length);
|
|
291
269
|
return table;
|
|
292
270
|
});
|
|
293
271
|
}
|
|
@@ -35,14 +35,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.
|
|
38
|
+
exports.validateExistingTableImport = exports.validateNewTableImport = exports.csvToJson = exports.bulkImport = exports.destroy = exports.save = exports.find = exports.fetch = void 0;
|
|
39
39
|
const internal = __importStar(require("./internal"));
|
|
40
40
|
const external = __importStar(require("./external"));
|
|
41
|
-
const
|
|
41
|
+
const schema_1 = require("../../../utilities/schema");
|
|
42
42
|
const utils_1 = require("../../../integrations/utils");
|
|
43
43
|
const utils_2 = require("../../../db/utils");
|
|
44
44
|
const backend_core_1 = require("@budibase/backend-core");
|
|
45
45
|
const sdk_1 = __importDefault(require("../../../sdk"));
|
|
46
|
+
const csvtojson_1 = __importDefault(require("csvtojson"));
|
|
46
47
|
function pickApi({ tableId, table }) {
|
|
47
48
|
if (table && !tableId) {
|
|
48
49
|
tableId = table._id;
|
|
@@ -87,7 +88,7 @@ function save(ctx) {
|
|
|
87
88
|
return __awaiter(this, void 0, void 0, function* () {
|
|
88
89
|
const appId = ctx.appId;
|
|
89
90
|
const table = ctx.request.body;
|
|
90
|
-
const
|
|
91
|
+
const isImport = table.rows;
|
|
91
92
|
const savedTable = yield pickApi({ table }).save(ctx);
|
|
92
93
|
if (!table._id) {
|
|
93
94
|
yield backend_core_1.events.table.created(savedTable);
|
|
@@ -95,8 +96,8 @@ function save(ctx) {
|
|
|
95
96
|
else {
|
|
96
97
|
yield backend_core_1.events.table.updated(savedTable);
|
|
97
98
|
}
|
|
98
|
-
if (
|
|
99
|
-
yield backend_core_1.events.table.imported(savedTable
|
|
99
|
+
if (isImport) {
|
|
100
|
+
yield backend_core_1.events.table.imported(savedTable);
|
|
100
101
|
}
|
|
101
102
|
ctx.status = 200;
|
|
102
103
|
ctx.message = `Table ${table.name} saved successfully.`;
|
|
@@ -132,19 +133,47 @@ function bulkImport(ctx) {
|
|
|
132
133
|
});
|
|
133
134
|
}
|
|
134
135
|
exports.bulkImport = bulkImport;
|
|
135
|
-
function
|
|
136
|
+
function csvToJson(ctx) {
|
|
136
137
|
return __awaiter(this, void 0, void 0, function* () {
|
|
137
|
-
|
|
138
|
-
const
|
|
139
|
-
|
|
138
|
+
const { csvString } = ctx.request.body;
|
|
139
|
+
const result = yield (0, csvtojson_1.default)().fromString(csvString);
|
|
140
|
+
ctx.status = 200;
|
|
141
|
+
ctx.body = result;
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
exports.csvToJson = csvToJson;
|
|
145
|
+
function validateNewTableImport(ctx) {
|
|
146
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
147
|
+
const { rows, schema } = ctx.request.body;
|
|
148
|
+
if ((0, schema_1.isRows)(rows) && (0, schema_1.isSchema)(schema)) {
|
|
149
|
+
ctx.status = 200;
|
|
150
|
+
ctx.body = (0, schema_1.validate)(rows, schema);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
ctx.status = 422;
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
exports.validateNewTableImport = validateNewTableImport;
|
|
158
|
+
function validateExistingTableImport(ctx) {
|
|
159
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
160
|
+
const { rows, tableId } = ctx.request.body;
|
|
161
|
+
let schema = null;
|
|
140
162
|
if (tableId) {
|
|
141
|
-
|
|
163
|
+
const table = yield sdk_1.default.tables.getTable(tableId);
|
|
164
|
+
schema = table.schema;
|
|
142
165
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
166
|
+
else {
|
|
167
|
+
ctx.status = 422;
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
if (tableId && (0, schema_1.isRows)(rows) && (0, schema_1.isSchema)(schema)) {
|
|
171
|
+
ctx.status = 200;
|
|
172
|
+
ctx.body = (0, schema_1.validate)(rows, schema);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
ctx.status = 422;
|
|
146
176
|
}
|
|
147
|
-
ctx.body = { schema: result };
|
|
148
177
|
});
|
|
149
178
|
}
|
|
150
|
-
exports.
|
|
179
|
+
exports.validateExistingTableImport = validateExistingTableImport;
|
|
@@ -29,13 +29,12 @@ const utils_1 = require("../../../db/utils");
|
|
|
29
29
|
const constants_1 = require("../../../constants");
|
|
30
30
|
const utils_2 = require("./utils");
|
|
31
31
|
const backend_core_1 = require("@budibase/backend-core");
|
|
32
|
-
const environment_1 = require("../../../environment");
|
|
32
|
+
const environment_1 = __importDefault(require("../../../environment"));
|
|
33
33
|
const rowProcessor_1 = require("../../../utilities/rowProcessor");
|
|
34
34
|
const bulkFormula_1 = require("./bulkFormula");
|
|
35
35
|
const pro_1 = require("@budibase/pro");
|
|
36
36
|
const lodash_1 = require("lodash");
|
|
37
37
|
const fp_1 = require("lodash/fp");
|
|
38
|
-
const environment_2 = __importDefault(require("../../../environment"));
|
|
39
38
|
const sdk_1 = __importDefault(require("../../../sdk"));
|
|
40
39
|
function checkAutoColumns(table, oldTable) {
|
|
41
40
|
if (!table.schema) {
|
|
@@ -58,7 +57,7 @@ function checkAutoColumns(table, oldTable) {
|
|
|
58
57
|
function save(ctx) {
|
|
59
58
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
59
|
const db = backend_core_1.context.getAppDB();
|
|
61
|
-
const _a = ctx.request.body, {
|
|
60
|
+
const _a = ctx.request.body, { rows } = _a, rest = __rest(_a, ["rows"]);
|
|
62
61
|
let tableToSave = Object.assign({ type: "table", _id: (0, utils_1.generateTableID)(), views: {} }, rest);
|
|
63
62
|
// if the table obj had an _id then it will have been retrieved
|
|
64
63
|
let oldTable;
|
|
@@ -76,7 +75,7 @@ function save(ctx) {
|
|
|
76
75
|
const tableSaveFunctions = new utils_2.TableSaveFunctions({
|
|
77
76
|
user: ctx.user,
|
|
78
77
|
oldTable,
|
|
79
|
-
|
|
78
|
+
importRows: rows,
|
|
80
79
|
});
|
|
81
80
|
tableToSave = yield tableSaveFunctions.before(tableToSave);
|
|
82
81
|
// make sure that types don't change of a column, have to remove
|
|
@@ -166,7 +165,7 @@ function destroy(ctx) {
|
|
|
166
165
|
// don't remove the table itself until very end
|
|
167
166
|
yield db.remove(tableToDelete._id, tableToDelete._rev);
|
|
168
167
|
// remove table search index
|
|
169
|
-
if (!
|
|
168
|
+
if (!environment_1.default.isTest() || environment_1.default.COUCH_DB_URL) {
|
|
170
169
|
const currentIndexes = yield db.getIndexes();
|
|
171
170
|
const existingIndex = currentIndexes.indexes.find((existing) => existing.name === `search:${ctx.params.tableId}`);
|
|
172
171
|
if (existingIndex) {
|
|
@@ -187,8 +186,8 @@ exports.destroy = destroy;
|
|
|
187
186
|
function bulkImport(ctx) {
|
|
188
187
|
return __awaiter(this, void 0, void 0, function* () {
|
|
189
188
|
const table = yield sdk_1.default.tables.getTable(ctx.params.tableId);
|
|
190
|
-
const {
|
|
191
|
-
yield (0, utils_2.handleDataImport)(ctx.user, table,
|
|
189
|
+
const { rows } = ctx.request.body;
|
|
190
|
+
yield (0, utils_2.handleDataImport)(ctx.user, table, rows);
|
|
192
191
|
return table;
|
|
193
192
|
});
|
|
194
193
|
}
|
|
@@ -13,7 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.TableSaveFunctions = exports.hasTypeChanged = exports.areSwitchableTypes = exports.foreignKeyStructure = exports.generateJunctionTableName = exports.generateForeignKey = exports.checkForViewUpdates = exports.checkStaticTables = exports.handleSearchIndexes = exports.handleDataImport = exports.importToRows = exports.makeSureTableUpToDate = exports.checkForColumnUpdates = exports.clearColumns = void 0;
|
|
16
|
-
const
|
|
16
|
+
const schema_1 = require("../../../utilities/schema");
|
|
17
17
|
const utils_1 = require("../../../db/utils");
|
|
18
18
|
const lodash_1 = require("lodash");
|
|
19
19
|
const constants_1 = require("../../../constants");
|
|
@@ -124,19 +124,19 @@ function importToRows(data, table, user = {}) {
|
|
|
124
124
|
return finalData;
|
|
125
125
|
}
|
|
126
126
|
exports.importToRows = importToRows;
|
|
127
|
-
function handleDataImport(user, table,
|
|
127
|
+
function handleDataImport(user, table, rows) {
|
|
128
128
|
return __awaiter(this, void 0, void 0, function* () {
|
|
129
|
-
|
|
129
|
+
const schema = table.schema;
|
|
130
|
+
if (!rows || !(0, schema_1.isRows)(rows) || !(0, schema_1.isSchema)(schema)) {
|
|
130
131
|
return table;
|
|
131
132
|
}
|
|
132
133
|
const db = backend_core_1.context.getAppDB();
|
|
133
|
-
|
|
134
|
-
const data = yield (0, csvParser_1.transform)(Object.assign(Object.assign({}, dataImport), { existingTable: table }));
|
|
134
|
+
const data = (0, schema_1.parse)(rows, schema);
|
|
135
135
|
let finalData = importToRows(data, table, user);
|
|
136
136
|
yield pro_1.quotas.addRows(finalData.length, () => db.bulkDocs(finalData), {
|
|
137
137
|
tableId: table._id,
|
|
138
138
|
});
|
|
139
|
-
yield backend_core_1.events.rows.imported(table,
|
|
139
|
+
yield backend_core_1.events.rows.imported(table, finalData.length);
|
|
140
140
|
return table;
|
|
141
141
|
});
|
|
142
142
|
}
|
|
@@ -195,11 +195,11 @@ function checkStaticTables(table) {
|
|
|
195
195
|
}
|
|
196
196
|
exports.checkStaticTables = checkStaticTables;
|
|
197
197
|
class TableSaveFunctions {
|
|
198
|
-
constructor({ user, oldTable,
|
|
198
|
+
constructor({ user, oldTable, importRows }) {
|
|
199
199
|
this.db = backend_core_1.context.getAppDB();
|
|
200
200
|
this.user = user;
|
|
201
201
|
this.oldTable = oldTable;
|
|
202
|
-
this.
|
|
202
|
+
this.importRows = importRows;
|
|
203
203
|
// any rows that need updated
|
|
204
204
|
this.rows = [];
|
|
205
205
|
}
|
|
@@ -225,7 +225,7 @@ class TableSaveFunctions {
|
|
|
225
225
|
after(table) {
|
|
226
226
|
return __awaiter(this, void 0, void 0, function* () {
|
|
227
227
|
table = yield handleSearchIndexes(table);
|
|
228
|
-
table = yield handleDataImport(this.user, table, this.
|
|
228
|
+
table = yield handleDataImport(this.user, table, this.importRows);
|
|
229
229
|
return table;
|
|
230
230
|
});
|
|
231
231
|
}
|
|
@@ -20,11 +20,13 @@ const users_1 = require("../../utilities/users");
|
|
|
20
20
|
const backend_core_1 = require("@budibase/backend-core");
|
|
21
21
|
const sdk_1 = __importDefault(require("../../sdk"));
|
|
22
22
|
function syncUser(ctx) {
|
|
23
|
+
var _a;
|
|
23
24
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
25
|
let deleting = false, user;
|
|
25
26
|
const userId = ctx.params.id;
|
|
27
|
+
const previousUser = (_a = ctx.request.body) === null || _a === void 0 ? void 0 : _a.previousUser;
|
|
26
28
|
try {
|
|
27
|
-
user = yield (0, global_1.getRawGlobalUser)(userId);
|
|
29
|
+
user = (yield (0, global_1.getRawGlobalUser)(userId));
|
|
28
30
|
}
|
|
29
31
|
catch (err) {
|
|
30
32
|
if (err && err.status === 404) {
|
|
@@ -35,6 +37,9 @@ function syncUser(ctx) {
|
|
|
35
37
|
throw err;
|
|
36
38
|
}
|
|
37
39
|
}
|
|
40
|
+
let previousApps = previousUser
|
|
41
|
+
? Object.keys(previousUser.roles).map(appId => appId)
|
|
42
|
+
: [];
|
|
38
43
|
const roles = deleting ? {} : user.roles;
|
|
39
44
|
// remove props which aren't useful to metadata
|
|
40
45
|
delete user.password;
|
|
@@ -51,8 +56,9 @@ function syncUser(ctx) {
|
|
|
51
56
|
.filter(entry => entry[1] !== backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC)
|
|
52
57
|
.map(([appId]) => appId);
|
|
53
58
|
}
|
|
54
|
-
for (let prodAppId of prodAppIds) {
|
|
59
|
+
for (let prodAppId of new Set([...prodAppIds, ...previousApps])) {
|
|
55
60
|
const roleId = roles[prodAppId];
|
|
61
|
+
const deleteFromApp = !roleId;
|
|
56
62
|
const devAppId = backend_core_1.db.getDevelopmentAppID(prodAppId);
|
|
57
63
|
for (let appId of [prodAppId, devAppId]) {
|
|
58
64
|
if (!(yield backend_core_1.db.dbExists(appId))) {
|
|
@@ -66,20 +72,22 @@ function syncUser(ctx) {
|
|
|
66
72
|
metadata = yield db.get(metadataId);
|
|
67
73
|
}
|
|
68
74
|
catch (err) {
|
|
69
|
-
if (
|
|
75
|
+
if (deleteFromApp) {
|
|
70
76
|
return;
|
|
71
77
|
}
|
|
72
78
|
metadata = {
|
|
73
79
|
tableId: utils_2.InternalTables.USER_METADATA,
|
|
74
80
|
};
|
|
75
81
|
}
|
|
82
|
+
if (deleteFromApp) {
|
|
83
|
+
yield db.remove(metadata);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
76
86
|
// assign the roleId for the metadata doc
|
|
77
87
|
if (roleId) {
|
|
78
88
|
metadata.roleId = roleId;
|
|
79
89
|
}
|
|
80
|
-
let combined =
|
|
81
|
-
? sdk_1.default.users.combineMetadataAndUser(user, metadata)
|
|
82
|
-
: Object.assign(Object.assign({}, metadata), { status: backend_core_1.constants.UserStatus.INACTIVE, metadata: backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC });
|
|
90
|
+
let combined = sdk_1.default.users.combineMetadataAndUser(user, metadata);
|
|
83
91
|
// if its null then there was no updates required
|
|
84
92
|
if (combined) {
|
|
85
93
|
yield db.put(combined);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isFormat = exports.Format = exports.jsonWithSchema = exports.json = exports.csv = void 0;
|
|
4
4
|
function csv(headers, rows) {
|
|
5
5
|
let csv = headers.map(key => `"${key}"`).join(",");
|
|
6
6
|
for (let row of rows) {
|
|
@@ -18,11 +18,27 @@ function csv(headers, rows) {
|
|
|
18
18
|
return csv;
|
|
19
19
|
}
|
|
20
20
|
exports.csv = csv;
|
|
21
|
-
function json(
|
|
21
|
+
function json(rows) {
|
|
22
22
|
return JSON.stringify(rows, undefined, 2);
|
|
23
23
|
}
|
|
24
24
|
exports.json = json;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
function jsonWithSchema(schema, rows) {
|
|
26
|
+
const newSchema = {};
|
|
27
|
+
Object.values(schema).forEach(column => {
|
|
28
|
+
if (!column.autocolumn) {
|
|
29
|
+
newSchema[column.name] = column;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
return JSON.stringify({ schema: newSchema, rows }, undefined, 2);
|
|
33
|
+
}
|
|
34
|
+
exports.jsonWithSchema = jsonWithSchema;
|
|
35
|
+
var Format;
|
|
36
|
+
(function (Format) {
|
|
37
|
+
Format["CSV"] = "csv";
|
|
38
|
+
Format["JSON"] = "json";
|
|
39
|
+
Format["JSON_WITH_SCHEMA"] = "jsonWithSchema";
|
|
40
|
+
})(Format = exports.Format || (exports.Format = {}));
|
|
41
|
+
function isFormat(format) {
|
|
42
|
+
return Object.values(Format).includes(format);
|
|
43
|
+
}
|
|
44
|
+
exports.isFormat = isFormat;
|
|
@@ -1,27 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -49,7 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
49
26
|
exports.exportView = exports.destroy = exports.filterEvents = exports.calculationEvents = exports.save = exports.fetch = void 0;
|
|
50
27
|
const viewBuilder_1 = __importDefault(require("./viewBuilder"));
|
|
51
28
|
const fileSystem_1 = require("../../../utilities/fileSystem");
|
|
52
|
-
const
|
|
29
|
+
const exporters_1 = require("./exporters");
|
|
53
30
|
const utils_1 = require("./utils");
|
|
54
31
|
const row_1 = require("../row");
|
|
55
32
|
const constants_1 = require("../../../constants");
|
|
@@ -160,8 +137,8 @@ function exportView(ctx) {
|
|
|
160
137
|
const viewName = decodeURIComponent(ctx.query.view);
|
|
161
138
|
const view = yield (0, utils_1.getView)(viewName);
|
|
162
139
|
const format = ctx.query.format;
|
|
163
|
-
if (!
|
|
164
|
-
ctx.throw(400, "Format must be specified, either csv or
|
|
140
|
+
if (!(0, exporters_1.isFormat)(format)) {
|
|
141
|
+
ctx.throw(400, "Format must be specified, either csv, json or jsonWithSchema");
|
|
165
142
|
}
|
|
166
143
|
if (view) {
|
|
167
144
|
ctx.params.viewName = viewName;
|
|
@@ -199,7 +176,7 @@ function exportView(ctx) {
|
|
|
199
176
|
delete schema[column];
|
|
200
177
|
});
|
|
201
178
|
// make sure no "undefined" entries appear in the CSV
|
|
202
|
-
if (format ===
|
|
179
|
+
if (format === exporters_1.Format.CSV) {
|
|
203
180
|
const schemaKeys = Object.keys(schema);
|
|
204
181
|
for (let key of schemaKeys) {
|
|
205
182
|
for (let row of rows) {
|
|
@@ -209,13 +186,21 @@ function exportView(ctx) {
|
|
|
209
186
|
}
|
|
210
187
|
}
|
|
211
188
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
189
|
+
if (format === exporters_1.Format.CSV) {
|
|
190
|
+
ctx.attachment(`${viewName}.csv`);
|
|
191
|
+
ctx.body = (0, fileSystem_1.apiFileReturn)((0, exporters_1.csv)(Object.keys(schema), rows));
|
|
192
|
+
}
|
|
193
|
+
else if (format === exporters_1.Format.JSON) {
|
|
194
|
+
ctx.attachment(`${viewName}.json`);
|
|
195
|
+
ctx.body = (0, fileSystem_1.apiFileReturn)((0, exporters_1.json)(rows));
|
|
196
|
+
}
|
|
197
|
+
else if (format === exporters_1.Format.JSON_WITH_SCHEMA) {
|
|
198
|
+
ctx.attachment(`${viewName}.json`);
|
|
199
|
+
ctx.body = (0, fileSystem_1.apiFileReturn)((0, exporters_1.jsonWithSchema)(schema, rows));
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
throw "Format not recognised";
|
|
203
|
+
}
|
|
219
204
|
if (viewName.startsWith(utils_2.DocumentType.TABLE)) {
|
|
220
205
|
yield backend_core_1.events.table.exported(table, format);
|
|
221
206
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
3
|
const TOKEN_MAP = {
|
|
3
4
|
EQUALS: "===",
|
|
4
5
|
NOT_EQUALS: "!==",
|
|
@@ -102,7 +103,18 @@ function parseFilterExpression(filters) {
|
|
|
102
103
|
function parseEmitExpression(field, groupBy) {
|
|
103
104
|
return `emit(doc["${groupBy || "_id"}"], doc["${field}"]);`;
|
|
104
105
|
}
|
|
105
|
-
|
|
106
|
+
/**
|
|
107
|
+
* Return a fully parsed CouchDB compliant view definition
|
|
108
|
+
* that will be stored in the design document in the database.
|
|
109
|
+
*
|
|
110
|
+
* @param {Object} viewDefinition - the JSON definition for a custom view.
|
|
111
|
+
* field: field that calculations will be performed on
|
|
112
|
+
* tableId: tableId of the table this view was created from
|
|
113
|
+
* groupBy: field that calculations will be grouped by. Field must be present for this to be useful
|
|
114
|
+
* filters: Array of filter objects containing predicates that are parsed into a JS expression
|
|
115
|
+
* calculation: an optional calculation to be performed over the view data.
|
|
116
|
+
*/
|
|
117
|
+
function default_1({ field, tableId, groupBy, filters = [], calculation, }) {
|
|
106
118
|
// first filter can't have a conjunction
|
|
107
119
|
if (filters && filters.length > 0 && filters[0].conjunction) {
|
|
108
120
|
delete filters[0].conjunction;
|
|
@@ -136,4 +148,5 @@ module.exports = function ({ field, tableId, groupBy, filters = [], calculation,
|
|
|
136
148
|
${emitExpression}
|
|
137
149
|
}
|
|
138
150
|
}` }, reduction);
|
|
139
|
-
}
|
|
151
|
+
}
|
|
152
|
+
exports.default = default_1;
|
|
@@ -25,9 +25,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
29
|
const router_1 = __importDefault(require("@koa/router"));
|
|
29
30
|
const controller = __importStar(require("../controllers/analytics"));
|
|
30
31
|
const router = new router_1.default();
|
|
31
32
|
router.get("/api/bbtel", controller.isEnabled);
|
|
32
33
|
router.post("/api/bbtel/ping", controller.ping);
|
|
33
|
-
|
|
34
|
+
exports.default = router;
|