@budibase/server 0.9.140-alpha.4 → 0.9.140-alpha.5

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 (200) hide show
  1. package/builder/assets/{index.2bcd18f5.js → index.80d850d1.js} +1 -1
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +646 -528
  4. package/coverage/coverage-final.json +17 -15
  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/application.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/component.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/datasource.js.html +3 -3
  13. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/hosting.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/permission.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/query.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/row/index.html +19 -19
  25. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/internal.js.html +242 -47
  27. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  32. package/coverage/lcov-report/api/controllers/table/index.js.html +2 -2
  33. package/coverage/lcov-report/api/controllers/table/utils.js.html +31 -19
  34. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/view/index.html +32 -17
  38. package/coverage/lcov-report/api/controllers/view/index.js.html +84 -186
  39. package/coverage/lcov-report/api/controllers/view/utils.js.html +407 -0
  40. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  42. package/coverage/lcov-report/api/index.html +1 -1
  43. package/coverage/lcov-report/api/index.js.html +1 -1
  44. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  45. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  46. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/index.html +1 -1
  56. package/coverage/lcov-report/api/routes/index.js.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/permission.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/row.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/static.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/view.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  73. package/coverage/lcov-report/automations/actions.js.html +1 -1
  74. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  75. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  76. package/coverage/lcov-report/automations/index.html +1 -1
  77. package/coverage/lcov-report/automations/index.js.html +1 -1
  78. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  79. package/coverage/lcov-report/automations/steps/createRow.js.html +10 -19
  80. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/deleteRow.js.html +14 -20
  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 +31 -31
  87. package/coverage/lcov-report/automations/steps/integromat.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 +18 -27
  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 +12 -21
  94. package/coverage/lcov-report/automations/steps/utils.js.html +23 -23
  95. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  96. package/coverage/lcov-report/automations/thread.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/automations/utils.js.html +1 -1
  107. package/coverage/lcov-report/constants/index.html +1 -1
  108. package/coverage/lcov-report/constants/index.js.html +1 -1
  109. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  110. package/coverage/lcov-report/constants/screens.js.html +1 -1
  111. package/coverage/lcov-report/db/client.js.html +1 -1
  112. package/coverage/lcov-report/db/inMemoryView.js.html +224 -0
  113. package/coverage/lcov-report/db/index.html +34 -19
  114. package/coverage/lcov-report/db/index.js.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +4 -4
  116. package/coverage/lcov-report/db/linkedRows/index.html +14 -14
  117. package/coverage/lcov-report/db/linkedRows/index.js.html +18 -9
  118. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  119. package/coverage/lcov-report/db/newid.js.html +1 -1
  120. package/coverage/lcov-report/db/utils.js.html +37 -10
  121. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  122. package/coverage/lcov-report/events/index.html +1 -1
  123. package/coverage/lcov-report/events/index.js.html +1 -1
  124. package/coverage/lcov-report/events/utils.js.html +1 -1
  125. package/coverage/lcov-report/index.html +65 -65
  126. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  127. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  128. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  129. package/coverage/lcov-report/middleware/authorized.js.html +1 -1
  130. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  131. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  132. package/coverage/lcov-report/middleware/index.html +1 -1
  133. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  134. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  135. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  136. package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
  137. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  138. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  139. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  140. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  141. package/coverage/lcov-report/utilities/global.js.html +1 -1
  142. package/coverage/lcov-report/utilities/index.html +1 -1
  143. package/coverage/lcov-report/utilities/index.js.html +1 -1
  144. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  145. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  146. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  147. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  148. package/coverage/lcov-report/utilities/rowProcessor/index.html +15 -15
  149. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +58 -13
  150. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  151. package/coverage/lcov-report/utilities/security.js.html +2 -2
  152. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  153. package/coverage/lcov-report/utilities/users.js.html +1 -1
  154. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  155. package/coverage/lcov.info +1093 -883
  156. package/dist/api/controllers/datasource.js +2 -2
  157. package/dist/api/controllers/row/ExternalRequest.js +4 -0
  158. package/dist/api/controllers/row/internal.js +97 -23
  159. package/dist/api/controllers/table/index.js +1 -1
  160. package/dist/api/controllers/table/utils.js +13 -11
  161. package/dist/api/controllers/view/index.js +74 -96
  162. package/dist/api/controllers/view/utils.js +102 -0
  163. package/dist/automations/steps/createRow.js +5 -8
  164. package/dist/automations/steps/deleteRow.js +7 -10
  165. package/dist/automations/steps/queryRows.js +11 -14
  166. package/dist/automations/steps/updateRow.js +4 -7
  167. package/dist/db/inMemoryView.js +51 -0
  168. package/dist/db/linkedRows/index.js +5 -2
  169. package/dist/db/utils.js +7 -0
  170. package/dist/environment.js +7 -1
  171. package/dist/integrations/mysql.js +2 -13
  172. package/dist/integrations/postgres.js +8 -14
  173. package/dist/integrations/utils.js +19 -1
  174. package/dist/package.json +5 -5
  175. package/dist/tsconfig.tsbuildinfo +1 -1
  176. package/dist/utilities/rowProcessor/index.js +10 -5
  177. package/package.json +6 -6
  178. package/scripts/integrations/service-vehicles/docker-compose.yml +28 -0
  179. package/scripts/integrations/service-vehicles/init.sql +52 -0
  180. package/scripts/integrations/service-vehicles/reset.sh +3 -0
  181. package/src/api/controllers/datasource.js +2 -2
  182. package/src/api/controllers/row/ExternalRequest.ts +5 -1
  183. package/src/api/controllers/row/internal.js +88 -23
  184. package/src/api/controllers/table/index.js +1 -1
  185. package/src/api/controllers/table/utils.js +16 -12
  186. package/src/api/controllers/view/index.js +82 -116
  187. package/src/api/controllers/view/utils.js +109 -0
  188. package/src/api/routes/tests/view.spec.js +1 -1
  189. package/src/automations/steps/createRow.js +5 -8
  190. package/src/automations/steps/deleteRow.js +8 -10
  191. package/src/automations/steps/queryRows.js +11 -14
  192. package/src/automations/steps/updateRow.js +7 -10
  193. package/src/db/inMemoryView.js +48 -0
  194. package/src/db/linkedRows/index.js +5 -2
  195. package/src/db/utils.js +9 -0
  196. package/src/environment.js +8 -1
  197. package/src/integrations/mysql.ts +2 -13
  198. package/src/integrations/postgres.ts +9 -16
  199. package/src/integrations/utils.ts +18 -0
  200. package/src/utilities/rowProcessor/index.js +20 -5
