@budibase/server 1.0.135 → 1.0.138

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 (179) hide show
  1. package/builder/assets/{index.1a219cf7.js → index.a48ac266.js} +112 -112
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +13 -9
  4. package/coverage/coverage-final.json +2 -2
  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 +1 -1
  76. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  77. package/coverage/lcov-report/automations/index.html +1 -1
  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 +15 -15
  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 +20 -26
  135. package/coverage/lcov-report/threads/index.html +22 -22
  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 +15 -19
  161. package/dist/integrations/microsoftSqlServer.js +1 -6
  162. package/dist/integrations/mysql.js +16 -14
  163. package/dist/integrations/oracle.js +2 -6
  164. package/dist/integrations/postgres.js +1 -6
  165. package/dist/integrations/utils.js +15 -5
  166. package/dist/package.json +5 -5
  167. package/dist/threads/automation.js +9 -10
  168. package/dist/threads/query.js +7 -7
  169. package/dist/tsconfig.build.tsbuildinfo +1 -1
  170. package/dist/utilities/fileSystem/index.js +11 -7
  171. package/package.json +6 -6
  172. package/src/integrations/microsoftSqlServer.ts +1 -3
  173. package/src/integrations/mysql.ts +18 -12
  174. package/src/integrations/oracle.ts +3 -3
  175. package/src/integrations/postgres.ts +1 -2
  176. package/src/integrations/utils.ts +16 -5
  177. package/src/threads/automation.js +9 -11
  178. package/src/threads/query.js +7 -8
  179. package/src/utilities/fileSystem/index.js +16 -8
