@budibase/server 1.0.162 → 1.0.163
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.54fa98bf.js → index.cdd48cbf.js} +1 -1
- package/builder/index.html +1 -1
- package/coverage/clover.xml +2 -2
- 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/auth.js.html +1 -1
- package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
- package/coverage/lcov-report/api/controllers/component.js.html +1 -1
- package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +1 -1
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
- package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
- package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
- package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
- package/coverage/lcov-report/api/controllers/query/index.html +1 -1
- package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/role.js.html +1 -1
- package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/index.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
- package/coverage/lcov-report/api/controllers/script.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
- package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +1 -1
- 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/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 +1 -1
- 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/migrations.js.html +1 -1
- 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/screen.js.html +1 -1
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- 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/utils/index.html +1 -1
- package/coverage/lcov-report/api/routes/utils/validators.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 +1 -1
- package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
- package/coverage/lcov-report/automations/bullboard.js.html +1 -1
- package/coverage/lcov-report/automations/index.html +1 -1
- package/coverage/lcov-report/automations/index.js.html +1 -1
- package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
- package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
- package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
- package/coverage/lcov-report/automations/steps/index.html +1 -1
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
- package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
- package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
- package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
- package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
- package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/triggers.js.html +1 -1
- package/coverage/lcov-report/constants/index.html +1 -1
- package/coverage/lcov-report/constants/index.js.html +1 -1
- package/coverage/lcov-report/constants/layouts.js.html +1 -1
- package/coverage/lcov-report/constants/screens.js.html +1 -1
- package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
- package/coverage/lcov-report/db/index.html +1 -1
- package/coverage/lcov-report/db/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
- package/coverage/lcov-report/db/newid.js.html +1 -1
- package/coverage/lcov-report/db/utils.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/events/utils.js.html +1 -1
- package/coverage/lcov-report/index.html +1 -1
- 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/builder.js.html +1 -1
- package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
- package/coverage/lcov-report/middleware/index.html +1 -1
- package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
- package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
- 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/utils.js.html +1 -1
- package/coverage/lcov-report/threads/automation.js.html +1 -1
- package/coverage/lcov-report/threads/index.html +1 -1
- package/coverage/lcov-report/threads/query.js.html +1 -1
- package/coverage/lcov-report/threads/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
- package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
- package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
- package/coverage/lcov-report/utilities/global.js.html +1 -1
- package/coverage/lcov-report/utilities/index.html +1 -1
- package/coverage/lcov-report/utilities/index.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
- package/coverage/lcov-report/utilities/security.js.html +1 -1
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +1 -1
- package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
- package/dist/integrations/mongodb.js +77 -13
- package/dist/package.json +5 -5
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/src/integrations/mongodb.ts +112 -13
- package/src/integrations/tests/mongo.spec.js +34 -17
|
@@ -10,9 +10,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
const datasource_1 = require("../definitions/datasource");
|
|
13
|
+
const mongodb_1 = require("mongodb");
|
|
13
14
|
var MongoDBModule;
|
|
14
15
|
(function (MongoDBModule) {
|
|
15
|
-
const { MongoClient } = require("mongodb");
|
|
16
16
|
const SCHEMA = {
|
|
17
17
|
docs: "https://github.com/mongodb/node-mongodb-native",
|
|
18
18
|
friendlyName: "MongoDB",
|
|
@@ -64,27 +64,79 @@ var MongoDBModule;
|
|
|
64
64
|
class MongoIntegration {
|
|
65
65
|
constructor(config) {
|
|
66
66
|
this.config = config;
|
|
67
|
-
this.client = new MongoClient(config.connectionString);
|
|
67
|
+
this.client = new mongodb_1.MongoClient(config.connectionString);
|
|
68
68
|
}
|
|
69
69
|
connect() {
|
|
70
70
|
return __awaiter(this, void 0, void 0, function* () {
|
|
71
71
|
return this.client.connect();
|
|
72
72
|
});
|
|
73
73
|
}
|
|
74
|
+
createObjectIds(json) {
|
|
75
|
+
const self = this;
|
|
76
|
+
function interpolateObjectIds(json) {
|
|
77
|
+
var _a;
|
|
78
|
+
for (let field of Object.keys(json)) {
|
|
79
|
+
if (json[field] instanceof Object) {
|
|
80
|
+
json[field] = self.createObjectIds(json[field]);
|
|
81
|
+
}
|
|
82
|
+
if (field === "_id" && typeof json[field] === "string") {
|
|
83
|
+
const id = (_a = json["_id"].match(/(?<=objectid\(['"]).*(?=['"]\))/gi)) === null || _a === void 0 ? void 0 : _a[0];
|
|
84
|
+
if (id) {
|
|
85
|
+
json["_id"] = mongodb_1.ObjectID.createFromHexString(id);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return json;
|
|
90
|
+
}
|
|
91
|
+
if (Array.isArray(json)) {
|
|
92
|
+
for (let i = 0; i < json.length; i++) {
|
|
93
|
+
json[i] = interpolateObjectIds(json[i]);
|
|
94
|
+
}
|
|
95
|
+
return json;
|
|
96
|
+
}
|
|
97
|
+
return interpolateObjectIds(json);
|
|
98
|
+
}
|
|
99
|
+
parseQueryParams(params, mode) {
|
|
100
|
+
let queryParams = params.split(/(?<=(},)).*{/g);
|
|
101
|
+
let group1 = queryParams[0];
|
|
102
|
+
let group2 = queryParams[2];
|
|
103
|
+
let group3 = queryParams[4];
|
|
104
|
+
if (group1) {
|
|
105
|
+
group1 = JSON.parse(group1.replace(/,+$/, ""));
|
|
106
|
+
}
|
|
107
|
+
if (group2) {
|
|
108
|
+
group2 = JSON.parse("{" + group2.replace(/,+$/, ""));
|
|
109
|
+
}
|
|
110
|
+
if (group3) {
|
|
111
|
+
group3 = JSON.parse("{" + group3.replace(/,+$/, ""));
|
|
112
|
+
}
|
|
113
|
+
if (mode === "update") {
|
|
114
|
+
return {
|
|
115
|
+
filter: group1,
|
|
116
|
+
update: group2,
|
|
117
|
+
options: group3 !== null && group3 !== void 0 ? group3 : {},
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
return {
|
|
121
|
+
filter: group1,
|
|
122
|
+
options: group2 !== null && group2 !== void 0 ? group2 : {},
|
|
123
|
+
};
|
|
124
|
+
}
|
|
74
125
|
create(query) {
|
|
75
126
|
return __awaiter(this, void 0, void 0, function* () {
|
|
76
127
|
try {
|
|
77
128
|
yield this.connect();
|
|
78
129
|
const db = this.client.db(this.config.db);
|
|
79
130
|
const collection = db.collection(query.extra.collection);
|
|
131
|
+
let json = this.createObjectIds(query.json);
|
|
80
132
|
// For mongodb we add an extra actionType to specify
|
|
81
133
|
// which method we want to call on the collection
|
|
82
134
|
switch (query.extra.actionTypes) {
|
|
83
135
|
case "insertOne": {
|
|
84
|
-
return yield collection.insertOne(
|
|
136
|
+
return yield collection.insertOne(json);
|
|
85
137
|
}
|
|
86
138
|
case "insertMany": {
|
|
87
|
-
return yield collection.
|
|
139
|
+
return yield collection.insertMany(json);
|
|
88
140
|
}
|
|
89
141
|
default: {
|
|
90
142
|
throw new Error(`actionType ${query.extra.actionTypes} does not exist on DB for create`);
|
|
@@ -106,21 +158,23 @@ var MongoDBModule;
|
|
|
106
158
|
yield this.connect();
|
|
107
159
|
const db = this.client.db(this.config.db);
|
|
108
160
|
const collection = db.collection(query.extra.collection);
|
|
161
|
+
let json = this.createObjectIds(query.json);
|
|
109
162
|
switch (query.extra.actionTypes) {
|
|
110
163
|
case "find": {
|
|
111
|
-
return yield collection.find(
|
|
164
|
+
return yield collection.find(json).toArray();
|
|
112
165
|
}
|
|
113
166
|
case "findOne": {
|
|
114
|
-
return yield collection.findOne(
|
|
167
|
+
return yield collection.findOne(json);
|
|
115
168
|
}
|
|
116
169
|
case "findOneAndUpdate": {
|
|
117
|
-
|
|
170
|
+
let findAndUpdateJson = json;
|
|
171
|
+
return yield collection.findOneAndUpdate(findAndUpdateJson.filter, findAndUpdateJson.update, findAndUpdateJson.options);
|
|
118
172
|
}
|
|
119
173
|
case "count": {
|
|
120
|
-
return yield collection.countDocuments(
|
|
174
|
+
return yield collection.countDocuments(json);
|
|
121
175
|
}
|
|
122
176
|
case "distinct": {
|
|
123
|
-
return yield collection.distinct(
|
|
177
|
+
return yield collection.distinct(json);
|
|
124
178
|
}
|
|
125
179
|
default: {
|
|
126
180
|
throw new Error(`actionType ${query.extra.actionTypes} does not exist on DB for read`);
|
|
@@ -142,12 +196,17 @@ var MongoDBModule;
|
|
|
142
196
|
yield this.connect();
|
|
143
197
|
const db = this.client.db(this.config.db);
|
|
144
198
|
const collection = db.collection(query.extra.collection);
|
|
199
|
+
let queryJson = query.json;
|
|
200
|
+
if (typeof queryJson === "string") {
|
|
201
|
+
queryJson = this.parseQueryParams(queryJson, "update");
|
|
202
|
+
}
|
|
203
|
+
let json = this.createObjectIds(queryJson);
|
|
145
204
|
switch (query.extra.actionTypes) {
|
|
146
205
|
case "updateOne": {
|
|
147
|
-
return yield collection.updateOne(
|
|
206
|
+
return yield collection.updateOne(json.filter, json.update, json.options);
|
|
148
207
|
}
|
|
149
208
|
case "updateMany": {
|
|
150
|
-
return yield collection.updateMany(
|
|
209
|
+
return yield collection.updateMany(json.filter, json.update, json.options);
|
|
151
210
|
}
|
|
152
211
|
default: {
|
|
153
212
|
throw new Error(`actionType ${query.extra.actionTypes} does not exist on DB for update`);
|
|
@@ -169,12 +228,17 @@ var MongoDBModule;
|
|
|
169
228
|
yield this.connect();
|
|
170
229
|
const db = this.client.db(this.config.db);
|
|
171
230
|
const collection = db.collection(query.extra.collection);
|
|
231
|
+
let queryJson = query.json;
|
|
232
|
+
if (typeof queryJson === "string") {
|
|
233
|
+
queryJson = this.parseQueryParams(queryJson, "delete");
|
|
234
|
+
}
|
|
235
|
+
let json = this.createObjectIds(queryJson);
|
|
172
236
|
switch (query.extra.actionTypes) {
|
|
173
237
|
case "deleteOne": {
|
|
174
|
-
return yield collection.deleteOne(
|
|
238
|
+
return yield collection.deleteOne(json.filter, json.options);
|
|
175
239
|
}
|
|
176
240
|
case "deleteMany": {
|
|
177
|
-
return yield collection.deleteMany(
|
|
241
|
+
return yield collection.deleteMany(json.filter, json.options);
|
|
178
242
|
}
|
|
179
243
|
default: {
|
|
180
244
|
throw new Error(`actionType ${query.extra.actionTypes} does not exist on DB for delete`);
|
package/dist/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@budibase/server",
|
|
3
3
|
"email": "hi@budibase.com",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.162",
|
|
5
5
|
"description": "Budibase Web Server",
|
|
6
6
|
"main": "src/index.ts",
|
|
7
7
|
"repository": {
|
|
@@ -69,10 +69,10 @@
|
|
|
69
69
|
"license": "GPL-3.0",
|
|
70
70
|
"dependencies": {
|
|
71
71
|
"@apidevtools/swagger-parser": "^10.0.3",
|
|
72
|
-
"@budibase/backend-core": "^1.0.
|
|
73
|
-
"@budibase/client": "^1.0.
|
|
74
|
-
"@budibase/pro": "1.0.
|
|
75
|
-
"@budibase/string-templates": "^1.0.
|
|
72
|
+
"@budibase/backend-core": "^1.0.162",
|
|
73
|
+
"@budibase/client": "^1.0.162",
|
|
74
|
+
"@budibase/pro": "1.0.162",
|
|
75
|
+
"@budibase/string-templates": "^1.0.162",
|
|
76
76
|
"@bull-board/api": "^3.7.0",
|
|
77
77
|
"@bull-board/koa": "^3.7.0",
|
|
78
78
|
"@elastic/elasticsearch": "7.10.0",
|