@budibase/server 2.0.18 → 2.0.20

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 (171) hide show
  1. package/builder/assets/{index.bef2492f.js → index.654c9538.js} +1 -1
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +171 -154
  4. package/coverage/coverage-final.json +2 -1
  5. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  6. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/index.html +1 -1
  12. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  18. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/row/index.html +15 -15
  23. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +122 -116
  25. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  31. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  36. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  40. package/coverage/lcov-report/api/index.html +1 -1
  41. package/coverage/lcov-report/api/index.js.html +1 -1
  42. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  43. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  44. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  45. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  46. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/index.html +1 -1
  52. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  66. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  69. package/coverage/lcov-report/automations/actions.js.html +1 -1
  70. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  71. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  72. package/coverage/lcov-report/automations/index.html +1 -1
  73. package/coverage/lcov-report/automations/index.js.html +1 -1
  74. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  75. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  76. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  77. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  78. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  79. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/index.html +1 -1
  81. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  91. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  92. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  93. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  94. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  95. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  96. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  99. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  100. package/coverage/lcov-report/constants/index.html +1 -1
  101. package/coverage/lcov-report/constants/index.js.html +1 -1
  102. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  103. package/coverage/lcov-report/constants/screens.js.html +1 -1
  104. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  105. package/coverage/lcov-report/db/index.html +1 -1
  106. package/coverage/lcov-report/db/index.js.html +1 -1
  107. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  108. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  109. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  110. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  111. package/coverage/lcov-report/db/newid.js.html +1 -1
  112. package/coverage/lcov-report/db/utils.js.html +1 -1
  113. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  114. package/coverage/lcov-report/events/index.html +1 -1
  115. package/coverage/lcov-report/events/index.js.html +1 -1
  116. package/coverage/lcov-report/events/utils.js.html +1 -1
  117. package/coverage/lcov-report/index.html +26 -26
  118. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  119. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  120. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  121. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  122. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  123. package/coverage/lcov-report/middleware/index.html +1 -1
  124. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  125. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  126. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  127. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  128. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  129. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  130. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  131. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  132. package/coverage/lcov-report/utilities/global.js.html +1 -1
  133. package/coverage/lcov-report/utilities/index.html +24 -9
  134. package/coverage/lcov-report/utilities/index.js.html +1 -1
  135. package/coverage/lcov-report/utilities/plugins.js.html +148 -0
  136. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  137. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  138. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  139. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  140. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  141. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  142. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  143. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  144. package/coverage/lcov-report/utilities/security.js.html +1 -1
  145. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  146. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  147. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  148. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  149. package/coverage/lcov-report/utilities/users.js.html +1 -1
  150. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  151. package/coverage/lcov.info +311 -278
  152. package/dist/api/controllers/application.js +4 -1
  153. package/dist/api/controllers/public/utils.js +1 -1
  154. package/dist/api/controllers/row/internalSearch.js +4 -2
  155. package/dist/api/controllers/static/index.js +3 -1
  156. package/dist/api/controllers/static/templates/BudibaseApp.svelte +1 -3
  157. package/dist/api/controllers/table/internal.js +9 -1
  158. package/dist/api/controllers/table/utils.js +1 -1
  159. package/dist/package.json +6 -6
  160. package/dist/tsconfig.build.tsbuildinfo +1 -1
  161. package/dist/utilities/plugins.js +20 -0
  162. package/package.json +7 -7
  163. package/src/api/controllers/application.ts +5 -1
  164. package/src/api/controllers/public/utils.ts +1 -1
  165. package/src/api/controllers/row/internalSearch.js +4 -2
  166. package/src/api/controllers/static/index.ts +4 -1
  167. package/src/api/controllers/static/templates/BudibaseApp.svelte +1 -3
  168. package/src/api/controllers/table/internal.ts +10 -2
  169. package/src/api/controllers/table/utils.ts +1 -1
  170. package/src/api/routes/tests/internalSearch.spec.js +20 -0
  171. package/src/utilities/plugins.js +21 -0
