@budibase/server 1.0.193 → 1.0.196

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 (177) hide show
  1. package/builder/assets/index.24307ca0.css +6 -0
  2. package/builder/assets/{index.e175bec8.js → index.815964ef.js} +182 -182
  3. package/builder/index.html +2 -2
  4. package/coverage/clover.xml +17 -5
  5. package/coverage/coverage-final.json +1 -1
  6. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/index.html +1 -1
  16. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  22. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  36. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  45. package/coverage/lcov-report/api/index.html +1 -1
  46. package/coverage/lcov-report/api/index.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/index.html +1 -1
  58. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  72. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  75. package/coverage/lcov-report/automations/actions.js.html +1 -1
  76. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  77. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  78. package/coverage/lcov-report/automations/index.html +1 -1
  79. package/coverage/lcov-report/automations/index.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/index.html +1 -1
  87. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  106. package/coverage/lcov-report/constants/index.html +1 -1
  107. package/coverage/lcov-report/constants/index.js.html +1 -1
  108. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  109. package/coverage/lcov-report/constants/screens.js.html +1 -1
  110. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  111. package/coverage/lcov-report/db/index.html +1 -1
  112. package/coverage/lcov-report/db/index.js.html +1 -1
  113. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  116. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  117. package/coverage/lcov-report/db/newid.js.html +1 -1
  118. package/coverage/lcov-report/db/utils.js.html +1 -1
  119. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  120. package/coverage/lcov-report/events/index.html +1 -1
  121. package/coverage/lcov-report/events/index.js.html +1 -1
  122. package/coverage/lcov-report/events/utils.js.html +1 -1
  123. package/coverage/lcov-report/index.html +19 -19
  124. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  125. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  126. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  127. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  128. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  129. package/coverage/lcov-report/middleware/index.html +1 -1
  130. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  131. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  132. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  133. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  134. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  135. package/coverage/lcov-report/threads/automation.js.html +1 -1
  136. package/coverage/lcov-report/threads/index.html +1 -1
  137. package/coverage/lcov-report/threads/query.js.html +1 -1
  138. package/coverage/lcov-report/threads/utils.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 +20 -20
  150. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  151. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +86 -11
  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 +27 -4
  161. package/dist/api/controllers/row/ExternalRequest.js +5 -1
  162. package/dist/integrations/base/sqlTable.js +3 -1
  163. package/dist/integrations/googlesheets.js +3 -2
  164. package/dist/integrations/mysql.js +9 -1
  165. package/dist/integrations/postgres.js +9 -1
  166. package/dist/package.json +5 -5
  167. package/dist/tsconfig.build.tsbuildinfo +1 -1
  168. package/dist/utilities/rowProcessor/utils.js +23 -0
  169. package/package.json +6 -6
  170. package/src/api/controllers/row/ExternalRequest.ts +11 -2
  171. package/src/definitions/common.ts +1 -0
  172. package/src/integrations/base/sqlTable.ts +3 -1
  173. package/src/integrations/googlesheets.ts +6 -2
  174. package/src/integrations/mysql.ts +16 -2
  175. package/src/integrations/postgres.ts +10 -1
  176. package/src/utilities/rowProcessor/utils.js +25 -0
  177. package/builder/assets/index.8a6f249b.css +0 -6