@@ -307,7 +307,7 @@ exports.getUniqueRows = async appIds => {
307
307
  <div class='footer quiet pad2 space-top1 center small'>
308
308
  Code coverage generated by
309
309
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
310
- at Tue May 03 2022 13:54:07 GMT+0000 (Coordinated Universal Time)
310
+ at Tue May 03 2022 16:38:20 GMT+0000 (Coordinated Universal Time)
311
311
  </div>
312
312
  <script src="../../prettify.js"></script>
313
313
  <script>
@@ -124,7 +124,7 @@ function <span class="fstat-no" title="function not covered" >resetQuotasIfRequi
124
124
  <div class='footer quiet pad2 space-top1 center small'>
125
125
  Code coverage generated by
126
126
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
127
- at Tue May 03 2022 13:54:07 GMT+0000 (Coordinated Universal Time)
127
+ at Tue May 03 2022 16:38:20 GMT+0000 (Coordinated Universal Time)
128
128
  </div>
129
129
  <script src="../../prettify.js"></script>
130
130
  <script>
@@ -142,7 +142,7 @@ exports.getFullUser = async (ctx, userId) =&gt; {
142
142
  <div class='footer quiet pad2 space-top1 center small'>
143
143
  Code coverage generated by
144
144
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
145
- at Tue May 03 2022 13:54:07 GMT+0000 (Coordinated Universal Time)
145
+ at Tue May 03 2022 16:38:20 GMT+0000 (Coordinated Universal Time)
146
146
  </div>
147
147
  <script src="../prettify.js"></script>
148
148
  <script>
@@ -487,7 +487,7 @@ exports.readGlobalUser = <span class="fstat-no" title="function not covered" >as
487
487
  <div class='footer quiet pad2 space-top1 center small'>
488
488
  Code coverage generated by
489
489
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
490
- at Tue May 03 2022 13:54:07 GMT+0000 (Coordinated Universal Time)
490
+ at Tue May 03 2022 16:38:20 GMT+0000 (Coordinated Universal Time)
491
491
  </div>
492
492
  <script src="../prettify.js"></script>
493
493
  <script>
@@ -6522,10 +6522,8 @@ FN:99,(anonymous_6)
6522
6522
  FN:222,(anonymous_7)
6523
6523
  FN:287,(anonymous_8)
6524
6524
  FN:289,(anonymous_9)
6525
- FN:296,(anonymous_10)
6526
- FN:299,(anonymous_11)
6527
- FNF:12
6528
- FNH:10
6525
+ FNF:10
6526
+ FNH:9
6529
6527
  FNDA:6,(anonymous_0)
6530
6528
  FNDA:6,(anonymous_1)
6531
6529
  FNDA:5,(anonymous_2)
@@ -6536,8 +6534,6 @@ FNDA:6,(anonymous_6)
6536
6534
  FNDA:5,(anonymous_7)
6537
6535
  FNDA:6,(anonymous_8)
6538
6536
  FNDA:6,(anonymous_9)
6539
- FNDA:6,(anonymous_10)
6540
- FNDA:0,(anonymous_11)
6541
6537
  DA:1,3
6542
6538
  DA:2,3
6543
6539
  DA:3,3
@@ -6590,7 +6586,9 @@ DA:92,0
6590
6586
  DA:100,6
6591
6587
  DA:101,6
6592
6588
  DA:102,6
6589
+ DA:103,6
6593
6590
  DA:105,6
6591
+ DA:106,6
6594
6592
  DA:107,6
6595
6593
  DA:108,6
6596
6594
  DA:109,5
@@ -6668,10 +6666,11 @@ DA:288,6
6668
6666
  DA:289,6
6669
6667
  DA:290,6
6670
6668
  DA:294,6
6671
- DA:297,6
6672
- DA:300,0
6673
- LF:132
6674
- LH:79
6669
+ DA:295,6
6670
+ DA:296,6
6671
+ DA:298,0
6672
+ LF:135
6673
+ LH:82
6675
6674
  BRDA:26,0,0,0
6676
6675
  BRDA:28,1,0,4
6677
6676
  BRDA:28,1,1,2
@@ -6745,10 +6744,8 @@ FN:162,(anonymous_7)
6745
6744
  FN:171,(anonymous_8)
6746
6745
  FN:193,(anonymous_9)
6747
6746
  FN:194,(anonymous_10)
6748
- FN:197,(anonymous_11)
6749
- FN:200,(anonymous_12)
6750
- FNF:13
6751
- FNH:12
6747
+ FNF:11
6748
+ FNH:10
6752
6749
  FNDA:15,(anonymous_0)
6753
6750
  FNDA:16,(anonymous_1)
6754
6751
  FNDA:13,(anonymous_2)
@@ -6760,8 +6757,6 @@ FNDA:6,(anonymous_7)
6760
6757
  FNDA:6,(anonymous_8)
6761
6758
  FNDA:10,(anonymous_9)
6762
6759
  FNDA:10,(anonymous_10)
6763
- FNDA:8,(anonymous_11)
6764
- FNDA:2,(anonymous_12)
6765
6760
  DA:1,2
6766
6761
  DA:2,2
6767
6762
  DA:3,2
@@ -6859,10 +6854,11 @@ DA:193,2
6859
6854
  DA:194,10
6860
6855
  DA:195,10
6861
6856
  DA:196,10
6857
+ DA:197,10
6862
6858
  DA:198,8
6863
- DA:201,2
6864
- LF:99
6865
- LH:91
6859
+ DA:200,2
6860
+ LF:100
6861
+ LH:92
6866
6862
  BRDA:14,0,0,10
6867
6863
  BRDA:34,1,0,2
6868
6864
  BRDA:34,1,1,14
@@ -201,12 +201,7 @@ var MSSQLModule;
201
201
  if (typeof name !== "string") {
202
202
  continue;
203
203
  }
204
- const type = (0, utils_1.convertSqlType)(def.DATA_TYPE);
205
- schema[name] = {
206
- autocolumn: !!autoColumns.find((col) => col === name),
207
- name: name,
208
- type,
209
- };
204
+ schema[name] = Object.assign({ autocolumn: !!autoColumns.find((col) => col === name), name: name }, (0, utils_1.convertSqlType)(def.DATA_TYPE));
210
205
  }
211
206
  tables[tableName] = {
212
207
  _id: (0, utils_1.buildExternalTableId)(datasourceId, tableName),
@@ -88,7 +88,7 @@ var MySQLModule;
88
88
  }
89
89
  // if not a number, see if it is a date - important to do in this order as any
90
90
  // integer will be considered a valid date
91
- else if ((0, dayjs_1.default)(binding).isValid()) {
91
+ else if (/^\d/.test(binding) && (0, dayjs_1.default)(binding).isValid()) {
92
92
  bindings[i] = (0, dayjs_1.default)(binding).toDate();
93
93
  }
94
94
  }
@@ -129,18 +129,25 @@ var MySQLModule;
129
129
  yield this.client.end();
130
130
  });
131
131
  }
