@budibase/server 2.0.19 → 2.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/builder/assets/{index.98a96209.js → index.654c9538.js} +1 -1
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +21 -4
  4. package/coverage/coverage-final.json +1 -0
  5. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  6. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/index.html +1 -1
  12. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  18. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  23. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  31. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  36. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  40. package/coverage/lcov-report/api/index.html +1 -1
  41. package/coverage/lcov-report/api/index.js.html +1 -1
  42. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  43. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  44. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  45. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  46. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/index.html +1 -1
  52. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  66. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  69. package/coverage/lcov-report/automations/actions.js.html +1 -1
  70. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  71. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  72. package/coverage/lcov-report/automations/index.html +1 -1
  73. package/coverage/lcov-report/automations/index.js.html +1 -1
  74. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  75. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  76. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  77. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  78. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  79. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/index.html +1 -1
  81. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  91. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  92. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  93. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  94. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  95. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  96. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  99. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  100. package/coverage/lcov-report/constants/index.html +1 -1
  101. package/coverage/lcov-report/constants/index.js.html +1 -1
  102. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  103. package/coverage/lcov-report/constants/screens.js.html +1 -1
  104. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  105. package/coverage/lcov-report/db/index.html +1 -1
  106. package/coverage/lcov-report/db/index.js.html +1 -1
  107. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  108. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  109. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  110. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  111. package/coverage/lcov-report/db/newid.js.html +1 -1
  112. package/coverage/lcov-report/db/utils.js.html +1 -1
  113. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  114. package/coverage/lcov-report/events/index.html +1 -1
  115. package/coverage/lcov-report/events/index.js.html +1 -1
  116. package/coverage/lcov-report/events/utils.js.html +1 -1
  117. package/coverage/lcov-report/index.html +19 -19
  118. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  119. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  120. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  121. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  122. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  123. package/coverage/lcov-report/middleware/index.html +1 -1
  124. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  125. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  126. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  127. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  128. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  129. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  130. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  131. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  132. package/coverage/lcov-report/utilities/global.js.html +1 -1
  133. package/coverage/lcov-report/utilities/index.html +24 -9
  134. package/coverage/lcov-report/utilities/index.js.html +1 -1
  135. package/coverage/lcov-report/utilities/plugins.js.html +148 -0
  136. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  137. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  138. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  139. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  140. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  141. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  142. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  143. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  144. package/coverage/lcov-report/utilities/security.js.html +1 -1
  145. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  146. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  147. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  148. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  149. package/coverage/lcov-report/utilities/users.js.html +1 -1
  150. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  151. package/coverage/lcov.info +33 -0
  152. package/dist/api/controllers/application.js +4 -1
  153. package/dist/api/controllers/public/utils.js +1 -1
  154. package/dist/api/controllers/static/index.js +3 -1
  155. package/dist/api/controllers/static/templates/BudibaseApp.svelte +1 -3
  156. package/dist/api/controllers/table/internal.js +9 -1
  157. package/dist/api/controllers/table/utils.js +1 -1
  158. package/dist/package.json +6 -6
  159. package/dist/tsconfig.build.tsbuildinfo +1 -1
  160. package/dist/utilities/plugins.js +20 -0
  161. package/package.json +7 -7
  162. package/src/api/controllers/application.ts +5 -1
  163. package/src/api/controllers/public/utils.ts +1 -1
  164. package/src/api/controllers/static/index.ts +4 -1
  165. package/src/api/controllers/static/templates/BudibaseApp.svelte +1 -3
  166. package/src/api/controllers/table/internal.ts +10 -2
  167. package/src/api/controllers/table/utils.ts +1 -1
  168. package/src/utilities/plugins.js +21 -0
