@budibase/server 2.2.12-alpha.1 → 2.2.12

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 (460) hide show
  1. package/__mocks__/aws-sdk.ts +0 -19
  2. package/__mocks__/node-fetch.ts +0 -78
  3. package/builder/assets/{index.fa480d5b.css → index.9cb087df.css} +2 -2
  4. package/builder/assets/{index.5e79c3b5.js → index.c0e1038a.js} +364 -367
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +5018 -5052
  7. package/coverage/coverage-final.json +265 -268
  8. package/coverage/lcov-report/index.html +206 -206
  9. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +7 -7
  10. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +5 -5
  11. package/coverage/lcov-report/src/api/controllers/application.ts.html +183 -258
  12. package/coverage/lcov-report/src/api/controllers/auth.ts.html +11 -11
  13. package/coverage/lcov-report/src/api/controllers/automation.ts.html +51 -51
  14. package/coverage/lcov-report/src/api/controllers/backup.ts.html +6 -6
  15. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +79 -91
  16. package/coverage/lcov-report/src/api/controllers/component.ts.html +5 -5
  17. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +30 -30
  18. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +14 -17
  19. package/coverage/lcov-report/src/api/controllers/deploy/index.html +19 -19
  20. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +195 -141
  21. package/coverage/lcov-report/src/api/controllers/dev.ts.html +18 -18
  22. package/coverage/lcov-report/src/api/controllers/index.html +51 -51
  23. package/coverage/lcov-report/src/api/controllers/integration.ts.html +4 -4
  24. package/coverage/lcov-report/src/api/controllers/layout.ts.html +6 -6
  25. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +9 -9
  26. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +4 -4
  27. package/coverage/lcov-report/src/api/controllers/permission.ts.html +13 -13
  28. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +19 -19
  29. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +63 -63
  30. package/coverage/lcov-report/src/api/controllers/plugin/index.html +72 -72
  31. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +135 -150
  32. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +55 -55
  33. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +11 -11
  34. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +18 -18
  35. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +20 -20
  36. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +16 -67
  37. package/coverage/lcov-report/src/api/controllers/public/index.html +15 -15
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +2 -2
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +7 -7
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +2 -2
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +2 -2
  43. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +2 -2
  44. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +2 -2
  45. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +6 -6
  46. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +10 -10
  47. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +9 -9
  48. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +11 -11
  49. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +6 -6
  50. package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
  51. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +8 -8
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +8 -8
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +5 -5
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +8 -8
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +10 -10
  58. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +14 -14
  59. package/coverage/lcov-report/src/api/controllers/query/index.html +19 -19
  60. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +60 -60
  61. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +9 -9
  62. package/coverage/lcov-report/src/api/controllers/role.ts.html +8 -8
  63. package/coverage/lcov-report/src/api/controllers/routing.ts.html +6 -6
  64. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +15 -12
  65. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +20 -20
  66. package/coverage/lcov-report/src/api/controllers/row/index.html +1 -1
  67. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +14 -14
  68. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +52 -55
  69. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +9 -9
  70. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +12 -21
  71. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +14 -17
  72. package/coverage/lcov-report/src/api/controllers/screen.ts.html +26 -26
  73. package/coverage/lcov-report/src/api/controllers/script.ts.html +18 -18
  74. package/coverage/lcov-report/src/api/controllers/static/index.html +11 -11
  75. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +44 -32
  76. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +10 -10
  77. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +14 -14
  78. package/coverage/lcov-report/src/api/controllers/table/index.html +19 -19
  79. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +14 -14
  80. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +17 -17
  81. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +51 -51
  82. package/coverage/lcov-report/src/api/controllers/templates.ts.html +7 -7
  83. package/coverage/lcov-report/src/api/controllers/user.ts.html +119 -119
  84. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +4 -4
  85. package/coverage/lcov-report/src/api/controllers/view/index.html +1 -1
  86. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +49 -49
  87. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +22 -22
  88. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +33 -33
  89. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +14 -14
  90. package/coverage/lcov-report/src/api/index.html +1 -1
  91. package/coverage/lcov-report/src/api/index.ts.html +33 -33
  92. package/coverage/lcov-report/src/api/routes/analytics.ts.html +7 -7
  93. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +8 -8
  94. package/coverage/lcov-report/src/api/routes/application.ts.html +11 -44
  95. package/coverage/lcov-report/src/api/routes/auth.ts.html +6 -6
  96. package/coverage/lcov-report/src/api/routes/automation.ts.html +11 -11
  97. package/coverage/lcov-report/src/api/routes/backup.ts.html +8 -8
  98. package/coverage/lcov-report/src/api/routes/cloud.ts.html +8 -8
  99. package/coverage/lcov-report/src/api/routes/component.ts.html +8 -8
  100. package/coverage/lcov-report/src/api/routes/datasource.ts.html +9 -9
  101. package/coverage/lcov-report/src/api/routes/deploy.ts.html +11 -8
  102. package/coverage/lcov-report/src/api/routes/dev.ts.html +13 -13
  103. package/coverage/lcov-report/src/api/routes/index.html +7 -7
  104. package/coverage/lcov-report/src/api/routes/index.ts.html +37 -40
  105. package/coverage/lcov-report/src/api/routes/integration.ts.html +8 -8
  106. package/coverage/lcov-report/src/api/routes/layout.ts.html +8 -8
  107. package/coverage/lcov-report/src/api/routes/metadata.ts.html +9 -9
  108. package/coverage/lcov-report/src/api/routes/migrations.ts.html +7 -7
  109. package/coverage/lcov-report/src/api/routes/permission.ts.html +9 -9
  110. package/coverage/lcov-report/src/api/routes/plugin.ts.html +8 -8
  111. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +14 -146
  112. package/coverage/lcov-report/src/api/routes/public/index.html +7 -7
  113. package/coverage/lcov-report/src/api/routes/public/index.ts.html +52 -52
  114. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +15 -15
  115. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +16 -28
  116. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +9 -9
  117. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +12 -12
  118. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +12 -12
  119. package/coverage/lcov-report/src/api/routes/public/tests/index.html +1 -1
  120. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +1 -1
  121. package/coverage/lcov-report/src/api/routes/public/users.ts.html +12 -12
  122. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +19 -19
  123. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  124. package/coverage/lcov-report/src/api/routes/query.ts.html +11 -11
  125. package/coverage/lcov-report/src/api/routes/role.ts.html +9 -9
  126. package/coverage/lcov-report/src/api/routes/routing.ts.html +8 -8
  127. package/coverage/lcov-report/src/api/routes/row.ts.html +11 -11
  128. package/coverage/lcov-report/src/api/routes/screen.ts.html +9 -9
  129. package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
  130. package/coverage/lcov-report/src/api/routes/static.ts.html +14 -14
  131. package/coverage/lcov-report/src/api/routes/table.ts.html +11 -11
  132. package/coverage/lcov-report/src/api/routes/templates.ts.html +8 -8
  133. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +15 -15
  134. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +1 -1
  135. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +24 -24
  136. package/coverage/lcov-report/src/api/routes/user.ts.html +9 -9
  137. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  138. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +42 -42
  139. package/coverage/lcov-report/src/api/routes/view.ts.html +10 -10
  140. package/coverage/lcov-report/src/api/routes/webhook.ts.html +10 -10
  141. package/coverage/lcov-report/src/app.ts.html +32 -32
  142. package/coverage/lcov-report/src/automations/actions.ts.html +25 -25
  143. package/coverage/lcov-report/src/automations/automationUtils.ts.html +19 -91
  144. package/coverage/lcov-report/src/automations/bullboard.ts.html +11 -11
  145. package/coverage/lcov-report/src/automations/index.html +19 -19
  146. package/coverage/lcov-report/src/automations/index.ts.html +13 -13
  147. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  148. package/coverage/lcov-report/src/automations/logging/index.ts.html +11 -11
  149. package/coverage/lcov-report/src/automations/steps/bash.ts.html +34 -34
  150. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +7 -7
  151. package/coverage/lcov-report/src/automations/steps/delay.ts.html +5 -5
  152. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +7 -7
  153. package/coverage/lcov-report/src/automations/steps/discord.ts.html +33 -33
  154. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +35 -35
  155. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +31 -31
  156. package/coverage/lcov-report/src/automations/steps/filter.ts.html +6 -6
  157. package/coverage/lcov-report/src/automations/steps/index.html +83 -83
  158. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +6 -6
  159. package/coverage/lcov-report/src/automations/steps/loop.ts.html +3 -3
  160. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +14 -14
  161. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +17 -17
  162. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +28 -28
  163. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +18 -18
  164. package/coverage/lcov-report/src/automations/steps/slack.ts.html +6 -6
  165. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +7 -7
  166. package/coverage/lcov-report/src/automations/steps/utils.ts.html +16 -16
  167. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +22 -22
  168. package/coverage/lcov-report/src/automations/tests/utilities/index.html +5 -5
  169. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +26 -26
  170. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +3 -3
  171. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +3 -3
  172. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  173. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +8 -8
  174. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +3 -3
  175. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +3 -3
  176. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +3 -3
  177. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +3 -3
  178. package/coverage/lcov-report/src/automations/triggers.ts.html +21 -21
  179. package/coverage/lcov-report/src/automations/utils.ts.html +56 -56
  180. package/coverage/lcov-report/src/constants/index.html +1 -1
  181. package/coverage/lcov-report/src/constants/index.ts.html +92 -92
  182. package/coverage/lcov-report/src/constants/layouts.ts.html +4 -4
  183. package/coverage/lcov-report/src/constants/screens.ts.html +5 -5
  184. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +23 -23
  185. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +2 -2
  186. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +2 -2
  187. package/coverage/lcov-report/src/db/defaultData/index.html +1 -1
  188. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +2 -2
  189. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +2 -2
  190. package/coverage/lcov-report/src/db/dynamoClient.ts.html +16 -16
  191. package/coverage/lcov-report/src/db/inMemoryView.ts.html +5 -5
  192. package/coverage/lcov-report/src/db/index.html +19 -19
  193. package/coverage/lcov-report/src/db/index.ts.html +9 -9
  194. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +8 -8
  195. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +4 -4
  196. package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
  197. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +15 -15
  198. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +12 -12
  199. package/coverage/lcov-report/src/db/newid.ts.html +4 -4
  200. package/coverage/lcov-report/src/db/utils.ts.html +80 -80
  201. package/coverage/lcov-report/src/definitions/automations.ts.html +4 -4
  202. package/coverage/lcov-report/src/definitions/datasource.ts.html +4 -4
  203. package/coverage/lcov-report/src/definitions/index.html +1 -1
  204. package/coverage/lcov-report/src/environment.ts.html +28 -40
  205. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +6 -6
  206. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +5 -5
  207. package/coverage/lcov-report/src/events/index.html +1 -1
  208. package/coverage/lcov-report/src/events/index.ts.html +4 -4
  209. package/coverage/lcov-report/src/events/utils.ts.html +3 -3
  210. package/coverage/lcov-report/src/index.html +25 -25
  211. package/coverage/lcov-report/src/index.ts.html +1 -1
  212. package/coverage/lcov-report/src/integrations/airtable.ts.html +5 -5
  213. package/coverage/lcov-report/src/integrations/arangodb.ts.html +5 -5
  214. package/coverage/lcov-report/src/integrations/base/index.html +1 -1
  215. package/coverage/lcov-report/src/integrations/base/query.ts.html +3 -3
  216. package/coverage/lcov-report/src/integrations/base/sql.ts.html +14 -14
  217. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +8 -8
  218. package/coverage/lcov-report/src/integrations/base/utils.ts.html +3 -3
  219. package/coverage/lcov-report/src/integrations/couchdb.ts.html +5 -5
  220. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +6 -6
  221. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +5 -5
  222. package/coverage/lcov-report/src/integrations/firebase.ts.html +5 -5
  223. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +12 -12
  224. package/coverage/lcov-report/src/integrations/index.html +5 -5
  225. package/coverage/lcov-report/src/integrations/index.ts.html +47 -35
  226. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +8 -8
  227. package/coverage/lcov-report/src/integrations/mongodb.ts.html +5 -5
  228. package/coverage/lcov-report/src/integrations/mysql.ts.html +10 -10
  229. package/coverage/lcov-report/src/integrations/oracle.ts.html +13 -13
  230. package/coverage/lcov-report/src/integrations/postgres.ts.html +42 -42
  231. package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
  232. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +13 -13
  233. package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
  234. package/coverage/lcov-report/src/integrations/rest.ts.html +16 -16
  235. package/coverage/lcov-report/src/integrations/s3.ts.html +6 -6
  236. package/coverage/lcov-report/src/integrations/snowflake.ts.html +5 -5
  237. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  238. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  239. package/coverage/lcov-report/src/integrations/utils.ts.html +36 -36
  240. package/coverage/lcov-report/src/middleware/appInfo.ts.html +7 -7
  241. package/coverage/lcov-report/src/middleware/authorized.ts.html +28 -28
  242. package/coverage/lcov-report/src/middleware/builder.ts.html +17 -17
  243. package/coverage/lcov-report/src/middleware/currentapp.ts.html +39 -39
  244. package/coverage/lcov-report/src/middleware/index.html +1 -1
  245. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  246. package/coverage/lcov-report/src/middleware/publicApi.ts.html +4 -4
  247. package/coverage/lcov-report/src/middleware/resourceId.ts.html +22 -22
  248. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  249. package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
  250. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +4 -4
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +5 -5
  252. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +5 -5
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +5 -5
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +7 -7
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +5 -5
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +5 -5
  258. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +4 -4
  259. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +19 -19
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +10 -13
  261. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  262. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +7 -7
  263. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +6 -6
  264. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +15 -15
  265. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  266. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +5 -5
  267. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +8 -8
  268. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  269. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +6 -6
  270. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +6 -6
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  272. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +2 -2
  273. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +5 -5
  274. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +4 -4
  275. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +6 -6
  276. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +3 -3
  277. package/coverage/lcov-report/src/migrations/index.html +1 -1
  278. package/coverage/lcov-report/src/migrations/index.ts.html +32 -32
  279. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  280. package/coverage/lcov-report/src/migrations/tests/index.html +1 -1
  281. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  282. package/coverage/lcov-report/src/sdk/app/applications/index.html +15 -15
  283. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +4 -4
  284. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +34 -34
  285. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +9 -9
  286. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  287. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +3 -3
  288. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +6 -6
  289. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +3 -3
  290. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +17 -17
  291. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +53 -41
  292. package/coverage/lcov-report/src/sdk/app/backups/index.html +28 -28
  293. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +5 -5
  294. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +73 -73
  295. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +6 -6
  296. package/coverage/lcov-report/src/sdk/app/rows/index.html +1 -1
  297. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +4 -4
  298. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
  299. package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
  300. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +5 -5
  301. package/coverage/lcov-report/src/sdk/index.html +1 -1
  302. package/coverage/lcov-report/src/sdk/index.ts.html +9 -9
  303. package/coverage/lcov-report/src/sdk/users/index.html +5 -5
  304. package/coverage/lcov-report/src/sdk/users/index.ts.html +3 -3
  305. package/coverage/lcov-report/src/sdk/users/utils.ts.html +34 -34
  306. package/coverage/lcov-report/src/startup.ts.html +42 -42
  307. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +125 -182
  308. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +15 -15
  309. package/coverage/lcov-report/src/tests/utilities/index.html +15 -15
  310. package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
  311. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +30 -30
  312. package/coverage/lcov-report/src/threads/automation.ts.html +103 -34
  313. package/coverage/lcov-report/src/threads/index.html +19 -19
  314. package/coverage/lcov-report/src/threads/index.ts.html +25 -25
  315. package/coverage/lcov-report/src/threads/query.ts.html +71 -71
  316. package/coverage/lcov-report/src/threads/utils.ts.html +18 -18
  317. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +3 -3
  318. package/coverage/lcov-report/src/utilities/centralPath.ts.html +4 -4
  319. package/coverage/lcov-report/src/utilities/csvParser.ts.html +8 -8
  320. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +12 -12
  321. package/coverage/lcov-report/src/utilities/fileSystem/index.html +19 -79
  322. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1049 -20
  323. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  324. package/coverage/lcov-report/src/utilities/global.ts.html +43 -43
  325. package/coverage/lcov-report/src/utilities/index.html +63 -48
  326. package/coverage/lcov-report/src/utilities/index.ts.html +168 -36
  327. package/coverage/lcov-report/src/utilities/plugins.ts.html +151 -0
  328. package/coverage/lcov-report/src/utilities/redis.ts.html +32 -32
  329. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  330. package/coverage/lcov-report/src/utilities/routing/index.ts.html +5 -5
  331. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +28 -28
  332. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +33 -60
  333. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +3 -3
  334. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +38 -38
  335. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +32 -32
  336. package/coverage/lcov-report/src/utilities/security.ts.html +6 -6
  337. package/coverage/lcov-report/src/utilities/statusCodes.ts.html +1 -1
  338. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  339. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +35 -35
  340. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  341. package/coverage/lcov-report/src/utilities/users.ts.html +6 -6
  342. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +56 -56
  343. package/coverage/lcov-report/src/watch.ts.html +9 -9
  344. package/coverage/lcov-report/src/websocket.ts.html +15 -15
  345. package/coverage/lcov.info +7122 -7189
  346. package/dist/api/controllers/application.js +35 -47
  347. package/dist/api/controllers/cloud.js +2 -6
  348. package/dist/api/controllers/deploy/index.js +60 -43
  349. package/dist/api/controllers/plugin/index.js +6 -6
  350. package/dist/api/controllers/public/applications.js +1 -22
  351. package/dist/api/controllers/row/ExternalRequest.js +1 -0
  352. package/dist/api/controllers/row/internal.js +12 -12
  353. package/dist/api/controllers/row/staticFormula.js +1 -1
  354. package/dist/api/controllers/static/index.js +11 -8
  355. package/dist/api/controllers/view/index.js +2 -2
  356. package/dist/api/routes/application.js +0 -3
  357. package/dist/api/routes/deploy.js +2 -1
  358. package/dist/api/routes/public/applications.js +0 -37
  359. package/dist/api/routes/public/middleware/mapper.js +0 -3
  360. package/dist/api/routes/tests/utilities/TestFunctions.js +167 -0
  361. package/dist/api/routes/tests/utilities/index.js +131 -0
  362. package/dist/automations/automationUtils.js +1 -26
  363. package/dist/automations/tests/utilities/index.js +81 -0
  364. package/dist/environment.js +1 -5
  365. package/dist/integrations/googlesheets.js +1 -1
  366. package/dist/integrations/index.js +2 -1
  367. package/dist/migrations/functions/backfill/global/configs.js +4 -4
  368. package/dist/package.json +6 -8
  369. package/dist/sdk/app/backups/imports.js +6 -2
  370. package/dist/tests/utilities/TestConfiguration.js +562 -0
  371. package/dist/tests/utilities/controllers.js +40 -0
  372. package/dist/tests/utilities/structures.js +168 -0
  373. package/dist/threads/automation.js +28 -4
  374. package/dist/tsconfig.build.tsbuildinfo +1 -1
  375. package/dist/utilities/fileSystem/clientLibrary.js +3 -3
  376. package/dist/utilities/fileSystem/index.js +342 -18
  377. package/dist/utilities/index.js +44 -1
  378. package/dist/utilities/plugins.js +26 -0
  379. package/dist/utilities/rowProcessor/index.js +4 -12
  380. package/package.json +7 -9
  381. package/scripts/dev/manage.js +16 -0
  382. package/specs/openapi.json +0 -84
  383. package/specs/openapi.yaml +0 -53
  384. package/specs/resources/application.js +0 -19
  385. package/src/api/controllers/application.ts +36 -61
  386. package/src/api/controllers/auth.ts +2 -2
  387. package/src/api/controllers/cloud.ts +6 -10
  388. package/src/api/controllers/deploy/Deployment.ts +0 -1
  389. package/src/api/controllers/deploy/index.ts +58 -40
  390. package/src/api/controllers/plugin/index.ts +9 -14
  391. package/src/api/controllers/public/applications.ts +0 -17
  392. package/src/api/controllers/row/ExternalRequest.ts +1 -0
  393. package/src/api/controllers/row/internal.ts +23 -24
  394. package/src/api/controllers/row/staticFormula.ts +2 -5
  395. package/src/api/controllers/row/utils.ts +1 -2
  396. package/src/api/controllers/static/index.ts +10 -6
  397. package/src/api/controllers/view/index.ts +2 -2
  398. package/src/api/routes/application.ts +0 -11
  399. package/src/api/routes/deploy.ts +1 -0
  400. package/src/api/routes/index.ts +3 -4
  401. package/src/api/routes/public/applications.ts +0 -44
  402. package/src/api/routes/public/middleware/mapper.ts +0 -4
  403. package/src/api/routes/tests/__snapshots__/{datasource.spec.ts.snap → datasource.spec.js.snap} +0 -0
  404. package/src/api/routes/tests/{application.spec.ts → application.spec.js} +18 -94
  405. package/src/api/routes/tests/{backup.spec.ts → backup.spec.js} +6 -17
  406. package/src/api/routes/tests/{datasource.spec.ts → datasource.spec.js} +15 -23
  407. package/src/api/routes/tests/deployment.spec.ts +25 -0
  408. package/src/api/routes/tests/permissions.spec.js +1 -1
  409. package/src/api/routes/tests/routing.spec.js +2 -1
  410. package/src/api/routes/tests/row.spec.js +2 -4
  411. package/src/api/routes/tests/static.spec.js +17 -2
  412. package/src/api/routes/tests/table.spec.js +2 -8
  413. package/src/api/routes/tests/user.spec.js +0 -86
  414. package/src/api/routes/tests/utilities/index.ts +2 -2
  415. package/src/api/routes/tests/webhook.spec.js +1 -1
  416. package/src/automations/automationUtils.ts +0 -24
  417. package/src/automations/tests/utilities/index.ts +2 -2
  418. package/src/automations/unitTests/automationUtils.spec.js +17 -0
  419. package/src/definitions/openapi.ts +0 -10
  420. package/src/environment.ts +1 -5
  421. package/src/integrations/googlesheets.ts +1 -1
  422. package/src/integrations/index.ts +5 -1
  423. package/src/migrations/functions/backfill/global/configs.ts +4 -5
  424. package/src/sdk/app/backups/imports.ts +6 -2
  425. package/src/sdk/tests/attachments.spec.ts +4 -1
  426. package/src/tests/jestSetup.ts +1 -4
  427. package/src/tests/utilities/TestConfiguration.ts +4 -23
  428. package/src/threads/automation.ts +27 -4
  429. package/src/utilities/fileSystem/clientLibrary.ts +1 -1
  430. package/src/utilities/fileSystem/index.ts +348 -5
  431. package/src/utilities/index.ts +45 -1
  432. package/src/utilities/plugins.ts +22 -0
  433. package/src/utilities/rowProcessor/index.ts +8 -17
  434. package/tsconfig.build.json +0 -2
  435. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +0 -343
  436. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +0 -595
  437. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +0 -280
  438. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +0 -193
  439. package/dist/utilities/fileSystem/app.js +0 -97
  440. package/dist/utilities/fileSystem/filesystem.js +0 -182
  441. package/dist/utilities/fileSystem/plugin.js +0 -63
  442. package/dist/utilities/fileSystem/template.js +0 -44
  443. package/src/api/routes/tests/cloud.spec.ts +0 -65
  444. package/src/api/routes/tests/data/budibase-component-1.0.1.tgz +0 -0
  445. package/src/api/routes/tests/data/comment-box-1.0.2.tar.gz +0 -0
  446. package/src/api/routes/tests/data/export-test.tar.gz +0 -0
  447. package/src/api/routes/tests/plugin.spec.ts +0 -179
  448. package/src/automations/tests/bash.spec.js +0 -34
  449. package/src/automations/tests/discord.spec.js +0 -27
  450. package/src/automations/tests/executeQuery.spec.js +0 -49
  451. package/src/automations/tests/executeScript.spec.js +0 -48
  452. package/src/automations/tests/sendSmtpEmail.spec.js +0 -71
  453. package/src/automations/tests/serverLog.spec.js +0 -22
  454. package/src/automations/tests/zapier.spec.js +0 -27
  455. package/src/automations/unitTests/automationUtils.spec.ts +0 -65
  456. package/src/utilities/fileSystem/app.ts +0 -86
  457. package/src/utilities/fileSystem/filesystem.ts +0 -170
  458. package/src/utilities/fileSystem/plugin.ts +0 -65
  459. package/src/utilities/fileSystem/template.ts +0 -36
  460. package/src/utilities/rowProcessor/tests/utils.spec.ts +0 -57