132
- internalQuery(query, connect = true) {
132
+ internalQuery(query, opts = {
133
+ connect: true,
134
+ disableCoercion: false,
135
+ }) {
133
136
  return __awaiter(this, void 0, void 0, function* () {
134
137
  try {
135
- if (connect) {
138
+ if (opts === null || opts === void 0 ? void 0 : opts.connect) {
136
139
  yield this.connect();
137
140
  }
141
+ const baseBindings = query.bindings || [];
142
+ const bindings = (opts === null || opts === void 0 ? void 0 : opts.disableCoercion)
143
+ ? baseBindings
144
+ : bindingTypeCoerce(baseBindings);
138
145
  // Node MySQL is callback based, so we must wrap our call in a promise
139
- const response = yield this.client.query(query.sql, bindingTypeCoerce(query.bindings || []));
146
+ const response = yield this.client.query(query.sql, bindings);
140
147
  return response[0];
141
148
  }
142
149
  finally {
143
- if (connect) {
150
+ if (opts === null || opts === void 0 ? void 0 : opts.connect) {
144
151
  yield this.disconnect();
145
152
  }
146
153
  }
@@ -153,13 +160,13 @@ var MySQLModule;
153
160
  yield this.connect();
154
161
  try {
155
162
  // get the tables first
156
- const tablesResp = yield this.internalQuery({ sql: "SHOW TABLES;" }, false);
163
+ const tablesResp = yield this.internalQuery({ sql: "SHOW TABLES;" }, { connect: false });
157
164
  const tableNames = tablesResp.map((obj) => obj[`Tables_in_${database}`] ||
158
165
  obj[`Tables_in_${database.toLowerCase()}`]);
159
166
  for (let tableName of tableNames) {
160
167
  const primaryKeys = [];
161
168
  const schema = {};
162
- const descResp = yield this.internalQuery({ sql: `DESCRIBE \`${tableName}\`;` }, false);
169
+ const descResp = yield this.internalQuery({ sql: `DESCRIBE \`${tableName}\`;` }, { connect: false });
163
170
  for (let column of descResp) {
164
171
  const columnName = column.Field;
165
172
  if (column.Key === "PRI" &&
@@ -172,12 +179,7 @@ var MySQLModule;
172
179
  const isAuto = typeof column.Extra === "string" &&
173
180
  (column.Extra === "auto_increment" ||
174
181
  column.Extra.toLowerCase().includes("generated"));
175
- schema[columnName] = {
176
- name: columnName,
177
- autocolumn: isAuto,
178
- type: (0, utils_1.convertSqlType)(column.Type),
179
- constraints,
180
- };
182
+ schema[columnName] = Object.assign({ name: columnName, autocolumn: isAuto, constraints }, (0, utils_1.convertSqlType)(column.Type));
181
183
  }
182
184
  if (!tables[tableName]) {
183
185
  tables[tableName] = {
@@ -224,7 +226,7 @@ var MySQLModule;
224
226
  return __awaiter(this, void 0, void 0, function* () {
225
227
  yield this.connect();
226
228
  try {
227
- const queryFn = (query) => this.internalQuery(query, false);
229
+ const queryFn = (query) => this.internalQuery(query, { connect: false, disableCoercion: true });
228
230
  return yield this.queryWithReturning(json, queryFn);
229
231
  }
230
232
  finally {
@@ -202,7 +202,7 @@ var OracleModule;
202
202
  }
203
203
  internalConvertType(column) {
204
204
  if (this.isBooleanType(column)) {
205
- return constants_1.FieldTypes.BOOLEAN;
205
+ return { type: constants_1.FieldTypes.BOOLEAN };
206
206
  }
207
207
  return (0, utils_1.convertSqlType)(column.type);
208
208
  }
@@ -240,11 +240,7 @@ var OracleModule;
240
240
  const columnName = oracleColumn.name;
241
241
  let fieldSchema = table.schema[columnName];
242
242
  if (!fieldSchema) {
243
- fieldSchema = {
244
- autocolumn: OracleIntegration.isAutoColumn(oracleColumn),
245
- name: columnName,
246
- type: this.internalConvertType(oracleColumn),
247
- };
243
+ fieldSchema = Object.assign({ autocolumn: OracleIntegration.isAutoColumn(oracleColumn), name: columnName }, this.internalConvertType(oracleColumn));
248
244
  table.schema[columnName] = fieldSchema;
249
245
  }
250
246
  // iterate each constraint on the column
@@ -190,7 +190,6 @@ var PostgresModule;
190
190
  schema: {},
191
191
  };
192
192
  }
193
- const type = (0, utils_1.convertSqlType)(column.data_type);
194
193
  const identity = !!(column.identity_generation ||
195
194
  column.identity_start ||
196
195
  column.identity_increment);
@@ -198,11 +197,7 @@ var PostgresModule;
198
197
  column.column_default.startsWith("nextval");
199
198
  const isGenerated = column.is_generated && column.is_generated !== "NEVER";
200
199
  const isAuto = hasDefault || identity || isGenerated;
201
- tables[tableName].schema[columnName] = {
202
- autocolumn: isAuto,
203
- name: columnName,
204
- type,
205
- };
200
+ tables[tableName].schema[columnName] = Object.assign({ autocolumn: isAuto, name: columnName }, (0, utils_1.convertSqlType)(column.data_type));
206
201
  }
207
202
  const final = (0, utils_1.finaliseExternalTables)(tables, entities);
208
203
  this.tables = final.tables;
@@ -33,6 +33,8 @@ const SQL_DATE_TYPE_MAP = {
33
33
  smalldatetime: constants_1.FieldTypes.DATETIME,
34
34
  date: constants_1.FieldTypes.DATETIME,
35
35
  };
36
+ const SQL_DATE_ONLY_TYPES = ["date"];
37
+ const SQL_TIME_ONLY_TYPES = ["time"];
36
38
  const SQL_STRING_TYPE_MAP = {
37
39
  varchar: constants_1.FieldTypes.STRING,
38
40
  char: constants_1.FieldTypes.STRING,
@@ -73,9 +75,9 @@ function breakExternalTableId(tableId) {
73
75
  return {};
74
76
  }
75
77
  const parts = tableId.split(DOUBLE_SEPARATOR);
76
- let tableName = parts.pop();
78
+ let datasourceId = parts.shift();
77
79
  // if they need joined
78
- let datasourceId = parts.join(DOUBLE_SEPARATOR);
80
+ let tableName = parts.join(DOUBLE_SEPARATOR);
79
81
  return { datasourceId, tableName };
80
82
  }
81
83
  exports.breakExternalTableId = breakExternalTableId;
@@ -124,12 +126,20 @@ function breakRowIdField(_id) {
124
126
  }
125
127
  exports.breakRowIdField = breakRowIdField;
126
128
  function convertSqlType(type) {
129
+ let foundType = constants_1.FieldTypes.STRING;
130
+ const lcType = type.toLowerCase();
127
131
  for (let [external, internal] of Object.entries(SQL_TYPE_MAP)) {
128
- if (type.toLowerCase().includes(external)) {
129
- return internal;
132
+ if (lcType.includes(external)) {
133
+ foundType = internal;
134
+ break;
130
135
  }
131
136
  }
132
- return constants_1.FieldTypes.STRING;
137
+ const schema = { type: foundType };
138
+ if (foundType === constants_1.FieldTypes.DATETIME) {
139
+ schema.dateOnly = SQL_DATE_ONLY_TYPES.includes(lcType);
140
+ schema.timeOnly = SQL_TIME_ONLY_TYPES.includes(lcType);
141
+ }
142
+ return schema;
133
143
  }
134
144
  exports.convertSqlType = convertSqlType;
135
145
  function getSqlQuery(query) {
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.134",
4
+ "version": "1.0.137",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -68,10 +68,10 @@
68
68
  "license": "GPL-3.0",
69
69
  "dependencies": {
70
70
  "@apidevtools/swagger-parser": "^10.0.3",
71
- "@budibase/backend-core": "^1.0.134",
72
- "@budibase/client": "^1.0.134",
73
- "@budibase/pro": "1.0.134",
74
- "@budibase/string-templates": "^1.0.134",
71
+ "@budibase/backend-core": "^1.0.137",
72
+ "@budibase/client": "^1.0.137",
73
+ "@budibase/pro": "1.0.137",
74
+ "@budibase/string-templates": "^1.0.137",
75
75
  "@bull-board/api": "^3.7.0",
76
76
  "@bull-board/koa": "^3.7.0",
77
77
  "@elastic/elasticsearch": "7.10.0",
@@ -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++;
@@ -249,15 +249,14 @@ class Orchestrator {
249
249
  }
250
250
  module.exports = (input, callback) => {
251
251
  const appId = input.data.event.appId;
252
- doInAppContext(appId, () => {
252
+ doInAppContext(appId, () => __awaiter(void 0, void 0, void 0, function* () {
253
253
  const automationOrchestrator = new Orchestrator(input.data.automation, input.data.event);
254
- automationOrchestrator
255
- .execute()
256
- .then(response => {
254
+ try {
255
+ const response = yield automationOrchestrator.execute();
257
256
  callback(null, response);
258
- })
259
- .catch(err => {
257
+ }
258
+ catch (err) {
260
259
  callback(err);
261
- });
262
- });
260
+ }
261
+ }));
263
262
  };
@@ -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
  };