@budibase/server 0.9.190-alpha.0 → 0.9.190-alpha.12
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.7d405e74.css → index.4fb3f887.css} +1 -1
- package/builder/assets/{index.43f4c913.js → index.92596167.js} +171 -171
- package/builder/index.html +2 -2
- package/coverage/clover.xml +381 -390
- package/coverage/coverage-final.json +23 -23
- 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 +62 -80
- 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 +15 -15
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/hosting.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +29 -29
- 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 +1 -1
- package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
- package/coverage/lcov-report/api/controllers/query.js.html +34 -28
- package/coverage/lcov-report/api/controllers/role.js.html +1 -1
- package/coverage/lcov-report/api/controllers/routing.js.html +27 -27
- 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/index.js.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/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/screen.js.html +2 -2
- package/coverage/lcov-report/api/controllers/script.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 +14 -14
- package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/internal.js.html +8 -20
- package/coverage/lcov-report/api/controllers/table/utils.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 +5 -5
- 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/hosting.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +1 -1
- package/coverage/lcov-report/api/routes/index.js.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/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 +536 -2
- 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 +1 -1
- package/coverage/lcov-report/api/routes/table.js.html +436 -7
- 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 +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/createRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/deleteRow.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/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/automations/utils.js.html +5 -5
- 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 +2 -2
- package/coverage/lcov-report/db/client.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 +2 -2
- package/coverage/lcov-report/db/utils.js.html +19 -19
- 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 +25 -25
- 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 +9 -9
- package/coverage/lcov-report/middleware/builder.js.html +7 -7
- package/coverage/lcov-report/middleware/currentapp.js.html +28 -28
- 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/resourceId.js.html +7 -7
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
- package/coverage/lcov-report/middleware/utils.js.html +2 -2
- package/coverage/lcov-report/threads/automation.js.html +1 -1
- package/coverage/lcov-report/threads/index.html +1 -1
- package/coverage/lcov-report/threads/index.js.html +1 -1
- package/coverage/lcov-report/threads/query.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 +13 -13
- package/coverage/lcov-report/utilities/index.html +1 -1
- package/coverage/lcov-report/utilities/index.js.html +3 -3
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +2 -2
- 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 +2 -2
- 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/users.js.html +1 -1
- package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
- package/coverage/lcov.info +645 -658
- package/dist/api/controllers/application.js +1 -5
- package/dist/api/controllers/query.js +2 -4
- package/dist/api/controllers/row/ExternalRequest.js +46 -22
- package/dist/api/controllers/table/internal.js +0 -4
- package/dist/api/routes/row.js +178 -0
- package/dist/api/routes/table.js +148 -5
- package/dist/definitions/datasource.js +12 -1
- package/dist/integrations/base/sql.js +30 -15
- package/dist/integrations/index.js +1 -1
- package/dist/integrations/mysql.js +2 -1
- package/dist/integrations/oracle.js +42 -20
- package/dist/integrations/utils.js +1 -1
- package/dist/package.json +10 -6
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -7
- package/scripts/docs/README.md +31 -0
- package/scripts/docs/generate.js +74 -0
- package/scripts/docs/toSwagger.js +320 -0
- package/scripts/integrations/oracle/docker-compose.yml +1 -1
- package/src/api/controllers/application.js +0 -6
- package/src/api/controllers/query.js +6 -4
- package/src/api/controllers/row/ExternalRequest.ts +52 -22
- package/src/api/controllers/table/internal.js +0 -4
- package/src/api/routes/row.js +178 -0
- package/src/api/routes/table.js +148 -5
- package/src/api/routes/tests/application.spec.js +0 -2
- package/src/api/routes/tests/query.spec.js +38 -8
- package/src/api/routes/tests/screen.spec.js +1 -1
- package/src/definitions/datasource.ts +11 -0
- package/src/integrations/base/sql.ts +31 -14
- package/src/integrations/index.ts +2 -2
- package/src/integrations/mysql.ts +3 -1
- package/src/integrations/oracle.ts +43 -24
- package/src/integrations/utils.ts +6 -2
|
@@ -24,6 +24,9 @@ function parse(input) {
|
|
|
24
24
|
if (Array.isArray(input)) {
|
|
25
25
|
return JSON.stringify(input);
|
|
26
26
|
}
|
|
27
|
+
if (input == undefined) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
27
30
|
if (typeof input !== "string") {
|
|
28
31
|
return input;
|
|
29
32
|
}
|
|
@@ -45,6 +48,9 @@ function parseBody(body) {
|
|
|
45
48
|
return body;
|
|
46
49
|
}
|
|
47
50
|
function parseFilters(filters) {
|
|
51
|
+
if (!filters) {
|
|
52
|
+
return {};
|
|
53
|
+
}
|
|
48
54
|
for (let [key, value] of Object.entries(filters)) {
|
|
49
55
|
let parsed;
|
|
50
56
|
if (typeof value === "object") {
|
|
@@ -78,7 +84,7 @@ class InternalBuilder {
|
|
|
78
84
|
if (filters.oneOf) {
|
|
79
85
|
iterate(filters.oneOf, (key, array) => {
|
|
80
86
|
const fnc = allOr ? "orWhereIn" : "whereIn";
|
|
81
|
-
query = query[fnc](key, array);
|
|
87
|
+
query = query[fnc](key, Array.isArray(array) ? array : [array]);
|
|
82
88
|
});
|
|
83
89
|
}
|
|
84
90
|
if (filters.string) {
|
|
@@ -144,6 +150,23 @@ class InternalBuilder {
|
|
|
144
150
|
}
|
|
145
151
|
return query;
|
|
146
152
|
}
|
|
153
|
+
addSorting(query, json) {
|
|
154
|
+
var _a;
|
|
155
|
+
let { sort, paginate } = json;
|
|
156
|
+
if (!sort) {
|
|
157
|
+
return query;
|
|
158
|
+
}
|
|
159
|
+
const table = (_a = json.meta) === null || _a === void 0 ? void 0 : _a.table;
|
|
160
|
+
for (let [key, value] of Object.entries(sort)) {
|
|
161
|
+
const direction = value === datasource_1.SortDirection.ASCENDING ? "asc" : "desc";
|
|
162
|
+
query = query.orderBy(`${table === null || table === void 0 ? void 0 : table.name}.${key}`, direction);
|
|
163
|
+
}
|
|
164
|
+
if (this.client === utils_1.SqlClients.MS_SQL && !sort && (paginate === null || paginate === void 0 ? void 0 : paginate.limit)) {
|
|
165
|
+
// @ts-ignore
|
|
166
|
+
query = query.orderBy(`${table === null || table === void 0 ? void 0 : table.name}.${table === null || table === void 0 ? void 0 : table.primary[0]}`);
|
|
167
|
+
}
|
|
168
|
+
return query;
|
|
169
|
+
}
|
|
147
170
|
addRelationships(knex, query, fields, fromTable, relationships) {
|
|
148
171
|
if (!relationships) {
|
|
149
172
|
return query;
|
|
@@ -194,7 +217,6 @@ class InternalBuilder {
|
|
|
194
217
|
return query.insert(parsedBody);
|
|
195
218
|
}
|
|
196
219
|
read(knex, json, limit) {
|
|
197
|
-
var _a, _b;
|
|
198
220
|
let { endpoint, resource, filters, sort, paginate, relationships } = json;
|
|
199
221
|
const tableName = endpoint.entityId;
|
|
200
222
|
// select all if not specified
|
|
@@ -226,22 +248,18 @@ class InternalBuilder {
|
|
|
226
248
|
if (foundOffset) {
|
|
227
249
|
query = query.offset(foundOffset);
|
|
228
250
|
}
|
|
229
|
-
if (sort) {
|
|
230
|
-
for (let [key, value] of Object.entries(sort)) {
|
|
231
|
-
const direction = value === datasource_1.SortDirection.ASCENDING ? "asc" : "desc";
|
|
232
|
-
query = query.orderBy(key, direction);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
if (this.client === utils_1.SqlClients.MS_SQL && !sort && (paginate === null || paginate === void 0 ? void 0 : paginate.limit)) {
|
|
236
|
-
// @ts-ignore
|
|
237
|
-
query = query.orderBy((_b = (_a = json.meta) === null || _a === void 0 ? void 0 : _a.table) === null || _b === void 0 ? void 0 : _b.primary[0]);
|
|
238
|
-
}
|
|
239
251
|
query = this.addFilters(tableName, query, filters);
|
|
252
|
+
// add sorting to pre-query
|
|
253
|
+
query = this.addSorting(query, json);
|
|
240
254
|
// @ts-ignore
|
|
241
255
|
let preQuery = knex({
|
|
242
256
|
// @ts-ignore
|
|
243
257
|
[tableName]: query,
|
|
244
258
|
}).select(selectStatement);
|
|
259
|
+
// have to add after as well (this breaks MS-SQL)
|
|
260
|
+
if (this.client !== utils_1.SqlClients.MS_SQL) {
|
|
261
|
+
preQuery = this.addSorting(preQuery, json);
|
|
262
|
+
}
|
|
245
263
|
// handle joins
|
|
246
264
|
return this.addRelationships(knex, preQuery, selectStatement, tableName, relationships);
|
|
247
265
|
}
|
|
@@ -379,9 +397,6 @@ class SqlQueryBuilder extends sqlTable_1.default {
|
|
|
379
397
|
else if (sqlClient === utils_1.SqlClients.MY_SQL) {
|
|
380
398
|
id = results === null || results === void 0 ? void 0 : results.insertId;
|
|
381
399
|
}
|
|
382
|
-
else if (sqlClient === utils_1.SqlClients.ORACLE) {
|
|
383
|
-
id = response.outBinds[0][0];
|
|
384
|
-
}
|
|
385
400
|
row = processFn(yield this.getReturningRow(queryFn, this.checkLookupKeys(id, json)));
|
|
386
401
|
}
|
|
387
402
|
if (operation !== datasource_1.Operation.READ) {
|
|
@@ -38,7 +38,7 @@ const INTEGRATIONS = {
|
|
|
38
38
|
[SourceNames.REST]: rest.integration,
|
|
39
39
|
};
|
|
40
40
|
// optionally add oracle integration if the oracle binary can be installed
|
|
41
|
-
if (!(process.arch ===
|
|
41
|
+
if (!(process.arch === "arm64" && process.platform === "darwin")) {
|
|
42
42
|
const oracle = require("./oracle");
|
|
43
43
|
DEFINITIONS[SourceNames.ORACLE] = oracle.schema;
|
|
44
44
|
INTEGRATIONS[SourceNames.ORACLE] = oracle.integration;
|
|
@@ -102,7 +102,8 @@ var MySQLModule;
|
|
|
102
102
|
this.client.connect();
|
|
103
103
|
// get the tables first
|
|
104
104
|
const tablesResp = yield internalQuery(this.client, { sql: "SHOW TABLES;" }, false);
|
|
105
|
-
const tableNames = tablesResp.map((obj) => obj[`Tables_in_${database
|
|
105
|
+
const tableNames = tablesResp.map((obj) => obj[`Tables_in_${database}`] ||
|
|
106
|
+
obj[`Tables_in_${database.toLowerCase()}`]);
|
|
106
107
|
for (let tableName of tableNames) {
|
|
107
108
|
const primaryKeys = [];
|
|
108
109
|
const schema = {};
|
|
@@ -262,26 +262,13 @@ var OracleModule;
|
|
|
262
262
|
this.schemaErrors = final.errors;
|
|
263
263
|
});
|
|
264
264
|
}
|
|
265
|
-
|
|
266
|
-
* Knex default returning behaviour does not work with oracle
|
|
267
|
-
* Manually add the behaviour for the return column
|
|
268
|
-
*/
|
|
269
|
-
addReturning(query, bindings, returnColumn) {
|
|
270
|
-
if (bindings instanceof Array) {
|
|
271
|
-
bindings.push({ dir: oracledb_1.default.BIND_OUT });
|
|
272
|
-
query.sql = query.sql + ` returning \"${returnColumn}\" into :${bindings.length}`;
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
internalQuery(query, returnColum, operation) {
|
|
265
|
+
internalQuery(query) {
|
|
276
266
|
return __awaiter(this, void 0, void 0, function* () {
|
|
277
267
|
let connection;
|
|
278
268
|
try {
|
|
279
269
|
connection = yield this.getConnection();
|
|
280
270
|
const options = { autoCommit: true };
|
|
281
271
|
const bindings = query.bindings || [];
|
|
282
|
-
if (returnColum && (operation === datasource_1.Operation.CREATE || operation === datasource_1.Operation.UPDATE)) {
|
|
283
|
-
this.addReturning(query, bindings, returnColum);
|
|
284
|
-
}
|
|
285
272
|
const result = yield connection.execute(query.sql, bindings, options);
|
|
286
273
|
return result;
|
|
287
274
|
}
|
|
@@ -328,13 +315,48 @@ var OracleModule;
|
|
|
328
315
|
});
|
|
329
316
|
}
|
|
330
317
|
query(json) {
|
|
318
|
+
var _a, _b, _c;
|
|
331
319
|
return __awaiter(this, void 0, void 0, function* () {
|
|
332
|
-
const
|
|
333
|
-
const
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
320
|
+
const operation = this._operation(json);
|
|
321
|
+
const input = this._query(json, { disableReturning: true });
|
|
322
|
+
if (Array.isArray(input)) {
|
|
323
|
+
const responses = [];
|
|
324
|
+
for (let query of input) {
|
|
325
|
+
responses.push(yield this.internalQuery(query));
|
|
326
|
+
}
|
|
327
|
+
return responses;
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
// read the row to be deleted up front for the return
|
|
331
|
+
let deletedRows;
|
|
332
|
+
if (operation === datasource_1.Operation.DELETE) {
|
|
333
|
+
const queryFn = (query) => this.internalQuery(query);
|
|
334
|
+
deletedRows = yield this.getReturningRow(queryFn, json);
|
|
335
|
+
}
|
|
336
|
+
// run the query
|
|
337
|
+
const response = yield this.internalQuery(input);
|
|
338
|
+
// get the results or return the created / updated / deleted row
|
|
339
|
+
if ((_a = deletedRows === null || deletedRows === void 0 ? void 0 : deletedRows.rows) === null || _a === void 0 ? void 0 : _a.length) {
|
|
340
|
+
return deletedRows.rows;
|
|
341
|
+
}
|
|
342
|
+
else if ((_b = response.rows) === null || _b === void 0 ? void 0 : _b.length) {
|
|
343
|
+
return response.rows;
|
|
344
|
+
}
|
|
345
|
+
else {
|
|
346
|
+
// get the last row that was updated
|
|
347
|
+
if (response.lastRowid &&
|
|
348
|
+
((_c = json.endpoint) === null || _c === void 0 ? void 0 : _c.entityId) &&
|
|
349
|
+
operation !== datasource_1.Operation.DELETE) {
|
|
350
|
+
const lastRow = yield this.internalQuery({
|
|
351
|
+
sql: `SELECT * FROM \"${json.endpoint.entityId}\" WHERE ROWID = '${response.lastRowid}'`,
|
|
352
|
+
});
|
|
353
|
+
return lastRow.rows;
|
|
354
|
+
}
|
|
355
|
+
else {
|
|
356
|
+
return [{ [operation.toLowerCase()]: true }];
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
338
360
|
});
|
|
339
361
|
}
|
|
340
362
|
}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.finaliseExternalTables = exports.isIsoDateString = exports.isSQL = exports.getSqlQuery = exports.convertSqlType = exports.breakRowIdField = exports.convertRowId = exports.isRowId = exports.generateRowIdField = exports.breakExternalTableId = exports.buildExternalTableId = exports.isExternalTable = exports.SqlClients = void 0;
|
|
4
4
|
const datasource_1 = require("../definitions/datasource");
|
|
5
5
|
const { DocumentTypes, SEPARATOR } = require("../db/utils");
|
|
6
|
-
const { FieldTypes, BuildSchemaErrors, InvalidColumns } = require("../constants");
|
|
6
|
+
const { FieldTypes, BuildSchemaErrors, InvalidColumns, } = require("../constants");
|
|
7
7
|
const DOUBLE_SEPARATOR = `${SEPARATOR}${SEPARATOR}`;
|
|
8
8
|
const ROW_ID_REGEX = /^\[.*]$/g;
|
|
9
9
|
const SQL_TYPE_MAP = {
|
package/dist/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@budibase/server",
|
|
3
3
|
"email": "hi@budibase.com",
|
|
4
|
-
"version": "0.9.
|
|
4
|
+
"version": "0.9.190-alpha.11",
|
|
5
5
|
"description": "Budibase Web Server",
|
|
6
|
-
"main": "src/index.
|
|
6
|
+
"main": "src/index.ts",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "https://github.com/Budibase/budibase.git"
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"test:watch": "jest --watch",
|
|
16
16
|
"predocker": "copyfiles -f ../client/dist/budibase-client.js ../client/manifest.json client",
|
|
17
17
|
"build:docker": "yarn run predocker && docker build . -t app-service --label version=$BUDIBASE_RELEASE_VERSION",
|
|
18
|
+
"build:docs": "node ./scripts/docs/generate.js open",
|
|
18
19
|
"run:docker": "node dist/index.js",
|
|
19
20
|
"dev:stack:up": "node scripts/dev/manage.js up",
|
|
20
21
|
"dev:stack:down": "node scripts/dev/manage.js down",
|
|
@@ -68,11 +69,11 @@
|
|
|
68
69
|
"author": "Budibase",
|
|
69
70
|
"license": "GPL-3.0",
|
|
70
71
|
"dependencies": {
|
|
72
|
+
"@budibase/auth": "^0.9.190-alpha.11",
|
|
73
|
+
"@budibase/client": "^0.9.190-alpha.11",
|
|
74
|
+
"@budibase/string-templates": "^0.9.190-alpha.11",
|
|
71
75
|
"@bull-board/api": "^3.7.0",
|
|
72
76
|
"@bull-board/koa": "^3.7.0",
|
|
73
|
-
"@budibase/auth": "^0.9.189",
|
|
74
|
-
"@budibase/client": "^0.9.189",
|
|
75
|
-
"@budibase/string-templates": "^0.9.189",
|
|
76
77
|
"@elastic/elasticsearch": "7.10.0",
|
|
77
78
|
"@koa/router": "8.0.0",
|
|
78
79
|
"@sendgrid/mail": "7.1.1",
|
|
@@ -106,7 +107,7 @@
|
|
|
106
107
|
"mssql": "6.2.3",
|
|
107
108
|
"mysql2": "^2.3.1",
|
|
108
109
|
"node-fetch": "2.6.0",
|
|
109
|
-
"open": "
|
|
110
|
+
"open": "^8.4.0",
|
|
110
111
|
"pg": "8.5.1",
|
|
111
112
|
"pino-pretty": "4.0.0",
|
|
112
113
|
"posthog-node": "^1.1.4",
|
|
@@ -130,6 +131,7 @@
|
|
|
130
131
|
"@babel/preset-env": "^7.14.4",
|
|
131
132
|
"@budibase/standard-components": "^0.9.139",
|
|
132
133
|
"@jest/test-sequencer": "^24.8.0",
|
|
134
|
+
"@types/apidoc": "^0.50.0",
|
|
133
135
|
"@types/bull": "^3.15.1",
|
|
134
136
|
"@types/jest": "^26.0.23",
|
|
135
137
|
"@types/koa": "^2.13.3",
|
|
@@ -137,12 +139,14 @@
|
|
|
137
139
|
"@types/node": "^15.12.4",
|
|
138
140
|
"@types/oracledb": "^5.2.1",
|
|
139
141
|
"@typescript-eslint/parser": "4.28.0",
|
|
142
|
+
"apidoc": "^0.50.2",
|
|
140
143
|
"babel-jest": "^27.0.2",
|
|
141
144
|
"copyfiles": "^2.4.1",
|
|
142
145
|
"docker-compose": "^0.23.6",
|
|
143
146
|
"eslint": "^6.8.0",
|
|
144
147
|
"jest": "^27.0.5",
|
|
145
148
|
"nodemon": "^2.0.4",
|
|
149
|
+
"path-to-regexp": "^6.2.0",
|
|
146
150
|
"prettier": "^2.3.1",
|
|
147
151
|
"rimraf": "^3.0.2",
|
|
148
152
|
"supertest": "^4.0.2",
|