@budibase/server 1.0.136 → 1.0.139

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 (181) hide show
  1. package/builder/assets/{index.05ef6162.js → index.6db89ad9.js} +121 -121
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +76 -62
  4. package/coverage/coverage-final.json +3 -3
  5. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  6. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/index.html +1 -1
  15. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  21. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  44. package/coverage/lcov-report/api/index.html +1 -1
  45. package/coverage/lcov-report/api/index.js.html +1 -1
  46. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/index.html +1 -1
  57. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  71. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  74. package/coverage/lcov-report/automations/actions.js.html +1 -1
  75. package/coverage/lcov-report/automations/automationUtils.js.html +46 -10
  76. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  77. package/coverage/lcov-report/automations/index.html +19 -19
  78. package/coverage/lcov-report/automations/index.js.html +1 -1
  79. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/index.html +1 -1
  86. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  96. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  105. package/coverage/lcov-report/constants/index.html +1 -1
  106. package/coverage/lcov-report/constants/index.js.html +1 -1
  107. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  108. package/coverage/lcov-report/constants/screens.js.html +1 -1
  109. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  110. package/coverage/lcov-report/db/index.html +1 -1
  111. package/coverage/lcov-report/db/index.js.html +1 -1
  112. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  113. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  116. package/coverage/lcov-report/db/newid.js.html +1 -1
  117. package/coverage/lcov-report/db/utils.js.html +1 -1
  118. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  119. package/coverage/lcov-report/events/index.html +1 -1
  120. package/coverage/lcov-report/events/index.js.html +1 -1
  121. package/coverage/lcov-report/events/utils.js.html +1 -1
  122. package/coverage/lcov-report/index.html +28 -28
  123. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  124. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  125. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  126. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  127. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  128. package/coverage/lcov-report/middleware/index.html +1 -1
  129. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  130. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  131. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  132. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  133. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  134. package/coverage/lcov-report/threads/automation.js.html +67 -34
  135. package/coverage/lcov-report/threads/index.html +26 -26
  136. package/coverage/lcov-report/threads/query.js.html +16 -19
  137. package/coverage/lcov-report/threads/utils.js.html +1 -1
  138. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  139. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  140. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  141. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  142. package/coverage/lcov-report/utilities/global.js.html +1 -1
  143. package/coverage/lcov-report/utilities/index.html +1 -1
  144. package/coverage/lcov-report/utilities/index.js.html +1 -1
  145. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  146. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  147. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  148. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  149. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  150. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  151. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  152. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  153. package/coverage/lcov-report/utilities/security.js.html +1 -1
  154. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  155. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  156. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  157. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  158. package/coverage/lcov-report/utilities/users.js.html +1 -1
  159. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  160. package/coverage/lcov.info +132 -114
  161. package/dist/automations/automationUtils.js +12 -0
  162. package/dist/integrations/microsoftSqlServer.js +1 -6
  163. package/dist/integrations/mysql.js +16 -14
  164. package/dist/integrations/oracle.js +2 -6
  165. package/dist/integrations/postgres.js +1 -6
  166. package/dist/integrations/utils.js +15 -5
  167. package/dist/package.json +5 -5
  168. package/dist/threads/automation.js +25 -16
  169. package/dist/threads/query.js +7 -7
  170. package/dist/tsconfig.build.tsbuildinfo +1 -1
  171. package/dist/utilities/fileSystem/index.js +11 -7
  172. package/package.json +6 -6
  173. package/src/automations/automationUtils.js +12 -0
  174. package/src/integrations/microsoftSqlServer.ts +1 -3
  175. package/src/integrations/mysql.ts +18 -12
  176. package/src/integrations/oracle.ts +3 -3
  177. package/src/integrations/postgres.ts +1 -2
  178. package/src/integrations/utils.ts +16 -5
  179. package/src/threads/automation.js +28 -17
  180. package/src/threads/query.js +7 -8
  181. package/src/utilities/fileSystem/index.js +16 -8