@@ -0,0 +1,224 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for db/inMemoryView.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">db</a> inMemoryView.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">24% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>6/25</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">0% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/8</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">0% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/4</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">26.09% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>6/23</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
+ </div>
58
+ <div class='status-line low'></div>
59
+ <pre><table class="coverage">
60
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
+ <a name='L2'></a><a href='#L2'>2</a>
62
+ <a name='L3'></a><a href='#L3'>3</a>
63
+ <a name='L4'></a><a href='#L4'>4</a>
64
+ <a name='L5'></a><a href='#L5'>5</a>
65
+ <a name='L6'></a><a href='#L6'>6</a>
66
+ <a name='L7'></a><a href='#L7'>7</a>
67
+ <a name='L8'></a><a href='#L8'>8</a>
68
+ <a name='L9'></a><a href='#L9'>9</a>
69
+ <a name='L10'></a><a href='#L10'>10</a>
70
+ <a name='L11'></a><a href='#L11'>11</a>
71
+ <a name='L12'></a><a href='#L12'>12</a>
72
+ <a name='L13'></a><a href='#L13'>13</a>
73
+ <a name='L14'></a><a href='#L14'>14</a>
74
+ <a name='L15'></a><a href='#L15'>15</a>
75
+ <a name='L16'></a><a href='#L16'>16</a>
76
+ <a name='L17'></a><a href='#L17'>17</a>
77
+ <a name='L18'></a><a href='#L18'>18</a>
78
+ <a name='L19'></a><a href='#L19'>19</a>
79
+ <a name='L20'></a><a href='#L20'>20</a>
80
+ <a name='L21'></a><a href='#L21'>21</a>
81
+ <a name='L22'></a><a href='#L22'>22</a>
82
+ <a name='L23'></a><a href='#L23'>23</a>
83
+ <a name='L24'></a><a href='#L24'>24</a>
84
+ <a name='L25'></a><a href='#L25'>25</a>
85
+ <a name='L26'></a><a href='#L26'>26</a>
86
+ <a name='L27'></a><a href='#L27'>27</a>
87
+ <a name='L28'></a><a href='#L28'>28</a>
88
+ <a name='L29'></a><a href='#L29'>29</a>
89
+ <a name='L30'></a><a href='#L30'>30</a>
90
+ <a name='L31'></a><a href='#L31'>31</a>
91
+ <a name='L32'></a><a href='#L32'>32</a>
92
+ <a name='L33'></a><a href='#L33'>33</a>
93
+ <a name='L34'></a><a href='#L34'>34</a>
94
+ <a name='L35'></a><a href='#L35'>35</a>
95
+ <a name='L36'></a><a href='#L36'>36</a>
96
+ <a name='L37'></a><a href='#L37'>37</a>
97
+ <a name='L38'></a><a href='#L38'>38</a>
98
+ <a name='L39'></a><a href='#L39'>39</a>
99
+ <a name='L40'></a><a href='#L40'>40</a>
100
+ <a name='L41'></a><a href='#L41'>41</a>
101
+ <a name='L42'></a><a href='#L42'>42</a>
102
+ <a name='L43'></a><a href='#L43'>43</a>
103
+ <a name='L44'></a><a href='#L44'>44</a>
104
+ <a name='L45'></a><a href='#L45'>45</a>
105
+ <a name='L46'></a><a href='#L46'>46</a>
106
+ <a name='L47'></a><a href='#L47'>47</a>
107
+ <a name='L48'></a><a href='#L48'>48</a>
108
+ <a name='L49'></a><a href='#L49'>49</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
109
+ <span class="cline-any cline-yes">34x</span>
110
+ <span class="cline-any cline-yes">34x</span>
111
+ <span class="cline-any cline-neutral">&nbsp;</span>
112
+ <span class="cline-any cline-yes">34x</span>
113
+ <span class="cline-any cline-yes">34x</span>
114
+ <span class="cline-any cline-neutral">&nbsp;</span>
115
+ <span class="cline-any cline-neutral">&nbsp;</span>
116
+ <span class="cline-any cline-neutral">&nbsp;</span>
117
+ <span class="cline-any cline-neutral">&nbsp;</span>
118
+ <span class="cline-any cline-yes">34x</span>
119
+ <span class="cline-any cline-neutral">&nbsp;</span>
120
+ <span class="cline-any cline-neutral">&nbsp;</span>
121
+ <span class="cline-any cline-neutral">&nbsp;</span>
122
+ <span class="cline-any cline-no">&nbsp;</span>
123
+ <span class="cline-any cline-neutral">&nbsp;</span>
124
+ <span class="cline-any cline-no">&nbsp;</span>
125
+ <span class="cline-any cline-no">&nbsp;</span>
126
+ <span class="cline-any cline-neutral">&nbsp;</span>
127
+ <span class="cline-any cline-neutral">&nbsp;</span>
128
+ <span class="cline-any cline-neutral">&nbsp;</span>
129
+ <span class="cline-any cline-neutral">&nbsp;</span>
130
+ <span class="cline-any cline-no">&nbsp;</span>
131
+ <span class="cline-any cline-no">&nbsp;</span>
132
+ <span class="cline-any cline-no">&nbsp;</span>
133
+ <span class="cline-any cline-neutral">&nbsp;</span>
134
+ <span class="cline-any cline-neutral">&nbsp;</span>
135
+ <span class="cline-any cline-neutral">&nbsp;</span>
136
+ <span class="cline-any cline-no">&nbsp;</span>
137
+ <span class="cline-any cline-no">&nbsp;</span>
138
+ <span class="cline-any cline-neutral">&nbsp;</span>
139
+ <span class="cline-any cline-no">&nbsp;</span>
140
+ <span class="cline-any cline-neutral">&nbsp;</span>
141
+ <span class="cline-any cline-neutral">&nbsp;</span>
142
+ <span class="cline-any cline-neutral">&nbsp;</span>
143
+ <span class="cline-any cline-neutral">&nbsp;</span>
144
+ <span class="cline-any cline-no">&nbsp;</span>
145
+ <span class="cline-any cline-no">&nbsp;</span>
146
+ <span class="cline-any cline-no">&nbsp;</span>
147
+ <span class="cline-any cline-neutral">&nbsp;</span>
148
+ <span class="cline-any cline-no">&nbsp;</span>
149
+ <span class="cline-any cline-no">&nbsp;</span>
150
+ <span class="cline-any cline-no">&nbsp;</span>
151
+ <span class="cline-any cline-neutral">&nbsp;</span>
152
+ <span class="cline-any cline-neutral">&nbsp;</span>
153
+ <span class="cline-any cline-no">&nbsp;</span>
154
+ <span class="cline-any cline-no">&nbsp;</span>
155
+ <span class="cline-any cline-neutral">&nbsp;</span>
156
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const PouchDB = require("pouchdb")
157
+ const memory = require("pouchdb-adapter-memory")
158
+ const newid = require("./newid")
159
+ &nbsp;
160
+ PouchDB.plugin(memory)
161
+ const Pouch = PouchDB.defaults({
162
+ prefix: undefined,
163
+ adapter: "memory",
164
+ })
165
+ &nbsp;
166
+ exports.runView = <span class="fstat-no" title="function not covered" >as</span>ync (view, calculation, group, data) =&gt; {
167
+ // use a different ID each time for the DB, make sure they
168
+ // are always unique for each query, don't want overlap
169
+ // which could cause 409s
170
+ const db = <span class="cstat-no" title="statement not covered" >new Pouch(newid())</span>
171
+ // write all the docs to the in memory Pouch (remove revs)
172
+ <span class="cstat-no" title="statement not covered" > await db.bulkDocs(</span>
173
+ data.map(<span class="fstat-no" title="function not covered" >ro</span>w =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
174
+ ...row,
175
+ _rev: undefined,
176
+ }))
177
+ )
178
+ let fn = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(d</span>oc, emit) =&gt; <span class="cstat-no" title="statement not covered" >emit(doc._id)</span></span>
179
+ <span class="cstat-no" title="statement not covered" > eval("fn = " + view.map.replace("function (doc)", "function (doc, emit)"))</span>
180
+ const queryFns = <span class="cstat-no" title="statement not covered" >{</span>
181
+ meta: view.meta,
182
+ map: fn,
183
+ }
184
+ <span class="cstat-no" title="statement not covered" > if (view.reduce) {</span>
185
+ <span class="cstat-no" title="statement not covered" > queryFns.reduce = view.reduce</span>
186
+ }
187
+ const response = <span class="cstat-no" title="statement not covered" >await db.query(queryFns, {</span>
188
+ include_docs: !calculation,
189
+ group: !!group,
190
+ })
191
+ // need to fix the revs to be totally accurate
192
+ <span class="cstat-no" title="statement not covered" > for (let row of response.rows) {</span>
193
+ <span class="cstat-no" title="statement not covered" > if (!row._rev || !row._id) {</span>
194
+ <span class="cstat-no" title="statement not covered" > continue</span>
195
+ }
196
+ const found = <span class="cstat-no" title="statement not covered" >data.find(<span class="fstat-no" title="function not covered" >po</span>ssible =&gt; <span class="cstat-no" title="statement not covered" >possible._id === row._id)</span></span>
197
+ <span class="cstat-no" title="statement not covered" > if (found) {</span>
198
+ <span class="cstat-no" title="statement not covered" > row._rev = found._rev</span>
199
+ }
200
+ }
201
+ <span class="cstat-no" title="statement not covered" > await db.destroy()</span>
202
+ <span class="cstat-no" title="statement not covered" > return response</span>
203
+ }
204
+ &nbsp;</pre></td></tr></table></pre>
205
+
206
+ <div class='push'></div><!-- for sticky footer -->
207
+ </div><!-- /wrapper -->
208
+ <div class='footer quiet pad2 space-top1 center small'>
209
+ Code coverage generated by
210
+ <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
211
+ at Wed Sep 22 2021 17:29:03 GMT+0000 (Coordinated Universal Time)
212
+ </div>
213
+ </div>
214
+ <script src="../prettify.js"></script>
215
+ <script>
216
+ window.onload = function () {
217
+ prettyPrint();
218
+ };
219
+ </script>
220
+ <script src="../sorter.js"></script>
221
+ <script src="../block-navigation.js"></script>
222
+ </body>
223
+ </html>
224
+
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">94.4% </span>
26
+ <span class="strong">81.82% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>118/125</span>
28
+ <span class='fraction'>126/154</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">38.89% </span>
33
+ <span class="strong">33.33% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>21/54</span>
35
+ <span class='fraction'>21/63</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">93.1% </span>
40
+ <span class="strong">77.14% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>27/29</span>
42
+ <span class='fraction'>27/35</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">94.4% </span>
47
+ <span class="strong">82.89% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>118/125</span>
49
+ <span class='fraction'>126/152</span>
50
50
  </div>