@@ -181,19 +181,17 @@
181
181
  <a name='L116'></a><a href='#L116'>116</a>
182
182
  <a name='L117'></a><a href='#L117'>117</a>
183
183
  <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">56x</span>
186
- <span class="cline-any cline-yes">56x</span>
187
- <span class="cline-any cline-yes">56x</span>
188
- <span class="cline-any cline-yes">56x</span>
189
- <span class="cline-any cline-yes">56x</span>
184
+ <a name='L119'></a><a href='#L119'>119</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">48x</span>
185
+ <span class="cline-any cline-yes">48x</span>
186
+ <span class="cline-any cline-yes">48x</span>
187
+ <span class="cline-any cline-yes">48x</span>
188
+ <span class="cline-any cline-yes">48x</span>
190
189
  <span class="cline-any cline-neutral">&nbsp;</span>
191
- <span class="cline-any cline-yes">129x</span>
192
- <span class="cline-any cline-yes">56x</span>
193
- <span class="cline-any cline-yes">56x</span>
190
+ <span class="cline-any cline-yes">121x</span>
191
+ <span class="cline-any cline-yes">48x</span>
192
+ <span class="cline-any cline-yes">48x</span>
194
193
  <span class="cline-any cline-neutral">&nbsp;</span>
195
- <span class="cline-any cline-neutral">&nbsp;</span>
196
- <span class="cline-any cline-yes">56x</span>
194
+ <span class="cline-any cline-yes">48x</span>
197
195
  <span class="cline-any cline-neutral">&nbsp;</span>