@@ -38,6 +38,7 @@ const backend_core_2 = require("@budibase/backend-core");
38
38
  const types_1 = require("@budibase/types");
39
39
  const layouts_1 = require("../../constants/layouts");
40
40
  const pro_2 = require("@budibase/pro");
41
+ const plugins_1 = require("../../utilities/plugins");
41
42
  const URL_REGEX_SLASH = /\/|\\/g;
42
43
  // utility function, need to do away with this
43
44
  function getLayouts() {
@@ -176,9 +177,11 @@ const fetchAppDefinition = (ctx) => __awaiter(void 0, void 0, void 0, function*
176
177
  exports.fetchAppDefinition = fetchAppDefinition;
177
178
  const fetchAppPackage = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
178
179
  const db = backend_core_1.context.getAppDB();
179
- const application = yield db.get(utils_1.DocumentType.APP_METADATA);
180
+ let application = yield db.get(utils_1.DocumentType.APP_METADATA);
180
181
  const layouts = yield getLayouts();
181
182
  let screens = yield getScreens();
183
+ // Enrich plugin URLs
184
+ application.usedPlugins = (0, plugins_1.enrichPluginURLs)(application.usedPlugins);
182
185
  // Only filter screens if the user is not a builder
183
186
  if (!(ctx.user.builder && ctx.user.builder.global)) {
184
187
  const userRoleId = getUserRoleId(ctx);
@@ -32,7 +32,7 @@ function addRev(body, tableId) {
32
32
  }
33
33
  exports.addRev = addRev;
34
34
  /**
35
- * Performs a case insensitive search on the provided documents, using the
35
+ * Performs a case in-sensitive search on the provided documents, using the
36
36
  * provided key and value. This will be a string based search, using the
37
37
  * startsWith function.
38
38
  */
@@ -120,7 +120,7 @@ class QueryBuilder {
120
120
  * @param options The preprocess options
121
121
  * @returns {string|*}
122
122
  */
123
- preprocess(value, { escape, lowercase, wrap } = {}) {
123
+ preprocess(value, { escape, lowercase, wrap, type } = {}) {
124
124
  const hasVersion = !!this.version;
125
125
  // Determine if type needs wrapped
126
126
  const originalType = typeof value;
@@ -133,7 +133,7 @@ class QueryBuilder {
133
133
  value = `${value}`.replace(/[ #+\-&|!(){}\]^"~*?:\\]/g, "\\$&");
134
134
  }
135
135
  // Wrap in quotes
136
- if (originalType === "string" && !isNaN(value) && !escape) {
136
+ if (originalType === "string" && !isNaN(value) && !type) {
137
137
  value = `"${value}"`;
138
138
  }
139
139
  else if (hasVersion && wrap) {
@@ -221,6 +221,7 @@ class QueryBuilder {
221
221
  value = builder.preprocess(value, {
222
222
  escape: true,
223
223
  lowercase: true,
224
+ type: "string",
224
225
  });
225
226
  return `${key}:${value}*`;
226
227
  });
@@ -249,6 +250,7 @@ class QueryBuilder {
249
250
  value = builder.preprocess(value, {
250
251
  escape: true,
251
252
  lowercase: true,
253
+ type: "fuzzy",
252
254
  });
253
255
  return `${key}:${value}~`;
254
256
  });
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.getSignedUploadURL = exports.serveClientLibrary = exports.serveBuilderPreview = exports.serveApp = exports.deleteObjects = exports.uploadFile = exports.serveBuilder = exports.toggleBetaUiFeature = void 0;
13
+ const plugins_1 = require("../../../utilities/plugins");
13
14
  require("svelte/register");
14
15
  const send = require("koa-send");
15
16
  const { resolve, join } = require("../../../utilities/centralPath");
@@ -108,12 +109,13 @@ const serveApp = function (ctx) {
108
109
  let appId = getAppId();
109
110
  if (!env.isJest()) {
110
111
  const App = require("./templates/BudibaseApp.svelte").default;
112
+ const plugins = (0, plugins_1.enrichPluginURLs)(appInfo.usedPlugins);
111
113
  const { head, html, css } = App.render({
112
114
  title: appInfo.name,
113
115
  production: env.isProd(),
114
116
  appId,
115
117
  clientLibPath: clientLibraryPath(appId, appInfo.version, ctx),
116
- usedPlugins: appInfo.usedPlugins,
118
+ usedPlugins: plugins,
117
119
  });
118
120
  const appHbs = loadHandlebarsFile(`${__dirname}/templates/app.hbs`);
119
121
  ctx.body = yield processString(appHbs, {
@@ -88,9 +88,7 @@
88
88
  <!-- But before loadBudibase is called -->
89
89
  {#if usedPlugins?.length}
90
90
  {#each usedPlugins as plugin}
91
- <script
92
- type="application/javascript"
93
- src={`/plugins/${plugin.jsUrl}`}></script>
91
+ <script type="application/javascript" src={plugin.jsUrl}></script>
94
92
  {/each}
95
93
  {/if}
96
94
  <script type="application/javascript">
@@ -30,6 +30,8 @@ const environment_1 = require("../../../environment");
30
30
  const rowProcessor_1 = require("../../../utilities/rowProcessor");
31
31
  const bulkFormula_1 = require("./bulkFormula");
32
32
  const pro_1 = require("@budibase/pro");
33
+ const lodash_1 = require("lodash");
34
+ const fp_1 = require("lodash/fp");
33
35
  function checkAutoColumns(table, oldTable) {
34
36
  if (!table.schema) {
35
37
  return table;
@@ -124,9 +126,15 @@ function save(ctx) {
124
126
  if (updatedRows && updatedRows.length !== 0) {
125
127
  yield db.bulkDocs(updatedRows);
126
128
  }
127
- const result = yield db.put(tableToSave);
129
+ let result = yield db.put(tableToSave);
128
130
  tableToSave._rev = result.rev;
131
+ const savedTable = (0, fp_1.cloneDeep)(tableToSave);
129
132
  tableToSave = yield tableSaveFunctions.after(tableToSave);
133
+ // the table may be updated as part of the table save after functionality - need to write it
134
+ if (!(0, lodash_1.isEqual)(savedTable, tableToSave)) {
135
+ result = yield db.put(tableToSave);
136
+ tableToSave._rev = result.rev;
137
+ }
130
138
  // has to run after, make sure it has _id
131
139
  yield (0, bulkFormula_1.runStaticFormulaChecks)(tableToSave, { oldTable, deletion: null });
132
140
  return tableToSave;
@@ -220,7 +220,7 @@ class TableSaveFunctions {
220
220
  after(table) {
221
221
  return __awaiter(this, void 0, void 0, function* () {
222
222
  table = yield handleSearchIndexes(table);
223
- yield handleDataImport(this.user, table, this.dataImport);
223
+ table = yield handleDataImport(this.user, table, this.dataImport);
224
224
  return table;
225
225
  });
226
226
  }
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/server",
3
3
  "email": "hi@budibase.com",
4
- "version": "2.0.17",
4
+ "version": "2.0.19",
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": "^2.0.17",
81
- "@budibase/client": "^2.0.17",
82
- "@budibase/pro": "2.0.17",
83
- "@budibase/string-templates": "^2.0.17",
84
- "@budibase/types": "^2.0.17",
80
+ "@budibase/backend-core": "^2.0.19",
81
+ "@budibase/client": "^2.0.19",
82
+ "@budibase/pro": "2.0.19",
83
+ "@budibase/string-templates": "^2.0.19",
84
+ "@budibase/types": "^2.0.19",
85
85
  "@bull-board/api": "3.7.0",
86
86
  "@bull-board/koa": "3.9.4",
87
87
  "@elastic/elasticsearch": "7.10.0",