@budibase/server 2.2.11 → 2.2.12-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__mocks__/aws-sdk.ts +19 -0
- package/__mocks__/node-fetch.ts +78 -0
- package/builder/assets/{index.7481e2b4.js → index.a4f7991a.js} +362 -359
- package/builder/assets/{index.9cb087df.css → index.fa480d5b.css} +2 -2
- package/builder/index.html +2 -2
- package/coverage/clover.xml +5038 -5004
- package/coverage/coverage-final.json +268 -265
- package/coverage/lcov-report/index.html +206 -206
- package/coverage/lcov-report/src/api/controllers/analytics.ts.html +7 -7
- package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/application.ts.html +258 -183
- package/coverage/lcov-report/src/api/controllers/auth.ts.html +11 -11
- package/coverage/lcov-report/src/api/controllers/automation.ts.html +51 -51
- package/coverage/lcov-report/src/api/controllers/backup.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/cloud.ts.html +91 -79
- package/coverage/lcov-report/src/api/controllers/component.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/datasource.ts.html +30 -30
- package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +17 -14
- package/coverage/lcov-report/src/api/controllers/deploy/index.html +19 -19
- package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +141 -195
- package/coverage/lcov-report/src/api/controllers/dev.ts.html +18 -18
- package/coverage/lcov-report/src/api/controllers/index.html +51 -51
- package/coverage/lcov-report/src/api/controllers/integration.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/layout.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/metadata.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/migrations.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/permission.ts.html +13 -13
- package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +19 -19
- package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +63 -63
- package/coverage/lcov-report/src/api/controllers/plugin/index.html +72 -72
- package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +150 -135
- package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +55 -55
- package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +11 -11
- package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +18 -18
- package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +20 -20
- package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +67 -16
- package/coverage/lcov-report/src/api/controllers/public/index.html +15 -15
- package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +7 -7
- package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +10 -10
- package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/public/users.ts.html +11 -11
- package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +8 -8
- 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 +8 -8
- package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +10 -10
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +14 -14
- package/coverage/lcov-report/src/api/controllers/query/index.html +19 -19
- package/coverage/lcov-report/src/api/controllers/query/index.ts.html +60 -60
- package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/role.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/routing.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +12 -15
- package/coverage/lcov-report/src/api/controllers/row/external.ts.html +20 -20
- package/coverage/lcov-report/src/api/controllers/row/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/row/index.ts.html +14 -14
- package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +55 -52
- package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +21 -12
- package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +17 -14
- package/coverage/lcov-report/src/api/controllers/screen.ts.html +26 -26
- package/coverage/lcov-report/src/api/controllers/script.ts.html +18 -18
- package/coverage/lcov-report/src/api/controllers/static/index.html +11 -11
- package/coverage/lcov-report/src/api/controllers/static/index.ts.html +32 -44
- package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +10 -10
- package/coverage/lcov-report/src/api/controllers/table/external.ts.html +14 -14
- package/coverage/lcov-report/src/api/controllers/table/index.html +19 -19
- package/coverage/lcov-report/src/api/controllers/table/index.ts.html +14 -14
- package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +17 -17
- package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +51 -51
- package/coverage/lcov-report/src/api/controllers/templates.ts.html +7 -7
- package/coverage/lcov-report/src/api/controllers/user.ts.html +119 -119
- package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/view/index.ts.html +49 -49
- package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +22 -22
- package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +33 -33
- package/coverage/lcov-report/src/api/controllers/webhook.ts.html +14 -14
- package/coverage/lcov-report/src/api/index.html +1 -1
- package/coverage/lcov-report/src/api/index.ts.html +33 -33
- package/coverage/lcov-report/src/api/routes/analytics.ts.html +7 -7
- package/coverage/lcov-report/src/api/routes/apikeys.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/application.ts.html +44 -11
- package/coverage/lcov-report/src/api/routes/auth.ts.html +6 -6
- package/coverage/lcov-report/src/api/routes/automation.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/backup.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/cloud.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/component.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/datasource.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/deploy.ts.html +8 -11
- package/coverage/lcov-report/src/api/routes/dev.ts.html +13 -13
- package/coverage/lcov-report/src/api/routes/index.html +7 -7
- package/coverage/lcov-report/src/api/routes/index.ts.html +40 -37
- package/coverage/lcov-report/src/api/routes/integration.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/layout.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/metadata.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/migrations.ts.html +7 -7
- package/coverage/lcov-report/src/api/routes/permission.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/plugin.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/public/applications.ts.html +146 -14
- package/coverage/lcov-report/src/api/routes/public/index.html +7 -7
- package/coverage/lcov-report/src/api/routes/public/index.ts.html +52 -52
- package/coverage/lcov-report/src/api/routes/public/middleware/index.html +15 -15
- package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +28 -16
- package/coverage/lcov-report/src/api/routes/public/queries.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/public/rows.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/public/tables.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/public/tests/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/public/users.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +19 -19
- package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/query.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/role.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/routing.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/row.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/screen.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/static.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/table.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/templates.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +15 -15
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +24 -24
- package/coverage/lcov-report/src/api/routes/user.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +42 -42
- package/coverage/lcov-report/src/api/routes/view.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/webhook.ts.html +10 -10
- package/coverage/lcov-report/src/app.ts.html +32 -32
- package/coverage/lcov-report/src/automations/actions.ts.html +25 -25
- package/coverage/lcov-report/src/automations/automationUtils.ts.html +91 -19
- package/coverage/lcov-report/src/automations/bullboard.ts.html +11 -11
- package/coverage/lcov-report/src/automations/index.html +19 -19
- package/coverage/lcov-report/src/automations/index.ts.html +13 -13
- package/coverage/lcov-report/src/automations/logging/index.html +1 -1
- package/coverage/lcov-report/src/automations/logging/index.ts.html +11 -11
- package/coverage/lcov-report/src/automations/steps/bash.ts.html +34 -34
- package/coverage/lcov-report/src/automations/steps/createRow.ts.html +7 -7
- package/coverage/lcov-report/src/automations/steps/delay.ts.html +5 -5
- package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +7 -7
- package/coverage/lcov-report/src/automations/steps/discord.ts.html +33 -33
- package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +35 -35
- package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +31 -31
- package/coverage/lcov-report/src/automations/steps/filter.ts.html +6 -6
- package/coverage/lcov-report/src/automations/steps/index.html +83 -83
- 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 +14 -14
- package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +17 -17
- package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +28 -28
- package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +18 -18
- package/coverage/lcov-report/src/automations/steps/slack.ts.html +6 -6
- package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +7 -7
- package/coverage/lcov-report/src/automations/steps/utils.ts.html +16 -16
- package/coverage/lcov-report/src/automations/steps/zapier.ts.html +22 -22
- package/coverage/lcov-report/src/automations/tests/utilities/index.html +5 -5
- package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +26 -26
- package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +3 -3
- package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +3 -3
- package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +8 -8
- package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +3 -3
- package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +3 -3
- package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +3 -3
- package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +3 -3
- package/coverage/lcov-report/src/automations/triggers.ts.html +21 -21
- package/coverage/lcov-report/src/automations/utils.ts.html +56 -56
- package/coverage/lcov-report/src/constants/index.html +1 -1
- package/coverage/lcov-report/src/constants/index.ts.html +92 -92
- package/coverage/lcov-report/src/constants/layouts.ts.html +4 -4
- package/coverage/lcov-report/src/constants/screens.ts.html +5 -5
- package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +23 -23
- package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +2 -2
- package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +2 -2
- package/coverage/lcov-report/src/db/defaultData/index.html +1 -1
- package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +2 -2
- package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +2 -2
- package/coverage/lcov-report/src/db/dynamoClient.ts.html +16 -16
- package/coverage/lcov-report/src/db/inMemoryView.ts.html +5 -5
- package/coverage/lcov-report/src/db/index.html +19 -19
- package/coverage/lcov-report/src/db/index.ts.html +9 -9
- package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +8 -8
- package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +4 -4
- package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
- package/coverage/lcov-report/src/db/linkedRows/index.ts.html +15 -15
- package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +12 -12
- package/coverage/lcov-report/src/db/newid.ts.html +4 -4
- package/coverage/lcov-report/src/db/utils.ts.html +80 -80
- 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 +1 -1
- package/coverage/lcov-report/src/environment.ts.html +40 -28
- package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +6 -6
- package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +5 -5
- package/coverage/lcov-report/src/events/index.html +1 -1
- package/coverage/lcov-report/src/events/index.ts.html +4 -4
- package/coverage/lcov-report/src/events/utils.ts.html +3 -3
- package/coverage/lcov-report/src/index.html +25 -25
- package/coverage/lcov-report/src/index.ts.html +1 -1
- package/coverage/lcov-report/src/integrations/airtable.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/arangodb.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/base/index.html +1 -1
- package/coverage/lcov-report/src/integrations/base/query.ts.html +3 -3
- package/coverage/lcov-report/src/integrations/base/sql.ts.html +14 -14
- package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +8 -8
- package/coverage/lcov-report/src/integrations/base/utils.ts.html +3 -3
- package/coverage/lcov-report/src/integrations/couchdb.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/dynamodb.ts.html +6 -6
- package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/firebase.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/googlesheets.ts.html +12 -12
- package/coverage/lcov-report/src/integrations/index.html +5 -5
- package/coverage/lcov-report/src/integrations/index.ts.html +35 -47
- package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +8 -8
- package/coverage/lcov-report/src/integrations/mongodb.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/mysql.ts.html +10 -10
- package/coverage/lcov-report/src/integrations/oracle.ts.html +13 -13
- package/coverage/lcov-report/src/integrations/postgres.ts.html +42 -42
- package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
- package/coverage/lcov-report/src/integrations/queries/sql.ts.html +13 -13
- package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/rest.ts.html +16 -16
- package/coverage/lcov-report/src/integrations/s3.ts.html +6 -6
- package/coverage/lcov-report/src/integrations/snowflake.ts.html +5 -5
- 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 +36 -36
- package/coverage/lcov-report/src/middleware/appInfo.ts.html +7 -7
- package/coverage/lcov-report/src/middleware/authorized.ts.html +28 -28
- package/coverage/lcov-report/src/middleware/builder.ts.html +17 -17
- package/coverage/lcov-report/src/middleware/currentapp.ts.html +39 -39
- package/coverage/lcov-report/src/middleware/index.html +1 -1
- package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
- package/coverage/lcov-report/src/middleware/publicApi.ts.html +4 -4
- package/coverage/lcov-report/src/middleware/resourceId.ts.html +22 -22
- package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
- package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +5 -5
- package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +5 -5
- package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +5 -5
- 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 +5 -5
- package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +5 -5
- package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +19 -19
- package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +13 -10
- package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +15 -15
- package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +5 -5
- package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +8 -8
- package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +2 -2
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +5 -5
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +3 -3
- package/coverage/lcov-report/src/migrations/index.html +1 -1
- package/coverage/lcov-report/src/migrations/index.ts.html +32 -32
- package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/tests/index.html +1 -1
- package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/app/applications/index.html +15 -15
- package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +4 -4
- package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +34 -34
- package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +9 -9
- package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
- 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 +17 -17
- package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +41 -53
- package/coverage/lcov-report/src/sdk/app/backups/index.html +28 -28
- package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +5 -5
- package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +73 -73
- package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +6 -6
- package/coverage/lcov-report/src/sdk/app/rows/index.html +1 -1
- package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +4 -4
- package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
- package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
- package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +5 -5
- package/coverage/lcov-report/src/sdk/index.html +1 -1
- package/coverage/lcov-report/src/sdk/index.ts.html +9 -9
- package/coverage/lcov-report/src/sdk/users/index.html +5 -5
- package/coverage/lcov-report/src/sdk/users/index.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/users/utils.ts.html +34 -34
- package/coverage/lcov-report/src/startup.ts.html +42 -42
- package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +182 -125
- package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +15 -15
- package/coverage/lcov-report/src/tests/utilities/index.html +15 -15
- package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
- package/coverage/lcov-report/src/tests/utilities/structures.ts.html +30 -30
- package/coverage/lcov-report/src/threads/automation.ts.html +34 -103
- package/coverage/lcov-report/src/threads/index.html +19 -19
- package/coverage/lcov-report/src/threads/index.ts.html +25 -25
- package/coverage/lcov-report/src/threads/query.ts.html +71 -71
- package/coverage/lcov-report/src/threads/utils.ts.html +18 -18
- package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +3 -3
- package/coverage/lcov-report/src/utilities/centralPath.ts.html +4 -4
- package/coverage/lcov-report/src/utilities/csvParser.ts.html +8 -8
- package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +343 -0
- package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +12 -12
- package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +595 -0
- package/coverage/lcov-report/src/utilities/fileSystem/index.html +79 -19
- package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +20 -1049
- package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +280 -0
- package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +193 -0
- package/coverage/lcov-report/src/utilities/global.ts.html +43 -43
- package/coverage/lcov-report/src/utilities/index.html +48 -63
- package/coverage/lcov-report/src/utilities/index.ts.html +36 -168
- package/coverage/lcov-report/src/utilities/redis.ts.html +32 -32
- package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/src/utilities/routing/index.ts.html +5 -5
- package/coverage/lcov-report/src/utilities/rowProcessor/index.html +28 -28
- package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +60 -33
- package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +3 -3
- package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +38 -38
- package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +32 -32
- package/coverage/lcov-report/src/utilities/security.ts.html +6 -6
- package/coverage/lcov-report/src/utilities/statusCodes.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
- package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +35 -35
- package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/users.ts.html +6 -6
- package/coverage/lcov-report/src/utilities/workerRequests.ts.html +56 -56
- package/coverage/lcov-report/src/watch.ts.html +9 -9
- package/coverage/lcov-report/src/websocket.ts.html +15 -15
- package/coverage/lcov.info +7198 -7131
- package/dist/api/controllers/application.js +47 -35
- package/dist/api/controllers/cloud.js +6 -2
- package/dist/api/controllers/deploy/index.js +43 -60
- package/dist/api/controllers/plugin/index.js +6 -6
- package/dist/api/controllers/public/applications.js +22 -1
- package/dist/api/controllers/row/ExternalRequest.js +0 -1
- package/dist/api/controllers/row/internal.js +12 -12
- package/dist/api/controllers/row/staticFormula.js +1 -1
- package/dist/api/controllers/static/index.js +8 -11
- package/dist/api/controllers/view/index.js +2 -2
- package/dist/api/routes/application.js +3 -0
- package/dist/api/routes/deploy.js +1 -2
- package/dist/api/routes/public/applications.js +37 -0
- package/dist/api/routes/public/middleware/mapper.js +3 -0
- package/dist/automations/automationUtils.js +26 -1
- package/dist/environment.js +5 -1
- package/dist/integrations/googlesheets.js +1 -1
- package/dist/integrations/index.js +1 -2
- package/dist/migrations/functions/backfill/global/configs.js +4 -4
- package/dist/package.json +9 -7
- package/dist/sdk/app/backups/imports.js +2 -6
- package/dist/threads/automation.js +4 -28
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/app.js +97 -0
- package/dist/utilities/fileSystem/clientLibrary.js +3 -3
- package/dist/utilities/fileSystem/filesystem.js +182 -0
- package/dist/utilities/fileSystem/index.js +18 -342
- package/dist/utilities/fileSystem/plugin.js +63 -0
- package/dist/utilities/fileSystem/template.js +44 -0
- package/dist/utilities/index.js +1 -44
- package/dist/utilities/rowProcessor/index.js +12 -4
- package/package.json +10 -8
- package/scripts/dev/manage.js +0 -16
- package/specs/openapi.json +84 -0
- package/specs/openapi.yaml +53 -0
- package/specs/resources/application.js +19 -0
- package/src/api/controllers/application.ts +61 -36
- package/src/api/controllers/auth.ts +2 -2
- package/src/api/controllers/cloud.ts +10 -6
- package/src/api/controllers/deploy/Deployment.ts +1 -0
- package/src/api/controllers/deploy/index.ts +40 -58
- package/src/api/controllers/plugin/index.ts +14 -9
- package/src/api/controllers/public/applications.ts +17 -0
- package/src/api/controllers/row/ExternalRequest.ts +0 -1
- package/src/api/controllers/row/internal.ts +24 -23
- package/src/api/controllers/row/staticFormula.ts +5 -2
- package/src/api/controllers/row/utils.ts +2 -1
- package/src/api/controllers/static/index.ts +6 -10
- package/src/api/controllers/view/index.ts +2 -2
- package/src/api/routes/application.ts +11 -0
- package/src/api/routes/deploy.ts +0 -1
- package/src/api/routes/index.ts +4 -3
- package/src/api/routes/public/applications.ts +44 -0
- package/src/api/routes/public/middleware/mapper.ts +4 -0
- package/src/api/routes/tests/__snapshots__/{datasource.spec.js.snap → datasource.spec.ts.snap} +0 -0
- package/src/api/routes/tests/{application.spec.js → application.spec.ts} +94 -18
- package/src/api/routes/tests/{backup.spec.js → backup.spec.ts} +17 -6
- package/src/api/routes/tests/cloud.spec.ts +65 -0
- package/src/api/routes/tests/data/budibase-component-1.0.1.tgz +0 -0
- package/src/api/routes/tests/data/comment-box-1.0.2.tar.gz +0 -0
- package/src/api/routes/tests/data/export-test.tar.gz +0 -0
- package/src/api/routes/tests/{datasource.spec.js → datasource.spec.ts} +23 -15
- package/src/api/routes/tests/permissions.spec.js +1 -1
- package/src/api/routes/tests/plugin.spec.ts +179 -0
- package/src/api/routes/tests/routing.spec.js +1 -2
- package/src/api/routes/tests/row.spec.js +4 -2
- package/src/api/routes/tests/static.spec.js +2 -17
- package/src/api/routes/tests/table.spec.js +8 -2
- package/src/api/routes/tests/user.spec.js +86 -0
- package/src/api/routes/tests/utilities/index.ts +2 -2
- package/src/api/routes/tests/webhook.spec.js +1 -1
- package/src/automations/automationUtils.ts +24 -0
- package/src/automations/tests/bash.spec.js +34 -0
- package/src/automations/tests/discord.spec.js +27 -0
- package/src/automations/tests/executeQuery.spec.js +49 -0
- package/src/automations/tests/executeScript.spec.js +48 -0
- package/src/automations/tests/sendSmtpEmail.spec.js +71 -0
- package/src/automations/tests/serverLog.spec.js +22 -0
- package/src/automations/tests/utilities/index.ts +2 -2
- package/src/automations/tests/zapier.spec.js +27 -0
- package/src/automations/unitTests/automationUtils.spec.ts +65 -0
- package/src/definitions/openapi.ts +10 -0
- package/src/environment.ts +5 -1
- package/src/integrations/googlesheets.ts +1 -1
- package/src/integrations/index.ts +1 -5
- package/src/migrations/functions/backfill/global/configs.ts +5 -4
- package/src/sdk/app/backups/imports.ts +2 -6
- package/src/sdk/tests/attachments.spec.ts +1 -4
- package/src/tests/jestSetup.ts +4 -1
- package/src/tests/utilities/TestConfiguration.ts +23 -4
- package/src/threads/automation.ts +4 -27
- package/src/utilities/fileSystem/app.ts +86 -0
- package/src/utilities/fileSystem/clientLibrary.ts +1 -1
- package/src/utilities/fileSystem/filesystem.ts +170 -0
- package/src/utilities/fileSystem/index.ts +5 -348
- package/src/utilities/fileSystem/plugin.ts +65 -0
- package/src/utilities/fileSystem/template.ts +36 -0
- package/src/utilities/index.ts +1 -45
- package/src/utilities/rowProcessor/index.ts +17 -8
- package/src/utilities/rowProcessor/tests/utils.spec.ts +57 -0
- package/tsconfig.build.json +2 -0
- package/coverage/lcov-report/src/utilities/plugins.ts.html +0 -151
- package/dist/api/routes/tests/utilities/TestFunctions.js +0 -167
- package/dist/api/routes/tests/utilities/index.js +0 -131
- package/dist/automations/tests/utilities/index.js +0 -81
- package/dist/tests/utilities/TestConfiguration.js +0 -562
- package/dist/tests/utilities/controllers.js +0 -40
- package/dist/tests/utilities/structures.js +0 -168
- package/dist/utilities/plugins.js +0 -26
- package/src/api/routes/tests/deployment.spec.ts +0 -25
- package/src/automations/unitTests/automationUtils.spec.js +0 -17
- package/src/utilities/plugins.ts +0 -22
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">68.96% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>40/58</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">40% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>8/20</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">50% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>5/10</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">68.42% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>39/57</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line medium'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -178,18 +178,22 @@
|
|
|
178
178
|
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
179
|
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
180
|
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
-
<a name='L116'></a><a href='#L116'>116</a
|
|
182
|
-
<
|
|
183
|
-
<
|
|
184
|
-
<
|
|
185
|
-
<span class="cline-any cline-yes">
|
|
186
|
-
<span class="cline-any cline-yes">
|
|
187
|
-
<span class="cline-any cline-yes">
|
|
181
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
+
<a name='L120'></a><a href='#L120'>120</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">54x</span>
|
|
186
|
+
<span class="cline-any cline-yes">54x</span>
|
|
187
|
+
<span class="cline-any cline-yes">54x</span>
|
|
188
|
+
<span class="cline-any cline-yes">54x</span>
|
|
189
|
+
<span class="cline-any cline-yes">54x</span>
|
|
190
|
+
<span class="cline-any cline-yes">54x</span>
|
|
191
|
+
<span class="cline-any cline-yes">54x</span>
|
|
192
|
+
<span class="cline-any cline-yes">54x</span>
|
|
188
193
|
<span class="cline-any cline-neutral"> </span>
|
|
189
|
-
<span class="cline-any cline-yes">46x</span>
|
|
190
194
|
<span class="cline-any cline-neutral"> </span>
|
|
191
195
|
<span class="cline-any cline-neutral"> </span>
|
|
192
|
-
<span class="cline-any cline-
|
|
196
|
+
<span class="cline-any cline-yes">2x</span>
|
|
193
197
|
<span class="cline-any cline-neutral"> </span>
|
|
194
198
|
<span class="cline-any cline-neutral"> </span>
|
|
195
199
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -203,19 +207,19 @@
|
|
|
203
207
|
<span class="cline-any cline-neutral"> </span>
|
|
204
208
|
<span class="cline-any cline-neutral"> </span>
|
|
205
209
|
<span class="cline-any cline-neutral"> </span>
|
|
206
|
-
<span class="cline-any cline-
|
|
210
|
+
<span class="cline-any cline-yes">2x</span>
|
|
207
211
|
<span class="cline-any cline-neutral"> </span>
|
|
208
212
|
<span class="cline-any cline-neutral"> </span>
|
|
209
213
|
<span class="cline-any cline-neutral"> </span>
|
|
210
|
-
<span class="cline-any cline-
|
|
214
|
+
<span class="cline-any cline-yes">1x</span>
|
|
211
215
|
<span class="cline-any cline-neutral"> </span>
|
|
212
216
|
<span class="cline-any cline-neutral"> </span>
|
|
213
217
|
<span class="cline-any cline-neutral"> </span>
|
|
214
218
|
<span class="cline-any cline-neutral"> </span>
|
|
215
|
-
<span class="cline-any cline-
|
|
219
|
+
<span class="cline-any cline-yes">1x</span>
|
|
216
220
|
<span class="cline-any cline-neutral"> </span>
|
|
217
221
|
<span class="cline-any cline-neutral"> </span>
|
|
218
|
-
<span class="cline-any cline-yes">
|
|
222
|
+
<span class="cline-any cline-yes">54x</span>
|
|
219
223
|
<span class="cline-any cline-no"> </span>
|
|
220
224
|
<span class="cline-any cline-no"> </span>
|
|
221
225
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -238,58 +242,62 @@
|
|
|
238
242
|
<span class="cline-any cline-neutral"> </span>
|
|
239
243
|
<span class="cline-any cline-neutral"> </span>
|
|
240
244
|
<span class="cline-any cline-neutral"> </span>
|
|
241
|
-
<span class="cline-any cline-
|
|
245
|
+
<span class="cline-any cline-yes">1x</span>
|
|
242
246
|
<span class="cline-any cline-no"> </span>
|
|
243
247
|
<span class="cline-any cline-neutral"> </span>
|
|
244
|
-
<span class="cline-any cline-
|
|
245
|
-
<span class="cline-any cline-
|
|
248
|
+
<span class="cline-any cline-yes">1x</span>
|
|
249
|
+
<span class="cline-any cline-yes">1x</span>
|
|
246
250
|
<span class="cline-any cline-neutral"> </span>
|
|
247
251
|
<span class="cline-any cline-neutral"> </span>
|
|
248
|
-
<span class="cline-any cline-yes">
|
|
252
|
+
<span class="cline-any cline-yes">54x</span>
|
|
249
253
|
<span class="cline-any cline-no"> </span>
|
|
250
254
|
<span class="cline-any cline-neutral"> </span>
|
|
251
255
|
<span class="cline-any cline-neutral"> </span>
|
|
252
256
|
<span class="cline-any cline-neutral"> </span>
|
|
253
257
|
<span class="cline-any cline-neutral"> </span>
|
|
254
|
-
<span class="cline-any cline-yes">
|
|
255
|
-
<span class="cline-any cline-
|
|
258
|
+
<span class="cline-any cline-yes">54x</span>
|
|
259
|
+
<span class="cline-any cline-yes">1x</span>
|
|
256
260
|
<span class="cline-any cline-no"> </span>
|
|
257
261
|
<span class="cline-any cline-neutral"> </span>
|
|
258
|
-
<span class="cline-any cline-
|
|
259
|
-
<span class="cline-any cline-
|
|
262
|
+
<span class="cline-any cline-yes">1x</span>
|
|
263
|
+
<span class="cline-any cline-yes">1x</span>
|
|
260
264
|
<span class="cline-any cline-no"> </span>
|
|
261
265
|
<span class="cline-any cline-neutral"> </span>
|
|
262
266
|
<span class="cline-any cline-neutral"> </span>
|
|
263
267
|
<span class="cline-any cline-neutral"> </span>
|
|
264
268
|
<span class="cline-any cline-neutral"> </span>
|
|
269
|
+
<span class="cline-any cline-yes">1x</span>
|
|
270
|
+
<span class="cline-any cline-yes">1x</span>
|
|
265
271
|
<span class="cline-any cline-no"> </span>
|
|
272
|
+
<span class="cline-any cline-neutral"> </span>
|
|
273
|
+
<span class="cline-any cline-yes">1x</span>
|
|
266
274
|
<span class="cline-any cline-no"> </span>
|
|
267
275
|
<span class="cline-any cline-neutral"> </span>
|
|
268
276
|
<span class="cline-any cline-neutral"> </span>
|
|
269
277
|
<span class="cline-any cline-neutral"> </span>
|
|
270
|
-
<span class="cline-any cline-
|
|
271
|
-
<span class="cline-any cline-
|
|
272
|
-
<span class="cline-any cline-
|
|
278
|
+
<span class="cline-any cline-yes">1x</span>
|
|
279
|
+
<span class="cline-any cline-yes">1x</span>
|
|
280
|
+
<span class="cline-any cline-yes">1x</span>
|
|
273
281
|
<span class="cline-any cline-neutral"> </span>
|
|
274
|
-
<span class="cline-any cline-
|
|
282
|
+
<span class="cline-any cline-yes">1x</span>
|
|
275
283
|
<span class="cline-any cline-neutral"> </span>
|
|
276
|
-
<span class="cline-any cline-
|
|
277
|
-
<span class="cline-any cline-
|
|
278
|
-
<span class="cline-any cline-
|
|
284
|
+
<span class="cline-any cline-yes">1x</span>
|
|
285
|
+
<span class="cline-any cline-yes">1x</span>
|
|
286
|
+
<span class="cline-any cline-yes">2x</span>
|
|
279
287
|
<span class="cline-any cline-neutral"> </span>
|
|
280
288
|
<span class="cline-any cline-neutral"> </span>
|
|
281
289
|
<span class="cline-any cline-neutral"> </span>
|
|
282
|
-
<span class="cline-any cline-
|
|
283
|
-
<span class="cline-any cline-
|
|
284
|
-
<span class="cline-any cline-
|
|
285
|
-
<span class="cline-any cline-
|
|
290
|
+
<span class="cline-any cline-yes">1x</span>
|
|
291
|
+
<span class="cline-any cline-yes">1x</span>
|
|
292
|
+
<span class="cline-any cline-yes">1x</span>
|
|
293
|
+
<span class="cline-any cline-yes">1x</span>
|
|
286
294
|
<span class="cline-any cline-neutral"> </span>
|
|
287
|
-
<span class="cline-any cline-
|
|
288
|
-
<span class="cline-any cline-
|
|
295
|
+
<span class="cline-any cline-yes">1x</span>
|
|
296
|
+
<span class="cline-any cline-yes">1x</span>
|
|
289
297
|
<span class="cline-any cline-neutral"> </span>
|
|
290
298
|
<span class="cline-any cline-neutral"> </span>
|
|
291
|
-
<span class="cline-any cline-
|
|
292
|
-
<span class="cline-any cline-
|
|
299
|
+
<span class="cline-any cline-yes">1x</span>
|
|
300
|
+
<span class="cline-any cline-yes">1x</span>
|
|
293
301
|
<span class="cline-any cline-neutral"> </span>
|
|
294
302
|
<span class="cline-any cline-neutral"> </span>
|
|
295
303
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -300,11 +308,11 @@ import { stringToReadStream } from "../../utilities"
|
|
|
300
308
|
import { getDocParams, DocumentType, isDevAppID } from "../../db/utils"
|
|
301
309
|
import { create } from "./application"
|
|
302
310
|
import { join } from "path"
|
|
303
|
-
import { App, BBContext, Database } from "@budibase/types"
|
|
304
311
|
import sdk from "../../sdk"
|
|
312
|
+
import { App, Ctx, Database } from "@budibase/types"
|
|
305
313
|
|
|
306
|
-
async function
|
|
307
|
-
const ctx =
|
|
314
|
+
async function createApp(appName: string, appDirectory: string) {
|
|
315
|
+
const ctx = {
|
|
308
316
|
request: {
|
|
309
317
|
body: {
|
|
310
318
|
useTemplate: true,
|
|
@@ -318,19 +326,19 @@ async function <span class="fstat-no" title="function not covered" >createApp(</
|
|
|
318
326
|
},
|
|
319
327
|
}
|
|
320
328
|
// @ts-ignore
|
|
321
|
-
|
|
329
|
+
return create(ctx)
|
|
322
330
|
}
|
|
323
331
|
|
|
324
|
-
async function
|
|
325
|
-
const response =
|
|
332
|
+
async function getAllDocType(db: Database, docType: string) {
|
|
333
|
+
const response = await db.allDocs(
|
|
326
334
|
getDocParams(docType, null, {
|
|
327
335
|
include_docs: true,
|
|
328
336
|
})
|
|
329
337
|
)
|
|
330
|
-
|
|
338
|
+
return response.rows.map(row => row.doc)
|
|
331
339
|
}
|
|
332
340
|
|
|
333
|
-
export async function <span class="fstat-no" title="function not covered" >exportApps(</span>ctx:
|
|
341
|
+
export async function <span class="fstat-no" title="function not covered" >exportApps(</span>ctx: Ctx) {
|
|
334
342
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (env.SELF_HOSTED || !env.MULTI_TENANCY) {</span>
|
|
335
343
|
<span class="cstat-no" title="statement not covered" > ctx.throw(400, "Exporting only allowed in multi-tenant cloud environments.")</span>
|
|
336
344
|
}
|
|
@@ -352,59 +360,63 @@ export async function <span class="fstat-no" title="function not covered" >expor
|
|
|
352
360
|
<span class="cstat-no" title="statement not covered" > ctx.body = streamFile(tmpPath)</span>
|
|
353
361
|
}
|
|
354
362
|
|
|
355
|
-
async function
|
|
356
|
-
|
|
363
|
+
async function checkHasBeenImported() {
|
|
364
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!env.SELF_HOSTED || env.MULTI_TENANCY) {
|
|
357
365
|
<span class="cstat-no" title="statement not covered" > return true</span>
|
|
358
366
|
}
|
|
359
|
-
const apps =
|
|
360
|
-
|
|
367
|
+
const apps = await dbCore.getAllApps({ all: true })
|
|
368
|
+
return apps.length !== 0
|
|
361
369
|
}
|
|
362
370
|
|
|
363
|
-
export async function <span class="fstat-no" title="function not covered" >hasBeenImported(</span>ctx:
|
|
371
|
+
export async function <span class="fstat-no" title="function not covered" >hasBeenImported(</span>ctx: Ctx) {
|
|
364
372
|
<span class="cstat-no" title="statement not covered" > ctx.body = {</span>
|
|
365
373
|
imported: await checkHasBeenImported(),
|
|
366
374
|
}
|
|
367
375
|
}
|
|
368
376
|
|
|
369
|
-
export async function
|
|
370
|
-
|
|
377
|
+
export async function importApps(ctx: Ctx) {
|
|
378
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!env.SELF_HOSTED || env.MULTI_TENANCY) {
|
|
371
379
|
<span class="cstat-no" title="statement not covered" > ctx.throw(400, "Importing only allowed in self hosted environments.")</span>
|
|
372
380
|
}
|
|
373
|
-
const beenImported =
|
|
374
|
-
|
|
381
|
+
const beenImported = await checkHasBeenImported()
|
|
382
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (beenImported || !ctx.request.files || !ctx.request.files.importFile) {
|
|
375
383
|
<span class="cstat-no" title="statement not covered" > ctx.throw(</span>
|
|
376
384
|
400,
|
|
377
385
|
"Import file is required and environment must be fresh to import apps."
|
|
378
386
|
)
|
|
379
387
|
}
|
|
380
|
-
|
|
388
|
+
const file = ctx.request.files.importFile as any
|
|
389
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (Array.isArray(file)) {
|
|
390
|
+
<span class="cstat-no" title="statement not covered" > ctx.throw(400, "Single file is required")</span>
|
|
391
|
+
}
|
|
392
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (file.type !== "application/gzip") {
|
|
381
393
|
<span class="cstat-no" title="statement not covered" > ctx.throw(400, "Import file must be a gzipped tarball.")</span>
|
|
382
394
|
}
|
|
383
395
|
|
|
384
396
|
// initially get all the app databases out of the tarball
|
|
385
|
-
const tmpPath =
|
|
386
|
-
const globalDbImport =
|
|
387
|
-
const appNames =
|
|
397
|
+
const tmpPath = sdk.backups.untarFile(file)
|
|
398
|
+
const globalDbImport = sdk.backups.getGlobalDBFile(tmpPath)
|
|
399
|
+
const appNames = sdk.backups.getListOfAppsInMulti(tmpPath)
|
|
388
400
|
|
|
389
|
-
const globalDb =
|
|
401
|
+
const globalDb = tenancy.getGlobalDB()
|
|
390
402
|
// load the global db first
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
403
|
+
await globalDb.load(stringToReadStream(globalDbImport))
|
|
404
|
+
for (let appName of appNames) {
|
|
405
|
+
await createApp(appName, join(tmpPath, appName))
|
|
394
406
|
}
|
|
395
407
|
|
|
396
408
|
// if there are any users make sure to remove them
|
|
397
|
-
let users =
|
|
398
|
-
let userDeletionPromises =
|
|
399
|
-
|
|
400
|
-
|
|
409
|
+
let users = await getAllDocType(globalDb, DocumentType.USER)
|
|
410
|
+
let userDeletionPromises = []
|
|
411
|
+
for (let user of users) {
|
|
412
|
+
userDeletionPromises.push(globalDb.remove(user._id, user._rev))
|
|
401
413
|
}
|
|
402
|
-
|
|
403
|
-
|
|
414
|
+
if (userDeletionPromises.length > 0) {
|
|
415
|
+
await Promise.all(userDeletionPromises)
|
|
404
416
|
}
|
|
405
417
|
|
|
406
|
-
|
|
407
|
-
|
|
418
|
+
await globalDb.bulkDocs(users)
|
|
419
|
+
ctx.body = {
|
|
408
420
|
message: "Apps successfully imported.",
|
|
409
421
|
}
|
|
410
422
|
}
|
|
@@ -415,7 +427,7 @@ export async function <span class="fstat-no" title="function not covered" >impor
|
|
|
415
427
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
416
428
|
Code coverage generated by
|
|
417
429
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
418
|
-
at Fri Jan 06 2023 17:
|
|
430
|
+
at Fri Jan 06 2023 17:46:06 GMT+0000 (Coordinated Universal Time)
|
|
419
431
|
</div>
|
|
420
432
|
<script src="../../../prettify.js"></script>
|
|
421
433
|
<script>
|
|
@@ -121,13 +121,13 @@
|
|
|
121
121
|
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
122
|
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
123
|
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
-
<a name='L59'></a><a href='#L59'>59</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">54x</span>
|
|
125
125
|
<span class="cline-any cline-neutral"> </span>
|
|
126
|
-
<span class="cline-any cline-yes">
|
|
127
|
-
<span class="cline-any cline-yes">
|
|
126
|
+
<span class="cline-any cline-yes">54x</span>
|
|
127
|
+
<span class="cline-any cline-yes">54x</span>
|
|
128
128
|
<span class="cline-any cline-neutral"> </span>
|
|
129
129
|
<span class="cline-any cline-neutral"> </span>
|
|
130
|
-
<span class="cline-any cline-yes">
|
|
130
|
+
<span class="cline-any cline-yes">54x</span>
|
|
131
131
|
<span class="cline-any cline-yes">1x</span>
|
|
132
132
|
<span class="cline-any cline-yes">1x</span>
|
|
133
133
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -244,7 +244,7 @@ export async function fetchAppComponentDefinitions(ctx: BBContext) {
|
|
|
244
244
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
245
245
|
Code coverage generated by
|
|
246
246
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
247
|
-
at Fri Jan 06 2023 17:
|
|
247
|
+
at Fri Jan 06 2023 17:46:06 GMT+0000 (Coordinated Universal Time)
|
|
248
248
|
</div>
|
|
249
249
|
<script src="../../../prettify.js"></script>
|
|
250
250
|
<script>
|
|
@@ -406,7 +406,7 @@
|
|
|
406
406
|
<a name='L341'></a><a href='#L341'>341</a>
|
|
407
407
|
<a name='L342'></a><a href='#L342'>342</a>
|
|
408
408
|
<a name='L343'></a><a href='#L343'>343</a>
|
|
409
|
-
<a name='L344'></a><a href='#L344'>344</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">
|
|
409
|
+
<a name='L344'></a><a href='#L344'>344</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">55x</span>
|
|
410
410
|
<span class="cline-any cline-neutral"> </span>
|
|
411
411
|
<span class="cline-any cline-neutral"> </span>
|
|
412
412
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -414,15 +414,15 @@
|
|
|
414
414
|
<span class="cline-any cline-neutral"> </span>
|
|
415
415
|
<span class="cline-any cline-neutral"> </span>
|
|
416
416
|
<span class="cline-any cline-neutral"> </span>
|
|
417
|
-
<span class="cline-any cline-yes">
|
|
418
|
-
<span class="cline-any cline-yes">
|
|
419
|
-
<span class="cline-any cline-yes">
|
|
420
|
-
<span class="cline-any cline-yes">
|
|
421
|
-
<span class="cline-any cline-yes">
|
|
422
|
-
<span class="cline-any cline-yes">
|
|
417
|
+
<span class="cline-any cline-yes">55x</span>
|
|
418
|
+
<span class="cline-any cline-yes">55x</span>
|
|
419
|
+
<span class="cline-any cline-yes">55x</span>
|
|
420
|
+
<span class="cline-any cline-yes">55x</span>
|
|
421
|
+
<span class="cline-any cline-yes">55x</span>
|
|
422
|
+
<span class="cline-any cline-yes">55x</span>
|
|
423
423
|
<span class="cline-any cline-neutral"> </span>
|
|
424
424
|
<span class="cline-any cline-neutral"> </span>
|
|
425
|
-
<span class="cline-any cline-yes">
|
|
425
|
+
<span class="cline-any cline-yes">55x</span>
|
|
426
426
|
<span class="cline-any cline-neutral"> </span>
|
|
427
427
|
<span class="cline-any cline-yes">2x</span>
|
|
428
428
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -467,7 +467,7 @@
|
|
|
467
467
|
<span class="cline-any cline-yes">2x</span>
|
|
468
468
|
<span class="cline-any cline-neutral"> </span>
|
|
469
469
|
<span class="cline-any cline-neutral"> </span>
|
|
470
|
-
<span class="cline-any cline-yes">
|
|
470
|
+
<span class="cline-any cline-yes">55x</span>
|
|
471
471
|
<span class="cline-any cline-no"> </span>
|
|
472
472
|
<span class="cline-any cline-no"> </span>
|
|
473
473
|
<span class="cline-any cline-no"> </span>
|
|
@@ -554,7 +554,7 @@
|
|
|
554
554
|
<span class="cline-any cline-yes">1x</span>
|
|
555
555
|
<span class="cline-any cline-neutral"> </span>
|
|
556
556
|
<span class="cline-any cline-neutral"> </span>
|
|
557
|
-
<span class="cline-any cline-yes">
|
|
557
|
+
<span class="cline-any cline-yes">55x</span>
|
|
558
558
|
<span class="cline-any cline-yes">6x</span>
|
|
559
559
|
<span class="cline-any cline-yes">6x</span>
|
|
560
560
|
<span class="cline-any cline-yes">6x</span>
|
|
@@ -590,42 +590,42 @@
|
|
|
590
590
|
<span class="cline-any cline-yes">6x</span>
|
|
591
591
|
<span class="cline-any cline-neutral"> </span>
|
|
592
592
|
<span class="cline-any cline-neutral"> </span>
|
|
593
|
-
<span class="cline-any cline-yes">
|
|
594
|
-
<span class="cline-any cline-yes">
|
|
595
|
-
<span class="cline-any cline-yes">
|
|
596
|
-
<span class="cline-any cline-yes">
|
|
593
|
+
<span class="cline-any cline-yes">55x</span>
|
|
594
|
+
<span class="cline-any cline-yes">67x</span>
|
|
595
|
+
<span class="cline-any cline-yes">67x</span>
|
|
596
|
+
<span class="cline-any cline-yes">67x</span>
|
|
597
597
|
<span class="cline-any cline-neutral"> </span>
|
|
598
|
-
<span class="cline-any cline-yes">
|
|
598
|
+
<span class="cline-any cline-yes">67x</span>
|
|
599
599
|
<span class="cline-any cline-neutral"> </span>
|
|
600
600
|
<span class="cline-any cline-neutral"> </span>
|
|
601
601
|
<span class="cline-any cline-neutral"> </span>
|
|
602
602
|
<span class="cline-any cline-neutral"> </span>
|
|
603
603
|
<span class="cline-any cline-neutral"> </span>
|
|
604
|
-
<span class="cline-any cline-yes">
|
|
605
|
-
<span class="cline-any cline-yes">
|
|
604
|
+
<span class="cline-any cline-yes">67x</span>
|
|
605
|
+
<span class="cline-any cline-yes">67x</span>
|
|
606
606
|
<span class="cline-any cline-no"> </span>
|
|
607
607
|
<span class="cline-any cline-no"> </span>
|
|
608
608
|
<span class="cline-any cline-no"> </span>
|
|
609
609
|
<span class="cline-any cline-no"> </span>
|
|
610
610
|
<span class="cline-any cline-neutral"> </span>
|
|
611
611
|
<span class="cline-any cline-neutral"> </span>
|
|
612
|
-
<span class="cline-any cline-yes">
|
|
613
|
-
<span class="cline-any cline-yes">
|
|
614
|
-
<span class="cline-any cline-yes">
|
|
612
|
+
<span class="cline-any cline-yes">67x</span>
|
|
613
|
+
<span class="cline-any cline-yes">67x</span>
|
|
614
|
+
<span class="cline-any cline-yes">67x</span>
|
|
615
615
|
<span class="cline-any cline-neutral"> </span>
|
|
616
616
|
<span class="cline-any cline-neutral"> </span>
|
|
617
|
-
<span class="cline-any cline-yes">
|
|
618
|
-
<span class="cline-any cline-yes">
|
|
619
|
-
<span class="cline-any cline-yes">
|
|
617
|
+
<span class="cline-any cline-yes">67x</span>
|
|
618
|
+
<span class="cline-any cline-yes">67x</span>
|
|
619
|
+
<span class="cline-any cline-yes">66x</span>
|
|
620
620
|
<span class="cline-any cline-no"> </span>
|
|
621
621
|
<span class="cline-any cline-neutral"> </span>
|
|
622
622
|
<span class="cline-any cline-neutral"> </span>
|
|
623
623
|
<span class="cline-any cline-neutral"> </span>
|
|
624
|
-
<span class="cline-any cline-yes">
|
|
625
|
-
<span class="cline-any cline-yes">
|
|
624
|
+
<span class="cline-any cline-yes">66x</span>
|
|
625
|
+
<span class="cline-any cline-yes">66x</span>
|
|
626
626
|
<span class="cline-any cline-no"> </span>
|
|
627
627
|
<span class="cline-any cline-neutral"> </span>
|
|
628
|
-
<span class="cline-any cline-yes">
|
|
628
|
+
<span class="cline-any cline-yes">66x</span>
|
|
629
629
|
<span class="cline-any cline-neutral"> </span>
|
|
630
630
|
<span class="cline-any cline-neutral"> </span>
|
|
631
631
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -659,7 +659,7 @@
|
|
|
659
659
|
<span class="cline-any cline-neutral"> </span>
|
|
660
660
|
<span class="cline-any cline-neutral"> </span>
|
|
661
661
|
<span class="cline-any cline-neutral"> </span>
|
|
662
|
-
<span class="cline-any cline-yes">
|
|
662
|
+
<span class="cline-any cline-yes">55x</span>
|
|
663
663
|
<span class="cline-any cline-yes">1x</span>
|
|
664
664
|
<span class="cline-any cline-yes">1x</span>
|
|
665
665
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -687,13 +687,13 @@
|
|
|
687
687
|
<span class="cline-any cline-yes">1x</span>
|
|
688
688
|
<span class="cline-any cline-neutral"> </span>
|
|
689
689
|
<span class="cline-any cline-neutral"> </span>
|
|
690
|
-
<span class="cline-any cline-yes">
|
|
690
|
+
<span class="cline-any cline-yes">55x</span>
|
|
691
691
|
<span class="cline-any cline-yes">1x</span>
|
|
692
692
|
<span class="cline-any cline-yes">1x</span>
|
|
693
693
|
<span class="cline-any cline-neutral"> </span>
|
|
694
694
|
<span class="cline-any cline-neutral"> </span>
|
|
695
695
|
<span class="cline-any cline-neutral"> </span>
|
|
696
|
-
<span class="cline-any cline-yes">
|
|
696
|
+
<span class="cline-any cline-yes">55x</span>
|
|
697
697
|
<span class="cline-any cline-yes">1x</span>
|
|
698
698
|
<span class="cline-any cline-yes">1x</span>
|
|
699
699
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -1099,7 +1099,7 @@ async function <span class="fstat-no" title="function not covered" >buildSchemaH
|
|
|
1099
1099
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1100
1100
|
Code coverage generated by
|
|
1101
1101
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1102
|
-
at Fri Jan 06 2023 17:
|
|
1102
|
+
at Fri Jan 06 2023 17:46:06 GMT+0000 (Coordinated Universal Time)
|
|
1103
1103
|
</div>
|
|
1104
1104
|
<script src="../../../prettify.js"></script>
|
|
1105
1105
|
<script>
|
|
@@ -121,20 +121,22 @@
|
|
|
121
121
|
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
122
|
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
123
|
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
-
<a name='L59'></a><a href='#L59'>59</a
|
|
125
|
-
<span class="cline-any cline-yes">
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
+
<a name='L60'></a><a href='#L60'>60</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">54x</span>
|
|
126
|
+
<span class="cline-any cline-yes">54x</span>
|
|
126
127
|
<span class="cline-any cline-neutral"> </span>
|
|
127
128
|
<span class="cline-any cline-neutral"> </span>
|
|
128
129
|
<span class="cline-any cline-neutral"> </span>
|
|
129
130
|
<span class="cline-any cline-neutral"> </span>
|
|
130
|
-
<span class="cline-any cline-yes">
|
|
131
|
+
<span class="cline-any cline-yes">54x</span>
|
|
131
132
|
<span class="cline-any cline-neutral"> </span>
|
|
132
133
|
<span class="cline-any cline-neutral"> </span>
|
|
133
134
|
<span class="cline-any cline-neutral"> </span>
|
|
134
135
|
<span class="cline-any cline-neutral"> </span>
|
|
135
136
|
<span class="cline-any cline-neutral"> </span>
|
|
136
137
|
<span class="cline-any cline-neutral"> </span>
|
|
137
|
-
<span class="cline-any cline-
|
|
138
|
+
<span class="cline-any cline-neutral"> </span>
|
|
139
|
+
<span class="cline-any cline-yes">292x</span>
|
|
138
140
|
<span class="cline-any cline-neutral"> </span>
|
|
139
141
|
<span class="cline-any cline-neutral"> </span>
|
|
140
142
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -149,34 +151,34 @@
|
|
|
149
151
|
<span class="cline-any cline-neutral"> </span>
|
|
150
152
|
<span class="cline-any cline-neutral"> </span>
|
|
151
153
|
<span class="cline-any cline-neutral"> </span>
|
|
152
|
-
<span class="cline-any cline-yes">
|
|
153
|
-
<span class="cline-any cline-yes">
|
|
154
|
+
<span class="cline-any cline-yes">1168x</span>
|
|
155
|
+
<span class="cline-any cline-yes">1168x</span>
|
|
154
156
|
<span class="cline-any cline-no"> </span>
|
|
155
157
|
<span class="cline-any cline-neutral"> </span>
|
|
156
158
|
<span class="cline-any cline-neutral"> </span>
|
|
157
159
|
<span class="cline-any cline-neutral"> </span>
|
|
158
160
|
<span class="cline-any cline-neutral"> </span>
|
|
159
|
-
<span class="cline-any cline-yes">
|
|
161
|
+
<span class="cline-any cline-yes">584x</span>
|
|
160
162
|
<span class="cline-any cline-no"> </span>
|
|
161
163
|
<span class="cline-any cline-neutral"> </span>
|
|
162
|
-
<span class="cline-any cline-yes">
|
|
163
|
-
<span class="cline-any cline-yes">
|
|
164
|
+
<span class="cline-any cline-yes">584x</span>
|
|
165
|
+
<span class="cline-any cline-yes">584x</span>
|
|
164
166
|
<span class="cline-any cline-neutral"> </span>
|
|
165
167
|
<span class="cline-any cline-neutral"> </span>
|
|
166
168
|
<span class="cline-any cline-neutral"> </span>
|
|
167
169
|
<span class="cline-any cline-neutral"> </span>
|
|
168
|
-
<span class="cline-any cline-yes">
|
|
170
|
+
<span class="cline-any cline-yes">584x</span>
|
|
169
171
|
<span class="cline-any cline-neutral"> </span>
|
|
170
172
|
<span class="cline-any cline-neutral"> </span>
|
|
171
173
|
<span class="cline-any cline-neutral"> </span>
|
|
172
174
|
<span class="cline-any cline-neutral"> </span>
|
|
173
|
-
<span class="cline-any cline-yes">
|
|
175
|
+
<span class="cline-any cline-yes">584x</span>
|
|
174
176
|
<span class="cline-any cline-no"> </span>
|
|
175
177
|
<span class="cline-any cline-neutral"> </span>
|
|
176
|
-
<span class="cline-any cline-yes">
|
|
178
|
+
<span class="cline-any cline-yes">584x</span>
|
|
177
179
|
<span class="cline-any cline-no"> </span>
|
|
178
180
|
<span class="cline-any cline-neutral"> </span>
|
|
179
|
-
<span class="cline-any cline-yes">
|
|
181
|
+
<span class="cline-any cline-yes">584x</span>
|
|
180
182
|
<span class="cline-any cline-neutral"> </span>
|
|
181
183
|
<span class="cline-any cline-neutral"> </span>
|
|
182
184
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import newid from "../../../db/newid"
|
|
@@ -190,6 +192,7 @@ export default class Deployment {
|
|
|
190
192
|
verification: any
|
|
191
193
|
status?: string
|
|
192
194
|
err?: any
|
|
195
|
+
appUrl?: string
|
|
193
196
|
|
|
194
197
|
constructor(id = null) {
|
|
195
198
|
this._id = id || newid()
|
|
@@ -244,7 +247,7 @@ export default class Deployment {
|
|
|
244
247
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
245
248
|
Code coverage generated by
|
|
246
249
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
247
|
-
at Fri Jan 06 2023 17:
|
|
250
|
+
at Fri Jan 06 2023 17:46:06 GMT+0000 (Coordinated Universal Time)
|
|
248
251
|
</div>
|
|
249
252
|
<script src="../../../../prettify.js"></script>
|
|
250
253
|
<script>
|