198
196
  <span class="cline-any cline-yes">2x</span>
199
197
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -203,14 +201,14 @@
203
201
  <span class="cline-any cline-neutral">&nbsp;</span>
204
202
  <span class="cline-any cline-neutral">&nbsp;</span>
205
203
  <span class="cline-any cline-neutral">&nbsp;</span>
206
- <span class="cline-any cline-yes">56x</span>
204
+ <span class="cline-any cline-yes">48x</span>
207
205
  <span class="cline-any cline-yes">1x</span>
208
206
  <span class="cline-any cline-yes">1x</span>
209
207
  <span class="cline-any cline-yes">1x</span>
210
208
  <span class="cline-any cline-yes">1x</span>
211
209
  <span class="cline-any cline-neutral">&nbsp;</span>
212
210
  <span class="cline-any cline-neutral">&nbsp;</span>
213
- <span class="cline-any cline-yes">56x</span>
211
+ <span class="cline-any cline-yes">48x</span>
214
212
  <span class="cline-any cline-yes">26x</span>
215
213
  <span class="cline-any cline-neutral">&nbsp;</span>
216
214
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -229,7 +227,7 @@
229
227
  <span class="cline-any cline-yes">23x</span>
230
228
  <span class="cline-any cline-neutral">&nbsp;</span>
