@budibase/server 1.0.105-alpha.35 → 1.0.105-alpha.36

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 (173) hide show
  1. package/builder/assets/{index.f8ace0af.js → index.f2acedd3.js} +85 -85
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +5 -5
  4. package/coverage/coverage-final.json +1 -1
  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/client.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 +5 -5
  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 +5 -5
  137. package/coverage/lcov-report/threads/query.js.html +1 -1
  138. package/coverage/lcov-report/threads/utils.js.html +7 -4
  139. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  140. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  141. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  142. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  143. package/coverage/lcov-report/utilities/global.js.html +1 -1
  144. package/coverage/lcov-report/utilities/index.html +1 -1
  145. package/coverage/lcov-report/utilities/index.js.html +1 -1
  146. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  147. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  148. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  149. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  150. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  151. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  152. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  153. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  154. package/coverage/lcov-report/utilities/security.js.html +1 -1
  155. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  156. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  157. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  158. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  159. package/coverage/lcov-report/utilities/users.js.html +1 -1
  160. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  161. package/coverage/lcov.info +3 -2
  162. package/dist/definitions/datasource.js +1 -0
  163. package/dist/integrations/index.js +4 -0
  164. package/dist/integrations/redis.js +158 -0
  165. package/dist/package.json +5 -4
  166. package/dist/threads/utils.js +1 -0
  167. package/dist/tsconfig.build.tsbuildinfo +1 -1
  168. package/package.json +6 -5
  169. package/src/definitions/datasource.ts +1 -0
  170. package/src/integrations/index.ts +4 -0
  171. package/src/integrations/redis.ts +152 -0
  172. package/src/integrations/tests/redis.spec.js +60 -0
  173. package/src/threads/utils.js +1 -0
@@ -30,9 +30,9 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">64.28% </span>
33
+ <span class="strong">66.66% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>9/14</span>
35
+ <span class='fraction'>10/15</span>
36
36
  </div>
37
37
 
38
38
 
@@ -141,7 +141,8 @@
141
141
  <a name='L76'></a><a href='#L76'>76</a>
142
142
  <a name='L77'></a><a href='#L77'>77</a>
143
143
  <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">40x</span>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">40x</span>
145
146
  <span class="cline-any cline-yes">40x</span>
146
147
  <span class="cline-any cline-yes">40x</span>
147
148
  <span class="cline-any cline-yes">40x</span>
@@ -219,6 +220,7 @@
219
220
  <span class="cline-any cline-neutral">&nbsp;</span>
220
221
  <span class="cline-any cline-neutral">&nbsp;</span>
221
222
  <span class="cline-any cline-neutral">&nbsp;</span>
223
+ <span class="cline-any cline-neutral">&nbsp;</span>
222
224
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const env = require("../environment")
223
225
  const CouchDB = require("../db")
224
226
  const { init } = require("@budibase/backend-core")
