@budibase/server 1.2.39-alpha.1 → 1.2.40

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.
Files changed (188) hide show
  1. package/__mocks__/mongodb.ts +0 -4
  2. package/__mocks__/node-fetch.ts +1 -8
  3. package/builder/assets/{index.f1c7e247.css → index.08dd0c5e.css} +1 -1
  4. package/builder/assets/index.52e100f8.js +975 -0
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +442 -443
  7. package/coverage/coverage-final.json +10 -10
  8. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/index.html +1 -1
  17. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  23. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/index.html +25 -25
  28. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +191 -209
  30. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/row/utils.js.html +18 -27
  32. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/external.js.html +2 -2
  36. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  37. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/user.js.html +19 -19
  40. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/index.html +15 -15
  42. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/utils.js.html +37 -10
  44. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  45. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  46. package/coverage/lcov-report/api/index.html +1 -1
  47. package/coverage/lcov-report/api/index.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/index.html +1 -1
  59. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  73. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  76. package/coverage/lcov-report/automations/actions.js.html +1 -1
  77. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  78. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  79. package/coverage/lcov-report/automations/index.html +1 -1
  80. package/coverage/lcov-report/automations/index.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/index.html +1 -1
  88. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  106. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  107. package/coverage/lcov-report/constants/index.html +1 -1
  108. package/coverage/lcov-report/constants/index.js.html +30 -30
  109. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  110. package/coverage/lcov-report/constants/screens.js.html +1 -1
  111. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  112. package/coverage/lcov-report/db/index.html +1 -1
  113. package/coverage/lcov-report/db/index.js.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  116. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  117. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  118. package/coverage/lcov-report/db/newid.js.html +3 -3
  119. package/coverage/lcov-report/db/utils.js.html +61 -61
  120. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  121. package/coverage/lcov-report/events/index.html +1 -1
  122. package/coverage/lcov-report/events/index.js.html +1 -1
  123. package/coverage/lcov-report/events/utils.js.html +1 -1
  124. package/coverage/lcov-report/index.html +27 -27
  125. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  126. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  127. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  128. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  129. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  130. package/coverage/lcov-report/middleware/index.html +1 -1
  131. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  132. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  133. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  134. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  135. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  136. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  137. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  138. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  139. package/coverage/lcov-report/utilities/global.js.html +16 -16
  140. package/coverage/lcov-report/utilities/index.html +1 -1
  141. package/coverage/lcov-report/utilities/index.js.html +23 -23
  142. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  143. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  144. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  145. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  146. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  147. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  148. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  149. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  150. package/coverage/lcov-report/utilities/security.js.html +1 -1
  151. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  152. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  153. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  154. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  155. package/coverage/lcov-report/utilities/users.js.html +7 -7
  156. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  157. package/coverage/lcov.info +685 -684
  158. package/dist/api/controllers/row/internalSearch.js +0 -5
  159. package/dist/api/controllers/row/utils.js +1 -3
  160. package/dist/api/controllers/table/external.js +1 -1
  161. package/dist/api/controllers/view/utils.js +11 -2
  162. package/dist/automations/logging/index.js +0 -3
  163. package/dist/integrations/base/sql.js +4 -5
  164. package/dist/integrations/base/utils.js +27 -13
  165. package/dist/integrations/microsoftSqlServer.js +2 -5
  166. package/dist/integrations/mongodb.js +8 -35
  167. package/dist/integrations/mysql.js +2 -2
  168. package/dist/integrations/postgres.js +2 -5
  169. package/dist/package.json +7 -7
  170. package/dist/tsconfig.build.tsbuildinfo +1 -1
  171. package/package.json +8 -8
  172. package/src/api/controllers/row/internalSearch.js +0 -6
  173. package/src/api/controllers/row/utils.js +1 -4
  174. package/src/api/controllers/table/external.js +1 -1
  175. package/src/api/controllers/view/utils.js +11 -2
  176. package/src/automations/logging/index.ts +0 -3
  177. package/src/integrations/base/sql.ts +4 -5
  178. package/src/integrations/base/utils.ts +18 -9
  179. package/src/integrations/microsoftSqlServer.ts +2 -3
  180. package/src/integrations/mongodb.ts +8 -35
  181. package/src/integrations/mysql.ts +1 -1
  182. package/src/integrations/postgres.ts +1 -2
  183. package/src/integrations/tests/mongo.spec.js +0 -218
  184. package/src/integrations/tests/sql.spec.js +1 -1
  185. package/builder/assets/index.a1c0a62f.js +0 -977
  186. package/dist/integrations/base/query.js +0 -27
  187. package/src/api/routes/tests/internalSearch.spec.js +0 -157
  188. package/src/integrations/base/query.ts +0 -16