51
51
 
52
52
 
@@ -87,6 +87,21 @@
87
87
  <td data-value="17" class="abs high">17/17</td>
88
88
  </tr>
89
89
 
90
+ <tr>
91
+ <td class="file low" data-value="inMemoryView.js"><a href="inMemoryView.js.html">inMemoryView.js</a></td>
92
+ <td data-value="24" class="pic low">
93
+ <div class="chart"><div class="cover-fill" style="width: 24%"></div><div class="cover-empty" style="width: 76%"></div></div>
94
+ </td>
95
+ <td data-value="24" class="pct low">24%</td>
96
+ <td data-value="25" class="abs low">6/25</td>
97
+ <td data-value="0" class="pct low">0%</td>
98
+ <td data-value="8" class="abs low">0/8</td>
99
+ <td data-value="0" class="pct low">0%</td>
100
+ <td data-value="4" class="abs low">0/4</td>
101
+ <td data-value="26.09" class="pct low">26.09%</td>
102
+ <td data-value="23" class="abs low">6/23</td>
103
+ </tr>
104
+
90
105
  <tr>
91
106
  <td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
92
107
  <td data-value="100" class="pic high">
@@ -119,17 +134,17 @@
119
134
 
120
135
  <tr>
121
136
  <td class="file high" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
