@budibase/server 1.0.123 → 1.0.125
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/builder/assets/index.3d890df7.js +1299 -0
- package/builder/assets/index.89795487.css +6 -0
- package/builder/assets/{vendor.8e34a169.js → vendor.5240f480.js} +1 -1
- package/builder/index.html +3 -3
- package/coverage/clover.xml +695 -1678
- package/coverage/coverage-final.json +28 -43
- package/coverage/lcov-report/api/controllers/analytics.js.html +8 -3
- package/coverage/lcov-report/api/controllers/apikeys.js.html +9 -4
- package/coverage/lcov-report/api/controllers/auth.js.html +8 -3
- package/coverage/lcov-report/api/controllers/automation.js.html +8 -3
- package/coverage/lcov-report/api/controllers/backup.js.html +8 -3
- package/coverage/lcov-report/api/controllers/cloud.js.html +8 -3
- package/coverage/lcov-report/api/controllers/component.js.html +8 -3
- package/coverage/lcov-report/api/controllers/datasource.js.html +11 -6
- package/coverage/lcov-report/api/controllers/dev.js.html +8 -3
- package/coverage/lcov-report/api/controllers/index.html +16 -26
- package/coverage/lcov-report/api/controllers/integration.js.html +8 -3
- package/coverage/lcov-report/api/controllers/layout.js.html +8 -3
- package/coverage/lcov-report/api/controllers/metadata.js.html +8 -3
- package/coverage/lcov-report/api/controllers/migrations.js.html +8 -3
- package/coverage/lcov-report/api/controllers/permission.js.html +8 -3
- package/coverage/lcov-report/api/controllers/query/index.html +16 -26
- package/coverage/lcov-report/api/controllers/query/validation.js.html +8 -3
- package/coverage/lcov-report/api/controllers/role.js.html +10 -5
- package/coverage/lcov-report/api/controllers/routing.js.html +9 -4
- package/coverage/lcov-report/api/controllers/row/external.js.html +8 -3
- package/coverage/lcov-report/api/controllers/row/index.html +25 -35
- package/coverage/lcov-report/api/controllers/row/internal.js.html +32 -24
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +21 -16
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +24 -19
- package/coverage/lcov-report/api/controllers/row/utils.js.html +33 -19
- package/coverage/lcov-report/api/controllers/screen.js.html +9 -4
- package/coverage/lcov-report/api/controllers/script.js.html +8 -3
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +55 -50
- package/coverage/lcov-report/api/controllers/table/external.js.html +8 -3
- package/coverage/lcov-report/api/controllers/table/index.html +19 -44
- package/coverage/lcov-report/api/controllers/table/index.js.html +20 -15
- package/coverage/lcov-report/api/controllers/templates.js.html +8 -3
- package/coverage/lcov-report/api/controllers/user.js.html +8 -3
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +8 -3
- package/coverage/lcov-report/api/controllers/view/index.html +8 -3
- package/coverage/lcov-report/api/controllers/view/index.js.html +10 -5
- package/coverage/lcov-report/api/controllers/view/utils.js.html +8 -3
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +8 -3
- package/coverage/lcov-report/api/controllers/webhook.js.html +10 -5
- package/coverage/lcov-report/api/index.html +18 -13
- package/coverage/lcov-report/api/index.js.html +28 -8
- package/coverage/lcov-report/api/routes/analytics.js.html +8 -3
- package/coverage/lcov-report/api/routes/apikeys.js.html +8 -3
- package/coverage/lcov-report/api/routes/auth.js.html +8 -3
- package/coverage/lcov-report/api/routes/automation.js.html +8 -3
- package/coverage/lcov-report/api/routes/backup.js.html +8 -3
- package/coverage/lcov-report/api/routes/cloud.js.html +8 -3
- package/coverage/lcov-report/api/routes/component.js.html +8 -3
- package/coverage/lcov-report/api/routes/datasource.js.html +8 -3
- package/coverage/lcov-report/api/routes/deploy.js.html +8 -3
- package/coverage/lcov-report/api/routes/dev.js.html +9 -4
- package/coverage/lcov-report/api/routes/index.html +13 -68
- package/coverage/lcov-report/api/routes/integration.js.html +8 -3
- package/coverage/lcov-report/api/routes/layout.js.html +8 -3
- package/coverage/lcov-report/api/routes/metadata.js.html +8 -3
- package/coverage/lcov-report/api/routes/migrations.js.html +8 -3
- package/coverage/lcov-report/api/routes/permission.js.html +8 -3
- package/coverage/lcov-report/api/routes/query.js.html +8 -3
- package/coverage/lcov-report/api/routes/role.js.html +8 -3
- package/coverage/lcov-report/api/routes/routing.js.html +8 -3
- package/coverage/lcov-report/api/routes/screen.js.html +8 -3
- package/coverage/lcov-report/api/routes/script.js.html +8 -3
- package/coverage/lcov-report/api/routes/table.js.html +8 -3
- package/coverage/lcov-report/api/routes/templates.js.html +8 -3
- package/coverage/lcov-report/api/routes/user.js.html +8 -3
- package/coverage/lcov-report/api/routes/utils/index.html +8 -3
- package/coverage/lcov-report/api/routes/utils/validators.js.html +8 -3
- package/coverage/lcov-report/api/routes/view.js.html +8 -3
- package/coverage/lcov-report/api/routes/webhook.js.html +8 -3
- package/coverage/lcov-report/automations/actions.js.html +21 -7
- package/coverage/lcov-report/automations/automationUtils.js.html +64 -23
- package/coverage/lcov-report/automations/bullboard.js.html +8 -3
- package/coverage/lcov-report/automations/index.html +27 -37
- package/coverage/lcov-report/automations/index.js.html +8 -3
- package/coverage/lcov-report/automations/steps/bash.js.html +8 -3
- package/coverage/lcov-report/automations/steps/delay.js.html +8 -3
- package/coverage/lcov-report/automations/steps/discord.js.html +8 -3
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +8 -3
- package/coverage/lcov-report/automations/steps/executeScript.js.html +8 -3
- package/coverage/lcov-report/automations/steps/filter.js.html +8 -3
- package/coverage/lcov-report/automations/steps/index.html +31 -41
- package/coverage/lcov-report/automations/steps/integromat.js.html +8 -3
- package/coverage/lcov-report/{api/routes/static.js.html → automations/steps/loop.js.html} +70 -80
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +9 -4
- package/coverage/lcov-report/automations/steps/queryRows.js.html +9 -4
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +8 -3
- package/coverage/lcov-report/automations/steps/serverLog.js.html +8 -3
- package/coverage/lcov-report/automations/steps/slack.js.html +8 -3
- package/coverage/lcov-report/automations/steps/updateRow.js.html +8 -3
- package/coverage/lcov-report/automations/steps/utils.js.html +14 -9
- package/coverage/lcov-report/automations/steps/zapier.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/index.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +8 -3
- package/coverage/lcov-report/automations/triggers.js.html +16 -11
- package/coverage/lcov-report/block-navigation.js +8 -0
- package/coverage/lcov-report/constants/index.html +12 -7
- package/coverage/lcov-report/constants/index.js.html +55 -32
- package/coverage/lcov-report/constants/layouts.js.html +8 -3
- package/coverage/lcov-report/constants/screens.js.html +8 -3
- package/coverage/lcov-report/db/inMemoryView.js.html +8 -3
- package/coverage/lcov-report/db/index.html +8 -3
- package/coverage/lcov-report/db/index.js.html +9 -4
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +20 -15
- package/coverage/lcov-report/db/linkedRows/index.html +8 -3
- package/coverage/lcov-report/db/linkedRows/index.js.html +22 -17
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +12 -7
- package/coverage/lcov-report/db/newid.js.html +11 -6
- package/coverage/lcov-report/db/utils.js.html +84 -79
- package/coverage/lcov-report/events/AutomationEmitter.js.html +14 -9
- package/coverage/lcov-report/events/index.html +8 -3
- package/coverage/lcov-report/events/index.js.html +9 -4
- package/coverage/lcov-report/events/utils.js.html +18 -13
- package/coverage/lcov-report/index.html +125 -120
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +8 -3
- package/coverage/lcov-report/integrations/tests/index.html +8 -3
- package/coverage/lcov-report/middleware/appInfo.js.html +8 -3
- package/coverage/lcov-report/middleware/builder.js.html +8 -3
- package/coverage/lcov-report/middleware/currentapp.js.html +65 -15
- package/coverage/lcov-report/middleware/index.html +25 -50
- package/coverage/lcov-report/middleware/joi-validator.js.html +9 -4
- package/coverage/lcov-report/middleware/publicApi.js.html +8 -3
- package/coverage/lcov-report/middleware/resourceId.js.html +8 -3
- package/coverage/lcov-report/middleware/selfhost.js.html +9 -4
- package/coverage/lcov-report/middleware/utils.js.html +8 -3
- package/coverage/lcov-report/sorter.js +26 -0
- package/coverage/lcov-report/threads/automation.js.html +581 -90
- package/coverage/lcov-report/threads/index.html +30 -40
- package/coverage/lcov-report/threads/query.js.html +9 -4
- package/coverage/lcov-report/threads/utils.js.html +17 -9
- package/coverage/lcov-report/utilities/bcrypt.js.html +8 -3
- package/coverage/lcov-report/utilities/budibaseDir.js.html +8 -3
- package/coverage/lcov-report/utilities/centralPath.js.html +8 -3
- package/coverage/lcov-report/utilities/csvParser.js.html +10 -5
- package/coverage/lcov-report/utilities/global.js.html +9 -4
- package/coverage/lcov-report/utilities/index.html +8 -3
- package/coverage/lcov-report/utilities/index.js.html +11 -6
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +32 -9
- package/coverage/lcov-report/utilities/queue/index.html +12 -7
- package/coverage/lcov-report/utilities/routing/index.html +8 -3
- package/coverage/lcov-report/utilities/routing/index.js.html +8 -3
- package/coverage/lcov-report/utilities/rowProcessor/index.html +8 -3
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +48 -43
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +18 -13
- package/coverage/lcov-report/utilities/scriptRunner.js.html +8 -3
- package/coverage/lcov-report/utilities/security.js.html +9 -4
- package/coverage/lcov-report/utilities/statusCodes.js.html +8 -3
- package/coverage/lcov-report/utilities/usageQuota/index.html +24 -34
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +44 -39
- package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +8 -3
- package/coverage/lcov-report/utilities/users.js.html +8 -3
- package/coverage/lcov-report/utilities/workerRequests.js.html +9 -4
- package/coverage/lcov.info +1144 -2875
- package/dist/api/controllers/application.js +145 -73
- package/dist/api/controllers/deploy/index.js +68 -36
- package/dist/api/controllers/public/applications.js +29 -9
- package/dist/api/controllers/public/queries.js +27 -7
- package/dist/api/controllers/public/rows.js +32 -12
- package/dist/api/controllers/public/tables.js +2 -2
- package/dist/api/controllers/public/users.js +8 -8
- package/dist/api/controllers/public/utils.js +1 -1
- package/dist/api/controllers/query/import/index.js +3 -3
- package/dist/api/controllers/query/index.js +57 -44
- package/dist/api/controllers/row/ExternalRequest.js +27 -27
- package/dist/api/controllers/row/index.js +83 -60
- package/dist/api/controllers/row/internal.js +2 -1
- package/dist/api/controllers/row/utils.js +2 -1
- package/dist/api/controllers/static/templates/BudibaseApp.svelte +3 -0
- package/dist/api/controllers/table/bulkFormula.js +2 -1
- package/dist/api/controllers/table/internal.js +41 -35
- package/dist/api/controllers/table/utils.js +271 -229
- package/dist/api/index.js +5 -0
- package/dist/api/routes/application.js +39 -13
- package/dist/api/routes/index.js +61 -56
- package/dist/api/routes/public/index.js +6 -9
- package/dist/api/routes/public/queries.js +1 -1
- package/dist/api/routes/public/rows.js +1 -1
- package/dist/api/routes/public/tables.js +3 -3
- package/dist/api/routes/public/users.js +1 -1
- package/dist/api/routes/row.js +43 -17
- package/dist/api/routes/static.js +40 -13
- package/dist/api/routes/tests/utilities/TestFunctions.js +75 -33
- package/dist/app.js +8 -4
- package/dist/automations/actions.js +3 -0
- package/dist/automations/automationUtils.js +10 -0
- package/dist/automations/steps/createRow.js +12 -12
- package/dist/automations/steps/deleteRow.js +13 -16
- package/dist/automations/steps/loop.js +51 -0
- package/dist/automations/tests/utilities/index.js +13 -11
- package/dist/automations/utils.js +187 -133
- package/dist/constants/index.js +5 -0
- package/dist/definitions/datasource.js +1 -0
- package/dist/environment.js +2 -3
- package/dist/index.js +4 -0
- package/dist/integrations/base/sql.js +2 -2
- package/dist/integrations/base/sqlTable.js +2 -2
- package/dist/integrations/googlesheets.js +1 -1
- package/dist/integrations/index.js +4 -0
- package/dist/integrations/microsoftSqlServer.js +8 -8
- package/dist/integrations/mysql.js +9 -9
- package/dist/integrations/oracle.js +7 -7
- package/dist/integrations/postgres.js +7 -7
- package/dist/integrations/queries/sql.js +2 -2
- package/dist/integrations/redis.js +158 -0
- package/dist/integrations/rest.js +1 -1
- package/dist/middleware/authorized.js +51 -51
- package/dist/middleware/currentapp.js +15 -1
- package/dist/migrations/functions/appUrls.js +1 -1
- package/dist/migrations/functions/developerQuota.js +49 -0
- package/dist/migrations/functions/publishedAppsQuota.js +47 -0
- package/dist/migrations/functions/quotas1.js +6 -2
- package/dist/migrations/functions/usageQuotas/index.js +0 -4
- package/dist/migrations/functions/usageQuotas/syncApps.js +4 -7
- package/dist/migrations/functions/usageQuotas/syncDevelopers.js +24 -0
- package/dist/migrations/functions/usageQuotas/syncPublishedApps.js +26 -0
- package/dist/migrations/functions/usageQuotas/syncRows.js +5 -8
- package/dist/migrations/index.js +17 -1
- package/dist/package.json +14 -8
- package/dist/threads/automation.js +149 -27
- package/dist/threads/index.js +36 -10
- package/dist/threads/utils.js +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/utilities/queue/inMemoryQueue.js +6 -1
- package/nodemon.json +1 -1
- package/package.json +15 -9
- package/scripts/dev/manage.js +2 -0
- package/src/api/controllers/{application.js → application.ts} +118 -51
- package/src/api/controllers/deploy/{index.js → index.ts} +53 -29
- package/src/api/controllers/public/applications.ts +2 -2
- package/src/api/controllers/public/queries.ts +1 -1
- package/src/api/controllers/public/rows.ts +1 -1
- package/src/api/controllers/query/{index.js → index.ts} +51 -48
- package/src/api/controllers/row/ExternalRequest.ts +1 -1
- package/src/api/controllers/row/{index.js → index.ts} +24 -17
- package/src/api/controllers/row/internal.js +2 -1
- package/src/api/controllers/row/utils.js +4 -1
- package/src/api/controllers/static/templates/BudibaseApp.svelte +3 -0
- package/src/api/controllers/table/bulkFormula.js +1 -1
- package/src/api/controllers/table/{internal.js → internal.ts} +30 -26
- package/src/api/controllers/table/{utils.js → utils.ts} +86 -69
- package/src/api/index.js +5 -0
- package/src/api/routes/{application.js → application.ts} +8 -14
- package/src/api/routes/index.ts +60 -0
- package/src/api/routes/public/index.ts +1 -4
- package/src/api/routes/{row.js → row.ts} +7 -15
- package/src/api/routes/{static.js → static.ts} +11 -11
- package/src/api/routes/tests/misc.spec.js +39 -37
- package/src/api/routes/tests/utilities/{TestFunctions.js → TestFunctions.ts} +57 -33
- package/src/app.ts +1 -2
- package/src/automations/actions.js +3 -0
- package/src/automations/automationUtils.js +12 -0
- package/src/automations/steps/{createRow.js → createRow.ts} +9 -15
- package/src/automations/steps/{deleteRow.js → deleteRow.ts} +10 -16
- package/src/automations/steps/loop.js +50 -0
- package/src/automations/tests/automation.spec.js +0 -1
- package/src/automations/tests/{createRow.spec.js → createRow.spec.ts} +4 -15
- package/src/automations/tests/{deleteRow.spec.js → deleteRow.spec.ts} +3 -5
- package/src/automations/tests/utilities/index.js +12 -10
- package/src/automations/{utils.js → utils.ts} +39 -28
- package/src/constants/index.js +6 -0
- package/src/definitions/common.ts +1 -0
- package/src/definitions/datasource.ts +1 -0
- package/src/environment.js +2 -3
- package/src/index.ts +3 -0
- package/src/integrations/index.ts +4 -0
- package/src/integrations/redis.ts +152 -0
- package/src/integrations/tests/redis.spec.js +60 -0
- package/src/middleware/{authorized.js → authorized.ts} +20 -14
- package/src/middleware/currentapp.js +16 -1
- package/src/middleware/tests/currentapp.spec.js +8 -4
- package/src/migrations/functions/developerQuota.ts +15 -0
- package/src/migrations/functions/publishedAppsQuota.ts +13 -0
- package/src/migrations/functions/tests/quotas1.spec.js +0 -2
- package/src/migrations/functions/usageQuotas/index.ts +0 -5
- package/src/migrations/functions/usageQuotas/syncApps.ts +3 -6
- package/src/migrations/functions/usageQuotas/syncDevelopers.ts +19 -0
- package/src/migrations/functions/usageQuotas/syncPublishedApps.ts +21 -0
- package/src/migrations/functions/usageQuotas/syncRows.ts +3 -6
- package/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts +34 -0
- package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +40 -0
- package/src/migrations/index.ts +13 -1
- package/src/threads/automation.js +196 -34
- package/src/threads/{index.js → index.ts} +18 -14
- package/src/threads/utils.js +1 -0
- package/src/utilities/queue/inMemoryQueue.js +7 -1
- package/tsconfig.build.json +10 -0
- package/tsconfig.json +2 -2
- package/builder/assets/index.68a7f4e3.css +0 -6
- package/builder/assets/index.8d4a5b33.js +0 -1291
- package/coverage/lcov-report/api/controllers/application.js.html +0 -1436
- package/coverage/lcov-report/api/controllers/query/index.js.html +0 -713
- package/coverage/lcov-report/api/controllers/row/index.js.html +0 -524
- package/coverage/lcov-report/api/controllers/table/internal.js.html +0 -620
- package/coverage/lcov-report/api/controllers/table/utils.js.html +0 -1331
- package/coverage/lcov-report/api/routes/application.js.html +0 -179
- package/coverage/lcov-report/api/routes/index.js.html +0 -266
- package/coverage/lcov-report/api/routes/row.js.html +0 -908
- package/coverage/lcov-report/automations/steps/createRow.js.html +0 -380
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +0 -347
- package/coverage/lcov-report/automations/utils.js.html +0 -665
- package/coverage/lcov-report/middleware/authorized.js.html +0 -458
- package/coverage/lcov-report/middleware/usageQuota.js.html +0 -572
- package/coverage/lcov-report/threads/index.js.html +0 -296
- package/coverage/lcov-report/utilities/usageQuota/index.js.html +0 -359
- package/dist/middleware/usageQuota.js +0 -154
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/utilities/usageQuota/index.js +0 -86
- package/src/api/routes/index.js +0 -62
- package/src/middleware/tests/usageQuota.spec.js +0 -120
- package/src/middleware/usageQuota.js +0 -164
- package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +0 -41
- package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +0 -45
- package/src/utilities/tests/usageQuota/usageQuota.spec.js +0 -72
- package/src/utilities/usageQuota/index.js +0 -93
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,100 +31,125 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
32
|
});
|
|
10
33
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
metadata.history.push(history);
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.cleanupAutomations = exports.checkForWebhooks = exports.enableCronTrigger = exports.disableAllCrons = exports.removeDeprecated = exports.updateTestHistory = exports.processEvent = void 0;
|
|
39
|
+
const threads_1 = require("../threads");
|
|
40
|
+
const triggerInfo_1 = require("./triggerInfo");
|
|
41
|
+
const webhooks = __importStar(require("../api/controllers/webhook"));
|
|
42
|
+
const bullboard_1 = require("./bullboard");
|
|
43
|
+
const newid_1 = __importDefault(require("../db/newid"));
|
|
44
|
+
const utilities_1 = require("../utilities");
|
|
45
|
+
const constants_1 = require("../constants");
|
|
46
|
+
const db_1 = require("@budibase/backend-core/db");
|
|
47
|
+
const fp_1 = require("lodash/fp");
|
|
48
|
+
const context_1 = require("@budibase/backend-core/context");
|
|
49
|
+
const backend_core_1 = require("@budibase/backend-core");
|
|
50
|
+
const pro_1 = require("@budibase/pro");
|
|
51
|
+
const WH_STEP_ID = triggerInfo_1.definitions.WEBHOOK.stepId;
|
|
52
|
+
const CRON_STEP_ID = triggerInfo_1.definitions.CRON.stepId;
|
|
53
|
+
const Runner = new threads_1.Thread(threads_1.ThreadType.AUTOMATION);
|
|
54
|
+
function processEvent(job) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
try {
|
|
57
|
+
console.log(`${job.data.automation.appId} automation ${job.data.automation._id} running`);
|
|
58
|
+
// need to actually await these so that an error can be captured properly
|
|
59
|
+
const tenantId = backend_core_1.tenancy.getTenantIDFromAppID(job.data.event.appId);
|
|
60
|
+
return yield backend_core_1.tenancy.doInTenant(tenantId, () => __awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
const runFn = () => Runner.run(job);
|
|
62
|
+
return pro_1.quotas.addAutomation(runFn);
|
|
63
|
+
}));
|
|
42
64
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
65
|
+
catch (err) {
|
|
66
|
+
const errJson = JSON.stringify(err);
|
|
67
|
+
console.error(`${job.data.automation.appId} automation ${job.data.automation._id} was unable to run - ${errJson}`);
|
|
68
|
+
console.trace(err);
|
|
69
|
+
return { err };
|
|
47
70
|
}
|
|
48
|
-
return metadata;
|
|
49
71
|
});
|
|
50
|
-
}
|
|
51
|
-
exports.
|
|
52
|
-
|
|
72
|
+
}
|
|
73
|
+
exports.processEvent = processEvent;
|
|
74
|
+
function updateTestHistory(appId, automation, history) {
|
|
75
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
+
return (0, utilities_1.updateEntityMetadata)(constants_1.MetadataTypes.AUTOMATION_TEST_HISTORY, automation._id, (metadata) => {
|
|
77
|
+
if (metadata && Array.isArray(metadata.history)) {
|
|
78
|
+
metadata.history.push(history);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
metadata = {
|
|
82
|
+
history: [history],
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
return metadata;
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
exports.updateTestHistory = updateTestHistory;
|
|
90
|
+
function removeDeprecated(definitions) {
|
|
91
|
+
const base = (0, fp_1.cloneDeep)(definitions);
|
|
53
92
|
for (let key of Object.keys(base)) {
|
|
54
93
|
if (base[key].deprecated) {
|
|
55
94
|
delete base[key];
|
|
56
95
|
}
|
|
57
96
|
}
|
|
58
97
|
return base;
|
|
59
|
-
}
|
|
98
|
+
}
|
|
99
|
+
exports.removeDeprecated = removeDeprecated;
|
|
60
100
|
// end the repetition and the job itself
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
101
|
+
function disableAllCrons(appId) {
|
|
102
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
103
|
+
const promises = [];
|
|
104
|
+
const jobs = yield bullboard_1.queue.getRepeatableJobs();
|
|
105
|
+
for (let job of jobs) {
|
|
106
|
+
if (job.key.includes(`${appId}_cron`)) {
|
|
107
|
+
promises.push(bullboard_1.queue.removeRepeatableByKey(job.key));
|
|
108
|
+
if (job.id) {
|
|
109
|
+
promises.push(bullboard_1.queue.removeJobs(job.id));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
68
112
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
113
|
+
return Promise.all(promises);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
exports.disableAllCrons = disableAllCrons;
|
|
72
117
|
/**
|
|
73
118
|
* This function handles checking of any cron jobs that need to be enabled/updated.
|
|
74
119
|
* @param {string} appId The ID of the app in which we are checking for webhooks
|
|
75
120
|
* @param {object|undefined} automation The automation object to be updated.
|
|
76
121
|
*/
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
auto
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
122
|
+
function enableCronTrigger(appId, automation) {
|
|
123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
+
const trigger = automation ? automation.definition.trigger : null;
|
|
125
|
+
function isCronTrigger(auto) {
|
|
126
|
+
return (auto &&
|
|
127
|
+
auto.definition.trigger &&
|
|
128
|
+
auto.definition.trigger.stepId === CRON_STEP_ID);
|
|
129
|
+
}
|
|
130
|
+
// need to create cron job
|
|
131
|
+
if (isCronTrigger(automation)) {
|
|
132
|
+
// make a job id rather than letting Bull decide, makes it easier to handle on way out
|
|
133
|
+
const jobId = `${appId}_cron_${(0, newid_1.default)()}`;
|
|
134
|
+
const job = yield bullboard_1.queue.add({
|
|
135
|
+
automation,
|
|
136
|
+
event: { appId, timestamp: Date.now() },
|
|
137
|
+
}, { repeat: { cron: trigger.inputs.cron }, jobId });
|
|
138
|
+
// Assign cron job ID from bull so we can remove it later if the cron trigger is removed
|
|
139
|
+
trigger.cronJobId = job.id;
|
|
140
|
+
// can't use getAppDB here as this is likely to be called from dev app,
|
|
141
|
+
// but this call could be for dev app or prod app, need to just use what
|
|
142
|
+
// was passed in
|
|
143
|
+
yield (0, db_1.doWithDB)(appId, (db) => __awaiter(this, void 0, void 0, function* () {
|
|
144
|
+
const response = yield db.put(automation);
|
|
145
|
+
automation._id = response.id;
|
|
146
|
+
automation._rev = response.rev;
|
|
147
|
+
}));
|
|
148
|
+
}
|
|
149
|
+
return automation;
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
exports.enableCronTrigger = enableCronTrigger;
|
|
105
153
|
/**
|
|
106
154
|
* This function handles checking if any webhooks need to be created or deleted for automations.
|
|
107
155
|
* @param {string} appId The ID of the app in which we are checking for webhooks
|
|
@@ -110,67 +158,73 @@ exports.enableCronTrigger = (appId, automation) => __awaiter(void 0, void 0, voi
|
|
|
110
158
|
* @returns {Promise<object|undefined>} After this is complete the new automation object may have been updated and should be
|
|
111
159
|
* written to DB (this does not write to DB as it would be wasteful to repeat).
|
|
112
160
|
*/
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
auto
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
(
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
161
|
+
function checkForWebhooks({ oldAuto, newAuto }) {
|
|
162
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
163
|
+
const appId = (0, context_1.getAppId)();
|
|
164
|
+
const oldTrigger = oldAuto ? oldAuto.definition.trigger : null;
|
|
165
|
+
const newTrigger = newAuto ? newAuto.definition.trigger : null;
|
|
166
|
+
const triggerChanged = oldTrigger && newTrigger && oldTrigger.id !== newTrigger.id;
|
|
167
|
+
function isWebhookTrigger(auto) {
|
|
168
|
+
return (auto &&
|
|
169
|
+
auto.definition.trigger &&
|
|
170
|
+
auto.definition.trigger.stepId === WH_STEP_ID);
|
|
171
|
+
}
|
|
172
|
+
// need to delete webhook
|
|
173
|
+
if (isWebhookTrigger(oldAuto) &&
|
|
174
|
+
(!isWebhookTrigger(newAuto) || triggerChanged) &&
|
|
175
|
+
oldTrigger.webhookId) {
|
|
176
|
+
try {
|
|
177
|
+
let db = (0, context_1.getAppDB)();
|
|
178
|
+
// need to get the webhook to get the rev
|
|
179
|
+
const webhook = yield db.get(oldTrigger.webhookId);
|
|
180
|
+
const ctx = {
|
|
181
|
+
appId,
|
|
182
|
+
params: { id: webhook._id, rev: webhook._rev },
|
|
183
|
+
};
|
|
184
|
+
// might be updating - reset the inputs to remove the URLs
|
|
185
|
+
if (newTrigger) {
|
|
186
|
+
delete newTrigger.webhookId;
|
|
187
|
+
newTrigger.inputs = {};
|
|
188
|
+
}
|
|
189
|
+
yield webhooks.destroy(ctx);
|
|
190
|
+
}
|
|
191
|
+
catch (err) {
|
|
192
|
+
// don't worry about not being able to delete, if it doesn't exist all good
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// need to create webhook
|
|
196
|
+
if ((!isWebhookTrigger(oldAuto) || triggerChanged) &&
|
|
197
|
+
isWebhookTrigger(newAuto)) {
|
|
131
198
|
const ctx = {
|
|
132
199
|
appId,
|
|
133
|
-
|
|
200
|
+
request: {
|
|
201
|
+
body: new webhooks.Webhook("Automation webhook", constants_1.WebhookType.AUTOMATION, newAuto._id),
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
yield webhooks.save(ctx);
|
|
205
|
+
const id = ctx.body.webhook._id;
|
|
206
|
+
newTrigger.webhookId = id;
|
|
207
|
+
// the app ID has to be development for this endpoint
|
|
208
|
+
// it can only be used when building the app
|
|
209
|
+
// but the trigger endpoint will always be used in production
|
|
210
|
+
const prodAppId = (0, db_1.getProdAppID)(appId);
|
|
211
|
+
newTrigger.inputs = {
|
|
212
|
+
schemaUrl: `api/webhooks/schema/${appId}/${id}`,
|
|
213
|
+
triggerUrl: `api/webhooks/trigger/${prodAppId}/${id}`,
|
|
134
214
|
};
|
|
135
|
-
// might be updating - reset the inputs to remove the URLs
|
|
136
|
-
if (newTrigger) {
|
|
137
|
-
delete newTrigger.webhookId;
|
|
138
|
-
newTrigger.inputs = {};
|
|
139
|
-
}
|
|
140
|
-
yield webhooks.destroy(ctx);
|
|
141
|
-
}
|
|
142
|
-
catch (err) {
|
|
143
|
-
// don't worry about not being able to delete, if it doesn't exist all good
|
|
144
215
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
const ctx = {
|
|
150
|
-
appId,
|
|
151
|
-
request: {
|
|
152
|
-
body: new webhooks.Webhook("Automation webhook", WebhookType.AUTOMATION, newAuto._id),
|
|
153
|
-
},
|
|
154
|
-
};
|
|
155
|
-
yield webhooks.save(ctx);
|
|
156
|
-
const id = ctx.body.webhook._id;
|
|
157
|
-
newTrigger.webhookId = id;
|
|
158
|
-
// the app ID has to be development for this endpoint
|
|
159
|
-
// it can only be used when building the app
|
|
160
|
-
// but the trigger endpoint will always be used in production
|
|
161
|
-
const prodAppId = getProdAppID(appId);
|
|
162
|
-
newTrigger.inputs = {
|
|
163
|
-
schemaUrl: `api/webhooks/schema/${appId}/${id}`,
|
|
164
|
-
triggerUrl: `api/webhooks/trigger/${prodAppId}/${id}`,
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
return newAuto;
|
|
168
|
-
});
|
|
216
|
+
return newAuto;
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
exports.checkForWebhooks = checkForWebhooks;
|
|
169
220
|
/**
|
|
170
221
|
* When removing an app/unpublishing it need to make sure automations are cleaned up (cron).
|
|
171
222
|
* @param appId {string} the app that is being removed.
|
|
172
223
|
* @return {Promise<void>} clean is complete if this succeeds.
|
|
173
224
|
*/
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
225
|
+
function cleanupAutomations(appId) {
|
|
226
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
227
|
+
yield disableAllCrons(appId);
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
exports.cleanupAutomations = cleanupAutomations;
|
package/dist/constants/index.js
CHANGED
|
@@ -176,5 +176,10 @@ exports.BuildSchemaErrors = {
|
|
|
176
176
|
exports.WebhookType = {
|
|
177
177
|
AUTOMATION: "automation",
|
|
178
178
|
};
|
|
179
|
+
exports.AutomationErrors = {
|
|
180
|
+
INCORRECT_TYPE: "INCORRECT_TYPE",
|
|
181
|
+
MAX_ITERATIONS: "MAX_ITERATIONS_REACHED",
|
|
182
|
+
FAILURE_CONDITION: "FAILURE_CONDITION_MET",
|
|
183
|
+
};
|
|
179
184
|
// pass through the list from the auth/core lib
|
|
180
185
|
exports.ObjectStoreBuckets = ObjectStoreBuckets;
|
|
@@ -51,6 +51,7 @@ var SourceNames;
|
|
|
51
51
|
SourceNames["ORACLE"] = "ORACLE";
|
|
52
52
|
SourceNames["GOOGLE_SHEETS"] = "GOOGLE_SHEETS";
|
|
53
53
|
SourceNames["FIREBASE"] = "FIREBASE";
|
|
54
|
+
SourceNames["REDIS"] = "REDIS";
|
|
54
55
|
})(SourceNames = exports.SourceNames || (exports.SourceNames = {}));
|
|
55
56
|
var IncludeRelationships;
|
|
56
57
|
(function (IncludeRelationships) {
|
package/dist/environment.js
CHANGED
|
@@ -25,7 +25,7 @@ function parseIntSafe(number) {
|
|
|
25
25
|
let inThread = false;
|
|
26
26
|
module.exports = {
|
|
27
27
|
// important
|
|
28
|
-
PORT: process.env.PORT,
|
|
28
|
+
PORT: process.env.PORT || process.env.APP_PORT,
|
|
29
29
|
JWT_SECRET: process.env.JWT_SECRET,
|
|
30
30
|
COUCH_DB_URL: process.env.COUCH_DB_URL,
|
|
31
31
|
MINIO_URL: process.env.MINIO_URL,
|
|
@@ -35,8 +35,6 @@ module.exports = {
|
|
|
35
35
|
ENABLE_ANALYTICS: process.env.ENABLE_ANALYTICS,
|
|
36
36
|
MINIO_ACCESS_KEY: process.env.MINIO_ACCESS_KEY,
|
|
37
37
|
MINIO_SECRET_KEY: process.env.MINIO_SECRET_KEY,
|
|
38
|
-
USE_QUOTAS: process.env.USE_QUOTAS,
|
|
39
|
-
EXCLUDE_QUOTAS_TENANTS: process.env.EXCLUDE_QUOTAS_TENANTS,
|
|
40
38
|
REDIS_URL: process.env.REDIS_URL,
|
|
41
39
|
REDIS_PASSWORD: process.env.REDIS_PASSWORD,
|
|
42
40
|
INTERNAL_API_KEY: process.env.INTERNAL_API_KEY,
|
|
@@ -56,6 +54,7 @@ module.exports = {
|
|
|
56
54
|
LOG_LEVEL: process.env.LOG_LEVEL,
|
|
57
55
|
AUTOMATION_DIRECTORY: process.env.AUTOMATION_DIRECTORY,
|
|
58
56
|
AUTOMATION_BUCKET: process.env.AUTOMATION_BUCKET,
|
|
57
|
+
AUTOMATION_MAX_ITERATIONS: process.env.AUTOMATION_MAX_ITERATIONS,
|
|
59
58
|
SENDGRID_API_KEY: process.env.SENDGRID_API_KEY,
|
|
60
59
|
DYNAMO_ENDPOINT: process.env.DYNAMO_ENDPOINT,
|
|
61
60
|
POSTHOG_TOKEN: process.env.POSTHOG_TOKEN,
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const global_agent_1 = require("global-agent");
|
|
2
4
|
const fixPath = require("fix-path");
|
|
3
5
|
const { checkDevelopmentEnvironment } = require("./utilities/fileSystem");
|
|
4
6
|
function runServer() {
|
|
@@ -6,6 +8,8 @@ function runServer() {
|
|
|
6
8
|
// will print an error explaining what to do
|
|
7
9
|
checkDevelopmentEnvironment();
|
|
8
10
|
fixPath();
|
|
11
|
+
// this will setup http and https proxies form env variables
|
|
12
|
+
(0, global_agent_1.bootstrap)();
|
|
9
13
|
require("./app");
|
|
10
14
|
}
|
|
11
15
|
runServer();
|
|
@@ -37,7 +37,7 @@ function parse(input) {
|
|
|
37
37
|
if (input === MAX_ISO_DATE || input === MIN_ISO_DATE) {
|
|
38
38
|
return null;
|
|
39
39
|
}
|
|
40
|
-
if (utils_1.isIsoDateString(input)) {
|
|
40
|
+
if ((0, utils_1.isIsoDateString)(input)) {
|
|
41
41
|
return new Date(input);
|
|
42
42
|
}
|
|
43
43
|
return input;
|
|
@@ -370,7 +370,7 @@ class SqlQueryBuilder extends sqlTable_1.default {
|
|
|
370
370
|
*/
|
|
371
371
|
_query(json, opts = {}) {
|
|
372
372
|
const sqlClient = this.getSqlClient();
|
|
373
|
-
const client = knex_1.knex({ client: sqlClient });
|
|
373
|
+
const client = (0, knex_1.knex)({ client: sqlClient });
|
|
374
374
|
let query;
|
|
375
375
|
const builder = new InternalBuilder(sqlClient);
|
|
376
376
|
switch (this._operation(json)) {
|
|
@@ -60,7 +60,7 @@ function generateSchema(schema, table, tables, oldTable = null, renamed) {
|
|
|
60
60
|
if (!column.foreignKey || !column.tableId) {
|
|
61
61
|
throw "Invalid relationship schema";
|
|
62
62
|
}
|
|
63
|
-
const { tableName } = utils_1.breakExternalTableId(column.tableId);
|
|
63
|
+
const { tableName } = (0, utils_1.breakExternalTableId)(column.tableId);
|
|
64
64
|
// @ts-ignore
|
|
65
65
|
const relatedTable = tables[tableName];
|
|
66
66
|
if (!relatedTable) {
|
|
@@ -124,7 +124,7 @@ class SqlTableQueryBuilder {
|
|
|
124
124
|
}
|
|
125
125
|
_tableQuery(json) {
|
|
126
126
|
var _a;
|
|
127
|
-
let client = knex_1.knex({ client: this.sqlClient }).schema;
|
|
127
|
+
let client = (0, knex_1.knex)({ client: this.sqlClient }).schema;
|
|
128
128
|
if ((_a = json === null || json === void 0 ? void 0 : json.endpoint) === null || _a === void 0 ? void 0 : _a.schema) {
|
|
129
129
|
client = client.withSchema(json.endpoint.schema);
|
|
130
130
|
}
|
|
@@ -191,7 +191,7 @@ var GoogleSheetsModule;
|
|
|
191
191
|
}
|
|
192
192
|
// create tables
|
|
193
193
|
tables[sheet.title] = {
|
|
194
|
-
_id: utils_1.buildExternalTableId(datasourceId, sheet.title),
|
|
194
|
+
_id: (0, utils_1.buildExternalTableId)(datasourceId, sheet.title),
|
|
195
195
|
name: sheet.title,
|
|
196
196
|
primary: ["rowNumber"],
|
|
197
197
|
schema,
|
|
@@ -12,6 +12,7 @@ const arangodb = require("./arangodb");
|
|
|
12
12
|
const rest = require("./rest");
|
|
13
13
|
const googlesheets = require("./googlesheets");
|
|
14
14
|
const firebase = require("./firebase");
|
|
15
|
+
const redis = require("./redis");
|
|
15
16
|
const { SourceNames } = require("../definitions/datasource");
|
|
16
17
|
const environment = require("../environment");
|
|
17
18
|
const DEFINITIONS = {
|
|
@@ -26,6 +27,8 @@ const DEFINITIONS = {
|
|
|
26
27
|
[SourceNames.MYSQL]: mysql.schema,
|
|
27
28
|
[SourceNames.ARANGODB]: arangodb.schema,
|
|
28
29
|
[SourceNames.REST]: rest.schema,
|
|
30
|
+
[SourceNames.FIREBASE]: firebase.schema,
|
|
31
|
+
[SourceNames.REDIS]: redis.schema,
|
|
29
32
|
};
|
|
30
33
|
const INTEGRATIONS = {
|
|
31
34
|
[SourceNames.POSTGRES]: postgres.integration,
|
|
@@ -41,6 +44,7 @@ const INTEGRATIONS = {
|
|
|
41
44
|
[SourceNames.REST]: rest.integration,
|
|
42
45
|
[SourceNames.FIREBASE]: firebase.integration,
|
|
43
46
|
[SourceNames.GOOGLE_SHEETS]: googlesheets.integration,
|
|
47
|
+
[SourceNames.REDIS]: redis.integration,
|
|
44
48
|
};
|
|
45
49
|
// optionally add oracle integration if the oracle binary can be installed
|
|
46
50
|
if (!(process.arch === "arm64" && process.platform === "darwin")) {
|
|
@@ -161,7 +161,7 @@ var MSSQLModule;
|
|
|
161
161
|
}
|
|
162
162
|
runSQL(sql) {
|
|
163
163
|
return __awaiter(this, void 0, void 0, function* () {
|
|
164
|
-
return (yield this.internalQuery(utils_1.getSqlQuery(sql))).recordset;
|
|
164
|
+
return (yield this.internalQuery((0, utils_1.getSqlQuery)(sql))).recordset;
|
|
165
165
|
});
|
|
166
166
|
}
|
|
167
167
|
/**
|
|
@@ -201,7 +201,7 @@ var MSSQLModule;
|
|
|
201
201
|
if (typeof name !== "string") {
|
|
202
202
|
continue;
|
|
203
203
|
}
|
|
204
|
-
const type = utils_1.convertSqlType(def.DATA_TYPE);
|
|
204
|
+
const type = (0, utils_1.convertSqlType)(def.DATA_TYPE);
|
|
205
205
|
schema[name] = {
|
|
206
206
|
autocolumn: !!autoColumns.find((col) => col === name),
|
|
207
207
|
name: name,
|
|
@@ -209,13 +209,13 @@ var MSSQLModule;
|
|
|
209
209
|
};
|
|
210
210
|
}
|
|
211
211
|
tables[tableName] = {
|
|
212
|
-
_id: utils_1.buildExternalTableId(datasourceId, tableName),
|
|
212
|
+
_id: (0, utils_1.buildExternalTableId)(datasourceId, tableName),
|
|
213
213
|
primary: primaryKeys,
|
|
214
214
|
name: tableName,
|
|
215
215
|
schema,
|
|
216
216
|
};
|
|
217
217
|
}
|
|
218
|
-
const final = utils_1.finaliseExternalTables(tables, entities);
|
|
218
|
+
const final = (0, utils_1.finaliseExternalTables)(tables, entities);
|
|
219
219
|
this.tables = final.tables;
|
|
220
220
|
this.schemaErrors = final.errors;
|
|
221
221
|
});
|
|
@@ -223,28 +223,28 @@ var MSSQLModule;
|
|
|
223
223
|
read(query) {
|
|
224
224
|
return __awaiter(this, void 0, void 0, function* () {
|
|
225
225
|
yield this.connect();
|
|
226
|
-
const response = yield this.internalQuery(utils_1.getSqlQuery(query));
|
|
226
|
+
const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
|
|
227
227
|
return response.recordset;
|
|
228
228
|
});
|
|
229
229
|
}
|
|
230
230
|
create(query) {
|
|
231
231
|
return __awaiter(this, void 0, void 0, function* () {
|
|
232
232
|
yield this.connect();
|
|
233
|
-
const response = yield this.internalQuery(utils_1.getSqlQuery(query));
|
|
233
|
+
const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
|
|
234
234
|
return response.recordset || [{ created: true }];
|
|
235
235
|
});
|
|
236
236
|
}
|
|
237
237
|
update(query) {
|
|
238
238
|
return __awaiter(this, void 0, void 0, function* () {
|
|
239
239
|
yield this.connect();
|
|
240
|
-
const response = yield this.internalQuery(utils_1.getSqlQuery(query));
|
|
240
|
+
const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
|
|
241
241
|
return response.recordset || [{ updated: true }];
|
|
242
242
|
});
|
|
243
243
|
}
|
|
244
244
|
delete(query) {
|
|
245
245
|
return __awaiter(this, void 0, void 0, function* () {
|
|
246
246
|
yield this.connect();
|
|
247
|
-
const response = yield this.internalQuery(utils_1.getSqlQuery(query));
|
|
247
|
+
const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
|
|
248
248
|
return response.recordset || [{ deleted: true }];
|
|
249
249
|
});
|
|
250
250
|
}
|
|
@@ -88,8 +88,8 @@ var MySQLModule;
|
|
|
88
88
|
}
|
|
89
89
|
// if not a number, see if it is a date - important to do in this order as any
|
|
90
90
|
// integer will be considered a valid date
|
|
91
|
-
else if (dayjs_1.default(binding).isValid()) {
|
|
92
|
-
bindings[i] = dayjs_1.default(binding).toDate();
|
|
91
|
+
else if ((0, dayjs_1.default)(binding).isValid()) {
|
|
92
|
+
bindings[i] = (0, dayjs_1.default)(binding).toDate();
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
return bindings;
|
|
@@ -175,13 +175,13 @@ var MySQLModule;
|
|
|
175
175
|
schema[columnName] = {
|
|
176
176
|
name: columnName,
|
|
177
177
|
autocolumn: isAuto,
|
|
178
|
-
type: utils_1.convertSqlType(column.Type),
|
|
178
|
+
type: (0, utils_1.convertSqlType)(column.Type),
|
|
179
179
|
constraints,
|
|
180
180
|
};
|
|
181
181
|
}
|
|
182
182
|
if (!tables[tableName]) {
|
|
183
183
|
tables[tableName] = {
|
|
184
|
-
_id: utils_1.buildExternalTableId(datasourceId, tableName),
|
|
184
|
+
_id: (0, utils_1.buildExternalTableId)(datasourceId, tableName),
|
|
185
185
|
primary: primaryKeys,
|
|
186
186
|
name: tableName,
|
|
187
187
|
schema,
|
|
@@ -192,31 +192,31 @@ var MySQLModule;
|
|
|
192
192
|
finally {
|
|
193
193
|
yield this.disconnect();
|
|
194
194
|
}
|
|
195
|
-
const final = utils_1.finaliseExternalTables(tables, entities);
|
|
195
|
+
const final = (0, utils_1.finaliseExternalTables)(tables, entities);
|
|
196
196
|
this.tables = final.tables;
|
|
197
197
|
this.schemaErrors = final.errors;
|
|
198
198
|
});
|
|
199
199
|
}
|
|
200
200
|
create(query) {
|
|
201
201
|
return __awaiter(this, void 0, void 0, function* () {
|
|
202
|
-
const results = yield this.internalQuery(utils_1.getSqlQuery(query));
|
|
202
|
+
const results = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
|
|
203
203
|
return results.length ? results : [{ created: true }];
|
|
204
204
|
});
|
|
205
205
|
}
|
|
206
206
|
read(query) {
|
|
207
207
|
return __awaiter(this, void 0, void 0, function* () {
|
|
208
|
-
return this.internalQuery(utils_1.getSqlQuery(query));
|
|
208
|
+
return this.internalQuery((0, utils_1.getSqlQuery)(query));
|
|
209
209
|
});
|
|
210
210
|
}
|
|
211
211
|
update(query) {
|
|
212
212
|
return __awaiter(this, void 0, void 0, function* () {
|
|
213
|
-
const results = yield this.internalQuery(utils_1.getSqlQuery(query));
|
|
213
|
+
const results = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
|
|
214
214
|
return results.length ? results : [{ updated: true }];
|
|
215
215
|
});
|
|
216
216
|
}
|
|
217
217
|
delete(query) {
|
|
218
218
|
return __awaiter(this, void 0, void 0, function* () {
|
|
219
|
-
const results = yield this.internalQuery(utils_1.getSqlQuery(query));
|
|
219
|
+
const results = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
|
|
220
220
|
return results.length ? results : [{ deleted: true }];
|
|
221
221
|
});
|
|
222
222
|
}
|