@@ -9,7 +9,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  const { SearchIndexes } = require("../../../db/utils");
12
- const { removeKeyNumbering } = require("./utils");
13
12
  const fetch = require("node-fetch");
14
13
  const { getCouchInfo } = require("@budibase/backend-core/db");
15
14
  const { getAppId } = require("@budibase/backend-core/context");
@@ -170,8 +169,6 @@ class QueryBuilder {
170
169
  };
171
170
  function build(structure, queryFn) {
172
171
  for (let [key, value] of Object.entries(structure)) {
173
- // check for new format - remove numbering if needed
174
- key = removeKeyNumbering(key);
175
172
  key = builder.preprocess(key.replace(/ /g, "_"), {
176
173
  escape: true,
177
174
  });
@@ -283,8 +280,6 @@ class QueryBuilder {
283
280
  });
284
281
  }
285
282
  }
286
- // exported for unit testing
287
- exports.QueryBuilder = QueryBuilder;
288
283
  /**
289
284
  * Executes a lucene search query.
290
285
  * @param url The query URL
@@ -13,9 +13,8 @@ const { cloneDeep } = require("lodash/fp");
13
13
  const { InternalTables } = require("../../../db/utils");
14
14
  const userController = require("../user");
15
15
  const { FieldTypes } = require("../../../constants");
16
+ const { makeExternalQuery } = require("../../../integrations/base/utils");
16
17
  const { getAppDB } = require("@budibase/backend-core/context");
17
- const { makeExternalQuery } = require("../../../integrations/base/query");
18
- const { removeKeyNumbering } = require("../../../integrations/base/utils");
19
18
  validateJs.extend(validateJs.validators.datetime, {
20
19
  parse: function (value) {
21
20
  return new Date(value).getTime();
@@ -25,7 +24,6 @@ validateJs.extend(validateJs.validators.datetime, {
25
24
  return new Date(value).toISOString();
26
25
  },
27
26
  });
28
- exports.removeKeyNumbering = removeKeyNumbering;
29
27
  exports.getDatasourceAndQuery = (json) => __awaiter(void 0, void 0, void 0, function* () {
30
28
  const datasourceId = json.endpoint.datasourceId;
31
29
  const db = getAppDB();
@@ -11,7 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  const { buildExternalTableId, breakExternalTableId, } = require("../../../integrations/utils");
12
12
  const { getTable, generateForeignKey, generateJunctionTableName, foreignKeyStructure, hasTypeChanged, } = require("./utils");
13
13
  const { DataSourceOperation, FieldTypes, RelationshipTypes, } = require("../../../constants");
14
- const { makeExternalQuery } = require("../../../integrations/base/query");
14
+ const { makeExternalQuery } = require("../../../integrations/base/utils");
15
15
  const { cloneDeep } = require("lodash/fp");
16
16
  const csvParser = require("../../../utilities/csvParser");
17
17
  const { handleRequest } = require("../row/external");
@@ -23,8 +23,17 @@ exports.getView = (viewName) => __awaiter(void 0, void 0, void 0, function* () {
23
23
  if (viewName.startsWith(DocumentType.TABLE + SEPARATOR)) {
24
24
  return null;
25
25
  }
26
- const viewDoc = yield db.get(generateMemoryViewID(viewName));
27
- return viewDoc.view;
26
+ try {
27
+ const viewDoc = yield db.get(generateMemoryViewID(viewName));
28
+ return viewDoc.view;
29
+ }
30
+ catch (err) {
31
+ // Return null when PouchDB doesn't found the view
32
+ if (err.status === 404) {
33
+ return null;
34
+ }
35
+ throw err;
36
+ }
28
37
  }
29
38
  });
30
39
  exports.getViews = () => __awaiter(void 0, void 0, void 0, function* () {
@@ -56,9 +56,6 @@ function checkAppMetadata(apps) {
56
56
  for (let [key, errors] of Object.entries(metadata.automationErrors)) {
57
57
  const updated = [];
58
58
  for (let error of errors) {
59
- if (!error) {
60
- continue;
61
- }
62
59
  const startDate = error.split(backend_core_1.db.SEPARATOR)[2];
63
60
  if (startDate > maxStartDate) {
64
61
  updated.push(error);
@@ -17,7 +17,6 @@ const types_1 = require("@budibase/types");
17
17
  const utils_1 = require("../utils");
18
18
  const sqlTable_1 = __importDefault(require("./sqlTable"));
19
19
  const environment_1 = __importDefault(require("../../environment"));
20
- const utils_2 = require("./utils");
21
20
  const envLimit = environment_1.default.SQL_MAX_ROWS
22
21
  ? parseInt(environment_1.default.SQL_MAX_ROWS)
23
22
  : null;
@@ -117,13 +116,12 @@ class InternalBuilder {
117
116
  addFilters(query, filters, opts) {
118
117
  function iterate(structure, fn) {
119
118
  for (let [key, value] of Object.entries(structure)) {
120
- const updatedKey = (0, utils_2.removeKeyNumbering)(key);
121
- const isRelationshipField = updatedKey.includes(".");
119
+ const isRelationshipField = key.includes(".");
122
120
  if (!opts.relationship && !isRelationshipField) {
123
- fn(`${opts.tableName}.${updatedKey}`, value);
121
+ fn(`${opts.tableName}.${key}`, value);
124
122
  }
125
123
  if (opts.relationship && isRelationshipField) {
126
- fn(updatedKey, value);
124
+ fn(key, value);
127
125
  }
128
126
  }
129
127
  }
@@ -550,3 +548,4 @@ class SqlQueryBuilder extends sqlTable_1.default {
550
548
  }
551
549
  }
552
550
  exports.default = SqlQueryBuilder;
551
+ module.exports = SqlQueryBuilder;
@@ -1,16 +1,30 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.removeKeyNumbering = void 0;
4
- const QUERY_START_REGEX = /\d[0-9]*:/g;
5
- function removeKeyNumbering(key) {
6
- if (typeof key === "string" && key.match(QUERY_START_REGEX) != null) {
7
- const parts = key.split(":");
8
- // remove the number
9
- parts.shift();
10
- return parts.join(":");
12
+ var DatasourceUtils;
13
+ (function (DatasourceUtils) {
14
+ const { integrations } = require("../index");
15
+ function makeExternalQuery(datasource, json) {
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ const Integration = integrations[datasource.source];
18
+ // query is the opinionated function
19
+ if (Integration.prototype.query) {
20
+ const integration = new Integration(datasource.config);
21
+ return integration.query(json);
22
+ }
23
+ else {
24
+ throw "Datasource does not support query.";
25
+ }
26
+ });
11
27
  }
12
- else {
13
- return key;
14
- }
15
- }
16
- exports.removeKeyNumbering = removeKeyNumbering;
28
+ DatasourceUtils.makeExternalQuery = makeExternalQuery;
29
+ module.exports.makeExternalQuery = makeExternalQuery;
30
+ })(DatasourceUtils || (DatasourceUtils = {}));
@@ -8,16 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
12
  const types_1 = require("@budibase/types");
16
13
  const utils_1 = require("./utils");
17
- const sql_1 = __importDefault(require("./base/sql"));
18
14
  var MSSQLModule;
19
15
  (function (MSSQLModule) {
20
16
  const sqlServer = require("mssql");
17
+ const Sql = require("./base/sql");
21
18
  const DEFAULT_SCHEMA = "dbo";
22
19
  const SCHEMA = {
23
20
  docs: "https://github.com/tediousjs/node-mssql",
@@ -72,7 +69,7 @@ var MSSQLModule;
72
69
  },
73
70
  },
74
71
  };
75
- class SqlServerIntegration extends sql_1.default {
72
+ class SqlServerIntegration extends Sql {
76
73
  constructor(config) {
77
74
  super(utils_1.SqlClient.MS_SQL);
78
75
  this.index = 0;
@@ -80,11 +80,10 @@ var MongoDBModule;
80
80
  if (json[field] instanceof Object) {
81
81
  json[field] = self.createObjectIds(json[field]);
82
82
  }
83
- if ((field === "_id" || (field === null || field === void 0 ? void 0 : field.startsWith("$"))) &&
84
- typeof json[field] === "string") {
85
- const id = (_a = json[field].match(/(?<=objectid\(['"]).*(?=['"]\))/gi)) === null || _a === void 0 ? void 0 : _a[0];
83
+ if (field === "_id" && typeof json[field] === "string") {
84
+ const id = (_a = json["_id"].match(/(?<=objectid\(['"]).*(?=['"]\))/gi)) === null || _a === void 0 ? void 0 : _a[0];
86
85
  if (id) {
87
- json[field] = mongodb_1.ObjectID.createFromHexString(id);
86
+ json["_id"] = mongodb_1.ObjectID.createFromHexString(id);
88
87
  }
89
88
  }
90
89
  }
@@ -99,33 +98,10 @@ var MongoDBModule;
99
98
  return interpolateObjectIds(json);
100
99
  }
101
100
  parseQueryParams(params, mode) {
102
- var _a, _b, _c;
103
- let queryParams = [];
104
- let openCount = 0;
105
- let inQuotes = false;
106
- let i = 0;
107
- let startIndex = 0;
108
- for (let c of params) {
109
- if (c === '"' && i > 0 && params[i - 1] !== "\\") {
110
- inQuotes = !inQuotes;
111
- }
112
- if (c === "{" && !inQuotes) {
113
- openCount++;
114
- if (openCount === 1) {
115
- startIndex = i;
116
- }
117
- }
118
- else if (c === "}" && !inQuotes) {
119
- if (openCount === 1) {
120
- queryParams.push(JSON.parse(params.substring(startIndex, i + 1)));
121
- }
122
- openCount--;
123
- }
124
- i++;
125
- }
126
- let group1 = (_a = queryParams[0]) !== null && _a !== void 0 ? _a : {};
127
- let group2 = (_b = queryParams[1]) !== null && _b !== void 0 ? _b : {};
128
- let group3 = (_c = queryParams[2]) !== null && _c !== void 0 ? _c : {};
101
+ let queryParams = params.split(/(?<=}),[\n\s]*(?={)/g);
102
+ let group1 = queryParams[0] ? JSON.parse(queryParams[0]) : {};
103
+ let group2 = queryParams[1] ? JSON.parse(queryParams[1]) : {};
104
+ let group3 = queryParams[2] ? JSON.parse(queryParams[2]) : {};
129
105
  if (mode === "update") {
130
106
  return {
131
107
  filter: group1,
@@ -183,10 +159,7 @@ var MongoDBModule;
183
159
  return yield collection.findOne(json);
184
160
  }
185
161
  case "findOneAndUpdate": {
186
- if (typeof query.json === "string") {
187
- json = this.parseQueryParams(query.json, "update");
188
- }
189
- let findAndUpdateJson = this.createObjectIds(json);
162
+ let findAndUpdateJson = json;
190
163
  return yield collection.findOneAndUpdate(findAndUpdateJson.filter, findAndUpdateJson.update, findAndUpdateJson.options);
191
164
  }
192
165
  case "count": {
@@ -16,10 +16,10 @@ const types_1 = require("@budibase/types");
16
16
  const utils_1 = require("./utils");
17
17
  const dayjs_1 = __importDefault(require("dayjs"));
18
18
  const { NUMBER_REGEX } = require("../utilities");
19
- const sql_1 = __importDefault(require("./base/sql"));
20
19
  var MySQLModule;
21
20
  (function (MySQLModule) {
22
21
  const mysql = require("mysql2/promise");
22
+ const Sql = require("./base/sql");
23
23
  const SCHEMA = {
24
24
  docs: "https://github.com/sidorares/node-mysql2",
25
25
  plus: true,
@@ -96,7 +96,7 @@ var MySQLModule;
96
96
  }
97
97
  return bindings;
98
98
  }
99
- class MySQLIntegration extends sql_1.default {
99
+ class MySQLIntegration extends Sql {
100
100
  constructor(config) {
101
101
  super(utils_1.SqlClient.MY_SQL);
102
102
  this.tables = {};
@@ -8,16 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
12
  const types_1 = require("@budibase/types");
16
13
  const utils_1 = require("./utils");
17
- const sql_1 = __importDefault(require("./base/sql"));
18
14
  var PostgresModule;
19
15
  (function (PostgresModule) {
20
16
  const { Client, types } = require("pg");
17
+ const Sql = require("./base/sql");
21
18
  const { escapeDangerousCharacters } = require("../utilities");
22
19
  // Return "date" and "timestamp" types as plain strings.
23
20
  // This lets us reference the original stored timezone.
@@ -96,7 +93,7 @@ var PostgresModule;
96
93
  },
97
94
  },
98
95
  };
99
- class PostgresIntegration extends sql_1.default {
96
+ class PostgresIntegration extends Sql {
100
97
  constructor(config) {
101
98
  super(utils_1.SqlClient.POSTGRES);
102
99
  this.index = 1;
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.2.39-alpha.0",
4
+ "version": "1.2.39",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -77,11 +77,11 @@
77
77
  "license": "GPL-3.0",
78
78
  "dependencies": {
79
79
  "@apidevtools/swagger-parser": "10.0.3",
80
- "@budibase/backend-core": "1.2.39-alpha.0",
81
- "@budibase/client": "1.2.39-alpha.0",
82
- "@budibase/pro": "1.2.39-alpha.0",
83
- "@budibase/string-templates": "1.2.39-alpha.0",
84
- "@budibase/types": "1.2.39-alpha.0",
80
+ "@budibase/backend-core": "^1.2.39",
81
+ "@budibase/client": "^1.2.39",
82
+ "@budibase/pro": "1.2.39",
83
+ "@budibase/string-templates": "^1.2.39",
84
+ "@budibase/types": "^1.2.39",
85
85
  "@bull-board/api": "3.7.0",
86
86
  "@bull-board/koa": "3.9.4",
87
87
  "@elastic/elasticsearch": "7.10.0",
@@ -106,7 +106,7 @@
106
106
  "google-auth-library": "7.12.0",
107
107
  "google-spreadsheet": "3.2.0",
108
108
  "jimp": "0.16.1",
109
- "joi": "17.6.0",
109
+ "joi": "17.2.1",
110
110
  "js-yaml": "4.1.0",
111
111
  "jsonschema": "1.4.0",
112
112
  "knex": "0.95.15",