122
- <td data-value="93.2" class="pic high">
123
- <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
137
+ <td data-value="91.59" class="pic high">
138
+ <div class="chart"><div class="cover-fill" style="width: 91%"></div><div class="cover-empty" style="width: 9%"></div></div>
124
139
  </td>
125
- <td data-value="93.2" class="pct high">93.2%</td>
126
- <td data-value="103" class="abs high">96/103</td>
127
- <td data-value="36" class="pct low">36%</td>
128
- <td data-value="50" class="abs low">18/50</td>
129
- <td data-value="92.86" class="pct high">92.86%</td>
130
- <td data-value="28" class="abs high">26/28</td>
131
- <td data-value="93.2" class="pct high">93.2%</td>
132
- <td data-value="103" class="abs high">96/103</td>
140
+ <td data-value="91.59" class="pct high">91.59%</td>
141
+ <td data-value="107" class="abs high">98/107</td>
142
+ <td data-value="35.29" class="pct low">35.29%</td>
143
+ <td data-value="51" class="abs low">18/51</td>
144
+ <td data-value="86.67" class="pct high">86.67%</td>
145
+ <td data-value="30" class="abs high">26/30</td>
146
+ <td data-value="91.59" class="pct high">91.59%</td>
147
+ <td data-value="107" class="abs high">98/107</td>
133
148
  </tr>
