@budibase/server 1.0.49 → 1.0.50-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__mocks__/arangojs.ts +1 -1
- package/__mocks__/aws-sdk.ts +4 -4
- package/__mocks__/mongodb.ts +4 -5
- package/__mocks__/mssql.ts +3 -3
- package/__mocks__/node-fetch.ts +2 -1
- package/__mocks__/pg.ts +3 -5
- package/builder/assets/{index.2c37968e.js → index.9fe798bd.js} +252 -249
- package/builder/assets/index.c0cc369d.css +6 -0
- package/builder/assets/{vendor.f9faf6ab.js → vendor.5ad9695a.js} +202 -106
- package/builder/index.html +3 -3
- package/coverage/clover.xml +3105 -2814
- package/coverage/coverage-final.json +106 -101
- package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
- package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/controllers/application.js.html +257 -152
- package/coverage/lcov-report/api/controllers/auth.js.html +22 -13
- package/coverage/lcov-report/api/controllers/automation.js.html +39 -69
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +8 -11
- package/coverage/lcov-report/api/controllers/component.js.html +13 -16
- package/coverage/lcov-report/api/controllers/datasource.js.html +81 -51
- package/coverage/lcov-report/api/controllers/dev.js.html +6 -6
- package/coverage/lcov-report/api/controllers/index.html +78 -78
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +9 -9
- package/coverage/lcov-report/api/controllers/metadata.js.html +6 -21
- package/coverage/lcov-report/api/controllers/migrations.js.html +119 -0
- package/coverage/lcov-report/api/controllers/permission.js.html +19 -19
- package/coverage/lcov-report/api/controllers/query/index.html +10 -10
- package/coverage/lcov-report/api/controllers/query/index.js.html +38 -35
- package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -6
- package/coverage/lcov-report/api/controllers/role.js.html +16 -16
- package/coverage/lcov-report/api/controllers/routing.js.html +7 -10
- package/coverage/lcov-report/api/controllers/row/external.js.html +48 -141
- package/coverage/lcov-report/api/controllers/row/index.html +55 -40
- package/coverage/lcov-report/api/controllers/row/index.js.html +26 -26
- package/coverage/lcov-report/api/controllers/row/internal.js.html +118 -226
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +52 -34
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +548 -0
- package/coverage/lcov-report/api/controllers/row/utils.js.html +47 -62
- package/coverage/lcov-report/api/controllers/screen.js.html +15 -21
- package/coverage/lcov-report/api/controllers/script.js.html +4 -4
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +599 -0
- package/coverage/lcov-report/api/controllers/table/external.js.html +25 -34
- package/coverage/lcov-report/api/controllers/table/index.html +58 -43
- package/coverage/lcov-report/api/controllers/table/index.js.html +58 -82
- package/coverage/lcov-report/api/controllers/table/internal.js.html +81 -66
- package/coverage/lcov-report/api/controllers/table/utils.js.html +218 -110
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +79 -76
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
- package/coverage/lcov-report/api/controllers/view/index.html +16 -16
- package/coverage/lcov-report/api/controllers/view/index.js.html +27 -33
- package/coverage/lcov-report/api/controllers/view/utils.js.html +35 -20
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
- package/coverage/lcov-report/api/controllers/webhook.js.html +34 -28
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +8 -8
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/routes/application.js.html +1 -1
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +1 -1
- package/coverage/lcov-report/api/routes/backup.js.html +1 -1
- package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
- package/coverage/lcov-report/api/routes/component.js.html +1 -1
- package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
- package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
- package/coverage/lcov-report/api/routes/dev.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +18 -18
- package/coverage/lcov-report/api/routes/index.js.html +3 -3
- package/coverage/lcov-report/api/routes/integration.js.html +1 -1
- package/coverage/lcov-report/api/routes/layout.js.html +1 -1
- package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
- package/coverage/lcov-report/api/routes/{hosting.js.html → migrations.js.html} +17 -14
- package/coverage/lcov-report/api/routes/permission.js.html +1 -1
- package/coverage/lcov-report/api/routes/query.js.html +1 -1
- package/coverage/lcov-report/api/routes/role.js.html +1 -1
- package/coverage/lcov-report/api/routes/routing.js.html +1 -1
- package/coverage/lcov-report/api/routes/row.js.html +1 -1
- package/coverage/lcov-report/api/routes/screen.js.html +1 -1
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- package/coverage/lcov-report/api/routes/static.js.html +17 -2
- package/coverage/lcov-report/api/routes/table.js.html +1 -1
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +1 -1
- package/coverage/lcov-report/api/routes/view.js.html +1 -1
- package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/actions.js.html +24 -24
- package/coverage/lcov-report/automations/automationUtils.js.html +7 -10
- package/coverage/lcov-report/automations/bullboard.js.html +16 -16
- package/coverage/lcov-report/automations/index.html +18 -18
- package/coverage/lcov-report/automations/index.js.html +1 -1
- package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
- package/coverage/lcov-report/automations/steps/createRow.js.html +13 -22
- package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +11 -20
- package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
- package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
- package/coverage/lcov-report/automations/steps/filter.js.html +7 -7
- package/coverage/lcov-report/automations/steps/index.html +13 -13
- package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
- package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -10
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
- package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
- package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
- package/coverage/lcov-report/automations/steps/updateRow.js.html +7 -7
- package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
- package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
- package/coverage/lcov-report/automations/triggers.js.html +61 -55
- package/coverage/lcov-report/automations/utils.js.html +54 -42
- package/coverage/lcov-report/constants/index.html +5 -5
- package/coverage/lcov-report/constants/index.js.html +53 -26
- package/coverage/lcov-report/constants/layouts.js.html +5 -5
- package/coverage/lcov-report/constants/screens.js.html +4 -4
- package/coverage/lcov-report/db/client.js.html +18 -18
- package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
- package/coverage/lcov-report/db/index.html +15 -15
- package/coverage/lcov-report/db/index.js.html +3 -3
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +25 -37
- package/coverage/lcov-report/db/linkedRows/index.html +27 -27
- package/coverage/lcov-report/db/linkedRows/index.js.html +51 -96
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +42 -42
- package/coverage/lcov-report/db/newid.js.html +4 -4
- package/coverage/lcov-report/db/utils.js.html +87 -87
- package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
- package/coverage/lcov-report/events/index.html +1 -1
- package/coverage/lcov-report/events/index.js.html +5 -5
- package/coverage/lcov-report/events/utils.js.html +3 -3
- package/coverage/lcov-report/index.html +135 -120
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
- package/coverage/lcov-report/middleware/authorized.js.html +173 -65
- package/coverage/lcov-report/middleware/builder.js.html +10 -10
- package/coverage/lcov-report/middleware/currentapp.js.html +95 -83
- package/coverage/lcov-report/middleware/index.html +38 -38
- package/coverage/lcov-report/middleware/joi-validator.js.html +3 -3
- package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/usageQuota.js.html +281 -53
- package/coverage/lcov-report/middleware/utils.js.html +2 -2
- package/coverage/lcov-report/threads/automation.js.html +30 -24
- package/coverage/lcov-report/threads/index.html +26 -26
- package/coverage/lcov-report/threads/index.js.html +10 -10
- package/coverage/lcov-report/threads/query.js.html +39 -24
- package/coverage/lcov-report/threads/utils.js.html +14 -14
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
- package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
- package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
- package/coverage/lcov-report/utilities/global.js.html +58 -49
- package/coverage/lcov-report/utilities/index.html +37 -37
- package/coverage/lcov-report/utilities/index.js.html +43 -73
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +8 -8
- package/coverage/lcov-report/utilities/queue/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.js.html +7 -7
- package/coverage/lcov-report/utilities/rowProcessor/index.html +27 -27
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +97 -103
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +75 -27
- package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
- package/coverage/lcov-report/utilities/security.js.html +8 -8
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.html +141 -0
- package/coverage/lcov-report/utilities/usageQuota/index.js.html +359 -0
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +305 -0
- package/coverage/lcov-report/{api/controllers/hosting.js.html → utilities/usageQuota/usageQuoteReset.js.html} +36 -48
- package/coverage/lcov-report/utilities/users.js.html +9 -9
- package/coverage/lcov-report/utilities/workerRequests.js.html +43 -112
- package/coverage/lcov.info +5010 -4425
- package/dist/api/controllers/application.js +90 -60
- package/dist/api/controllers/auth.js +8 -5
- package/dist/api/controllers/automation.js +14 -19
- package/dist/api/controllers/cloud.js +2 -3
- package/dist/api/controllers/component.js +3 -4
- package/dist/api/controllers/datasource.js +20 -10
- package/dist/api/controllers/deploy/Deployment.js +3 -6
- package/dist/api/controllers/deploy/index.js +12 -13
- package/dist/api/controllers/dev.js +5 -5
- package/dist/api/controllers/layout.js +3 -3
- package/dist/api/controllers/metadata.js +4 -4
- package/dist/api/controllers/migrations.js +21 -0
- package/dist/api/controllers/permission.js +4 -4
- package/dist/api/controllers/query/import/index.js +4 -6
- package/dist/api/controllers/query/index.js +11 -10
- package/dist/api/controllers/role.js +5 -5
- package/dist/api/controllers/routing.js +5 -6
- package/dist/api/controllers/row/ExternalRequest.js +90 -67
- package/dist/api/controllers/row/external.js +14 -22
- package/dist/api/controllers/row/internal.js +55 -93
- package/dist/api/controllers/row/internalSearch.js +23 -17
- package/dist/api/controllers/row/staticFormula.js +147 -0
- package/dist/api/controllers/row/utils.js +13 -14
- package/dist/api/controllers/screen.js +5 -7
- package/dist/api/controllers/static/index.js +62 -16
- package/dist/api/controllers/table/bulkFormula.js +159 -0
- package/dist/api/controllers/table/external.js +7 -10
- package/dist/api/controllers/table/index.js +16 -13
- package/dist/api/controllers/table/internal.js +22 -16
- package/dist/api/controllers/table/utils.js +62 -35
- package/dist/api/controllers/user.js +43 -43
- package/dist/api/controllers/view/index.js +8 -10
- package/dist/api/controllers/view/utils.js +9 -4
- package/dist/api/controllers/webhook.js +10 -8
- package/dist/api/routes/index.js +2 -2
- package/dist/api/routes/migrations.js +9 -0
- package/dist/api/routes/static.js +2 -1
- package/dist/api/routes/tests/utilities/TestFunctions.js +37 -17
- package/dist/app.js +35 -5
- package/dist/automations/automationUtils.js +2 -3
- package/dist/automations/steps/createRow.js +3 -5
- package/dist/automations/steps/deleteRow.js +1 -4
- package/dist/automations/steps/updateRow.js +1 -1
- package/dist/automations/triggers.js +27 -25
- package/dist/automations/utils.js +10 -5
- package/dist/constants/index.js +7 -0
- package/dist/db/linkedRows/LinkController.js +3 -7
- package/dist/db/linkedRows/index.js +16 -27
- package/dist/db/linkedRows/linkUtils.js +6 -6
- package/dist/db/views/staticViews.js +9 -10
- package/dist/definitions/datasource.js +1 -0
- package/dist/environment.js +4 -1
- package/dist/integrations/base/sql.js +62 -21
- package/dist/integrations/googlesheets.js +340 -0
- package/dist/integrations/index.js +3 -0
- package/dist/integrations/utils.js +60 -9
- package/dist/middleware/authorized.js +57 -30
- package/dist/middleware/builder.js +2 -2
- package/dist/middleware/currentapp.js +41 -37
- package/dist/middleware/usageQuota.js +82 -15
- package/dist/migrations/functions/appUrls.js +46 -0
- package/dist/migrations/functions/quotas1.js +50 -0
- package/dist/migrations/functions/usageQuotas/index.js +20 -0
- package/dist/migrations/functions/usageQuotas/syncApps.js +29 -0
- package/dist/migrations/functions/usageQuotas/syncRows.js +33 -0
- package/dist/migrations/functions/userEmailViewCasing.js +24 -0
- package/dist/migrations/index.js +62 -0
- package/dist/package.json +8 -5
- package/dist/tests/utilities/TestConfiguration.js +80 -50
- package/dist/threads/automation.js +13 -11
- package/dist/threads/query.js +15 -11
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/index.js +4 -3
- package/dist/utilities/global.js +15 -12
- package/dist/utilities/index.js +7 -17
- package/dist/utilities/routing/index.js +5 -5
- package/dist/utilities/rowProcessor/index.js +23 -17
- package/dist/utilities/rowProcessor/utils.js +14 -4
- package/dist/utilities/{usageQuota.js → usageQuota/index.js} +45 -31
- package/dist/utilities/usageQuota/rows.js +78 -0
- package/dist/utilities/usageQuota/usageQuoteReset.js +16 -0
- package/dist/utilities/users.js +3 -3
- package/dist/utilities/workerRequests.js +4 -24
- package/nodemon.json +1 -1
- package/package.json +9 -6
- package/scripts/integrations/mssql/data/Dockerfile +1 -1
- package/scripts/integrations/mssql/data/setup.sql +17 -4
- package/scripts/integrations/postgres/init.sql +11 -6
- package/scripts/likeCypress.ts +1 -1
- package/src/api/controllers/application.js +85 -50
- package/src/api/controllers/auth.js +8 -5
- package/src/api/controllers/automation.js +13 -23
- package/src/api/controllers/cloud.js +2 -3
- package/src/api/controllers/component.js +3 -4
- package/src/api/controllers/datasource.js +21 -11
- package/src/api/controllers/deploy/Deployment.js +3 -7
- package/src/api/controllers/deploy/index.js +20 -13
- package/src/api/controllers/dev.js +5 -5
- package/src/api/controllers/layout.js +3 -3
- package/src/api/controllers/metadata.js +4 -9
- package/src/api/controllers/migrations.js +13 -0
- package/src/api/controllers/permission.js +4 -4
- package/src/api/controllers/query/import/index.ts +4 -6
- package/src/api/controllers/query/import/tests/index.spec.js +2 -1
- package/src/api/controllers/query/index.js +11 -10
- package/src/api/controllers/role.js +5 -5
- package/src/api/controllers/routing.js +5 -6
- package/src/api/controllers/row/ExternalRequest.ts +67 -43
- package/src/api/controllers/row/external.js +27 -58
- package/src/api/controllers/row/internal.js +54 -90
- package/src/api/controllers/row/internalSearch.js +23 -17
- package/src/api/controllers/row/staticFormula.js +156 -0
- package/src/api/controllers/row/utils.js +13 -18
- package/src/api/controllers/screen.js +5 -7
- package/src/api/controllers/static/index.js +66 -15
- package/src/api/controllers/table/bulkFormula.js +173 -0
- package/src/api/controllers/table/external.js +7 -10
- package/src/api/controllers/table/index.js +20 -28
- package/src/api/controllers/table/internal.js +24 -19
- package/src/api/controllers/table/utils.js +78 -42
- package/src/api/controllers/user.js +46 -45
- package/src/api/controllers/view/index.js +8 -10
- package/src/api/controllers/view/utils.js +9 -4
- package/src/api/controllers/webhook.js +10 -8
- package/src/api/routes/index.js +2 -2
- package/src/api/routes/migrations.js +14 -0
- package/src/api/routes/static.js +5 -0
- package/src/api/routes/tests/application.spec.js +2 -2
- package/src/api/routes/tests/auth.spec.js +1 -2
- package/src/api/routes/tests/automation.spec.js +1 -0
- package/src/api/routes/tests/misc.spec.js +0 -1
- package/src/api/routes/tests/routing.spec.js +21 -12
- package/src/api/routes/tests/row.spec.js +7 -4
- package/src/api/routes/tests/static.spec.js +98 -0
- package/src/api/routes/tests/utilities/TestFunctions.js +39 -17
- package/src/app.ts +18 -5
- package/src/automations/automationUtils.js +2 -3
- package/src/automations/steps/createRow.js +2 -5
- package/src/automations/steps/deleteRow.js +1 -4
- package/src/automations/steps/updateRow.js +1 -1
- package/src/automations/triggers.js +33 -31
- package/src/automations/utils.js +9 -5
- package/src/constants/index.js +9 -0
- package/src/db/linkedRows/LinkController.js +3 -7
- package/src/db/linkedRows/index.js +16 -31
- package/src/db/linkedRows/linkUtils.js +6 -6
- package/src/db/tests/linkController.spec.js +0 -1
- package/src/db/tests/linkTests.spec.js +5 -6
- package/src/db/views/staticViews.js +8 -10
- package/src/definitions/common.ts +3 -0
- package/src/definitions/datasource.ts +3 -0
- package/src/environment.js +4 -1
- package/src/integrations/base/sql.ts +75 -29
- package/src/integrations/googlesheets.ts +353 -0
- package/src/integrations/index.ts +3 -0
- package/src/integrations/tests/sql.spec.js +16 -0
- package/src/integrations/utils.ts +75 -12
- package/src/middleware/authorized.js +66 -30
- package/src/middleware/builder.js +2 -2
- package/src/middleware/currentapp.js +50 -46
- package/src/middleware/tests/authorized.spec.js +13 -6
- package/src/middleware/tests/currentapp.spec.js +6 -0
- package/src/middleware/tests/usageQuota.spec.js +18 -24
- package/src/middleware/usageQuota.js +93 -17
- package/src/migrations/functions/appUrls.ts +34 -0
- package/src/migrations/functions/quotas1.ts +20 -0
- package/src/migrations/functions/tests/appUrls.spec.js +29 -0
- package/src/migrations/functions/tests/quotas1.spec.js +27 -0
- package/src/migrations/functions/tests/userEmailViewCasing.spec.js +25 -0
- package/src/migrations/functions/usageQuotas/index.ts +8 -0
- package/src/migrations/functions/usageQuotas/syncApps.ts +18 -0
- package/src/migrations/functions/usageQuotas/syncRows.ts +22 -0
- package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +37 -0
- package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +43 -0
- package/src/migrations/functions/userEmailViewCasing.ts +13 -0
- package/src/migrations/index.ts +56 -0
- package/src/module.d.ts +3 -0
- package/src/tests/utilities/TestConfiguration.js +82 -55
- package/src/threads/automation.js +17 -15
- package/src/threads/query.js +17 -12
- package/src/utilities/fileSystem/index.js +4 -3
- package/src/utilities/global.js +15 -12
- package/src/utilities/index.js +7 -17
- package/src/utilities/routing/index.js +5 -5
- package/src/utilities/rowProcessor/index.js +25 -27
- package/src/utilities/rowProcessor/utils.js +23 -7
- package/src/utilities/tests/usageQuota/usageQuota.spec.js +72 -0
- package/src/utilities/usageQuota/index.js +93 -0
- package/src/utilities/usageQuota/rows.js +75 -0
- package/src/utilities/usageQuota/usageQuoteReset.js +18 -0
- package/src/utilities/users.js +3 -3
- package/src/utilities/workerRequests.js +4 -27
- package/tsconfig.json +4 -2
- package/builder/assets/index.39e01193.css +0 -1
- package/dist/api/controllers/hosting.js +0 -30
- package/dist/api/routes/hosting.js +0 -11
- package/src/api/controllers/hosting.js +0 -22
- package/src/api/routes/hosting.js +0 -13
- package/src/api/routes/tests/hosting.spec.js +0 -36
- package/src/utilities/usageQuota.js +0 -73
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">59.
|
|
26
|
+
<span class="strong">59.68% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>77/129</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">37.73% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>20/53</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">59.
|
|
47
|
+
<span class="strong">59.37% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>76/128</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -306,23 +306,31 @@
|
|
|
306
306
|
<a name='L247'></a><a href='#L247'>247</a>
|
|
307
307
|
<a name='L248'></a><a href='#L248'>248</a>
|
|
308
308
|
<a name='L249'></a><a href='#L249'>249</a>
|
|
309
|
-
<a name='L250'></a><a href='#L250'>250</a
|
|
309
|
+
<a name='L250'></a><a href='#L250'>250</a>
|
|
310
|
+
<a name='L251'></a><a href='#L251'>251</a>
|
|
311
|
+
<a name='L252'></a><a href='#L252'>252</a>
|
|
312
|
+
<a name='L253'></a><a href='#L253'>253</a>
|
|
313
|
+
<a name='L254'></a><a href='#L254'>254</a>
|
|
314
|
+
<a name='L255'></a><a href='#L255'>255</a>
|
|
315
|
+
<a name='L256'></a><a href='#L256'>256</a>
|
|
316
|
+
<a name='L257'></a><a href='#L257'>257</a>
|
|
317
|
+
<a name='L258'></a><a href='#L258'>258</a>
|
|
318
|
+
<a name='L259'></a><a href='#L259'>259</a>
|
|
319
|
+
<a name='L260'></a><a href='#L260'>260</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
310
320
|
<span class="cline-any cline-neutral"> </span>
|
|
311
321
|
<span class="cline-any cline-neutral"> </span>
|
|
312
322
|
<span class="cline-any cline-neutral"> </span>
|
|
313
323
|
<span class="cline-any cline-neutral"> </span>
|
|
314
324
|
<span class="cline-any cline-neutral"> </span>
|
|
315
325
|
<span class="cline-any cline-neutral"> </span>
|
|
326
|
+
<span class="cline-any cline-yes">39x</span>
|
|
327
|
+
<span class="cline-any cline-yes">39x</span>
|
|
328
|
+
<span class="cline-any cline-yes">39x</span>
|
|
329
|
+
<span class="cline-any cline-yes">39x</span>
|
|
330
|
+
<span class="cline-any cline-yes">39x</span>
|
|
331
|
+
<span class="cline-any cline-yes">39x</span>
|
|
316
332
|
<span class="cline-any cline-neutral"> </span>
|
|
317
|
-
<span class="cline-any cline-yes">
|
|
318
|
-
<span class="cline-any cline-yes">34x</span>
|
|
319
|
-
<span class="cline-any cline-yes">34x</span>
|
|
320
|
-
<span class="cline-any cline-yes">34x</span>
|
|
321
|
-
<span class="cline-any cline-yes">34x</span>
|
|
322
|
-
<span class="cline-any cline-neutral"> </span>
|
|
323
|
-
<span class="cline-any cline-yes">34x</span>
|
|
324
|
-
<span class="cline-any cline-yes">2x</span>
|
|
325
|
-
<span class="cline-any cline-neutral"> </span>
|
|
333
|
+
<span class="cline-any cline-yes">39x</span>
|
|
326
334
|
<span class="cline-any cline-neutral"> </span>
|
|
327
335
|
<span class="cline-any cline-yes">2x</span>
|
|
328
336
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -347,9 +355,16 @@
|
|
|
347
355
|
<span class="cline-any cline-yes">1x</span>
|
|
348
356
|
<span class="cline-any cline-neutral"> </span>
|
|
349
357
|
<span class="cline-any cline-yes">2x</span>
|
|
358
|
+
<span class="cline-any cline-yes">1x</span>
|
|
359
|
+
<span class="cline-any cline-neutral"> </span>
|
|
360
|
+
<span class="cline-any cline-no"> </span>
|
|
361
|
+
<span class="cline-any cline-neutral"> </span>
|
|
362
|
+
<span class="cline-any cline-neutral"> </span>
|
|
363
|
+
<span class="cline-any cline-neutral"> </span>
|
|
364
|
+
<span class="cline-any cline-yes">2x</span>
|
|
350
365
|
<span class="cline-any cline-neutral"> </span>
|
|
351
366
|
<span class="cline-any cline-neutral"> </span>
|
|
352
|
-
<span class="cline-any cline-yes">
|
|
367
|
+
<span class="cline-any cline-yes">39x</span>
|
|
353
368
|
<span class="cline-any cline-no"> </span>
|
|
354
369
|
<span class="cline-any cline-no"> </span>
|
|
355
370
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -369,7 +384,7 @@
|
|
|
369
384
|
<span class="cline-any cline-neutral"> </span>
|
|
370
385
|
<span class="cline-any cline-neutral"> </span>
|
|
371
386
|
<span class="cline-any cline-neutral"> </span>
|
|
372
|
-
<span class="cline-any cline-yes">
|
|
387
|
+
<span class="cline-any cline-yes">39x</span>
|
|
373
388
|
<span class="cline-any cline-yes">6x</span>
|
|
374
389
|
<span class="cline-any cline-yes">6x</span>
|
|
375
390
|
<span class="cline-any cline-yes">6x</span>
|
|
@@ -398,12 +413,17 @@
|
|
|
398
413
|
<span class="cline-any cline-yes">1x</span>
|
|
399
414
|
<span class="cline-any cline-neutral"> </span>
|
|
400
415
|
<span class="cline-any cline-neutral"> </span>
|
|
401
|
-
<span class="cline-any cline-yes">
|
|
416
|
+
<span class="cline-any cline-yes">39x</span>
|
|
402
417
|
<span class="cline-any cline-yes">6x</span>
|
|
403
418
|
<span class="cline-any cline-yes">6x</span>
|
|
404
419
|
<span class="cline-any cline-yes">6x</span>
|
|
405
420
|
<span class="cline-any cline-yes">6x</span>
|
|
406
421
|
<span class="cline-any cline-yes">6x</span>
|
|
422
|
+
<span class="cline-any cline-yes">6x</span>
|
|
423
|
+
<span class="cline-any cline-yes">6x</span>
|
|
424
|
+
<span class="cline-any cline-neutral"> </span>
|
|
425
|
+
<span class="cline-any cline-no"> </span>
|
|
426
|
+
<span class="cline-any cline-neutral"> </span>
|
|
407
427
|
<span class="cline-any cline-neutral"> </span>
|
|
408
428
|
<span class="cline-any cline-yes">6x</span>
|
|
409
429
|
<span class="cline-any cline-yes">6x</span>
|
|
@@ -421,43 +441,43 @@
|
|
|
421
441
|
<span class="cline-any cline-yes">6x</span>
|
|
422
442
|
<span class="cline-any cline-neutral"> </span>
|
|
423
443
|
<span class="cline-any cline-neutral"> </span>
|
|
424
|
-
<span class="cline-any cline-yes">
|
|
425
|
-
<span class="cline-any cline-yes">
|
|
426
|
-
<span class="cline-any cline-yes">
|
|
427
|
-
<span class="cline-any cline-yes">
|
|
444
|
+
<span class="cline-any cline-yes">39x</span>
|
|
445
|
+
<span class="cline-any cline-yes">39x</span>
|
|
446
|
+
<span class="cline-any cline-yes">39x</span>
|
|
447
|
+
<span class="cline-any cline-yes">39x</span>
|
|
428
448
|
<span class="cline-any cline-neutral"> </span>
|
|
429
|
-
<span class="cline-any cline-yes">
|
|
449
|
+
<span class="cline-any cline-yes">39x</span>
|
|
430
450
|
<span class="cline-any cline-neutral"> </span>
|
|
431
451
|
<span class="cline-any cline-neutral"> </span>
|
|
432
452
|
<span class="cline-any cline-neutral"> </span>
|
|
433
453
|
<span class="cline-any cline-neutral"> </span>
|
|
434
454
|
<span class="cline-any cline-neutral"> </span>
|
|
435
|
-
<span class="cline-any cline-yes">
|
|
436
|
-
<span class="cline-any cline-yes">
|
|
455
|
+
<span class="cline-any cline-yes">39x</span>
|
|
456
|
+
<span class="cline-any cline-yes">39x</span>
|
|
437
457
|
<span class="cline-any cline-no"> </span>
|
|
438
458
|
<span class="cline-any cline-no"> </span>
|
|
439
459
|
<span class="cline-any cline-no"> </span>
|
|
440
460
|
<span class="cline-any cline-neutral"> </span>
|
|
441
461
|
<span class="cline-any cline-neutral"> </span>
|
|
442
|
-
<span class="cline-any cline-yes">
|
|
443
|
-
<span class="cline-any cline-yes">
|
|
462
|
+
<span class="cline-any cline-yes">39x</span>
|
|
463
|
+
<span class="cline-any cline-yes">39x</span>
|
|
444
464
|
<span class="cline-any cline-neutral"> </span>
|
|
445
465
|
<span class="cline-any cline-neutral"> </span>
|
|
446
|
-
<span class="cline-any cline-yes">
|
|
447
|
-
<span class="cline-any cline-yes">
|
|
448
|
-
<span class="cline-any cline-yes">
|
|
466
|
+
<span class="cline-any cline-yes">39x</span>
|
|
467
|
+
<span class="cline-any cline-yes">39x</span>
|
|
468
|
+
<span class="cline-any cline-yes">39x</span>
|
|
449
469
|
<span class="cline-any cline-no"> </span>
|
|
450
470
|
<span class="cline-any cline-neutral"> </span>
|
|
451
471
|
<span class="cline-any cline-neutral"> </span>
|
|
452
472
|
<span class="cline-any cline-neutral"> </span>
|
|
453
|
-
<span class="cline-any cline-yes">
|
|
454
|
-
<span class="cline-any cline-yes">
|
|
473
|
+
<span class="cline-any cline-yes">39x</span>
|
|
474
|
+
<span class="cline-any cline-yes">39x</span>
|
|
455
475
|
<span class="cline-any cline-no"> </span>
|
|
456
476
|
<span class="cline-any cline-neutral"> </span>
|
|
457
|
-
<span class="cline-any cline-yes">
|
|
477
|
+
<span class="cline-any cline-yes">39x</span>
|
|
458
478
|
<span class="cline-any cline-neutral"> </span>
|
|
459
479
|
<span class="cline-any cline-neutral"> </span>
|
|
460
|
-
<span class="cline-any cline-yes">
|
|
480
|
+
<span class="cline-any cline-yes">39x</span>
|
|
461
481
|
<span class="cline-any cline-yes">1x</span>
|
|
462
482
|
<span class="cline-any cline-neutral"> </span>
|
|
463
483
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -479,13 +499,13 @@
|
|
|
479
499
|
<span class="cline-any cline-yes">1x</span>
|
|
480
500
|
<span class="cline-any cline-neutral"> </span>
|
|
481
501
|
<span class="cline-any cline-neutral"> </span>
|
|
482
|
-
<span class="cline-any cline-yes">
|
|
502
|
+
<span class="cline-any cline-yes">39x</span>
|
|
483
503
|
<span class="cline-any cline-yes">1x</span>
|
|
484
504
|
<span class="cline-any cline-yes">1x</span>
|
|
485
505
|
<span class="cline-any cline-neutral"> </span>
|
|
486
506
|
<span class="cline-any cline-neutral"> </span>
|
|
487
507
|
<span class="cline-any cline-neutral"> </span>
|
|
488
|
-
<span class="cline-any cline-yes">
|
|
508
|
+
<span class="cline-any cline-yes">39x</span>
|
|
489
509
|
<span class="cline-any cline-yes">1x</span>
|
|
490
510
|
<span class="cline-any cline-yes">1x</span>
|
|
491
511
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -511,7 +531,7 @@
|
|
|
511
531
|
<span class="cline-any cline-no"> </span>
|
|
512
532
|
<span class="cline-any cline-neutral"> </span>
|
|
513
533
|
<span class="cline-any cline-neutral"> </span>
|
|
514
|
-
<span class="cline-any cline-yes">
|
|
534
|
+
<span class="cline-any cline-yes">39x</span>
|
|
515
535
|
<span class="cline-any cline-no"> </span>
|
|
516
536
|
<span class="cline-any cline-neutral"> </span>
|
|
517
537
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -555,8 +575,7 @@
|
|
|
555
575
|
<span class="cline-any cline-neutral"> </span>
|
|
556
576
|
<span class="cline-any cline-no"> </span>
|
|
557
577
|
<span class="cline-any cline-neutral"> </span>
|
|
558
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const
|
|
559
|
-
const {
|
|
578
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const {
|
|
560
579
|
generateDatasourceID,
|
|
561
580
|
getDatasourceParams,
|
|
562
581
|
getQueryParams,
|
|
@@ -568,12 +587,11 @@ const { BuildSchemaErrors, InvalidColumns } = require("../../constants")
|
|
|
568
587
|
const { integrations } = require("../../integrations")
|
|
569
588
|
const { getDatasourceAndQuery } = require("./row/utils")
|
|
570
589
|
const { invalidateDynamicVariables } = require("../../threads/utils")
|
|
590
|
+
const { getAppDB } = require("@budibase/backend-core/context")
|
|
571
591
|
|
|
572
592
|
exports.fetch = async function (ctx) {
|
|
573
|
-
const database = new CouchDB(ctx.appId)
|
|
574
|
-
|
|
575
593
|
// Get internal tables
|
|
576
|
-
const db =
|
|
594
|
+
const db = getAppDB()
|
|
577
595
|
const internalTables = await db.allDocs(
|
|
578
596
|
getTableParams(null, {
|
|
579
597
|
include_docs: true,
|
|
@@ -588,18 +606,25 @@ exports.fetch = async function (ctx) {
|
|
|
588
606
|
|
|
589
607
|
// Get external datasources
|
|
590
608
|
const datasources = (
|
|
591
|
-
await
|
|
609
|
+
await db.allDocs(
|
|
592
610
|
getDatasourceParams(null, {
|
|
593
611
|
include_docs: true,
|
|
594
612
|
})
|
|
595
613
|
)
|
|
596
614
|
).rows.map(row => row.doc)
|
|
615
|
+
|
|
616
|
+
for (let datasource of datasources) {
|
|
617
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (datasource.config && datasource.config.auth) {
|
|
618
|
+
// strip secrets from response so they don't show in the network request
|
|
619
|
+
<span class="cstat-no" title="statement not covered" > delete datasource.config.auth</span>
|
|
620
|
+
}
|
|
621
|
+
}
|
|
597
622
|
|
|
598
623
|
ctx.body = [bbInternalDb, ...datasources]
|
|
599
624
|
}
|
|
600
625
|
|
|
601
626
|
exports.buildSchemaFromDb = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
|
|
602
|
-
const db = <span class="cstat-no" title="statement not covered" >
|
|
627
|
+
const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
|
|
603
628
|
const datasource = <span class="cstat-no" title="statement not covered" >await db.get(ctx.params.datasourceId)</span>
|
|
604
629
|
|
|
605
630
|
const { tables, error } = <span class="cstat-no" title="statement not covered" >await buildSchemaHelper(datasource)</span>
|
|
@@ -648,11 +673,16 @@ const invalidateVariables = async (existingDatasource, updatedDatasource) =>
|
|
|
648
673
|
}
|
|
649
674
|
|
|
650
675
|
exports.update = async function (ctx) {
|
|
651
|
-
const db =
|
|
676
|
+
const db = getAppDB()
|
|
652
677
|
const datasourceId = ctx.params.datasourceId
|
|
653
678
|
let datasource = await db.get(datasourceId)
|
|
679
|
+
const auth = datasource.config.auth
|
|
654
680
|
await invalidateVariables(datasource, ctx.request.body)
|
|
655
681
|
datasource = { ...datasource, ...ctx.request.body }
|
|
682
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (auth && <span class="branch-1 cbranch-no" title="branch not covered" >!ctx.request.body.auth)</span> {
|
|
683
|
+
// don't strip auth config from DB
|
|
684
|
+
<span class="cstat-no" title="statement not covered" > datasource.config.auth = auth</span>
|
|
685
|
+
}
|
|
656
686
|
|
|
657
687
|
const response = await db.put(datasource)
|
|
658
688
|
datasource._rev = response.rev
|
|
@@ -671,7 +701,7 @@ exports.update = async function (ctx) {
|
|
|
671
701
|
}
|
|
672
702
|
|
|
673
703
|
exports.save = async function (ctx) {
|
|
674
|
-
const db =
|
|
704
|
+
const db = getAppDB()
|
|
675
705
|
const plus = ctx.request.body.datasource.plus
|
|
676
706
|
const fetchSchema = ctx.request.body.fetchSchema
|
|
677
707
|
|
|
@@ -707,7 +737,7 @@ exports.save = async function (ctx) {
|
|
|
707
737
|
}
|
|
708
738
|
|
|
709
739
|
exports.destroy = async function (ctx) {
|
|
710
|
-
const db =
|
|
740
|
+
const db = getAppDB()
|
|
711
741
|
|
|
712
742
|
// Delete all queries for the datasource
|
|
713
743
|
const queries = await db.allDocs(
|
|
@@ -729,7 +759,7 @@ exports.destroy = async function (ctx) {
|
|
|
729
759
|
}
|
|
730
760
|
|
|
731
761
|
exports.find = async function (ctx) {
|
|
732
|
-
const database =
|
|
762
|
+
const database = getAppDB()
|
|
733
763
|
ctx.body = await database.get(ctx.params.datasourceId)
|
|
734
764
|
}
|
|
735
765
|
|
|
@@ -737,7 +767,7 @@ exports.find = async function (ctx) {
|
|
|
737
767
|
exports.query = async function (ctx) {
|
|
738
768
|
const queryJson = ctx.request.body
|
|
739
769
|
try {
|
|
740
|
-
ctx.body = await getDatasourceAndQuery(
|
|
770
|
+
ctx.body = await getDatasourceAndQuery(queryJson)
|
|
741
771
|
} catch (err) {
|
|
742
772
|
<span class="cstat-no" title="statement not covered" > ctx.throw(400, err)</span>
|
|
743
773
|
}
|
|
@@ -811,7 +841,7 @@ const buildSchemaHelper = <span class="fstat-no" title="function not covered" >a
|
|
|
811
841
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
812
842
|
Code coverage generated by
|
|
813
843
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
814
|
-
at
|
|
844
|
+
at Tue Feb 08 2022 15:32:15 GMT+0000 (Coordinated Universal Time)
|
|
815
845
|
</div>
|
|
816
846
|
</div>
|
|
817
847
|
<script src="../../prettify.js"></script>
|
|
@@ -302,14 +302,14 @@
|
|
|
302
302
|
<span class="cline-any cline-no"> </span>
|
|
303
303
|
<span class="cline-any cline-neutral"> </span>
|
|
304
304
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const fetch = require("node-fetch")
|
|
305
|
-
const CouchDB = require("../../db")
|
|
306
305
|
const env = require("../../environment")
|
|
307
306
|
const { checkSlashesInUrl } = require("../../utilities")
|
|
308
307
|
const { request } = require("../../utilities/workerRequests")
|
|
309
308
|
const { clearLock } = require("../../utilities/redis")
|
|
310
|
-
const { Replication } = require("@budibase/backend-core/db")
|
|
309
|
+
const { Replication, getProdAppID } = require("@budibase/backend-core/db")
|
|
311
310
|
const { DocumentTypes } = require("../../db/utils")
|
|
312
311
|
const { app: appCache } = require("@budibase/backend-core/cache")
|
|
312
|
+
const { getProdAppDB, getAppDB } = require("@budibase/backend-core/context")
|
|
313
313
|
|
|
314
314
|
async function <span class="fstat-no" title="function not covered" >redirect(</span>ctx, method, path = <span class="branch-0 cbranch-no" title="branch not covered" >"global")</span> {
|
|
315
315
|
const { devPath } = <span class="cstat-no" title="statement not covered" >ctx.params</span>
|
|
@@ -380,11 +380,11 @@ exports.clearLock = <span class="fstat-no" title="function not covered" >as</spa
|
|
|
380
380
|
|
|
381
381
|
exports.revert = <span class="fstat-no" title="function not covered" >as</span>ync ctx => {
|
|
382
382
|
const { appId } = <span class="cstat-no" title="statement not covered" >ctx.params</span>
|
|
383
|
-
const productionAppId = <span class="cstat-no" title="statement not covered" >appId
|
|
383
|
+
const productionAppId = <span class="cstat-no" title="statement not covered" >getProdAppID(appId)</span>
|
|
384
384
|
|
|
385
385
|
// App must have been deployed first
|
|
386
386
|
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
387
|
-
const db = <span class="cstat-no" title="statement not covered" >
|
|
387
|
+
const db = <span class="cstat-no" title="statement not covered" >getProdAppDB({ skip_setup: true })</span>
|
|
388
388
|
const info = <span class="cstat-no" title="statement not covered" >await db.info()</span>
|
|
389
389
|
<span class="cstat-no" title="statement not covered" > if (info.error) <span class="cstat-no" title="statement not covered" >throw info.error</span></span>
|
|
390
390
|
const deploymentDoc = <span class="cstat-no" title="statement not covered" >await db.get(DocumentTypes.DEPLOYMENTS)</span>
|
|
@@ -406,7 +406,7 @@ exports.revert = <span class="fstat-no" title="function not covered" >as</span>y
|
|
|
406
406
|
|
|
407
407
|
<span class="cstat-no" title="statement not covered" > await replication.rollback()</span>
|
|
408
408
|
// update appID in reverted app to be dev version again
|
|
409
|
-
const db = <span class="cstat-no" title="statement not covered" >
|
|
409
|
+
const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
|
|
410
410
|
const appDoc = <span class="cstat-no" title="statement not covered" >await db.get(DocumentTypes.APP_METADATA)</span>
|
|
411
411
|
<span class="cstat-no" title="statement not covered" > appDoc.appId = appId</span>
|
|
412
412
|
<span class="cstat-no" title="statement not covered" > appDoc.instance._id = appId</span>
|
|
@@ -430,7 +430,7 @@ exports.getBudibaseVersion = <span class="fstat-no" title="function not covered"
|
|
|
430
430
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
431
431
|
Code coverage generated by
|
|
432
432
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
433
|
-
at
|
|
433
|
+
at Tue Feb 08 2022 15:32:15 GMT+0000 (Coordinated Universal Time)
|
|
434
434
|
</div>
|
|
435
435
|
</div>
|
|
436
436
|
<script src="../../prettify.js"></script>
|