231
229
  <span class="cline-any cline-neutral">&nbsp;</span>
232
- <span class="cline-any cline-yes">56x</span>
230
+ <span class="cline-any cline-yes">48x</span>
233
231
  <span class="cline-any cline-neutral">&nbsp;</span>
234
232
  <span class="cline-any cline-neutral">&nbsp;</span>
235
233
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -310,7 +308,6 @@ import { BBContext, Row, Table } from "@budibase/types"
310
308
  export { removeKeyNumbering } from "../../../integrations/base/utils"
311
309
  const validateJs = require("validate.js")
312
310
  const { cloneDeep } = require("lodash/fp")
313
- import { Ctx } from "@budibase/types"
314
311
  &nbsp;
315
312
  validateJs.extend(validateJs.validators.datetime, {
316
313
  parse: function (value: string) {
@@ -329,7 +326,7 @@ export async function getDatasourceAndQuery(json: any) {
329
326
  return makeExternalQuery(datasource, json)
330
327
  }
331
328
  &nbsp;
332
- export async function findRow(ctx: Ctx, tableId: string, rowId: string) {
329
+ export async function findRow(ctx: BBContext, tableId: string, rowId: string) {
333
330
  const db = context.getAppDB()
334
331
  let row
335
332
  // TODO remove special user case in future
@@ -427,7 +424,7 @@ export async function validate({
427
424
  <div class='footer quiet pad2 space-top1 center small'>
428
425
  Code coverage generated by
429
426
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
430
- at Mon Jan 09 2023 08:33:20 GMT+0000 (Coordinated Universal Time)
427
+ at Mon Jan 09 2023 15:38:31 GMT+0000 (Coordinated Universal Time)
431
428
  </div>
432
429
  <script src="../../../../prettify.js"></script>
433
430
  <script>
@@ -189,18 +189,18 @@
189
189
  <a name='L124'></a><a href='#L124'>124</a>
190
190
  <a name='L125'></a><a href='#L125'>125</a>
191
191
  <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">54x</span>
193
- <span class="cline-any cline-yes">54x</span>
192
+ <a name='L127'></a><a href='#L127'>127</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">46x</span>
193
+ <span class="cline-any cline-yes">46x</span>
194
194
  <span class="cline-any cline-neutral">&nbsp;</span>
195
195
  <span class="cline-any cline-neutral">&nbsp;</span>
196
196
  <span class="cline-any cline-neutral">&nbsp;</span>
197
197
  <span class="cline-any cline-neutral">&nbsp;</span>
198
198
  <span class="cline-any cline-neutral">&nbsp;</span>
199
199
  <span class="cline-any cline-neutral">&nbsp;</span>
200
- <span class="cline-any cline-yes">54x</span>
200
+ <span class="cline-any cline-yes">46x</span>
201
201
  <span class="cline-any cline-neutral">&nbsp;</span>
202
202
  <span class="cline-any cline-neutral">&nbsp;</span>
203
- <span class="cline-any cline-yes">54x</span>
203
+ <span class="cline-any cline-yes">46x</span>
204
204
  <span class="cline-any cline-yes">1x</span>
205
205
  <span class="cline-any cline-neutral">&nbsp;</span>
206
206
  <span class="cline-any cline-yes">1x</span>
@@ -221,23 +221,23 @@
221
221
  <span class="cline-any cline-neutral">&nbsp;</span>
222
222
  <span class="cline-any cline-neutral">&nbsp;</span>
223
223
  <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-yes">54x</span>
225
- <span class="cline-any cline-yes">30x</span>
226
- <span class="cline-any cline-yes">30x</span>
224
+ <span class="cline-any cline-yes">46x</span>
225
+ <span class="cline-any cline-yes">29x</span>
226
+ <span class="cline-any cline-yes">29x</span>
227
227
  <span class="cline-any cline-neutral">&nbsp;</span>
228
228
  <span class="cline-any cline-neutral">&nbsp;</span>
229
- <span class="cline-any cline-yes">30x</span>
230
- <span class="cline-any cline-yes">25x</span>
231
- <span class="cline-any cline-yes">25x</span>
229
+ <span class="cline-any cline-yes">29x</span>
230
+ <span class="cline-any cline-yes">24x</span>
231
+ <span class="cline-any cline-yes">24x</span>
232
232
  <span class="cline-any cline-neutral">&nbsp;</span>
233
233
  <span class="cline-any cline-neutral">&nbsp;</span>
234
- <span class="cline-any cline-yes">30x</span>
234
+ <span class="cline-any cline-yes">29x</span>
235
235
  <span class="cline-any cline-neutral">&nbsp;</span>
236
236
  <span class="cline-any cline-neutral">&nbsp;</span>
237
- <span class="cline-any cline-yes">30x</span>
238
- <span class="cline-any cline-yes">30x</span>
239
- <span class="cline-any cline-yes">30x</span>
240
- <span class="cline-any cline-yes">30x</span>
237
+ <span class="cline-any cline-yes">29x</span>
238
+ <span class="cline-any cline-yes">29x</span>
239
+ <span class="cline-any cline-yes">29x</span>
240
+ <span class="cline-any cline-yes">29x</span>
241
241
  <span class="cline-any cline-no">&nbsp;</span>
242
242
  <span class="cline-any cline-no">&nbsp;</span>
243
243
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -275,11 +275,11 @@
275
275
  <span class="cline-any cline-neutral">&nbsp;</span>
276
276
  <span class="cline-any cline-neutral">&nbsp;</span>
277
277
  <span class="cline-any cline-neutral">&nbsp;</span>
278
- <span class="cline-any cline-yes">30x</span>
279
- <span class="cline-any cline-yes">25x</span>
278
+ <span class="cline-any cline-yes">29x</span>
279
+ <span class="cline-any cline-yes">24x</span>
280
280
  <span class="cline-any cline-neutral">&nbsp;</span>
281
- <span class="cline-any cline-yes">30x</span>
282
- <span class="cline-any cline-yes">30x</span>
281
+ <span class="cline-any cline-yes">29x</span>
282
+ <span class="cline-any cline-yes">29x</span>
283
283
  <span class="cline-any cline-neutral">&nbsp;</span>
284
284
  <span class="cline-any cline-neutral">&nbsp;</span>
285
285
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -287,7 +287,7 @@
287
287
  <span class="cline-any cline-neutral">&nbsp;</span>
288
288
  <span class="cline-any cline-neutral">&nbsp;</span>
289
289
  <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-yes">54x</span>
290
+ <span class="cline-any cline-yes">46x</span>
291
291
  <span class="cline-any cline-yes">1x</span>
292
292
  <span class="cline-any cline-yes">1x</span>
293
293
  <span class="cline-any cline-yes">1x</span>
@@ -302,18 +302,18 @@
302
302
  <span class="cline-any cline-neutral">&nbsp;</span>
303
303
  <span class="cline-any cline-neutral">&nbsp;</span>
304
304
  <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-yes">60x</span>
305
+ <span class="cline-any cline-yes">58x</span>
306
306
  <span class="cline-any cline-no">&nbsp;</span>
307
307
  <span class="cline-any cline-neutral">&nbsp;</span>
308
- <span class="cline-any cline-yes">60x</span>
308
+ <span class="cline-any cline-yes">58x</span>
309
309
  <span class="cline-any cline-no">&nbsp;</span>
310
310
  <span class="cline-any cline-no">&nbsp;</span>
311
311
  <span class="cline-any cline-neutral">&nbsp;</span>
312
312
  <span class="cline-any cline-neutral">&nbsp;</span>
313
- <span class="cline-any cline-yes">60x</span>
314
- <span class="cline-any cline-yes">30x</span>
313
+ <span class="cline-any cline-yes">58x</span>
314
+ <span class="cline-any cline-yes">29x</span>
315
315
  <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-yes">30x</span>
316
+ <span class="cline-any cline-yes">29x</span>
317
317
  <span class="cline-any cline-neutral">&nbsp;</span>
318
318
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { getScreenParams, generateScreenID, DocumentType } from "../../db/utils"
319
319
  import {
@@ -448,7 +448,7 @@ function findPlugins(component: ScreenProps, foundPlugins: string[]) {
448
448
  <div class='footer quiet pad2 space-top1 center small'>
449
449
  Code coverage generated by
450
450
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
451
- at Mon Jan 09 2023 08:33:20 GMT+0000 (Coordinated Universal Time)
451
+ at Mon Jan 09 2023 15:38:31 GMT+0000 (Coordinated Universal Time)
452
452
  </div>
453
453
  <script src="../../../prettify.js"></script>
454
454
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">85.71% </span>
26
+ <span class="strong">42.85% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>6/7</span>
28
+ <span class='fraction'>3/7</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">50% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>1/2</span>
42
+ <span class='fraction'>0/2</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">85.71% </span>
47
+ <span class="strong">42.85% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>6/7</span>
49
+ <span class='fraction'>3/7</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line high'></div>
64
+ <div class='status-line low'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -75,25 +75,25 @@
75
75
  <a name='L10'></a><a href='#L10'>10</a>
76
76
  <a name='L11'></a><a href='#L11'>11</a>
77
77
  <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">55x</span>
78
+ <a name='L13'></a><a href='#L13'>13</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">47x</span>
79
79
  <span class="cline-any cline-neutral">&nbsp;</span>
80
80
  <span class="cline-any cline-neutral">&nbsp;</span>
81
- <span class="cline-any cline-yes">55x</span>
82
- <span class="cline-any cline-yes">2x</span>
83
- <span class="cline-any cline-yes">2x</span>
84
- <span class="cline-any cline-yes">2x</span>
81
+ <span class="cline-any cline-yes">47x</span>
82
+ <span class="cline-any cline-no">&nbsp;</span>
83
+ <span class="cline-any cline-no">&nbsp;</span>
84
+ <span class="cline-any cline-no">&nbsp;</span>
85
85
  <span class="cline-any cline-neutral">&nbsp;</span>
86
86
  <span class="cline-any cline-neutral">&nbsp;</span>
87
- <span class="cline-any cline-yes">55x</span>
87
+ <span class="cline-any cline-yes">47x</span>
88
88
  <span class="cline-any cline-no">&nbsp;</span>
89
89
  <span class="cline-any cline-neutral">&nbsp;</span>
90
90
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import ScriptRunner from "../../utilities/scriptRunner"
91
91
  import { BBContext } from "@budibase/types"
92
92
  &nbsp;
93
- export async function execute(ctx: BBContext) {
94
- const { script, context } = ctx.request.body
95
- const runner = new ScriptRunner(script, context)
96
- ctx.body = runner.execute()
93
+ export async function <span class="fstat-no" title="function not covered" >execute(</span>ctx: BBContext) {
94
+ const { script, context } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
95
+ const runner = <span class="cstat-no" title="statement not covered" >new ScriptRunner(script, context)</span>
96
+ <span class="cstat-no" title="statement not covered" > ctx.body = runner.execute()</span>
97
97
  }
98
98
  &nbsp;
99
99
  export async function <span class="fstat-no" title="function not covered" >save(</span>ctx: BBContext) {
@@ -106,7 +106,7 @@ export async function <span class="fstat-no" title="function not covered" >save(
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
- at Mon Jan 09 2023 08:33:20 GMT+0000 (Coordinated Universal Time)
109
+ at Mon Jan 09 2023 15:38:31 GMT+0000 (Coordinated Universal Time)
110
110
  </div>
111
111
  <script src="../../../prettify.js"></script>
112
112
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">62.63% </span>
26
+ <span class="strong">63.82% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>57/91</span>
28
+ <span class='fraction'>60/94</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">59.75% </span>
47
+ <span class="strong">61.17% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>49/82</span>
49
+ <span class='fraction'>52/85</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,17 +80,17 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file medium" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
83
- <td data-value="62.63" class="pic medium">
84
- <div class="chart"><div class="cover-fill" style="width: 62%"></div><div class="cover-empty" style="width: 38%"></div></div>
83
+ <td data-value="63.82" class="pic medium">
84
+ <div class="chart"><div class="cover-fill" style="width: 63%"></div><div class="cover-empty" style="width: 37%"></div></div>
85
85
  </td>
86
- <td data-value="62.63" class="pct medium">62.63%</td>
87
- <td data-value="91" class="abs medium">57/91</td>
86
+ <td data-value="63.82" class="pct medium">63.82%</td>
87
+ <td data-value="94" class="abs medium">60/94</td>
88
88
  <td data-value="66" class="pct medium">66%</td>
89
89
  <td data-value="50" class="abs medium">33/50</td>
90
90
  <td data-value="36.36" class="pct low">36.36%</td>
91
91
  <td data-value="11" class="abs low">4/11</td>
92
- <td data-value="59.75" class="pct medium">59.75%</td>
93
- <td data-value="82" class="abs medium">49/82</td>
92
+ <td data-value="61.17" class="pct medium">61.17%</td>
93
+ <td data-value="85" class="abs medium">52/85</td>
94
94
  </tr>
95
95
 
96
96
  </tbody>
@@ -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 Mon Jan 09 2023 08:33:20 GMT+0000 (Coordinated Universal Time)
104
+ at Mon Jan 09 2023 15:38:31 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../../prettify.js"></script>
107
107
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">62.63% </span>
26
+ <span class="strong">63.82% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>57/91</span>
28
+ <span class='fraction'>60/94</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">59.75% </span>
47
+ <span class="strong">61.17% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>49/82</span>
49
+ <span class='fraction'>52/85</span>
50
50
  </div>
51
51
 
52
52
 
@@ -262,23 +262,31 @@
262
262
  <a name='L197'></a><a href='#L197'>197</a>
263
263
  <a name='L198'></a><a href='#L198'>198</a>
264
264
  <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">54x</span>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">46x</span>
266
270
  <span class="cline-any cline-neutral">&nbsp;</span>
267
- <span class="cline-any cline-yes">54x</span>
268
- <span class="cline-any cline-yes">54x</span>
269
- <span class="cline-any cline-yes">54x</span>
270
- <span class="cline-any cline-yes">54x</span>
271
- <span class="cline-any cline-yes">54x</span>
271
+ <span class="cline-any cline-yes">46x</span>
272
272
  <span class="cline-any cline-neutral">&nbsp;</span>
273
+ <span class="cline-any cline-yes">46x</span>
274
+ <span class="cline-any cline-yes">46x</span>
275
+ <span class="cline-any cline-yes">46x</span>
276
+ <span class="cline-any cline-yes">46x</span>
277
+ <span class="cline-any cline-yes">46x</span>
273
278
  <span class="cline-any cline-neutral">&nbsp;</span>
274
279
  <span class="cline-any cline-neutral">&nbsp;</span>
275
280
  <span class="cline-any cline-neutral">&nbsp;</span>
276
- <span class="cline-any cline-yes">54x</span>
277
- <span class="cline-any cline-yes">54x</span>
278
- <span class="cline-any cline-yes">54x</span>
279
- <span class="cline-any cline-yes">54x</span>
280
- <span class="cline-any cline-yes">54x</span>
281
- <span class="cline-any cline-yes">54x</span>
281
+ <span class="cline-any cline-neutral">&nbsp;</span>
282
+ <span class="cline-any cline-yes">46x</span>
283
+ <span class="cline-any cline-yes">46x</span>
284
+ <span class="cline-any cline-yes">46x</span>
285
+ <span class="cline-any cline-yes">46x</span>
286
+ <span class="cline-any cline-yes">46x</span>
287
+ <span class="cline-any cline-yes">46x</span>
288
+ <span class="cline-any cline-yes">46x</span>
289
+ <span class="cline-any cline-yes">46x</span>
282
290
  <span class="cline-any cline-neutral">&nbsp;</span>
283
291
  <span class="cline-any cline-neutral">&nbsp;</span>
284
292
  <span class="cline-any cline-no">&nbsp;</span>
@@ -299,7 +307,7 @@
299
307
  <span class="cline-any cline-neutral">&nbsp;</span>
300
308
  <span class="cline-any cline-neutral">&nbsp;</span>
301
309
  <span class="cline-any cline-neutral">&nbsp;</span>
302
- <span class="cline-any cline-yes">54x</span>
310
+ <span class="cline-any cline-yes">46x</span>
303
311
  <span class="cline-any cline-no">&nbsp;</span>
304
312
  <span class="cline-any cline-neutral">&nbsp;</span>
305
313
  <span class="cline-any cline-no">&nbsp;</span>
@@ -327,12 +335,12 @@
327
335
  <span class="cline-any cline-neutral">&nbsp;</span>
328
336
  <span class="cline-any cline-neutral">&nbsp;</span>
329
337
  <span class="cline-any cline-neutral">&nbsp;</span>
330
- <span class="cline-any cline-yes">54x</span>
338
+ <span class="cline-any cline-yes">46x</span>
331
339
  <span class="cline-any cline-yes">1x</span>
332
340
  <span class="cline-any cline-yes">1x</span>
333
341
  <span class="cline-any cline-neutral">&nbsp;</span>
334
342
  <span class="cline-any cline-neutral">&nbsp;</span>
335
- <span class="cline-any cline-yes">54x</span>
343
+ <span class="cline-any cline-yes">46x</span>
336
344
  <span class="cline-any cline-neutral">&nbsp;</span>
337
345
  <span class="cline-any cline-no">&nbsp;</span>
338
346
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -353,14 +361,14 @@
353
361
  <span class="cline-any cline-no">&nbsp;</span>
354
362
  <span class="cline-any cline-neutral">&nbsp;</span>
355
363
  <span class="cline-any cline-neutral">&nbsp;</span>
356
- <span class="cline-any cline-yes">54x</span>
364
+ <span class="cline-any cline-yes">46x</span>
357
365
  <span class="cline-any cline-no">&nbsp;</span>
358
366
  <span class="cline-any cline-neutral">&nbsp;</span>
359
367
  <span class="cline-any cline-neutral">&nbsp;</span>
360
368
  <span class="cline-any cline-neutral">&nbsp;</span>
361
369
  <span class="cline-any cline-neutral">&nbsp;</span>
362
370
  <span class="cline-any cline-neutral">&nbsp;</span>
363
- <span class="cline-any cline-yes">54x</span>
371
+ <span class="cline-any cline-yes">46x</span>
364
372
  <span class="cline-any cline-yes">3x</span>
365
373
  <span class="cline-any cline-yes">3x</span>
366
374
  <span class="cline-any cline-yes">3x</span>
@@ -391,7 +399,7 @@
391
399
  <span class="cline-any cline-neutral">&nbsp;</span>
392
400
  <span class="cline-any cline-neutral">&nbsp;</span>
393
401
  <span class="cline-any cline-neutral">&nbsp;</span>
394
- <span class="cline-any cline-yes">54x</span>
402
+ <span class="cline-any cline-yes">46x</span>
395
403
  <span class="cline-any cline-yes">1x</span>
396
404
  <span class="cline-any cline-yes">1x</span>
397
405
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -407,13 +415,13 @@
407
415
  <span class="cline-any cline-neutral">&nbsp;</span>
408
416
  <span class="cline-any cline-neutral">&nbsp;</span>
409
417
  <span class="cline-any cline-neutral">&nbsp;</span>
410
- <span class="cline-any cline-yes">54x</span>
418
+ <span class="cline-any cline-yes">46x</span>
411
419
  <span class="cline-any cline-no">&nbsp;</span>
412
420
  <span class="cline-any cline-neutral">&nbsp;</span>
413
421
  <span class="cline-any cline-neutral">&nbsp;</span>
414
422
  <span class="cline-any cline-neutral">&nbsp;</span>
415
423
  <span class="cline-any cline-neutral">&nbsp;</span>
416
- <span class="cline-any cline-yes">54x</span>
424
+ <span class="cline-any cline-yes">46x</span>
417
425
  <span class="cline-any cline-yes">4x</span>
418
426
  <span class="cline-any cline-neutral">&nbsp;</span>
419
427
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -461,12 +469,14 @@
461
469
  <span class="cline-any cline-neutral">&nbsp;</span>
462
470
  <span class="cline-any cline-yes">1x</span>
463
471
  <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">require("svelte/register")
472
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { enrichPluginURLs } from "../../../utilities/plugins"
473
+ &nbsp;
474
+ require("svelte/register")
465
475
  &nbsp;
466
476
  const send = require("koa-send")
467
477
  const { resolve, join } = require("../../../utilities/centralPath")
468
478
  const uuid = require("uuid")
469
- import { ObjectStoreBuckets } from "../../../constants"
479
+ const { ObjectStoreBuckets } = require("../../../constants")
470
480
  const { processString } = require("@budibase/string-templates")
471
481
  const {
472
482
  loadHandlebarsFile,
@@ -474,6 +484,8 @@ const {
474
484
  TOP_LEVEL_PATH,
475
485
  } = require("../../../utilities/fileSystem")
476
486
  const env = require("../../../environment")
487
+ const { clientLibraryPath } = require("../../../utilities")
488
+ const { attachmentsRelativeURL } = require("../../../utilities")
477
489
  const { DocumentType } = require("../../../db/utils")
478
490
  const { context, objectStore, utils } = require("@budibase/backend-core")
479
491
  const AWS = require("aws-sdk")
@@ -492,7 +504,7 @@ async function <span class="fstat-no" title="function not covered" >prepareUploa
492
504
  <span class="cstat-no" title="statement not covered" > return {</span>
493
505
  size: file.size,
494
506
  name: file.name,
495
- url: objectStore.getAppFileUrl(s3Key),
507
+ url: attachmentsRelativeURL(response.Key),
496
508
  extension: [...file.name.split(".")].pop(),
497
509
  key: response.Key,
498
510
  }
@@ -544,7 +556,7 @@ export const uploadFile = <span class="fstat-no" title="function not covered" >a
544
556
  &nbsp;
545
557
  <span class="cstat-no" title="statement not covered" > return prepareUpload({</span>
546
558
  file,
547
- s3Key: `${context.getProdAppId()}/attachments/${processedFileName}`,
559
+ s3Key: `${ctx.appId}/attachments/${processedFileName}`,
548
560
  bucket: ObjectStoreBuckets.APPS,
549
561
  })
550
562
  })
@@ -566,14 +578,14 @@ export const serveApp = async function (ctx: any) {
566
578
  &nbsp;
567
579
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!env.isJest()) {
568
580
  const App = <span class="cstat-no" title="statement not covered" >require("./templates/BudibaseApp.svelte").default</span>
569
- const plugins = <span class="cstat-no" title="statement not covered" >objectStore.enrichPluginURLs(appInfo.usedPlugins)</span>
581
+ const plugins = <span class="cstat-no" title="statement not covered" >enrichPluginURLs(appInfo.usedPlugins)</span>
570
582
  const { head, html, css } = <span class="cstat-no" title="statement not covered" >App.render({</span>
571
583
  metaImage:
572
584
  "https://res.cloudinary.com/daog6scxm/image/upload/v1666109324/meta-images/budibase-meta-image_uukc1m.png",
573
585
  title: appInfo.name,
574
586
  production: env.isProd(),
575
587
  appId,
576
- clientLibPath: objectStore.clientLibraryUrl(appId, appInfo.version),
588
+ clientLibPath: clientLibraryPath(appId, appInfo.version, ctx),
577
589
  usedPlugins: plugins,
578
590
  })
579
591
  &nbsp;
@@ -598,7 +610,7 @@ export const serveBuilderPreview = async function (ctx: any) {
598
610
  let appId = <span class="cstat-no" title="statement not covered" >context.getAppId()</span>
599
611
  const previewHbs = <span class="cstat-no" title="statement not covered" >loadHandlebarsFile(`${__dirname}/templates/preview.hbs`)</span>
600
612
  <span class="cstat-no" title="statement not covered" > ctx.body = await processString(previewHbs, {</span>
601
- clientLibPath: objectStore.clientLibraryUrl(appId, appInfo.version),
613
+ clientLibPath: clientLibraryPath(appId, appInfo.version, ctx),
602
614
  })
603
615
  } else {
604
616
  // just return the app info for jest to assert on
@@ -667,7 +679,7 @@ export const getSignedUploadURL = async function (ctx: any) {
667
679
  <div class='footer quiet pad2 space-top1 center small'>
668
680
  Code coverage generated by
669
681
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
670
- at Mon Jan 09 2023 08:33:20 GMT+0000 (Coordinated Universal Time)
682
+ at Mon Jan 09 2023 15:38:31 GMT+0000 (Coordinated Universal Time)
671
683
  </div>
672
684
  <script src="../../../../prettify.js"></script>
673
685
  <script>
@@ -251,15 +251,15 @@
251
251
  <a name='L186'></a><a href='#L186'>186</a>
252
252
  <a name='L187'></a><a href='#L187'>187</a>
253
253
  <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">55x</span>
255
- <span class="cline-any cline-yes">55x</span>
256
- <span class="cline-any cline-yes">55x</span>
257
- <span class="cline-any cline-yes">55x</span>
258
- <span class="cline-any cline-yes">55x</span>
259
- <span class="cline-any cline-yes">55x</span>
260
- <span class="cline-any cline-yes">55x</span>
254
+ <a name='L189'></a><a href='#L189'>189</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">47x</span>
255
+ <span class="cline-any cline-yes">47x</span>
256
+ <span class="cline-any cline-yes">47x</span>
257
+ <span class="cline-any cline-yes">47x</span>
258
+ <span class="cline-any cline-yes">47x</span>
259
+ <span class="cline-any cline-yes">47x</span>
260
+ <span class="cline-any cline-yes">47x</span>
261
261
  <span class="cline-any cline-neutral">&nbsp;</span>
262
- <span class="cline-any cline-yes">55x</span>
262
+ <span class="cline-any cline-yes">47x</span>
263
263
  <span class="cline-any cline-neutral">&nbsp;</span>
264
264
  <span class="cline-any cline-neutral">&nbsp;</span>
265
265
  <span class="cline-any cline-yes">1532x</span>
@@ -429,7 +429,7 @@
429
429
  <span class="cline-any cline-neutral">&nbsp;</span>
430
430
  <span class="cline-any cline-neutral">&nbsp;</span>
431
431
  <span class="cline-any cline-neutral">&nbsp;</span>
432
- <span class="cline-any cline-yes">55x</span>
432
+ <span class="cline-any cline-yes">47x</span>
433
433
  <span class="cline-any cline-neutral">&nbsp;</span>
434
434
  <span class="cline-any cline-neutral">&nbsp;</span>
435
435
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -634,7 +634,7 @@ export async function runStaticFormulaChecks(
634
634
  <div class='footer quiet pad2 space-top1 center small'>
635
635
  Code coverage generated by
636
636
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
637
- at Mon Jan 09 2023 08:33:20 GMT+0000 (Coordinated Universal Time)
637
+ at Mon Jan 09 2023 15:38:31 GMT+0000 (Coordinated Universal Time)
638
638
  </div>
639
639
  <script src="../../../../prettify.js"></script>
640
640
  <script>