134
149
 
135
150
  </tbody>
@@ -140,7 +155,7 @@
140
155
  <div class='footer quiet pad2 space-top1 center small'>
141
156
  Code coverage generated by
142
157
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
143
- at Wed Sep 22 2021 15:00:11 GMT+0000 (Coordinated Universal Time)
158
+ at Wed Sep 22 2021 17:29:03 GMT+0000 (Coordinated Universal Time)
144
159
  </div>
145
160
  </div>
146
161
  <script src="../prettify.js"></script>
@@ -73,7 +73,7 @@ module.exports = client
73
73
  <div class='footer quiet pad2 space-top1 center small'>
74
74
  Code coverage generated by
75
75
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
76
- at Wed Sep 22 2021 15:00:11 GMT+0000 (Coordinated Universal Time)
76
+ at Wed Sep 22 2021 17:29:03 GMT+0000 (Coordinated Universal Time)
77
77
  </div>
78
78
  </div>
79
79
  <script src="../prettify.js"></script>
@@ -594,11 +594,11 @@
594
594
  <span class="cline-any cline-neutral">&nbsp;</span>
595
595
  <span class="cline-any cline-neutral">&nbsp;</span>
596
596
  <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-yes">225x</span>
597
+ <span class="cline-any cline-yes">52x</span>
598
598
  <span class="cline-any cline-yes">5x</span>