@@ -100,9 +100,9 @@ class Orchestrator {
100
100
  let automation = this._automation;
101
101
  const app = yield this.getApp();
102
102
  let stopped = false;
103
- let loopStep;
103
+ let loopStep = null;
104
104
  let stepCount = 0;
105
- let loopStepNumber;
105
+ let loopStepNumber = null;
106
106
  let loopSteps = [];
107
107
  for (let step of automation.definition.steps) {
108
108
  stepCount++;
@@ -115,19 +115,18 @@ class Orchestrator {
115
115
  if (loopStep) {
116
116
  input = yield processObject(loopStep.inputs, this._context);
117
117
  }
118
- let iterations = loopStep ? input.binding.length : 1;
118
+ let iterations = loopStep
119
+ ? Array.isArray(input.binding)
120
+ ? input.binding.length
121
+ : automationUtils.stringSplit(input.binding).length
122
+ : 1;
119
123
  let iterationCount = 0;
120
124
  for (let index = 0; index < iterations; index++) {
121
125
  let originalStepInput = cloneDeep(step.inputs);
122
126
  // Handle if the user has set a max iteration count or if it reaches the max limit set by us
123
127
  if (loopStep) {
124
- // lets first of all handle the input
125
- // if the input is array then use it, if it is a string then split it on every new line
126
128
  let newInput = yield processObject(loopStep.inputs, cloneDeep(this._context));
127
129
  newInput = automationUtils.cleanInputValues(newInput, loopStep.schema.inputs);
128
- this._context.steps[loopStepNumber] = {
129
- currentItem: newInput.binding[index],
130
- };
131
130
  let tempOutput = { items: loopSteps, iterations: iterationCount };
132
131
  if ((loopStep.inputs.option === "Array" &&
133
132
  !Array.isArray(newInput.binding)) ||
@@ -141,6 +140,17 @@ class Orchestrator {
141
140
  loopStep = null;
142
141
  break;
143
142
  }
143
+ let item;
144
+ if (typeof loopStep.inputs.binding === "string" &&
145
+ loopStep.inputs.option === "String") {
146
+ item = automationUtils.stringSplit(newInput.binding);
147
+ }
148
+ else {
149
+ item = loopStep.inputs.binding;
150
+ }
151
+ this._context.steps[loopStepNumber] = {
152
+ currentItem: item[index],
153
+ };
144
154
  // The "Loop" binding in the front end is "fake", so replace it here so the context can understand it
145
155
  // Pretty hacky because we need to account for the row object
146
156
  for (let [key, value] of Object.entries(originalStepInput)) {
@@ -249,15 +259,14 @@ class Orchestrator {
249
259
  }
250
260
  module.exports = (input, callback) => {
251
261
  const appId = input.data.event.appId;
252
- doInAppContext(appId, () => {
262
+ doInAppContext(appId, () => __awaiter(void 0, void 0, void 0, function* () {
253
263
  const automationOrchestrator = new Orchestrator(input.data.automation, input.data.event);
254
- automationOrchestrator
255
- .execute()
256
- .then(response => {
264
+ try {
265
+ const response = yield automationOrchestrator.execute();
257
266
  callback(null, response);
258
- })
259
- .catch(err => {
267
+ }
268
+ catch (err) {
260
269
  callback(err);
261
- });
262
- });
270
+ }
271
+ }));
263
272
  };
@@ -178,14 +178,14 @@ class QueryRunner {
178
178
  }
179
179
  }
180
180
  module.exports = (input, callback) => {
181
- doInAppContext(input.appId, () => {
181
+ doInAppContext(input.appId, () => __awaiter(void 0, void 0, void 0, function* () {
182
182
  const Runner = new QueryRunner(input);
183
- Runner.execute()
184
- .then(response => {
183
+ try {
184
+ const response = yield Runner.execute();
185
185
  callback(null, response);
186
- })
187
- .catch(err => {
186
+ }
187
+ catch (err) {
188
188
  callback(err);
189
- });
190
- });
189
+ }
190
+ }));
191
191
  };