@@ -293,6 +295,7 @@ exports.hasExtraData = response =&gt; {
293
295
  return (
294
296
  typeof response === "object" &amp;&amp;
295
297
  !Array.isArray(response) &amp;&amp;
298
+ response &amp;&amp;
296
299
  response.data != null &amp;&amp;
297
300
  response.info != null
298
301
  )
@@ -304,7 +307,7 @@ exports.hasExtraData = response =&gt; {
304
307
  <div class='footer quiet pad2 space-top1 center small'>
305
308
  Code coverage generated by
306
309
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
307
- at Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
310
+ at Mon Apr 25 2022 11:19:38 GMT+0000 (Coordinated Universal Time)
308
311
  </div>
309
312
  <script src="../prettify.js"></script>
310
313
  <script>
@@ -115,7 +115,7 @@ const SALT_ROUNDS = <span class="cstat-no" title="statement not covered" >env.SA
115
115
  <div class='footer quiet pad2 space-top1 center small'>
116
116
  Code coverage generated by
117
117
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
118
- at Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
118
+ at Mon Apr 25 2022 11:19:38 GMT+0000 (Coordinated Universal Time)
119
119
  </div>
120
120
  <script src="../prettify.js"></script>
121
121
  <script>
@@ -100,7 +100,7 @@ module.exports.budibaseTempDir = budibaseTempDir
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
103
- at Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
103
+ at Mon Apr 25 2022 11:19:38 GMT+0000 (Coordinated Universal Time)
104
104
  </div>
105
105
  <script src="../prettify.js"></script>
106
106
  <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 Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
139
+ at Mon Apr 25 2022 11:19:38 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 Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
505
+ at Mon Apr 25 2022 11:19:38 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 Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
394
+ at Mon Apr 25 2022 11:19:38 GMT+0000 (Coordinated Universal Time)
395
395
  </div>
396
396
  <script src="../prettify.js"></script>
397
397
  <script>
@@ -251,7 +251,7 @@
251
251
  <div class='footer quiet pad2 space-top1 center small'>
252
252
  Code coverage generated by
253
253
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
254
- at Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
254
+ at Mon Apr 25 2022 11:19:38 GMT+0000 (Coordinated Universal Time)
255
255
  </div>
256
256
  <script src="../prettify.js"></script>
257
257
  <script>
@@ -553,7 +553,7 @@ exports.convertBookmark = bookmark =&gt; {
553
553
  <div class='footer quiet pad2 space-top1 center small'>
554
554
  Code coverage generated by
555
555
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
556
- at Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
556
+ at Mon Apr 25 2022 11:19:38 GMT+0000 (Coordinated Universal Time)
557
557
  </div>
558
558
  <script src="../prettify.js"></script>
559
559
  <script>
@@ -391,7 +391,7 @@ module.exports = InMemoryQueue
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 Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
394
+ at Mon Apr 25 2022 11:19:38 GMT+0000 (Coordinated Universal Time)
395
395
  </div>
396
396
  <script src="../../prettify.js"></script>
397
397
  <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 Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
104
+ at Mon Apr 25 2022 11:19:38 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 Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
104
+ at Mon Apr 25 2022 11:19:38 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 Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
148
+ at Mon Apr 25 2022 11:19:38 GMT+0000 (Coordinated Universal Time)
149
149
  </div>
150
150
  <script src="../../prettify.js"></script>
151
151
  <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 Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
119
+ at Mon Apr 25 2022 11:19:38 GMT+0000 (Coordinated Universal Time)
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -1087,7 +1087,7 @@ exports.cleanupAttachments = async (table, { row, rows, oldRow, oldTable }) =&gt
1087
1087
  <div class='footer quiet pad2 space-top1 center small'>
1088
1088
  Code coverage generated by
1089
1089
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1090
- at Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
1090
+ at Mon Apr 25 2022 11:19:38 GMT+0000 (Coordinated Universal Time)
1091
1091
  </div>
1092
1092
  <script src="../../prettify.js"></script>
1093
1093
  <script>
@@ -187,7 +187,7 @@ exports.processFormulas = (
187
187
  <div class='footer quiet pad2 space-top1 center small'>
188
188
  Code coverage generated by
189
189
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
190
- at Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
190
+ at Mon Apr 25 2022 11:19:38 GMT+0000 (Coordinated Universal Time)
191
191
  </div>
192
192
  <script src="../../prettify.js"></script>
193
193
  <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 Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
145
+ at Mon Apr 25 2022 11:19:38 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 Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
283
+ at Mon Apr 25 2022 11:19:38 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 Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
94
+ at Mon Apr 25 2022 11:19:38 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 Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
119
+ at Mon Apr 25 2022 11:19:38 GMT+0000 (Coordinated Universal Time)
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -295,7 +295,7 @@ exports.getUniqueRows = async appIds =&gt; {
295
295
  <div class='footer quiet pad2 space-top1 center small'>
296
296
  Code coverage generated by
297
297
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
298
- at Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
298
+ at Mon Apr 25 2022 11:19:38 GMT+0000 (Coordinated Universal Time)
299
299
  </div>
300
300
  <script src="../../prettify.js"></script>
301
301
  <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 Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
127
+ at Mon Apr 25 2022 11:19:38 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 Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
145
+ at Mon Apr 25 2022 11:19:38 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 Fri Apr 22 2022 15:27:04 GMT+0000 (Coordinated Universal Time)
490
+ at Mon Apr 25 2022 11:19:38 GMT+0000 (Coordinated Universal Time)
491
491
  </div>
492
492
  <script src="../prettify.js"></script>
493
493
  <script>
@@ -7069,8 +7069,9 @@ BRDA:73,5,0,14
7069
7069
  BRDA:73,5,1,14
7070
7070
  BRDA:73,5,2,12
7071
7071
  BRDA:73,5,3,12
7072
- BRF:14
7073
- BRH:9
7072
+ BRDA:73,5,4,12
7073
+ BRF:15
7074
+ BRH:10
7074
7075
  end_of_record
7075
7076
  TN:
7076
7077
  SF:src/utilities/bcrypt.js
@@ -51,6 +51,7 @@ var SourceNames;
51
51
  SourceNames["ORACLE"] = "ORACLE";
52
52
  SourceNames["GOOGLE_SHEETS"] = "GOOGLE_SHEETS";
53
53
  SourceNames["FIREBASE"] = "FIREBASE";
54
+ SourceNames["REDIS"] = "REDIS";
54
55
  })(SourceNames = exports.SourceNames || (exports.SourceNames = {}));
55
56
  var IncludeRelationships;
56
57
  (function (IncludeRelationships) {
@@ -12,6 +12,7 @@ const arangodb = require("./arangodb");
12
12
  const rest = require("./rest");
13
13
  const googlesheets = require("./googlesheets");
14
14
  const firebase = require("./firebase");
15
+ const redis = require("./redis");
15
16
  const { SourceNames } = require("../definitions/datasource");
16
17
  const environment = require("../environment");
17
18
  const DEFINITIONS = {
@@ -26,6 +27,8 @@ const DEFINITIONS = {
26
27
  [SourceNames.MYSQL]: mysql.schema,
27
28
  [SourceNames.ARANGODB]: arangodb.schema,
28
29
  [SourceNames.REST]: rest.schema,
30
+ [SourceNames.FIREBASE]: firebase.schema,
31
+ [SourceNames.REDIS]: redis.schema,
29
32
  };
30
33
  const INTEGRATIONS = {
31
34
  [SourceNames.POSTGRES]: postgres.integration,
@@ -41,6 +44,7 @@ const INTEGRATIONS = {
41
44
  [SourceNames.REST]: rest.integration,
42
45
  [SourceNames.FIREBASE]: firebase.integration,
43
46
  [SourceNames.GOOGLE_SHEETS]: googlesheets.integration,
47
+ [SourceNames.REDIS]: redis.integration,
44
48
  };
45
49
  // optionally add oracle integration if the oracle binary can be installed
46
50
  if (!(process.arch === "arm64" && process.platform === "darwin")) {
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const datasource_1 = require("../definitions/datasource");
16
+ const ioredis_1 = __importDefault(require("ioredis"));
17
+ var RedisModule;
18
+ (function (RedisModule) {
19
+ const SCHEMA = {
20
+ docs: "https://redis.io/docs/",
21
+ description: "",
22
+ friendlyName: "Redis",
23
+ datasource: {
24
+ host: {
25
+ type: "string",
26
+ required: true,
27
+ default: "localhost",
28
+ },
29
+ port: {
30
+ type: "number",
31
+ required: true,
32
+ default: 6379,
33
+ },
34
+ username: {
35
+ type: "string",
36
+ required: false,
37
+ },
38
+ password: {
39
+ type: "password",
40
+ required: false,
41
+ },
42
+ },
43
+ query: {
44
+ create: {
45
+ type: datasource_1.QueryTypes.FIELDS,
46
+ fields: {
47
+ key: {
48
+ type: datasource_1.DatasourceFieldTypes.STRING,
49
+ required: true,
50
+ },
51
+ value: {
52
+ type: datasource_1.DatasourceFieldTypes.STRING,
53
+ required: true,
54
+ },
55
+ ttl: {
56
+ type: datasource_1.DatasourceFieldTypes.NUMBER,
57
+ },
58
+ },
59
+ },
60
+ read: {
61
+ readable: true,
62
+ type: datasource_1.QueryTypes.FIELDS,
63
+ fields: {
64
+ key: {
65
+ type: datasource_1.DatasourceFieldTypes.STRING,
66
+ required: true,
67
+ },
68
+ },
69
+ },
70
+ delete: {
71
+ type: datasource_1.QueryTypes.FIELDS,
72
+ fields: {
73
+ key: {
74
+ type: datasource_1.DatasourceFieldTypes.STRING,
75
+ required: true,
76
+ },
77
+ },
78
+ },
79
+ command: {
80
+ readable: true,
81
+ displayName: "Redis Command",
82
+ type: datasource_1.QueryTypes.JSON,
83
+ },
84
+ },
85
+ };
86
+ class RedisIntegration {
87
+ constructor(config) {
88
+ this.config = config;
89
+ this.client = new ioredis_1.default({
90
+ host: this.config.host,
91
+ port: this.config.port,
92
+ username: this.config.username,
93
+ password: this.config.password,
94
+ });
95
+ }
96
+ disconnect() {
97
+ return __awaiter(this, void 0, void 0, function* () {
98
+ this.client.disconnect();
99
+ });
100
+ }
101
+ redisContext(query) {
102
+ return __awaiter(this, void 0, void 0, function* () {
103
+ try {
104
+ return yield query();
105
+ }
106
+ catch (err) {
107
+ throw new Error(`Redis error: ${err}`);
108
+ }
109
+ finally {
110
+ this.disconnect();
111
+ }
112
+ });
113
+ }
114
+ create(query) {
115
+ return __awaiter(this, void 0, void 0, function* () {
116
+ return this.redisContext(() => __awaiter(this, void 0, void 0, function* () {
117
+ const response = yield this.client.set(query.key, query.value);
118
+ if (query.ttl) {
119
+ yield this.client.expire(query.key, query.ttl);
120
+ }
121
+ return response;
122
+ }));
123
+ });
124
+ }
125
+ read(query) {
126
+ return __awaiter(this, void 0, void 0, function* () {
127
+ return this.redisContext(() => __awaiter(this, void 0, void 0, function* () {
128
+ const response = yield this.client.get(query.key);
129
+ return response;
130
+ }));
131
+ });
132
+ }
133
+ delete(query) {
134
+ return __awaiter(this, void 0, void 0, function* () {
135
+ return this.redisContext(() => __awaiter(this, void 0, void 0, function* () {
136
+ const response = yield this.client.del(query.key);
137
+ return response;
138
+ }));
139
+ });
140
+ }
141
+ command(query) {
142
+ return __awaiter(this, void 0, void 0, function* () {
143
+ return this.redisContext(() => __awaiter(this, void 0, void 0, function* () {
144
+ const commands = query.json.trim().split(" ");
145
+ const pipeline = this.client.pipeline([commands]);
146
+ const result = yield pipeline.exec();
147
+ return {
148
+ response: result[0][1],
149
+ };
150
+ }));
151
+ });
152
+ }
153
+ }
154
+ module.exports = {
155
+ schema: SCHEMA,
156
+ integration: RedisIntegration,
157
+ };
158
+ })(RedisModule || (RedisModule = {}));
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.105-alpha.34",
4
+ "version": "1.0.105-alpha.35",
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.105-alpha.34",
72
- "@budibase/client": "^1.0.105-alpha.34",
73
- "@budibase/string-templates": "^1.0.105-alpha.34",
71
+ "@budibase/backend-core": "^1.0.105-alpha.35",
72
+ "@budibase/client": "^1.0.105-alpha.35",
74
73
  "@budibase/pro": "1.0.105-alpha.34",
74
+ "@budibase/string-templates": "^1.0.105-alpha.35",
75
75
  "@bull-board/api": "^3.7.0",
76
76
  "@bull-board/koa": "^3.7.0",
77
77
  "@elastic/elasticsearch": "7.10.0",
@@ -160,6 +160,7 @@
160
160
  "copyfiles": "^2.4.1",
161
161
  "docker-compose": "^0.23.6",
162
162
  "eslint": "^6.8.0",
163
+ "ioredis-mock": "^7.2.0",
163
164
  "is-wsl": "^2.2.0",
164
165
  "jest": "^27.0.5",
165
166
  "jest-openapi": "^0.14.2",
@@ -69,6 +69,7 @@ exports.formatResponse = resp => {
69
69
  exports.hasExtraData = response => {
70
70
  return (typeof response === "object" &&
71
71
  !Array.isArray(response) &&
72
+ response &&
72
73
  response.data != null &&
73
74
  response.info != null);
74
75
  };