599
599
  <span class="cline-any cline-neutral">&nbsp;</span>
600
600
  <span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-yes">225x</span>
601
+ <span class="cline-any cline-yes">52x</span>
602
602
  <span class="cline-any cline-neutral">&nbsp;</span>
603
603
  <span class="cline-any cline-neutral">&nbsp;</span>
604
604
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -610,7 +610,7 @@
610
610
  <span class="cline-any cline-neutral">&nbsp;</span>
611
611
  <span class="cline-any cline-neutral">&nbsp;</span>
612
612
  <span class="cline-any cline-yes">181x</span>
613
- <span class="cline-any cline-yes">178x</span>
613
+ <span class="cline-any cline-yes">5x</span>
614
614
  <span class="cline-any cline-neutral">&nbsp;</span>
615
615
  <span class="cline-any cline-yes">181x</span>
616
616
  <span class="cline-any cline-yes">454x</span>
@@ -1468,7 +1468,7 @@ module.exports = LinkController
1468
1468
  <div class='footer quiet pad2 space-top1 center small'>
1469
1469
  Code coverage generated by
1470
1470
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1471
- at Wed Sep 22 2021 15:00:11 GMT+0000 (Coordinated Universal Time)
1471
+ at Wed Sep 22 2021 17:29:03 GMT+0000 (Coordinated Universal Time)
1472
1472
  </div>
1473
1473
  </div>
1474
1474
  <script src="../../prettify.js"></script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">96.08% </span>
26
+ <span class="strong">96.13% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>294/306</span>
28
+ <span class='fraction'>298/310</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">94.74% </span>
40
+ <span class="strong">94.92% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>54/57</span>
42
+ <span class='fraction'>56/59</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">96.28% </span>
47
+ <span class="strong">96.31% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>285/296</span>
49
+ <span class='fraction'>287/298</span>
50
50
  </div>
51
51
 
52
52
 
@@ -89,17 +89,17 @@
89
89
 
90
90
  <tr>
91
91
  <td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
92
- <td data-value="94.85" class="pic high">
93
- <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
92
+ <td data-value="95.05" class="pic high">
93
+ <div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
94
94
  </td>
95
- <td data-value="94.85" class="pct high">94.85%</td>
96
- <td data-value="97" class="abs high">92/97</td>
95
+ <td data-value="95.05" class="pct high">95.05%</td>
96
+ <td data-value="101" class="abs high">96/101</td>
97
97
  <td data-value="82.5" class="pct high">82.5%</td>
98
98
  <td data-value="40" class="abs high">33/40</td>
99
99
  <td data-value="100" class="pct high">100%</td>
100
- <td data-value="17" class="abs high">17/17</td>
101
- <td data-value="94.57" class="pct high">94.57%</td>
102
- <td data-value="92" class="abs high">87/92</td>
100
+ <td data-value="19" class="abs high">19/19</td>
101
+ <td data-value="94.68" class="pct high">94.68%</td>
102
+ <td data-value="94" class="abs high">89/94</td>
103
103
  </tr>
104
104
 
105
105
  <tr>
@@ -125,7 +125,7 @@
125
125
  <div class='footer quiet pad2 space-top1 center small'>
126
126
  Code coverage generated by
127
127
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
128
- at Wed Sep 22 2021 15:00:11 GMT+0000 (Coordinated Universal Time)
128
+ at Wed Sep 22 2021 17:29:03 GMT+0000 (Coordinated Universal Time)
129
129
  </div>
130
130
  </div>
131
131
  <script src="../../prettify.js"></script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">94.85% </span>
26
+ <span class="strong">95.05% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>92/97</span>
28
+ <span class='fraction'>96/101</span>
29
29
  </div>
30
30
 
31
31
 
@@ -39,14 +39,14 @@
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>17/17</span>
42
+ <span class='fraction'>19/19</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">94.57% </span>
47
+ <span class="strong">94.68% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>87/92</span>
49
+ <span class='fraction'>89/94</span>
50
50
  </div>
51
51
 
52
52
 
@@ -273,7 +273,10 @@
273
273
  <a name='L214'></a><a href='#L214'>214</a>
274
274
  <a name='L215'></a><a href='#L215'>215</a>
