@budibase/server 2.6.19-alpha.4 → 2.6.19-alpha.41
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/.dockerignore +7 -6
- package/Dockerfile +16 -8
- package/builder/assets/index.49c9e712.css +6 -0
- package/builder/assets/index.e3ce193c.js +1870 -0
- package/builder/index.html +2 -2
- package/client/manifest.json +5229 -0
- package/dist/automation.js +32478 -0
- package/dist/automation.js.map +7 -0
- package/dist/index.js +44909 -13
- package/dist/index.js.map +7 -0
- package/dist/query.js +24402 -0
- package/dist/query.js.map +7 -0
- package/jest.config.ts +3 -0
- package/nodemon.json +1 -1
- package/package.json +32 -13
- package/pm2.config.js +1 -1
- package/scripts/build.js +48 -0
- package/src/api/controllers/application.ts +21 -22
- package/src/api/controllers/automation.ts +37 -9
- package/src/api/controllers/datasource.ts +4 -0
- package/src/api/controllers/deploy/index.ts +1 -0
- package/src/api/controllers/row/index.ts +15 -22
- package/src/api/controllers/row/internal.ts +1 -1
- package/src/api/controllers/row/utils.ts +12 -0
- package/src/api/controllers/static/index.ts +3 -3
- package/src/api/controllers/table/index.ts +3 -0
- package/src/api/controllers/table/internal.ts +2 -6
- package/src/api/controllers/table/utils.ts +32 -1
- package/src/api/controllers/view/index.ts +5 -5
- package/src/api/controllers/webhook.ts +33 -9
- package/src/api/routes/application.ts +5 -0
- package/src/api/routes/automation.ts +0 -1
- package/src/api/routes/static.ts +3 -1
- package/src/api/routes/tests/{automation.spec.js → automation.spec.ts} +106 -31
- package/src/api/routes/tests/{webhook.spec.js → webhook.spec.ts} +33 -11
- package/src/app.ts +0 -1
- package/src/automations/actions.ts +8 -0
- package/src/automations/logging/index.ts +21 -0
- package/src/automations/steps/bash.ts +4 -0
- package/src/automations/steps/collect.ts +58 -0
- package/src/automations/steps/createRow.ts +4 -0
- package/src/automations/steps/delay.ts +1 -0
- package/src/automations/steps/deleteRow.ts +4 -0
- package/src/automations/steps/discord.ts +4 -0
- package/src/automations/steps/executeQuery.ts +4 -0
- package/src/automations/steps/executeScript.ts +4 -0
- package/src/automations/steps/filter.ts +1 -0
- package/src/automations/steps/loop.ts +1 -0
- package/src/automations/steps/make.ts +4 -0
- package/src/automations/steps/openai.ts +106 -0
- package/src/automations/steps/outgoingWebhook.ts +4 -0
- package/src/automations/steps/queryRows.ts +4 -0
- package/src/automations/steps/sendSmtpEmail.ts +4 -0
- package/src/automations/steps/serverLog.ts +4 -0
- package/src/automations/steps/slack.ts +4 -0
- package/src/automations/steps/updateRow.ts +4 -0
- package/src/automations/steps/zapier.ts +4 -0
- package/src/automations/tests/openai.spec.ts +86 -0
- package/src/automations/triggers.ts +3 -2
- package/src/constants/index.ts +17 -16
- package/src/db/inMemoryView.ts +1 -0
- package/src/environment.ts +3 -0
- package/src/integrations/airtable.ts +3 -1
- package/src/integrations/arangodb.ts +3 -1
- package/src/integrations/base/sqlTable.ts +0 -1
- package/src/integrations/couchdb.ts +3 -1
- package/src/integrations/dynamodb.ts +3 -1
- package/src/integrations/elasticsearch.ts +3 -1
- package/src/integrations/firebase.ts +3 -1
- package/src/integrations/googlesheets.ts +4 -4
- package/src/integrations/microsoftSqlServer.ts +4 -4
- package/src/integrations/mongodb.ts +3 -1
- package/src/integrations/mysql.ts +4 -4
- package/src/integrations/oracle.ts +4 -4
- package/src/integrations/postgres.ts +4 -4
- package/src/integrations/redis.ts +3 -1
- package/src/integrations/s3.ts +3 -1
- package/src/integrations/snowflake.ts +3 -1
- package/src/middleware/builder.ts +26 -18
- package/src/sdk/app/automations/index.ts +2 -0
- package/src/sdk/app/automations/utils.ts +7 -0
- package/src/startup.ts +2 -0
- package/src/tests/utilities/TestConfiguration.ts +4 -2
- package/src/tests/utilities/structures.ts +42 -0
- package/src/threads/automation.ts +82 -22
- package/src/threads/index.ts +9 -3
- package/src/threads/utils.ts +2 -0
- package/src/utilities/fileSystem/app.ts +14 -4
- package/src/utilities/fileSystem/clientLibrary.ts +8 -3
- package/src/utilities/fileSystem/filesystem.ts +3 -1
- package/src/utilities/redis.ts +18 -1
- package/src/utilities/rowProcessor/map.ts +1 -1
- package/src/websockets/builder.ts +74 -0
- package/src/websockets/client.ts +2 -2
- package/src/websockets/grid.ts +40 -44
- package/src/websockets/index.ts +5 -2
- package/src/websockets/websocket.ts +198 -7
- package/tsconfig.build.json +9 -1
- package/tsconfig.json +1 -14
- package/builder/assets/index.07382a47.css +0 -6
- package/builder/assets/index.3d5c50fb.js +0 -1786
- package/dist/api/controllers/analytics.js +0 -46
- package/dist/api/controllers/apikeys.js +0 -72
- package/dist/api/controllers/application.js +0 -574
- package/dist/api/controllers/auth.js +0 -80
- package/dist/api/controllers/automation.js +0 -303
- package/dist/api/controllers/backup.js +0 -37
- package/dist/api/controllers/component.js +0 -59
- package/dist/api/controllers/datasource.js +0 -352
- package/dist/api/controllers/deploy/Deployment.js +0 -53
- package/dist/api/controllers/deploy/index.js +0 -198
- package/dist/api/controllers/dev.js +0 -146
- package/dist/api/controllers/integration.js +0 -28
- package/dist/api/controllers/layout.js +0 -49
- package/dist/api/controllers/metadata.js +0 -63
- package/dist/api/controllers/migrations.js +0 -29
- package/dist/api/controllers/ops.js +0 -40
- package/dist/api/controllers/permission.js +0 -162
- package/dist/api/controllers/plugin/file.js +0 -24
- package/dist/api/controllers/plugin/github.js +0 -69
- package/dist/api/controllers/plugin/index.js +0 -112
- package/dist/api/controllers/plugin/npm.js +0 -58
- package/dist/api/controllers/plugin/uploaders.js +0 -11
- package/dist/api/controllers/plugin/url.js +0 -24
- package/dist/api/controllers/plugin/utils.js +0 -27
- package/dist/api/controllers/public/applications.js +0 -146
- package/dist/api/controllers/public/mapping/applications.js +0 -29
- package/dist/api/controllers/public/mapping/index.js +0 -11
- package/dist/api/controllers/public/mapping/queries.js +0 -36
- package/dist/api/controllers/public/mapping/rows.js +0 -24
- package/dist/api/controllers/public/mapping/tables.js +0 -23
- package/dist/api/controllers/public/mapping/types.js +0 -2
- package/dist/api/controllers/public/mapping/users.js +0 -29
- package/dist/api/controllers/public/metrics.js +0 -113
- package/dist/api/controllers/public/queries.js +0 -58
- package/dist/api/controllers/public/rows.js +0 -120
- package/dist/api/controllers/public/tables.js +0 -95
- package/dist/api/controllers/public/users.js +0 -93
- package/dist/api/controllers/public/utils.js +0 -56
- package/dist/api/controllers/query/import/index.js +0 -87
- package/dist/api/controllers/query/import/sources/base/index.js +0 -75
- package/dist/api/controllers/query/import/sources/base/openapi.js +0 -42
- package/dist/api/controllers/query/import/sources/curl.js +0 -99
- package/dist/api/controllers/query/import/sources/openapi2.js +0 -145
- package/dist/api/controllers/query/import/sources/openapi3.js +0 -177
- package/dist/api/controllers/query/import/sources/tests/openapi2/data/crud/crud.json +0 -253
- package/dist/api/controllers/query/import/sources/tests/openapi2/data/petstore/petstore.json +0 -1054
- package/dist/api/controllers/query/import/sources/tests/openapi3/data/crud/crud.json +0 -253
- package/dist/api/controllers/query/import/sources/tests/openapi3/data/petstore/petstore.json +0 -1225
- package/dist/api/controllers/query/index.js +0 -299
- package/dist/api/controllers/query/validation.js +0 -53
- package/dist/api/controllers/role.js +0 -109
- package/dist/api/controllers/routing.js +0 -105
- package/dist/api/controllers/row/ExternalRequest.js +0 -683
- package/dist/api/controllers/row/external.js +0 -339
- package/dist/api/controllers/row/index.js +0 -203
- package/dist/api/controllers/row/internal.js +0 -509
- package/dist/api/controllers/row/internalSearch.js +0 -28
- package/dist/api/controllers/row/staticFormula.js +0 -165
- package/dist/api/controllers/row/utils.js +0 -183
- package/dist/api/controllers/screen.js +0 -110
- package/dist/api/controllers/script.js +0 -30
- package/dist/api/controllers/static/index.js +0 -268
- package/dist/api/controllers/table/bulkFormula.js +0 -173
- package/dist/api/controllers/table/external.js +0 -279
- package/dist/api/controllers/table/index.js +0 -179
- package/dist/api/controllers/table/internal.js +0 -197
- package/dist/api/controllers/table/utils.js +0 -379
- package/dist/api/controllers/templates.js +0 -56
- package/dist/api/controllers/user.js +0 -124
- package/dist/api/controllers/view/exporters.js +0 -46
- package/dist/api/controllers/view/index.js +0 -193
- package/dist/api/controllers/view/utils.js +0 -177
- package/dist/api/controllers/view/viewBuilder.js +0 -158
- package/dist/api/controllers/webhook.js +0 -134
- package/dist/api/index.js +0 -55
- package/dist/api/routes/analytics.js +0 -34
- package/dist/api/routes/apikeys.js +0 -37
- package/dist/api/routes/application.js +0 -48
- package/dist/api/routes/auth.js +0 -33
- package/dist/api/routes/automation.js +0 -50
- package/dist/api/routes/backup.js +0 -35
- package/dist/api/routes/component.js +0 -35
- package/dist/api/routes/datasource.js +0 -45
- package/dist/api/routes/deploy.js +0 -37
- package/dist/api/routes/dev.js +0 -49
- package/dist/api/routes/index.js +0 -75
- package/dist/api/routes/integration.js +0 -37
- package/dist/api/routes/layout.js +0 -37
- package/dist/api/routes/metadata.js +0 -40
- package/dist/api/routes/migrations.js +0 -36
- package/dist/api/routes/ops.js +0 -52
- package/dist/api/routes/permission.js +0 -44
- package/dist/api/routes/plugin.js +0 -39
- package/dist/api/routes/public/applications.js +0 -174
- package/dist/api/routes/public/index.js +0 -140
- package/dist/api/routes/public/metrics.js +0 -30
- package/dist/api/routes/public/middleware/mapper.js +0 -97
- package/dist/api/routes/public/queries.js +0 -72
- package/dist/api/routes/public/rows.js +0 -158
- package/dist/api/routes/public/tables.js +0 -152
- package/dist/api/routes/public/users.js +0 -135
- package/dist/api/routes/public/utils/Endpoint.js +0 -36
- package/dist/api/routes/query.js +0 -47
- package/dist/api/routes/role.js +0 -40
- package/dist/api/routes/routing.js +0 -39
- package/dist/api/routes/row.js +0 -239
- package/dist/api/routes/screen.js +0 -39
- package/dist/api/routes/script.js +0 -35
- package/dist/api/routes/static.js +0 -80
- package/dist/api/routes/table.js +0 -163
- package/dist/api/routes/templates.js +0 -37
- package/dist/api/routes/user.js +0 -43
- package/dist/api/routes/utils/validators.js +0 -238
- package/dist/api/routes/view.js +0 -42
- package/dist/api/routes/webhook.js +0 -43
- package/dist/app.js +0 -132
- package/dist/automations/actions.js +0 -137
- package/dist/automations/automationUtils.js +0 -173
- package/dist/automations/bullboard.js +0 -71
- package/dist/automations/index.js +0 -43
- package/dist/automations/logging/index.js +0 -53
- package/dist/automations/steps/bash.js +0 -111
- package/dist/automations/steps/createRow.js +0 -108
- package/dist/automations/steps/delay.js +0 -53
- package/dist/automations/steps/deleteRow.js +0 -96
- package/dist/automations/steps/discord.js +0 -116
- package/dist/automations/steps/executeQuery.js +0 -134
- package/dist/automations/steps/executeScript.js +0 -106
- package/dist/automations/steps/filter.js +0 -112
- package/dist/automations/steps/loop.js +0 -54
- package/dist/automations/steps/make.js +0 -134
- package/dist/automations/steps/outgoingWebhook.js +0 -166
- package/dist/automations/steps/queryRows.js +0 -216
- package/dist/automations/steps/sendSmtpEmail.js +0 -115
- package/dist/automations/steps/serverLog.js +0 -65
- package/dist/automations/steps/slack.js +0 -98
- package/dist/automations/steps/updateRow.js +0 -144
- package/dist/automations/steps/utils.js +0 -56
- package/dist/automations/steps/zapier.js +0 -130
- package/dist/automations/triggerInfo/app.js +0 -36
- package/dist/automations/triggerInfo/cron.js +0 -35
- package/dist/automations/triggerInfo/index.js +0 -40
- package/dist/automations/triggerInfo/rowDeleted.js +0 -36
- package/dist/automations/triggerInfo/rowSaved.js +0 -44
- package/dist/automations/triggerInfo/rowUpdated.js +0 -44
- package/dist/automations/triggerInfo/webhook.js +0 -40
- package/dist/automations/triggers.js +0 -181
- package/dist/automations/utils.js +0 -275
- package/dist/constants/definitions.js +0 -2
- package/dist/constants/index.js +0 -181
- package/dist/constants/layouts.js +0 -148
- package/dist/constants/screens.js +0 -51
- package/dist/db/defaultData/datasource_bb_default.js +0 -574
- package/dist/db/defaultData/employeeImport.js +0 -155
- package/dist/db/defaultData/expensesImport.js +0 -117
- package/dist/db/defaultData/inventoryImport.js +0 -109
- package/dist/db/defaultData/jobsImport.js +0 -152
- package/dist/db/dynamoClient.js +0 -124
- package/dist/db/inMemoryView.js +0 -62
- package/dist/db/index.js +0 -43
- package/dist/db/linkedRows/LinkController.js +0 -392
- package/dist/db/linkedRows/LinkDocument.js +0 -33
- package/dist/db/linkedRows/index.js +0 -206
- package/dist/db/linkedRows/linkUtils.js +0 -131
- package/dist/db/newid.js +0 -7
- package/dist/db/utils.js +0 -248
- package/dist/db/views/staticViews.js +0 -144
- package/dist/ddApm.js +0 -11
- package/dist/definitions/automations.js +0 -8
- package/dist/definitions/common.js +0 -2
- package/dist/definitions/datasource.js +0 -7
- package/dist/definitions/openapi.js +0 -6
- package/dist/environment.js +0 -109
- package/dist/events/AutomationEmitter.js +0 -53
- package/dist/events/BudibaseEmitter.js +0 -25
- package/dist/events/docUpdates/index.js +0 -17
- package/dist/events/docUpdates/processors.js +0 -18
- package/dist/events/docUpdates/syncUsers.js +0 -49
- package/dist/events/index.js +0 -11
- package/dist/events/utils.js +0 -43
- package/dist/integrations/airtable.js +0 -173
- package/dist/integrations/arangodb.js +0 -119
- package/dist/integrations/base/query.js +0 -32
- package/dist/integrations/base/sql.js +0 -600
- package/dist/integrations/base/sqlTable.js +0 -167
- package/dist/integrations/base/types.js +0 -2
- package/dist/integrations/couchdb.js +0 -140
- package/dist/integrations/dynamodb.js +0 -210
- package/dist/integrations/elasticsearch.js +0 -201
- package/dist/integrations/firebase.js +0 -189
- package/dist/integrations/googlesheets.js +0 -493
- package/dist/integrations/index.js +0 -138
- package/dist/integrations/microsoftSqlServer.js +0 -308
- package/dist/integrations/mongodb.js +0 -630
- package/dist/integrations/mysql.js +0 -291
- package/dist/integrations/oracle.js +0 -415
- package/dist/integrations/postgres.js +0 -335
- package/dist/integrations/queries/sql.js +0 -84
- package/dist/integrations/redis.js +0 -187
- package/dist/integrations/rest.js +0 -400
- package/dist/integrations/s3.js +0 -256
- package/dist/integrations/snowflake.js +0 -114
- package/dist/integrations/utils.js +0 -295
- package/dist/middleware/appInfo.js +0 -22
- package/dist/middleware/authorized.js +0 -112
- package/dist/middleware/builder.js +0 -93
- package/dist/middleware/currentapp.js +0 -103
- package/dist/middleware/joi-validator.js +0 -43
- package/dist/middleware/publicApi.js +0 -25
- package/dist/middleware/resourceId.js +0 -59
- package/dist/middleware/selfhost.js +0 -24
- package/dist/middleware/utils.js +0 -8
- package/dist/migrations/functions/appUrls.js +0 -42
- package/dist/migrations/functions/backfill/app/automations.js +0 -31
- package/dist/migrations/functions/backfill/app/datasources.js +0 -28
- package/dist/migrations/functions/backfill/app/layouts.js +0 -33
- package/dist/migrations/functions/backfill/app/queries.js +0 -49
- package/dist/migrations/functions/backfill/app/roles.js +0 -28
- package/dist/migrations/functions/backfill/app/screens.js +0 -28
- package/dist/migrations/functions/backfill/app/tables.js +0 -37
- package/dist/migrations/functions/backfill/app.js +0 -176
- package/dist/migrations/functions/backfill/global/configs.js +0 -67
- package/dist/migrations/functions/backfill/global/quotas.js +0 -60
- package/dist/migrations/functions/backfill/global/users.js +0 -50
- package/dist/migrations/functions/backfill/global.js +0 -205
- package/dist/migrations/functions/backfill/index.js +0 -32
- package/dist/migrations/functions/backfill/installation.js +0 -80
- package/dist/migrations/functions/syncQuotas.js +0 -52
- package/dist/migrations/functions/tableSettings.js +0 -130
- package/dist/migrations/functions/usageQuotas/index.js +0 -16
- package/dist/migrations/functions/usageQuotas/syncApps.js +0 -24
- package/dist/migrations/functions/usageQuotas/syncPlugins.js +0 -23
- package/dist/migrations/functions/usageQuotas/syncRows.js +0 -33
- package/dist/migrations/functions/usageQuotas/syncUsers.js +0 -21
- package/dist/migrations/functions/userEmailViewCasing.js +0 -24
- package/dist/migrations/index.js +0 -111
- package/dist/migrations/tests/helpers.js +0 -72
- package/dist/migrations/tests/structures.js +0 -37
- package/dist/sdk/app/applications/index.js +0 -28
- package/dist/sdk/app/applications/sync.js +0 -164
- package/dist/sdk/app/applications/utils.js +0 -21
- package/dist/sdk/app/automations/index.js +0 -29
- package/dist/sdk/app/automations/webhook.js +0 -54
- package/dist/sdk/app/backups/constants.js +0 -6
- package/dist/sdk/app/backups/exports.js +0 -160
- package/dist/sdk/app/backups/imports.js +0 -170
- package/dist/sdk/app/backups/index.js +0 -29
- package/dist/sdk/app/backups/statistics.js +0 -73
- package/dist/sdk/app/datasources/datasources.js +0 -173
- package/dist/sdk/app/datasources/index.js +0 -27
- package/dist/sdk/app/queries/index.js +0 -27
- package/dist/sdk/app/queries/queries.js +0 -60
- package/dist/sdk/app/rows/attachments.js +0 -61
- package/dist/sdk/app/rows/index.js +0 -28
- package/dist/sdk/app/rows/rows.js +0 -30
- package/dist/sdk/app/tables/index.js +0 -65
- package/dist/sdk/index.js +0 -27
- package/dist/sdk/plugins/index.js +0 -27
- package/dist/sdk/plugins/plugins.js +0 -53
- package/dist/sdk/users/index.js +0 -27
- package/dist/sdk/users/utils.js +0 -87
- package/dist/sdk/utils/index.js +0 -29
- package/dist/startup.js +0 -158
- package/dist/threads/automation.js +0 -450
- package/dist/threads/definitions.js +0 -2
- package/dist/threads/index.js +0 -140
- package/dist/threads/query.js +0 -265
- package/dist/threads/utils.js +0 -120
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- package/dist/utilities/appDirectoryTemplate/package.json +0 -10
- package/dist/utilities/budibaseDir.js +0 -5
- package/dist/utilities/centralPath.js +0 -27
- package/dist/utilities/csv.js +0 -33
- package/dist/utilities/fileSystem/app.js +0 -88
- package/dist/utilities/fileSystem/clientLibrary.js +0 -138
- package/dist/utilities/fileSystem/filesystem.js +0 -180
- package/dist/utilities/fileSystem/index.js +0 -21
- package/dist/utilities/fileSystem/plugin.js +0 -76
- package/dist/utilities/fileSystem/processor.js +0 -34
- package/dist/utilities/fileSystem/template.js +0 -47
- package/dist/utilities/global.js +0 -149
- package/dist/utilities/index.js +0 -143
- package/dist/utilities/redis.js +0 -117
- package/dist/utilities/retry.js +0 -30
- package/dist/utilities/routing/index.js +0 -39
- package/dist/utilities/rowProcessor/index.js +0 -282
- package/dist/utilities/rowProcessor/map.js +0 -116
- package/dist/utilities/rowProcessor/utils.js +0 -87
- package/dist/utilities/schema.js +0 -112
- package/dist/utilities/scriptRunner.js +0 -26
- package/dist/utilities/security.js +0 -57
- package/dist/utilities/statusCodes.js +0 -9
- package/dist/utilities/usageQuota/rows.js +0 -88
- package/dist/utilities/usageQuota/usageQuoteReset.js +0 -16
- package/dist/utilities/users.js +0 -57
- package/dist/utilities/workerRequests.js +0 -171
- package/dist/watch.js +0 -53
- package/dist/websockets/client.js +0 -14
- package/dist/websockets/grid.js +0 -60
- package/dist/websockets/index.js +0 -17
- package/dist/websockets/websocket.js +0 -78
- /package/dist/{api/controllers/static/templates/BudibaseApp.svelte → BudibaseApp-Y5NZEDTC.svelte} +0 -0
- /package/dist/{api/controllers/static/templates/app.hbs → app.hbs} +0 -0
- /package/dist/{api/controllers/static/templates/preview.hbs → preview.hbs} +0 -0
|
@@ -1,58 +0,0 @@
|
|
|
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
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.execute = exports.search = void 0;
|
|
36
|
-
const utils_1 = require("./utils");
|
|
37
|
-
const queryController = __importStar(require("../query"));
|
|
38
|
-
function search(ctx, next) {
|
|
39
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
-
yield queryController.fetch(ctx);
|
|
41
|
-
const { name } = ctx.request.body;
|
|
42
|
-
ctx.body = (0, utils_1.search)(ctx.body, name);
|
|
43
|
-
yield next();
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
exports.search = search;
|
|
47
|
-
function execute(ctx, next) {
|
|
48
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
-
// don't wrap this, already returns "data"
|
|
50
|
-
yield queryController.executeV2(ctx);
|
|
51
|
-
yield next();
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
exports.execute = execute;
|
|
55
|
-
exports.default = {
|
|
56
|
-
search,
|
|
57
|
-
execute,
|
|
58
|
-
};
|
|
@@ -1,120 +0,0 @@
|
|
|
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
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.destroy = exports.update = exports.read = exports.create = exports.search = void 0;
|
|
36
|
-
const rowController = __importStar(require("../row"));
|
|
37
|
-
const utils_1 = require("./utils");
|
|
38
|
-
const utilities_1 = require("../../../utilities");
|
|
39
|
-
// makes sure that the user doesn't need to pass in the type, tableId or _id params for
|
|
40
|
-
// the call to be correct
|
|
41
|
-
function fixRow(row, params) {
|
|
42
|
-
if (!params || !row) {
|
|
43
|
-
return row;
|
|
44
|
-
}
|
|
45
|
-
if (params.rowId) {
|
|
46
|
-
row._id = params.rowId;
|
|
47
|
-
}
|
|
48
|
-
if (params.tableId) {
|
|
49
|
-
row.tableId = params.tableId;
|
|
50
|
-
}
|
|
51
|
-
if (!row.type) {
|
|
52
|
-
row.type = "row";
|
|
53
|
-
}
|
|
54
|
-
return row;
|
|
55
|
-
}
|
|
56
|
-
function search(ctx, next) {
|
|
57
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
-
let { sort, paginate, bookmark, limit, query } = ctx.request.body;
|
|
59
|
-
// update the body to the correct format of the internal search
|
|
60
|
-
if (!sort) {
|
|
61
|
-
sort = {};
|
|
62
|
-
}
|
|
63
|
-
ctx.request.body = {
|
|
64
|
-
sort: sort.column,
|
|
65
|
-
sortType: sort.type,
|
|
66
|
-
sortOrder: sort.order,
|
|
67
|
-
bookmark: (0, utilities_1.convertBookmark)(bookmark),
|
|
68
|
-
paginate,
|
|
69
|
-
limit,
|
|
70
|
-
query,
|
|
71
|
-
};
|
|
72
|
-
yield rowController.search(ctx);
|
|
73
|
-
yield next();
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
exports.search = search;
|
|
77
|
-
function create(ctx, next) {
|
|
78
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
-
ctx.request.body = fixRow(ctx.request.body, ctx.params);
|
|
80
|
-
yield rowController.save(ctx);
|
|
81
|
-
yield next();
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
exports.create = create;
|
|
85
|
-
function read(ctx, next) {
|
|
86
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
87
|
-
yield rowController.fetchEnrichedRow(ctx);
|
|
88
|
-
yield next();
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
exports.read = read;
|
|
92
|
-
function update(ctx, next) {
|
|
93
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
94
|
-
const { tableId } = ctx.params;
|
|
95
|
-
ctx.request.body = yield (0, utils_1.addRev)(fixRow(ctx.request.body, ctx.params), tableId);
|
|
96
|
-
yield rowController.save(ctx);
|
|
97
|
-
yield next();
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
exports.update = update;
|
|
101
|
-
function destroy(ctx, next) {
|
|
102
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
103
|
-
const { tableId } = ctx.params;
|
|
104
|
-
// set the body as expected, with the _id and _rev fields
|
|
105
|
-
ctx.request.body = yield (0, utils_1.addRev)(fixRow({ _id: ctx.params.rowId }, ctx.params), tableId);
|
|
106
|
-
yield rowController.destroy(ctx);
|
|
107
|
-
// destroy controller doesn't currently return the row as the body, need to adjust this
|
|
108
|
-
// in the public API to be correct
|
|
109
|
-
ctx.body = ctx.row;
|
|
110
|
-
yield next();
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
exports.destroy = destroy;
|
|
114
|
-
exports.default = {
|
|
115
|
-
create,
|
|
116
|
-
read,
|
|
117
|
-
update,
|
|
118
|
-
destroy,
|
|
119
|
-
search,
|
|
120
|
-
};
|
|
@@ -1,95 +0,0 @@
|
|
|
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
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.destroy = exports.update = exports.read = exports.create = exports.search = void 0;
|
|
36
|
-
const utils_1 = require("./utils");
|
|
37
|
-
const controller = __importStar(require("../table"));
|
|
38
|
-
function fixTable(table, params) {
|
|
39
|
-
if (!params || !table) {
|
|
40
|
-
return table;
|
|
41
|
-
}
|
|
42
|
-
if (params.tableId) {
|
|
43
|
-
table._id = params.tableId;
|
|
44
|
-
}
|
|
45
|
-
if (!table.type) {
|
|
46
|
-
table.type = "table";
|
|
47
|
-
}
|
|
48
|
-
return table;
|
|
49
|
-
}
|
|
50
|
-
function search(ctx, next) {
|
|
51
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
-
const { name } = ctx.request.body;
|
|
53
|
-
yield controller.fetch(ctx);
|
|
54
|
-
ctx.body = (0, utils_1.search)(ctx.body, name);
|
|
55
|
-
yield next();
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
exports.search = search;
|
|
59
|
-
function create(ctx, next) {
|
|
60
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
-
yield controller.save(ctx);
|
|
62
|
-
yield next();
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
exports.create = create;
|
|
66
|
-
function read(ctx, next) {
|
|
67
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
68
|
-
yield controller.find(ctx);
|
|
69
|
-
yield next();
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
exports.read = read;
|
|
73
|
-
function update(ctx, next) {
|
|
74
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
75
|
-
ctx.request.body = yield (0, utils_1.addRev)(fixTable(ctx.request.body, ctx.params), ctx.params.tableId);
|
|
76
|
-
yield controller.save(ctx);
|
|
77
|
-
yield next();
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
exports.update = update;
|
|
81
|
-
function destroy(ctx, next) {
|
|
82
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
83
|
-
yield controller.destroy(ctx);
|
|
84
|
-
ctx.body = ctx.table;
|
|
85
|
-
yield next();
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
exports.destroy = destroy;
|
|
89
|
-
exports.default = {
|
|
90
|
-
create,
|
|
91
|
-
read,
|
|
92
|
-
update,
|
|
93
|
-
destroy,
|
|
94
|
-
search,
|
|
95
|
-
};
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.destroy = exports.update = exports.read = exports.create = exports.search = void 0;
|
|
13
|
-
const workerRequests_1 = require("../../../utilities/workerRequests");
|
|
14
|
-
const users_1 = require("../../../utilities/users");
|
|
15
|
-
const backend_core_1 = require("@budibase/backend-core");
|
|
16
|
-
const utils_1 = require("./utils");
|
|
17
|
-
function isLoggedInUser(ctx, user) {
|
|
18
|
-
var _a;
|
|
19
|
-
const loggedInId = (_a = ctx.user) === null || _a === void 0 ? void 0 : _a._id;
|
|
20
|
-
const globalUserId = backend_core_1.db.getGlobalIDFromUserMetadataID(loggedInId);
|
|
21
|
-
// check both just incase
|
|
22
|
-
return globalUserId === user._id || loggedInId === user._id;
|
|
23
|
-
}
|
|
24
|
-
function getUser(ctx, userId) {
|
|
25
|
-
var _a;
|
|
26
|
-
if (userId) {
|
|
27
|
-
ctx.params = { userId };
|
|
28
|
-
}
|
|
29
|
-
else if (!((_a = ctx.params) === null || _a === void 0 ? void 0 : _a.userId)) {
|
|
30
|
-
throw "No user ID provided for getting";
|
|
31
|
-
}
|
|
32
|
-
return (0, workerRequests_1.readGlobalUser)(ctx);
|
|
33
|
-
}
|
|
34
|
-
function search(ctx, next) {
|
|
35
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
const { name } = ctx.request.body;
|
|
37
|
-
const users = yield (0, workerRequests_1.allGlobalUsers)(ctx);
|
|
38
|
-
ctx.body = (0, utils_1.search)(users, name, "email");
|
|
39
|
-
yield next();
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
exports.search = search;
|
|
43
|
-
function create(ctx, next) {
|
|
44
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
-
const response = yield (0, workerRequests_1.saveGlobalUser)((0, users_1.publicApiUserFix)(ctx));
|
|
46
|
-
ctx.body = yield getUser(ctx, response._id);
|
|
47
|
-
yield next();
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
exports.create = create;
|
|
51
|
-
function read(ctx, next) {
|
|
52
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
-
ctx.body = yield (0, workerRequests_1.readGlobalUser)(ctx);
|
|
54
|
-
yield next();
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
exports.read = read;
|
|
58
|
-
function update(ctx, next) {
|
|
59
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
const user = yield (0, workerRequests_1.readGlobalUser)(ctx);
|
|
61
|
-
ctx.request.body = Object.assign(Object.assign({}, ctx.request.body), { _rev: user._rev });
|
|
62
|
-
// disallow updating your own role - always overwrite with DB roles
|
|
63
|
-
if (isLoggedInUser(ctx, user)) {
|
|
64
|
-
ctx.request.body.builder = user.builder;
|
|
65
|
-
ctx.request.body.admin = user.admin;
|
|
66
|
-
ctx.request.body.roles = user.roles;
|
|
67
|
-
}
|
|
68
|
-
const response = yield (0, workerRequests_1.saveGlobalUser)((0, users_1.publicApiUserFix)(ctx));
|
|
69
|
-
ctx.body = yield getUser(ctx, response._id);
|
|
70
|
-
yield next();
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
exports.update = update;
|
|
74
|
-
function destroy(ctx, next) {
|
|
75
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
-
const user = yield getUser(ctx);
|
|
77
|
-
// disallow deleting yourself
|
|
78
|
-
if (isLoggedInUser(ctx, user)) {
|
|
79
|
-
ctx.throw(405, "Cannot delete user using its own API key.");
|
|
80
|
-
}
|
|
81
|
-
yield (0, workerRequests_1.deleteGlobalUser)(ctx);
|
|
82
|
-
ctx.body = user;
|
|
83
|
-
yield next();
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
exports.destroy = destroy;
|
|
87
|
-
exports.default = {
|
|
88
|
-
create,
|
|
89
|
-
read,
|
|
90
|
-
update,
|
|
91
|
-
destroy,
|
|
92
|
-
search,
|
|
93
|
-
};
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.search = exports.addRev = void 0;
|
|
13
|
-
const backend_core_1 = require("@budibase/backend-core");
|
|
14
|
-
const utils_1 = require("../../../integrations/utils");
|
|
15
|
-
const utils_2 = require("../../../db/utils");
|
|
16
|
-
function addRev(body, tableId) {
|
|
17
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
18
|
-
if (!body._id || (tableId && (0, utils_1.isExternalTable)(tableId))) {
|
|
19
|
-
return body;
|
|
20
|
-
}
|
|
21
|
-
let id = body._id;
|
|
22
|
-
if (body._id.startsWith(utils_2.APP_PREFIX)) {
|
|
23
|
-
id = utils_2.DocumentType.APP_METADATA;
|
|
24
|
-
}
|
|
25
|
-
const db = backend_core_1.context.getAppDB();
|
|
26
|
-
const dbDoc = yield db.get(id);
|
|
27
|
-
body._rev = dbDoc._rev;
|
|
28
|
-
// update ID in case it is an app ID
|
|
29
|
-
body._id = id;
|
|
30
|
-
return body;
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
exports.addRev = addRev;
|
|
34
|
-
/**
|
|
35
|
-
* Performs a case in-sensitive search on the provided documents, using the
|
|
36
|
-
* provided key and value. This will be a string based search, using the
|
|
37
|
-
* startsWith function.
|
|
38
|
-
*/
|
|
39
|
-
function search(docs, value, key = "name") {
|
|
40
|
-
if (!value || typeof value !== "string") {
|
|
41
|
-
return docs;
|
|
42
|
-
}
|
|
43
|
-
value = value.toLowerCase();
|
|
44
|
-
const filtered = [];
|
|
45
|
-
for (let doc of docs) {
|
|
46
|
-
if (typeof doc[key] !== "string") {
|
|
47
|
-
continue;
|
|
48
|
-
}
|
|
49
|
-
const toTest = doc[key].toLowerCase();
|
|
50
|
-
if (toTest.startsWith(value)) {
|
|
51
|
-
filtered.push(doc);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return filtered;
|
|
55
|
-
}
|
|
56
|
-
exports.search = search;
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.RestImporter = void 0;
|
|
13
|
-
const validation_1 = require("../validation");
|
|
14
|
-
const utils_1 = require("../../../../db/utils");
|
|
15
|
-
const openapi2_1 = require("./sources/openapi2");
|
|
16
|
-
const openapi3_1 = require("./sources/openapi3");
|
|
17
|
-
const curl_1 = require("./sources/curl");
|
|
18
|
-
// @ts-ignore
|
|
19
|
-
const backend_core_1 = require("@budibase/backend-core");
|
|
20
|
-
class RestImporter {
|
|
21
|
-
constructor(data) {
|
|
22
|
-
this.init = () => __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
for (let source of this.sources) {
|
|
24
|
-
if (yield source.isSupported(this.data)) {
|
|
25
|
-
this.source = source;
|
|
26
|
-
break;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
this.getInfo = () => __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
return this.source.getInfo();
|
|
32
|
-
});
|
|
33
|
-
this.importQueries = (datasourceId) => __awaiter(this, void 0, void 0, function* () {
|
|
34
|
-
// construct the queries
|
|
35
|
-
let queries = yield this.source.getQueries(datasourceId);
|
|
36
|
-
// validate queries
|
|
37
|
-
const errorQueries = [];
|
|
38
|
-
const schema = (0, validation_1.queryValidation)();
|
|
39
|
-
queries = queries
|
|
40
|
-
.filter(query => {
|
|
41
|
-
const validation = schema.validate(query);
|
|
42
|
-
if (validation.error) {
|
|
43
|
-
errorQueries.push(query);
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
return true;
|
|
47
|
-
})
|
|
48
|
-
.map(query => {
|
|
49
|
-
query._id = (0, utils_1.generateQueryID)(query.datasourceId);
|
|
50
|
-
return query;
|
|
51
|
-
});
|
|
52
|
-
// persist queries
|
|
53
|
-
const db = backend_core_1.context.getAppDB();
|
|
54
|
-
const response = yield db.bulkDocs(queries);
|
|
55
|
-
// create index to seperate queries and errors
|
|
56
|
-
const queryIndex = queries.reduce((acc, query) => {
|
|
57
|
-
if (query._id) {
|
|
58
|
-
acc[query._id] = query;
|
|
59
|
-
}
|
|
60
|
-
return acc;
|
|
61
|
-
}, {});
|
|
62
|
-
// check for failed writes
|
|
63
|
-
response.forEach((query) => {
|
|
64
|
-
if (!query.ok) {
|
|
65
|
-
errorQueries.push(queryIndex[query.id]);
|
|
66
|
-
delete queryIndex[query.id];
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
const successQueries = Object.values(queryIndex);
|
|
70
|
-
// events
|
|
71
|
-
const count = successQueries.length;
|
|
72
|
-
const importSource = this.source.getImportSource();
|
|
73
|
-
const datasource = yield db.get(datasourceId);
|
|
74
|
-
yield backend_core_1.events.query.imported(datasource, importSource, count);
|
|
75
|
-
for (let query of successQueries) {
|
|
76
|
-
yield backend_core_1.events.query.created(datasource, query);
|
|
77
|
-
}
|
|
78
|
-
return {
|
|
79
|
-
errorQueries,
|
|
80
|
-
queries: successQueries,
|
|
81
|
-
};
|
|
82
|
-
});
|
|
83
|
-
this.data = data;
|
|
84
|
-
this.sources = [new openapi2_1.OpenAPI2(), new openapi3_1.OpenAPI3(), new curl_1.Curl()];
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
exports.RestImporter = RestImporter;
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ImportSource = void 0;
|
|
4
|
-
var MethodToVerb;
|
|
5
|
-
(function (MethodToVerb) {
|
|
6
|
-
MethodToVerb["get"] = "read";
|
|
7
|
-
MethodToVerb["post"] = "create";
|
|
8
|
-
MethodToVerb["put"] = "update";
|
|
9
|
-
MethodToVerb["patch"] = "patch";
|
|
10
|
-
MethodToVerb["delete"] = "delete";
|
|
11
|
-
})(MethodToVerb || (MethodToVerb = {}));
|
|
12
|
-
class ImportSource {
|
|
13
|
-
constructor() {
|
|
14
|
-
this.constructQuery = (datasourceId, name, method, path, url, queryString, headers = {}, parameters = [], body = undefined) => {
|
|
15
|
-
const readable = true;
|
|
16
|
-
const queryVerb = this.verbFromMethod(method);
|
|
17
|
-
const transformer = "return data";
|
|
18
|
-
const schema = {};
|
|
19
|
-
path = this.processPath(path);
|
|
20
|
-
if (url) {
|
|
21
|
-
if (typeof url === "string") {
|
|
22
|
-
path = `${url}/${path}`;
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
let href = url.href;
|
|
26
|
-
if (href.endsWith("/")) {
|
|
27
|
-
href = href.slice(0, -1);
|
|
28
|
-
}
|
|
29
|
-
path = `${href}/${path}`;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
queryString = this.processQuery(queryString);
|
|
33
|
-
const requestBody = JSON.stringify(body, null, 2);
|
|
34
|
-
const query = {
|
|
35
|
-
datasourceId,
|
|
36
|
-
name,
|
|
37
|
-
parameters,
|
|
38
|
-
fields: {
|
|
39
|
-
headers,
|
|
40
|
-
queryString,
|
|
41
|
-
path,
|
|
42
|
-
requestBody,
|
|
43
|
-
},
|
|
44
|
-
transformer,
|
|
45
|
-
schema,
|
|
46
|
-
readable,
|
|
47
|
-
queryVerb,
|
|
48
|
-
};
|
|
49
|
-
return query;
|
|
50
|
-
};
|
|
51
|
-
this.verbFromMethod = (method) => {
|
|
52
|
-
const verb = MethodToVerb[method];
|
|
53
|
-
if (!verb) {
|
|
54
|
-
throw new Error(`Unsupported method: ${method}`);
|
|
55
|
-
}
|
|
56
|
-
return verb;
|
|
57
|
-
};
|
|
58
|
-
this.processPath = (path) => {
|
|
59
|
-
if (path === null || path === void 0 ? void 0 : path.startsWith("/")) {
|
|
60
|
-
path = path.substring(1);
|
|
61
|
-
}
|
|
62
|
-
// add extra braces around params for binding
|
|
63
|
-
path = path.replace(/[{]/g, "{{");
|
|
64
|
-
path = path.replace(/[}]/g, "}}");
|
|
65
|
-
return path;
|
|
66
|
-
};
|
|
67
|
-
this.processQuery = (queryString) => {
|
|
68
|
-
if (queryString === null || queryString === void 0 ? void 0 : queryString.startsWith("?")) {
|
|
69
|
-
return queryString.substring(1);
|
|
70
|
-
}
|
|
71
|
-
return queryString;
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
exports.ImportSource = ImportSource;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.OpenAPISource = void 0;
|
|
16
|
-
const _1 = require(".");
|
|
17
|
-
const swagger_parser_1 = __importDefault(require("@apidevtools/swagger-parser"));
|
|
18
|
-
const yaml = require("js-yaml");
|
|
19
|
-
class OpenAPISource extends _1.ImportSource {
|
|
20
|
-
constructor() {
|
|
21
|
-
super(...arguments);
|
|
22
|
-
this.parseData = (data) => __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
let json;
|
|
24
|
-
try {
|
|
25
|
-
json = JSON.parse(data);
|
|
26
|
-
}
|
|
27
|
-
catch (jsonErr) {
|
|
28
|
-
// couldn't parse json
|
|
29
|
-
// try to convert yaml -> json
|
|
30
|
-
try {
|
|
31
|
-
json = yaml.load(data);
|
|
32
|
-
}
|
|
33
|
-
catch (yamlErr) {
|
|
34
|
-
// couldn't parse yaml
|
|
35
|
-
throw new Error("Could not parse JSON or YAML");
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return swagger_parser_1.default.validate(json, {});
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
exports.OpenAPISource = OpenAPISource;
|