@@ -136,7 +136,7 @@ exports.resolve = function (...args) {
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 Tue Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
139
+ at Wed Oct 05 2022 09:22:39 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 Tue Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
505
+ at Wed Oct 05 2022 09:22:39 GMT+0000 (Coordinated Universal Time)
506
506
  </div>
507
507
  <script src="../prettify.js"></script>
508
508
  <script>
@@ -451,7 +451,7 @@ exports.getGlobalUsersFromMetadata = async users =&gt; {
451
451
  <div class='footer quiet pad2 space-top1 center small'>
452
452
  Code coverage generated by
453
453
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
454
- at Tue Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
454
+ at Wed Oct 05 2022 09:22:39 GMT+0000 (Coordinated Universal Time)
455
455
  </div>
456
456
  <script src="../prettify.js"></script>
457
457
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">72.7% </span>
26
+ <span class="strong">71.61% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>269/370</span>
28
+ <span class='fraction'>275/384</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">58.22% </span>
33
+ <span class="strong">57.31% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>92/158</span>
35
+ <span class='fraction'>94/164</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">70% </span>
40
+ <span class="strong">69.44% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>49/70</span>
42
+ <span class='fraction'>50/72</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">72.45% </span>
47
+ <span class="strong">71.35% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>263/363</span>
49
+ <span class='fraction'>269/377</span>
50
50
  </div>
51
51
 
52
52
 
@@ -153,6 +153,21 @@
153
153
  <td data-value="80" class="abs high">65/80</td>
154
154
  </tr>
155
155
 
156
+ <tr>
157
+ <td class="file low" data-value="plugins.js"><a href="plugins.js.html">plugins.js</a></td>
158
+ <td data-value="42.85" class="pic low">
159
+ <div class="chart"><div class="cover-fill" style="width: 42%"></div><div class="cover-empty" style="width: 58%"></div></div>
160
+ </td>
161
+ <td data-value="42.85" class="pct low">42.85%</td>
162
+ <td data-value="14" class="abs low">6/14</td>
163
+ <td data-value="33.33" class="pct low">33.33%</td>
164
+ <td data-value="6" class="abs low">2/6</td>
165
+ <td data-value="50" class="pct medium">50%</td>
166
+ <td data-value="2" class="abs medium">1/2</td>
167
+ <td data-value="42.85" class="pct low">42.85%</td>
168
+ <td data-value="14" class="abs low">6/14</td>
169
+ </tr>
170
+
156
171
  <tr>
157
172
  <td class="file low" data-value="scriptRunner.js"><a href="scriptRunner.js.html">scriptRunner.js</a></td>
158
173
  <td data-value="30.76" class="pic low">
@@ -236,7 +251,7 @@
236
251
  <div class='footer quiet pad2 space-top1 center small'>
237
252
  Code coverage generated by
238
253
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
239
- at Tue Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
254
+ at Wed Oct 05 2022 09:22:39 GMT+0000 (Coordinated Universal Time)
240
255
  </div>
241
256
  <script src="../prettify.js"></script>
242
257
  <script>
@@ -586,7 +586,7 @@ exports.isQsTrue = param =&gt; {
586
586
  <div class='footer quiet pad2 space-top1 center small'>
587
587
  Code coverage generated by
588
588
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
589
- at Tue Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
589
+ at Wed Oct 05 2022 09:22:39 GMT+0000 (Coordinated Universal Time)
590
590
  </div>
591
591
  <script src="../prettify.js"></script>
592
592
  <script>
@@ -0,0 +1,148 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for utilities/plugins.js</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">utilities</a> plugins.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">42.85% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>6/14</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">33.33% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>2/6</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">50% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>1/2</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">42.85% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>6/14</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line low'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
88
+ <span class="cline-any cline-yes">44x</span>
89
+ <span class="cline-any cline-yes">44x</span>
90
+ <span class="cline-any cline-neutral">&nbsp;</span>
91
+ <span class="cline-any cline-yes">44x</span>
92
+ <span class="cline-any cline-yes">6x</span>
93
+ <span class="cline-any cline-yes">6x</span>
94
+ <span class="cline-any cline-neutral">&nbsp;</span>
95
+ <span class="cline-any cline-no">&nbsp;</span>
96
+ <span class="cline-any cline-no">&nbsp;</span>
97
+ <span class="cline-any cline-no">&nbsp;</span>
98
+ <span class="cline-any cline-no">&nbsp;</span>
99
+ <span class="cline-any cline-neutral">&nbsp;</span>
100
+ <span class="cline-any cline-neutral">&nbsp;</span>
101
+ <span class="cline-any cline-neutral">&nbsp;</span>
102
+ <span class="cline-any cline-no">&nbsp;</span>
103
+ <span class="cline-any cline-no">&nbsp;</span>
104
+ <span class="cline-any cline-no">&nbsp;</span>
105
+ <span class="cline-any cline-no">&nbsp;</span>
106
+ <span class="cline-any cline-neutral">&nbsp;</span>
107
+ <span class="cline-any cline-neutral">&nbsp;</span>
108
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const env = require("../environment")
109
+ const { plugins: ProPlugins } = require("@budibase/pro")
110
+ const { objectStore } = require("@budibase/backend-core")
111
+ &nbsp;
112
+ exports.enrichPluginURLs = plugins =&gt; {
113
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!plugins || <span class="branch-1 cbranch-no" title="branch not covered" >!plugins.length)</span> {
114
+ return []
115
+ }
116
+ <span class="cstat-no" title="statement not covered" > return plugins.map(<span class="fstat-no" title="function not covered" >pl</span>ugin =&gt; {</span>
117
+ const cloud = <span class="cstat-no" title="statement not covered" >!env.SELF_HOSTED</span>
118
+ const bucket = <span class="cstat-no" title="statement not covered" >objectStore.ObjectStoreBuckets.PLUGINS</span>
119
+ const jsFileName = <span class="cstat-no" title="statement not covered" >"plugin.min.js"</span>
120
+ &nbsp;
121
+ // In self host we need to prefix the path, as the bucket name is not part
122
+ // of the bucket path. In cloud, it's already part of the bucket path.
123
+ let jsUrl = <span class="cstat-no" title="statement not covered" >cloud ? "https://cdn.budi.live/" : `/${bucket}/`</span>
124
+ <span class="cstat-no" title="statement not covered" > jsUrl += ProPlugins.getBucketPath(plugin.name)</span>
125
+ <span class="cstat-no" title="statement not covered" > jsUrl += jsFileName</span>
126
+ <span class="cstat-no" title="statement not covered" > return { ...plugin, jsUrl }</span>
127
+ })
128
+ }
129
+ &nbsp;</pre></td></tr></table></pre>
130
+
131
+ <div class='push'></div><!-- for sticky footer -->
132
+ </div><!-- /wrapper -->
133
+ <div class='footer quiet pad2 space-top1 center small'>
134
+ Code coverage generated by
135
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
136
+ at Wed Oct 05 2022 09:22:39 GMT+0000 (Coordinated Universal Time)
137
+ </div>
138
+ <script src="../prettify.js"></script>
139
+ <script>
140
+ window.onload = function () {
141
+ prettyPrint();
142
+ };
143
+ </script>
144
+ <script src="../sorter.js"></script>
145
+ <script src="../block-navigation.js"></script>
146
+ </body>
147
+ </html>
148
+
@@ -436,7 +436,7 @@ module.exports = InMemoryQueue
436
436
  <div class='footer quiet pad2 space-top1 center small'>
437
437
  Code coverage generated by
438
438
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
439
- at Tue Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
439
+ at Wed Oct 05 2022 09:22:39 GMT+0000 (Coordinated Universal Time)
440
440
  </div>
441
441
  <script src="../../prettify.js"></script>
442
442
  <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 Tue Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
104
+ at Wed Oct 05 2022 09:22:39 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 Tue Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
104
+ at Wed Oct 05 2022 09:22:39 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 Tue Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
148
+ at Wed Oct 05 2022 09:22:39 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 Tue Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
119
+ at Wed Oct 05 2022 09:22:39 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 Tue Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
1099
+ at Wed Oct 05 2022 09:22:39 GMT+0000 (Coordinated Universal Time)
1100
1100
  </div>
1101
1101
  <script src="../../prettify.js"></script>
1102
1102
  <script>
@@ -346,7 +346,7 @@ exports.processDates = <span class="fstat-no" title="function not covered" >(t</
346
346
  <div class='footer quiet pad2 space-top1 center small'>
347
347
  Code coverage generated by
348
348
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
349
- at Tue Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
349
+ at Wed Oct 05 2022 09:22:39 GMT+0000 (Coordinated Universal Time)
350
350
  </div>
351
351
  <script src="../../prettify.js"></script>
352
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 Tue Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
145
+ at Wed Oct 05 2022 09:22:39 GMT+0000 (Coordinated Universal Time)
146
146
  </div>
147
147
  <script src="../prettify.js"></script>
148
148
  <script>
@@ -283,7 +283,7 @@ exports.CURRENTLY_SUPPORTED_LEVELS = CURRENTLY_SUPPORTED_LEVELS
283
283
  <div class='footer quiet pad2 space-top1 center small'>
284
284
  Code coverage generated by
285
285
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
286
- at Tue Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
286
+ at Wed Oct 05 2022 09:22:39 GMT+0000 (Coordinated Universal Time)
287
287
  </div>
288
288
  <script src="../prettify.js"></script>
289
289
  <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 Tue Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
94
+ at Wed Oct 05 2022 09:22:39 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 Tue Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
119
+ at Wed Oct 05 2022 09:22:39 GMT+0000 (Coordinated Universal Time)
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -310,7 +310,7 @@ exports.getUniqueRows = async appIds =&gt; {
310
310
  <div class='footer quiet pad2 space-top1 center small'>
311
311
  Code coverage generated by
312
312
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
313
- at Tue Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
313
+ at Wed Oct 05 2022 09:22:39 GMT+0000 (Coordinated Universal Time)
314
314
  </div>
315
315
  <script src="../../prettify.js"></script>
316
316
  <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 Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
127
+ at Wed Oct 05 2022 09:22:39 GMT+0000 (Coordinated Universal Time)
128
128
  </div>
129
129
  <script src="../../prettify.js"></script>
130
130
  <script>
@@ -214,7 +214,7 @@ exports.publicApiUserFix = ctx =&gt; {
214
214
  <div class='footer quiet pad2 space-top1 center small'>
215
215
  Code coverage generated by
216
216
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
217
- at Tue Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
217
+ at Wed Oct 05 2022 09:22:39 GMT+0000 (Coordinated Universal Time)
218
218
  </div>
219
219
  <script src="../prettify.js"></script>
220
220
  <script>
@@ -589,7 +589,7 @@ exports.generateApiKey = <span class="fstat-no" title="function not covered" >as
589
589
  <div class='footer quiet pad2 space-top1 center small'>
590
590
  Code coverage generated by
591
591
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
592
- at Tue Oct 04 2022 16:56:54 GMT+0000 (Coordinated Universal Time)
592
+ at Wed Oct 05 2022 09:22:39 GMT+0000 (Coordinated Universal Time)
593
593
  </div>
594
594
  <script src="../prettify.js"></script>
595
595
  <script>
@@ -7377,6 +7377,39 @@ BRF:32
7377
7377
  BRH:17
7378
7378
  end_of_record
7379
7379
  TN:
7380
+ SF:src/utilities/plugins.js
7381
+ FN:5,(anonymous_0)
7382
+ FN:9,(anonymous_1)
7383
+ FNF:2
7384
+ FNH:1
7385
+ FNDA:6,(anonymous_0)
7386
+ FNDA:0,(anonymous_1)
7387
+ DA:1,44
7388
+ DA:2,44
7389
+ DA:3,44
7390
+ DA:5,44
7391
+ DA:6,6
7392
+ DA:7,6
7393
+ DA:9,0
7394
+ DA:10,0
7395
+ DA:11,0
7396
+ DA:12,0
7397
+ DA:16,0
7398
+ DA:17,0
7399
+ DA:18,0
7400
+ DA:19,0
7401
+ LF:14
7402
+ LH:6
7403
+ BRDA:6,0,0,6
7404
+ BRDA:6,0,1,0
7405
+ BRDA:6,1,0,6
7406
+ BRDA:6,1,1,0
7407
+ BRDA:16,2,0,0
7408
+ BRDA:16,2,1,0
7409
+ BRF:6
7410
+ BRH:2
7411
+ end_of_record
7412
+ TN:
7380
7413
  SF:src/utilities/scriptRunner.js
7381
7414
  FN:6,(anonymous_0)
7382
7415
  FN:18,(anonymous_1)
@@ -38,6 +38,7 @@ const backend_core_2 = require("@budibase/backend-core");
38
38
  const types_1 = require("@budibase/types");
39
39
  const layouts_1 = require("../../constants/layouts");
40
40
  const pro_2 = require("@budibase/pro");
41
+ const plugins_1 = require("../../utilities/plugins");
41
42
  const URL_REGEX_SLASH = /\/|\\/g;
42
43
  // utility function, need to do away with this
43
44
  function getLayouts() {
@@ -176,9 +177,11 @@ const fetchAppDefinition = (ctx) => __awaiter(void 0, void 0, void 0, function*
176
177
  exports.fetchAppDefinition = fetchAppDefinition;
177
178
  const fetchAppPackage = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
178
179
  const db = backend_core_1.context.getAppDB();
179
- const application = yield db.get(utils_1.DocumentType.APP_METADATA);
180
+ let application = yield db.get(utils_1.DocumentType.APP_METADATA);
180
181
  const layouts = yield getLayouts();
181
182
  let screens = yield getScreens();
183
+ // Enrich plugin URLs
184
+ application.usedPlugins = (0, plugins_1.enrichPluginURLs)(application.usedPlugins);
182
185
  // Only filter screens if the user is not a builder
183
186
  if (!(ctx.user.builder && ctx.user.builder.global)) {
184
187
  const userRoleId = getUserRoleId(ctx);
@@ -32,7 +32,7 @@ function addRev(body, tableId) {
32
32
  }
33
33
  exports.addRev = addRev;
34
34
  /**
35
- * Performs a case insensitive search on the provided documents, using the
35
+ * Performs a case in-sensitive search on the provided documents, using the
36
36
  * provided key and value. This will be a string based search, using the
37
37
  * startsWith function.
38
38
  */
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.getSignedUploadURL = exports.serveClientLibrary = exports.serveBuilderPreview = exports.serveApp = exports.deleteObjects = exports.uploadFile = exports.serveBuilder = exports.toggleBetaUiFeature = void 0;
13
+ const plugins_1 = require("../../../utilities/plugins");
13
14
  require("svelte/register");
14
15
  const send = require("koa-send");
15
16
  const { resolve, join } = require("../../../utilities/centralPath");
@@ -108,12 +109,13 @@ const serveApp = function (ctx) {
108
109
  let appId = getAppId();
109
110
  if (!env.isJest()) {
110
111
  const App = require("./templates/BudibaseApp.svelte").default;
112
+ const plugins = (0, plugins_1.enrichPluginURLs)(appInfo.usedPlugins);
111
113
  const { head, html, css } = App.render({
112
114
  title: appInfo.name,
113
115
  production: env.isProd(),
114
116
  appId,
115
117
  clientLibPath: clientLibraryPath(appId, appInfo.version, ctx),
116
- usedPlugins: appInfo.usedPlugins,
118
+ usedPlugins: plugins,
117
119
  });
118
120
  const appHbs = loadHandlebarsFile(`${__dirname}/templates/app.hbs`);
119
121
  ctx.body = yield processString(appHbs, {
@@ -88,9 +88,7 @@
88
88
  <!-- But before loadBudibase is called -->
89
89
  {#if usedPlugins?.length}
90
90
  {#each usedPlugins as plugin}
91
- <script
92
- type="application/javascript"
93
- src={`/plugins/${plugin.jsUrl}`}></script>
91
+ <script type="application/javascript" src={plugin.jsUrl}></script>
94
92
  {/each}
95
93
  {/if}
96
94
  <script type="application/javascript">
@@ -30,6 +30,8 @@ const environment_1 = require("../../../environment");
30
30
  const rowProcessor_1 = require("../../../utilities/rowProcessor");
31
31
  const bulkFormula_1 = require("./bulkFormula");
32
32
  const pro_1 = require("@budibase/pro");
33
+ const lodash_1 = require("lodash");
34
+ const fp_1 = require("lodash/fp");
33
35
  function checkAutoColumns(table, oldTable) {
34
36
  if (!table.schema) {
35
37
  return table;
@@ -124,9 +126,15 @@ function save(ctx) {
124
126
  if (updatedRows && updatedRows.length !== 0) {
125
127
  yield db.bulkDocs(updatedRows);
126
128
  }
127
- const result = yield db.put(tableToSave);
129
+ let result = yield db.put(tableToSave);
128
130
  tableToSave._rev = result.rev;
131
+ const savedTable = (0, fp_1.cloneDeep)(tableToSave);
129
132
  tableToSave = yield tableSaveFunctions.after(tableToSave);
133
+ // the table may be updated as part of the table save after functionality - need to write it
134
+ if (!(0, lodash_1.isEqual)(savedTable, tableToSave)) {
135
+ result = yield db.put(tableToSave);
136
+ tableToSave._rev = result.rev;
137
+ }
130
138
  // has to run after, make sure it has _id
131
139
  yield (0, bulkFormula_1.runStaticFormulaChecks)(tableToSave, { oldTable, deletion: null });
132
140
  return tableToSave;
@@ -220,7 +220,7 @@ class TableSaveFunctions {
220
220
  after(table) {
221
221
  return __awaiter(this, void 0, void 0, function* () {
222
222
  table = yield handleSearchIndexes(table);
223
- yield handleDataImport(this.user, table, this.dataImport);
223
+ table = yield handleDataImport(this.user, table, this.dataImport);
224
224
  return table;
225
225
  });
226
226
  }
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/server",
3
3
  "email": "hi@budibase.com",
4
- "version": "2.0.18",
4
+ "version": "2.0.19",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -77,11 +77,11 @@
77
77
  "license": "GPL-3.0",
78
78
  "dependencies": {
79
79
  "@apidevtools/swagger-parser": "10.0.3",
80
- "@budibase/backend-core": "^2.0.18",
81
- "@budibase/client": "^2.0.18",
82
- "@budibase/pro": "2.0.18",
83
- "@budibase/string-templates": "^2.0.18",
84
- "@budibase/types": "^2.0.18",
80
+ "@budibase/backend-core": "^2.0.19",
81
+ "@budibase/client": "^2.0.19",
82
+ "@budibase/pro": "2.0.19",
83
+ "@budibase/string-templates": "^2.0.19",
84
+ "@budibase/types": "^2.0.19",
85
85
  "@bull-board/api": "3.7.0",
86
86
  "@bull-board/koa": "3.9.4",
87
87
  "@elastic/elasticsearch": "7.10.0",