275
275
  <a name='L216'></a><a href='#L216'>216</a>
276
- <a name='L217'></a><a href='#L217'>217</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
276
+ <a name='L217'></a><a href='#L217'>217</a>
277
+ <a name='L218'></a><a href='#L218'>218</a>
278
+ <a name='L219'></a><a href='#L219'>219</a>
279
+ <a name='L220'></a><a href='#L220'>220</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
277
280
  <span class="cline-any cline-neutral">&nbsp;</span>
278
281
  <span class="cline-any cline-neutral">&nbsp;</span>
279
282
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -352,10 +355,13 @@
352
355
  <span class="cline-any cline-yes">30x</span>
353
356
  <span class="cline-any cline-yes">30x</span>
354
357
  <span class="cline-any cline-yes">30x</span>
358
+ <span class="cline-any cline-yes">30x</span>
355
359
  <span class="cline-any cline-yes">18x</span>
356
360
  <span class="cline-any cline-neutral">&nbsp;</span>
357
361
  <span class="cline-any cline-neutral">&nbsp;</span>
358
362
  <span class="cline-any cline-yes">30x</span>
363
+ <span class="cline-any cline-neutral">&nbsp;</span>
364
+ <span class="cline-any cline-yes">30x</span>
359
365
  <span class="cline-any cline-yes">18x</span>
360
366
  <span class="cline-any cline-neutral">&nbsp;</span>
361
367
  <span class="cline-any cline-yes">30x</span>
@@ -567,9 +573,12 @@ async function getFullLinkedDocs(ctx, appId, links) {
567
573
  // create DBs
568
574
  const db = new CouchDB(appId)
569
575
  const linkedRowIds = links.map(link =&gt; link.id)
570
- let linked = (await db.allDocs(getMultiIDParams(linkedRowIds))).rows.map(
576
+ const uniqueRowIds = [...new Set(linkedRowIds)]
577
+ let dbRows = (await db.allDocs(getMultiIDParams(uniqueRowIds))).rows.map(
571
578
  row =&gt; row.doc
572
579
  )
580
+ // convert the unique db rows back to a full list of linked rows
581
+ const linked = linkedRowIds.map(id =&gt; dbRows.find(row =&gt; row._id === id))
573
582
  // need to handle users as specific cases
574
583
  let [users, other] = partition(linked, linkRow =&gt;
575
584
  linkRow._id.startsWith(USER_METDATA_PREFIX)
@@ -603,7 +612,7 @@ exports.updateLinks = async function (args) {
603
612
  let linkController = new LinkController(args)
604
613
  try {
605
614
  if (
606
- !(await linkController.doesTableHaveLinkedFields()) &amp;&amp;
615
+ !(await linkController.doesTableHaveLinkedFields(table)) &amp;&amp;
607
616
  (oldTable == null ||
608
617
  !(await linkController.doesTableHaveLinkedFields(oldTable)))
609
618
  ) {
@@ -712,7 +721,7 @@ exports.squashLinksToPrimaryDisplay = async (appId, table, enriched) =&gt; {
712
721
  <div class='footer quiet pad2 space-top1 center small'>
713
722
  Code coverage generated by
714
723
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
715
- at Wed Sep 22 2021 15:00:11 GMT+0000 (Coordinated Universal Time)
724
+ at Wed Sep 22 2021 17:29:03 GMT+0000 (Coordinated Universal Time)
716
725
  </div>
717
726
  </div>
718
727
  <script src="../../prettify.js"></script>
@@ -412,7 +412,7 @@ exports.getRelatedTableForField = (table, fieldName) =&gt; {
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">istanbul</a>
415
- at Wed Sep 22 2021 15:00:11 GMT+0000 (Coordinated Universal Time)
415
+ at Wed Sep 22 2021 17:29:03 GMT+0000 (Coordinated Universal Time)
416
416
  </div>
417
417
  </div>
418
418
  <script src="../../prettify.js"></script>
@@ -79,7 +79,7 @@ module.exports = function () {
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">istanbul</a>
82
- at Wed Sep 22 2021 15:00:11 GMT+0000 (Coordinated Universal Time)
82
+ at Wed Sep 22 2021 17:29:03 GMT+0000 (Coordinated Universal Time)
83
83
  </div>
84
84
  </div>
85
85
  <script src="../prettify.js"></script>