@@ -679,7 +679,7 @@ module.exports = (input, callback) => {
679
679
  <div class='footer quiet pad2 space-top1 center small'>
680
680
  Code coverage generated by
681
681
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
682
- at Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
682
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
683
683
  </div>
684
684
  <script src="../prettify.js"></script>
685
685
  <script>
@@ -304,7 +304,7 @@ exports.hasExtraData = response =&gt; {
304
304
  <div class='footer quiet pad2 space-top1 center small'>
305
305
  Code coverage generated by
306
306
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
307
- at Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
307
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
308
308
  </div>
309
309
  <script src="../prettify.js"></script>
310
310
  <script>
@@ -79,7 +79,7 @@ module.exports.budibaseTempDir = budibaseTempDir
79
79
  <div class='footer quiet pad2 space-top1 center small'>
80
80
  Code coverage generated by
81
81
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
82
- at Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
82
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
83
83
  </div>
84
84
  <script src="../prettify.js"></script>
85
85
  <script>
@@ -136,7 +136,7 @@ exports.resolve = <span class="fstat-no" title="function not covered" >fu</span>
136
136
  <div class='footer quiet pad2 space-top1 center small'>
137
137
  Code coverage generated by
138
138
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
139
- at Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
139
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
140
140
  </div>
141
141
  <script src="../prettify.js"></script>
142
142
  <script>
@@ -502,7 +502,7 @@ module.exports = {
502
502
  <div class='footer quiet pad2 space-top1 center small'>
503
503
  Code coverage generated by
504
504
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
505
- at Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
505
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
506
506
  </div>
507
507
  <script src="../prettify.js"></script>
508
508
  <script>
@@ -391,7 +391,7 @@ exports.getGlobalUsersFromMetadata = async users =&gt; {
391
391
  <div class='footer quiet pad2 space-top1 center small'>
392
392
  Code coverage generated by
393
393
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
394
- at Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
394
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
395
395
  </div>
396
396
  <script src="../prettify.js"></script>
397
397
  <script>
@@ -236,7 +236,7 @@
236
236
  <div class='footer quiet pad2 space-top1 center small'>
237
237
  Code coverage generated by
238
238
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
239
- at Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
239
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
240
240
  </div>
241
241
  <script src="../prettify.js"></script>
242
242
  <script>
@@ -559,7 +559,7 @@ exports.convertBookmark = bookmark =&gt; {
559
559
  <div class='footer quiet pad2 space-top1 center small'>
560
560
  Code coverage generated by
561
561
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
562
- at Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
562
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
563
563
  </div>
564
564
  <script src="../prettify.js"></script>
565
565
  <script>
@@ -412,7 +412,7 @@ module.exports = InMemoryQueue
412
412
  <div class='footer quiet pad2 space-top1 center small'>
413
413
  Code coverage generated by
414
414
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
415
- at Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
415
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
416
416
  </div>
417
417
  <script src="../../prettify.js"></script>
418
418
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
104
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
104
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>
@@ -145,7 +145,7 @@ exports.createRoutingView = createRoutingView
145
145
  <div class='footer quiet pad2 space-top1 center small'>
146
146
  Code coverage generated by
147
147
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
148
- at Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
148
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
149
149
  </div>
150
150
  <script src="../../prettify.js"></script>
151
151
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">59.17% </span>
26
+ <span class="strong">55.8% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>100/169</span>
28
+ <span class='fraction'>101/181</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">48.5% </span>
33
+ <span class="strong">45.45% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>65/134</span>
35
+ <span class='fraction'>65/143</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">54.54% </span>
40
+ <span class="strong">52.17% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>12/22</span>
42
+ <span class='fraction'>12/23</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">61.49% </span>
47
+ <span class="strong">57.8% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>99/161</span>
49
+ <span class='fraction'>100/173</span>
50
50
  </div>
51
51
 
52
52
 
@@ -94,18 +94,18 @@
94
94
  </tr>
95
95
 
96
96
  <tr>
97
- <td class="file medium" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
98
- <td data-value="62.5" class="pic medium">
99
- <div class="chart"><div class="cover-fill" style="width: 62%"></div><div class="cover-empty" style="width: 38%"></div></div>
97
+ <td class="file low" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
98
+ <td data-value="47.72" class="pic low">
99
+ <div class="chart"><div class="cover-fill" style="width: 47%"></div><div class="cover-empty" style="width: 53%"></div></div>
100
100
  </td>
101
- <td data-value="62.5" class="pct medium">62.5%</td>
102
- <td data-value="32" class="abs medium">20/32</td>
103
- <td data-value="54.54" class="pct medium">54.54%</td>
104
- <td data-value="33" class="abs medium">18/33</td>
105
- <td data-value="100" class="pct high">100%</td>
106
- <td data-value="2" class="abs high">2/2</td>
107
- <td data-value="64.51" class="pct medium">64.51%</td>
108
- <td data-value="31" class="abs medium">20/31</td>
101
+ <td data-value="47.72" class="pct low">47.72%</td>
102
+ <td data-value="44" class="abs low">21/44</td>
103
+ <td data-value="42.85" class="pct low">42.85%</td>
104
+ <td data-value="42" class="abs low">18/42</td>
105
+ <td data-value="66.66" class="pct medium">66.66%</td>
106
+ <td data-value="3" class="abs medium">2/3</td>
107
+ <td data-value="48.83" class="pct low">48.83%</td>
108
+ <td data-value="43" class="abs low">21/43</td>
109
109
  </tr>
110
110
 
111
111
  </tbody>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
119
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -1096,7 +1096,7 @@ exports.cleanupAttachments = async (table, { row, rows, oldRow, oldTable }) =&gt
1096
1096
  <div class='footer quiet pad2 space-top1 center small'>
1097
1097
  Code coverage generated by
1098
1098
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1099
- at Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
1099
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
1100
1100
  </div>
1101
1101
  <script src="../../prettify.js"></script>
1102
1102
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">62.5% </span>
26
+ <span class="strong">47.72% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>20/32</span>
28
+ <span class='fraction'>21/44</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">54.54% </span>
33
+ <span class="strong">42.85% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>18/33</span>
35
+ <span class='fraction'>18/42</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">66.66% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/2</span>
42
+ <span class='fraction'>2/3</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">64.51% </span>
47
+ <span class="strong">48.83% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>20/31</span>
49
+ <span class='fraction'>21/43</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line medium'></div>
64
+ <div class='status-line low'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -130,7 +130,32 @@
130
130
  <a name='L65'></a><a href='#L65'>65</a>
131
131
  <a name='L66'></a><a href='#L66'>66</a>
132
132
  <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
134
159
  <span class="cline-any cline-neutral">&nbsp;</span>
135
160
  <span class="cline-any cline-neutral">&nbsp;</span>
136
161
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -197,6 +222,31 @@
197
222
  <span class="cline-any cline-neutral">&nbsp;</span>
198
223
  <span class="cline-any cline-yes">278x</span>
199
224
  <span class="cline-any cline-neutral">&nbsp;</span>
225
+ <span class="cline-any cline-neutral">&nbsp;</span>
226
+ <span class="cline-any cline-neutral">&nbsp;</span>
227
+ <span class="cline-any cline-neutral">&nbsp;</span>
228
+ <span class="cline-any cline-neutral">&nbsp;</span>
229
+ <span class="cline-any cline-neutral">&nbsp;</span>
230
+ <span class="cline-any cline-yes">41x</span>
231
+ <span class="cline-any cline-no">&nbsp;</span>
232
+ <span class="cline-any cline-no">&nbsp;</span>
233
+ <span class="cline-any cline-no">&nbsp;</span>
234
+ <span class="cline-any cline-no">&nbsp;</span>
235
+ <span class="cline-any cline-neutral">&nbsp;</span>
236
+ <span class="cline-any cline-no">&nbsp;</span>
237
+ <span class="cline-any cline-no">&nbsp;</span>
238
+ <span class="cline-any cline-neutral">&nbsp;</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <span class="cline-any cline-no">&nbsp;</span>
242
+ <span class="cline-any cline-no">&nbsp;</span>
243
+ <span class="cline-any cline-no">&nbsp;</span>
244
+ <span class="cline-any cline-no">&nbsp;</span>
245
+ <span class="cline-any cline-neutral">&nbsp;</span>
246
+ <span class="cline-any cline-neutral">&nbsp;</span>
247
+ <span class="cline-any cline-neutral">&nbsp;</span>
248
+ <span class="cline-any cline-no">&nbsp;</span>
249
+ <span class="cline-any cline-neutral">&nbsp;</span>
200
250
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const {
201
251
  FieldTypes,
202
252
  FormulaTypes,
@@ -264,6 +314,31 @@ exports.processFormulas = (
264
314
  }
265
315
  return single ? rows[0] : rows
266
316
  }
317
+ &nbsp;
318
+ /**
319
+ * Processes any date columns and ensures that those without the ignoreTimezones
320
+ * flag set are parsed as UTC rather than local time.
321
+ */
322
+ exports.processDates = <span class="fstat-no" title="function not covered" >(t</span>able, rows) =&gt; {
323
+ let datesWithTZ = <span class="cstat-no" title="statement not covered" >[]</span>
324
+ <span class="cstat-no" title="statement not covered" > for (let [column, schema] of Object.entries(table.schema)) {</span>
325
+ <span class="cstat-no" title="statement not covered" > if (schema.type !== FieldTypes.DATETIME) {</span>
326
+ <span class="cstat-no" title="statement not covered" > continue</span>
327
+ }
328
+ <span class="cstat-no" title="statement not covered" > if (!schema.ignoreTimezones) {</span>
329
+ <span class="cstat-no" title="statement not covered" > datesWithTZ.push(column)</span>
330
+ }
331
+ }
332
+ &nbsp;
333
+ <span class="cstat-no" title="statement not covered" > for (let row of rows) {</span>
334
+ <span class="cstat-no" title="statement not covered" > for (let col of datesWithTZ) {</span>
335
+ <span class="cstat-no" title="statement not covered" > if (row[col] &amp;&amp; typeof row[col] === "string" &amp;&amp; !row[col].endsWith("Z")) {</span>
336
+ <span class="cstat-no" title="statement not covered" > row[col] = new Date(row[col]).toISOString()</span>
337
+ }
338
+ }
339
+ }
340
+ <span class="cstat-no" title="statement not covered" > return rows</span>
341
+ }
267
342
  &nbsp;</pre></td></tr></table></pre>
268
343
 
269
344
  <div class='push'></div><!-- for sticky footer -->
@@ -271,7 +346,7 @@ exports.processFormulas = (
271
346
  <div class='footer quiet pad2 space-top1 center small'>
272
347
  Code coverage generated by
273
348
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
274
- at Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
349
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
275
350
  </div>
276
351
  <script src="../../prettify.js"></script>
277
352
  <script>
@@ -142,7 +142,7 @@ module.exports = ScriptRunner
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 Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
145
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
146
146
  </div>
147
147
  <script src="../prettify.js"></script>
148
148
  <script>
@@ -280,7 +280,7 @@ exports.CURRENTLY_SUPPORTED_LEVELS = CURRENTLY_SUPPORTED_LEVELS
280
280
  <div class='footer quiet pad2 space-top1 center small'>
281
281
  Code coverage generated by
282
282
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
283
- at Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
283
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
284
284
  </div>
285
285
  <script src="../prettify.js"></script>
286
286
  <script>
@@ -91,7 +91,7 @@
91
91
  <div class='footer quiet pad2 space-top1 center small'>
92
92
  Code coverage generated by
93
93
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
94
- at Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
94
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
95
95
  </div>
96
96
  <script src="../prettify.js"></script>
97
97
  <script>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
119
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -307,7 +307,7 @@ exports.getUniqueRows = async appIds =&gt; {
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 Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
310
+ at Tue Jun 07 2022 13:54:35 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 Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
127
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
128
128
  </div>
129
129
  <script src="../../prettify.js"></script>
130
130
  <script>
@@ -205,7 +205,7 @@ exports.publicApiUserFix = ctx =&gt; {
205
205
  <div class='footer quiet pad2 space-top1 center small'>
206
206
  Code coverage generated by
207
207
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
208
- at Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
208
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
209
209
  </div>
210
210
  <script src="../prettify.js"></script>
211
211
  <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 Wed Jun 01 2022 12:38:01 GMT+0000 (Coordinated Universal Time)
490
+ at Tue Jun 07 2022 13:54:35 GMT+0000 (Coordinated Universal Time)
491
491
  </div>
492
492
  <script src="../prettify.js"></script>
493
493
  <script>
@@ -8138,10 +8138,12 @@ TN:
8138
8138
  SF:src/utilities/rowProcessor/utils.js
8139
8139
  FN:13,(anonymous_0)
8140
8140
  FN:35,(anonymous_1)
8141
- FNF:2
8141
+ FN:73,(anonymous_2)
8142
+ FNF:3
8142
8143
  FNH:2
8143
8144
  FNDA:2,(anonymous_0)
8144
8145
  FNDA:278,(anonymous_1)
8146
+ FNDA:0,(anonymous_2)
8145
8147
  DA:6,41
8146
8148
  DA:7,41
8147
8149
  DA:13,41
@@ -8173,8 +8175,20 @@ DA:57,0
8173
8175
  DA:58,0
8174
8176
  DA:59,0
8175
8177
  DA:66,278
8176
- LF:31
8177
- LH:20
8178
+ DA:73,41
8179
+ DA:74,0
8180
+ DA:75,0
8181
+ DA:76,0
8182
+ DA:77,0
8183
+ DA:79,0
8184
+ DA:80,0
8185
+ DA:84,0
8186
+ DA:85,0
8187
+ DA:86,0
8188
+ DA:87,0
8189
+ DA:91,0
8190
+ LF:43
8191
+ LH:21
8178
8192
  BRDA:14,0,0,0
8179
8193
  BRDA:14,0,1,2
8180
8194
  BRDA:14,1,0,2
@@ -8208,7 +8222,16 @@ BRDA:58,13,0,0
8208
8222
  BRDA:58,13,1,0
8209
8223
  BRDA:66,14,0,166
8210
8224
  BRDA:66,14,1,112
8211
- BRF:33
8225
+ BRDA:76,15,0,0
8226
+ BRDA:76,15,1,0
8227
+ BRDA:79,16,0,0
8228
+ BRDA:79,16,1,0
8229
+ BRDA:86,17,0,0
8230
+ BRDA:86,17,1,0
8231
+ BRDA:86,18,0,0
8232
+ BRDA:86,18,1,0
8233
+ BRDA:86,18,2,0
8234
+ BRF:42
8212
8235
  BRH:18
8213
8236
  end_of_record
8214
8237
  TN:
@@ -356,7 +356,11 @@ var External;
356
356
  // do this at end once its been added to the final rows
357
357
  finalRows = this.updateRelationshipColumns(table, row, finalRows, relationships);
358
358
  }
359
- return (0, utils_4.processFormulas)(table, Object.values(finalRows)).map((row) => this.squashRelationshipColumns(table, row, relationships));
359
+ // Process some additional data types
360
+ let finalRowArray = Object.values(finalRows);
361
+ finalRowArray = (0, utils_4.processDates)(table, finalRowArray);
362
+ finalRowArray = (0, utils_4.processFormulas)(table, finalRowArray);
363
+ return finalRowArray.map((row) => this.squashRelationshipColumns(table, row, relationships));
360
364
  }
361
365
  /**
362
366
  * Gets the list of relationship JSON structures based on the columns in the table,
@@ -48,7 +48,9 @@ function generateSchema(schema, table, tables, oldTable = null, renamed) {
48
48
  schema.boolean(key);
49
49
  break;
50
50
  case FieldTypes.DATETIME:
51
- schema.datetime(key);
51
+ schema.datetime(key, {
52
+ useTz: !column.ignoreTimezones,
53
+ });
52
54
  break;
53
55
  case FieldTypes.ARRAY:
54
56
  schema.json(key);
@@ -130,10 +130,11 @@ var GoogleSheetsModule;
130
130
  "Content-Type": "application/json",
131
131
  },
132
132
  });
133
+ const json = yield response.json();
133
134
  if (response.status !== 200) {
134
- throw new Error("Error authenticating with google sheets.");
135
+ throw new Error(`Error authenticating with google sheets. ${json.error_description}`);
135
136
  }
136
- return response.json();
137
+ return json;
137
138
  });
138
139
  }
139
140
  connect() {
@@ -75,6 +75,7 @@ var MySQLModule;
75
75
  },
76
76
  },
77
77
  };
78
+ const TimezoneAwareDateTypes = ["timestamp"];
78
79
  function bindingTypeCoerce(bindings) {
79
80
  for (let i = 0; i < bindings.length; i++) {
80
81
  const binding = bindings[i];
@@ -111,7 +112,14 @@ var MySQLModule;
111
112
  }
112
113
  // @ts-ignore
113
114
  delete config.rejectUnauthorized;
114
- this.config = config;
115
+ this.config = Object.assign(Object.assign({}, config), { typeCast: function (field, next) {
116
+ if (field.type == "DATETIME" ||
117
+ field.type === "DATE" ||
118
+ field.type === "TIMESTAMP") {
119
+ return field.string();
120
+ }
121
+ return next();
122
+ } });
115
123
  }
116
124
  getBindingIdentifier() {
117
125
  return "?";
@@ -13,9 +13,17 @@ const datasource_1 = require("../definitions/datasource");
13
13
  const utils_1 = require("./utils");
14
14
  var PostgresModule;
15
15
  (function (PostgresModule) {
16
- const { Client } = require("pg");
16
+ const { Client, types } = require("pg");
17
17
  const Sql = require("./base/sql");
18
18
  const { escapeDangerousCharacters } = require("../utilities");
19
+ // Return "date" and "timestamp" types as plain strings.
20
+ // This lets us reference the original stored timezone.
21
+ // types is undefined when running in a test env for some reason.
22
+ if (types) {
23
+ types.setTypeParser(1114, (val) => val); // timestamp
24
+ types.setTypeParser(1082, (val) => val); // date
25
+ types.setTypeParser(1184, (val) => val); // timestampz
26
+ }
19
27
  const JSON_REGEX = /'{.*}'::json/s;
20
28
  const SCHEMA = {
21
29
  docs: "https://node-postgres.com",
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.192",
4
+ "version": "1.0.195",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -70,10 +70,10 @@
70
70
  "license": "GPL-3.0",
71
71
  "dependencies": {
72
72
  "@apidevtools/swagger-parser": "^10.0.3",
73
- "@budibase/backend-core": "^1.0.192",
74
- "@budibase/client": "^1.0.192",
75
- "@budibase/pro": "1.0.192",
76
- "@budibase/string-templates": "^1.0.192",
73
+ "@budibase/backend-core": "^1.0.195",
74
+ "@budibase/client": "^1.0.195",
75
+ "@budibase/pro": "1.0.195",
76
+ "@budibase/string-templates": "^1.0.195",
77
77
  "@bull-board/api": "^3.7.0",
78
78
  "@bull-board/koa": "^3.7.0",
79
79
  "@elastic/elasticsearch": "7.10.0",