@budibase/server 2.2.27-alpha.0 → 2.2.27-alpha.1

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 (507) hide show
  1. package/__mocks__/aws-sdk.ts +1 -1
  2. package/builder/assets/{index.f9b8b175.js → index.77ae0e4d.js} +1 -1
  3. package/builder/index.html +1 -1
  4. package/coverage/clover.xml +8688 -4268
  5. package/coverage/coverage-final.json +151 -68
  6. package/coverage/lcov-report/index.html +327 -117
  7. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +1 -1
  8. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +1 -1
  9. package/coverage/lcov-report/src/api/controllers/application.ts.html +114 -114
  10. package/coverage/lcov-report/src/api/controllers/auth.ts.html +1 -1
  11. package/coverage/lcov-report/src/api/controllers/automation.ts.html +25 -25
  12. package/coverage/lcov-report/src/api/controllers/backup.ts.html +1 -1
  13. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +15 -15
  14. package/coverage/lcov-report/src/api/controllers/component.ts.html +1 -1
  15. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +17 -17
  16. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +12 -12
  17. package/coverage/lcov-report/src/api/controllers/deploy/index.html +1 -1
  18. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +70 -70
  19. package/coverage/lcov-report/src/api/controllers/dev.ts.html +10 -10
  20. package/coverage/lcov-report/src/api/controllers/index.html +35 -35
  21. package/coverage/lcov-report/src/api/controllers/integration.ts.html +1 -1
  22. package/coverage/lcov-report/src/api/controllers/layout.ts.html +11 -11
  23. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +1 -1
  24. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +1 -1
  25. package/coverage/lcov-report/src/api/controllers/permission.ts.html +22 -22
  26. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +1 -1
  27. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +1 -1
  28. package/coverage/lcov-report/src/api/controllers/plugin/index.html +1 -1
  29. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +8 -8
  30. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +1 -1
  31. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +1 -1
  32. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +1 -1
  33. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +1 -1
  34. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +1 -1
  35. package/coverage/lcov-report/src/api/controllers/public/index.html +1 -1
  36. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +1 -1
  37. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +1 -1
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +1 -1
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +1 -1
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +1 -1
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +1 -1
  43. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +1 -1
  44. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +1 -1
  45. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +1 -1
  46. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +1 -1
  47. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +1 -1
  48. package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
  49. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +1 -1
  50. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
  51. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +1 -1
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +1 -1
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +1 -1
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +1 -1
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +1 -1
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/curl.spec.js.html +391 -0
  58. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/index.html +116 -0
  59. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/index.html +116 -0
  60. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js.html +796 -0
  61. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/index.html +116 -0
  62. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/openapi3.spec.js.html +805 -0
  63. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.html +116 -0
  64. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.spec.js.html +568 -0
  65. package/coverage/lcov-report/src/api/controllers/query/index.html +1 -1
  66. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +13 -13
  67. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +1 -1
  68. package/coverage/lcov-report/src/api/controllers/role.ts.html +1 -1
  69. package/coverage/lcov-report/src/api/controllers/routing.ts.html +1 -1
  70. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +1 -1
  71. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +1 -1
  72. package/coverage/lcov-report/src/api/controllers/row/index.html +5 -5
  73. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +16 -16
  74. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +16 -16
  75. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +1 -1
  76. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +16 -16
  77. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +15 -15
  78. package/coverage/lcov-report/src/api/controllers/screen.ts.html +21 -21
  79. package/coverage/lcov-report/src/api/controllers/script.ts.html +1 -1
  80. package/coverage/lcov-report/src/api/controllers/static/index.html +1 -1
  81. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +1 -1
  82. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +43 -43
  83. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +1 -1
  84. package/coverage/lcov-report/src/api/controllers/table/index.html +20 -20
  85. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +18 -18
  86. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +49 -49
  87. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +34 -34
  88. package/coverage/lcov-report/src/api/controllers/templates.ts.html +1 -1
  89. package/coverage/lcov-report/src/api/controllers/user.ts.html +15 -15
  90. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +1 -1
  91. package/coverage/lcov-report/src/api/controllers/view/index.html +1 -1
  92. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +1 -1
  93. package/coverage/lcov-report/src/api/controllers/view/tests/index.html +116 -0
  94. package/coverage/lcov-report/src/api/controllers/view/tests/viewBuilder.spec.js.html +277 -0
  95. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +1 -1
  96. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +1 -1
  97. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +13 -13
  98. package/coverage/lcov-report/src/api/index.html +1 -1
  99. package/coverage/lcov-report/src/api/index.ts.html +5 -5
  100. package/coverage/lcov-report/src/api/routes/analytics.ts.html +1 -1
  101. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +1 -1
  102. package/coverage/lcov-report/src/api/routes/application.ts.html +1 -1
  103. package/coverage/lcov-report/src/api/routes/auth.ts.html +1 -1
  104. package/coverage/lcov-report/src/api/routes/automation.ts.html +1 -1
  105. package/coverage/lcov-report/src/api/routes/backup.ts.html +1 -1
  106. package/coverage/lcov-report/src/api/routes/cloud.ts.html +1 -1
  107. package/coverage/lcov-report/src/api/routes/component.ts.html +1 -1
  108. package/coverage/lcov-report/src/api/routes/datasource.ts.html +1 -1
  109. package/coverage/lcov-report/src/api/routes/deploy.ts.html +1 -1
  110. package/coverage/lcov-report/src/api/routes/dev.ts.html +1 -1
  111. package/coverage/lcov-report/src/api/routes/index.html +1 -1
  112. package/coverage/lcov-report/src/api/routes/index.ts.html +1 -1
  113. package/coverage/lcov-report/src/api/routes/integration.ts.html +1 -1
  114. package/coverage/lcov-report/src/api/routes/layout.ts.html +1 -1
  115. package/coverage/lcov-report/src/api/routes/metadata.ts.html +1 -1
  116. package/coverage/lcov-report/src/api/routes/migrations.ts.html +1 -1
  117. package/coverage/lcov-report/src/api/routes/permission.ts.html +1 -1
  118. package/coverage/lcov-report/src/api/routes/plugin.ts.html +1 -1
  119. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +1 -1
  120. package/coverage/lcov-report/src/api/routes/public/index.html +1 -1
  121. package/coverage/lcov-report/src/api/routes/public/index.ts.html +1 -1
  122. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +1 -1
  123. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +1 -1
  124. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +1 -1
  125. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +1 -1
  126. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +1 -1
  127. package/coverage/lcov-report/src/api/routes/public/tests/compare.spec.js.html +583 -0
  128. package/coverage/lcov-report/src/api/routes/public/tests/index.html +38 -8
  129. package/coverage/lcov-report/src/api/routes/public/tests/users.spec.js.html +199 -0
  130. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +1 -1
  131. package/coverage/lcov-report/src/api/routes/public/users.ts.html +1 -1
  132. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +1 -1
  133. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  134. package/coverage/lcov-report/src/api/routes/query.ts.html +1 -1
  135. package/coverage/lcov-report/src/api/routes/role.ts.html +1 -1
  136. package/coverage/lcov-report/src/api/routes/routing.ts.html +1 -1
  137. package/coverage/lcov-report/src/api/routes/row.ts.html +1 -1
  138. package/coverage/lcov-report/src/api/routes/screen.ts.html +1 -1
  139. package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
  140. package/coverage/lcov-report/src/api/routes/static.ts.html +1 -1
  141. package/coverage/lcov-report/src/api/routes/table.ts.html +1 -1
  142. package/coverage/lcov-report/src/api/routes/templates.ts.html +1 -1
  143. package/coverage/lcov-report/src/api/routes/tests/analytics.spec.js.html +271 -0
  144. package/coverage/lcov-report/src/api/routes/tests/apikeys.spec.js.html +259 -0
  145. package/coverage/lcov-report/src/api/routes/tests/application.spec.ts.html +1066 -0
  146. package/coverage/lcov-report/src/api/routes/tests/auth.spec.js.html +154 -0
  147. package/coverage/lcov-report/src/api/routes/tests/automation.spec.js.html +1123 -0
  148. package/coverage/lcov-report/src/api/routes/tests/backup.spec.ts.html +223 -0
  149. package/coverage/lcov-report/src/api/routes/tests/cloud.seq.spec.ts.html +262 -0
  150. package/coverage/lcov-report/src/api/routes/tests/component.spec.js.html +178 -0
  151. package/coverage/lcov-report/src/api/routes/tests/datasource.spec.ts.html +799 -0
  152. package/coverage/lcov-report/src/api/routes/tests/dev.spec.js.html +202 -0
  153. package/coverage/lcov-report/src/api/routes/tests/index.html +521 -0
  154. package/coverage/lcov-report/src/api/routes/tests/integration.spec.js.html +238 -0
  155. package/coverage/lcov-report/src/api/routes/tests/internalSearch.spec.js.html +670 -0
  156. package/coverage/lcov-report/src/api/routes/tests/layout.spec.js.html +259 -0
  157. package/coverage/lcov-report/src/api/routes/tests/metadata.spec.js.html +280 -0
  158. package/coverage/lcov-report/src/api/routes/tests/misc.spec.js.html +358 -0
  159. package/coverage/lcov-report/src/api/routes/tests/permissions.spec.js.html +484 -0
  160. package/coverage/lcov-report/src/api/routes/tests/plugin.spec.ts.html +622 -0
  161. package/coverage/lcov-report/src/api/routes/tests/query.seq.spec.js.html +1696 -0
  162. package/coverage/lcov-report/src/api/routes/tests/role.spec.js.html +478 -0
  163. package/coverage/lcov-report/src/api/routes/tests/routing.spec.js.html +430 -0
  164. package/coverage/lcov-report/src/api/routes/tests/row.spec.js.html +1804 -0
  165. package/coverage/lcov-report/src/api/routes/tests/screen.spec.js.html +391 -0
  166. package/coverage/lcov-report/src/api/routes/tests/static.spec.js.html +541 -0
  167. package/coverage/lcov-report/src/api/routes/tests/table.spec.js.html +991 -0
  168. package/coverage/lcov-report/src/api/routes/tests/templates.spec.js.html +154 -0
  169. package/coverage/lcov-report/src/api/routes/tests/user.spec.js.html +688 -0
  170. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +110 -41
  171. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +19 -19
  172. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +11 -5
  173. package/coverage/lcov-report/src/api/routes/tests/view.spec.js.html +1342 -0
  174. package/coverage/lcov-report/src/api/routes/tests/webhook.spec.js.html +484 -0
  175. package/coverage/lcov-report/src/api/routes/user.ts.html +1 -1
  176. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  177. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +1 -1
  178. package/coverage/lcov-report/src/api/routes/view.ts.html +1 -1
  179. package/coverage/lcov-report/src/api/routes/webhook.ts.html +1 -1
  180. package/coverage/lcov-report/src/app.ts.html +6 -3
  181. package/coverage/lcov-report/src/automations/actions.ts.html +1 -1
  182. package/coverage/lcov-report/src/automations/automationUtils.ts.html +1 -1
  183. package/coverage/lcov-report/src/automations/bullboard.ts.html +2 -2
  184. package/coverage/lcov-report/src/automations/index.html +27 -27
  185. package/coverage/lcov-report/src/automations/index.ts.html +5 -5
  186. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  187. package/coverage/lcov-report/src/automations/logging/index.ts.html +7 -7
  188. package/coverage/lcov-report/src/automations/steps/bash.ts.html +1 -1
  189. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +1 -1
  190. package/coverage/lcov-report/src/automations/steps/delay.ts.html +1 -1
  191. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +1 -1
  192. package/coverage/lcov-report/src/automations/steps/discord.ts.html +1 -1
  193. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +1 -1
  194. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +1 -1
  195. package/coverage/lcov-report/src/automations/steps/filter.ts.html +1 -1
  196. package/coverage/lcov-report/src/automations/steps/index.html +1 -1
  197. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +1 -1
  198. package/coverage/lcov-report/src/automations/steps/loop.ts.html +1 -1
  199. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +1 -1
  200. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +1 -1
  201. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +1 -1
  202. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +1 -1
  203. package/coverage/lcov-report/src/automations/steps/slack.ts.html +1 -1
  204. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +1 -1
  205. package/coverage/lcov-report/src/automations/steps/utils.ts.html +1 -1
  206. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +1 -1
  207. package/coverage/lcov-report/src/automations/tests/automation.spec.js.html +337 -0
  208. package/coverage/lcov-report/src/automations/tests/bash.spec.js.html +187 -0
  209. package/coverage/lcov-report/src/automations/tests/createRow.spec.ts.html +223 -0
  210. package/coverage/lcov-report/src/automations/tests/delay.spec.js.html +133 -0
  211. package/coverage/lcov-report/src/automations/tests/deleteRow.spec.ts.html +250 -0
  212. package/coverage/lcov-report/src/automations/tests/discord.spec.js.html +166 -0
  213. package/coverage/lcov-report/src/automations/tests/executeQuery.spec.js.html +229 -0
  214. package/coverage/lcov-report/src/automations/tests/executeScript.spec.js.html +229 -0
  215. package/coverage/lcov-report/src/automations/tests/filter.spec.js.html +232 -0
  216. package/coverage/lcov-report/src/automations/tests/index.html +341 -0
  217. package/coverage/lcov-report/src/automations/tests/loop.spec.ts.html +220 -0
  218. package/coverage/lcov-report/src/automations/tests/outgoingWebhook.spec.js.html +202 -0
  219. package/coverage/lcov-report/src/automations/tests/queryRows.spec.js.html +436 -0
  220. package/coverage/lcov-report/src/automations/tests/sendSmtpEmail.spec.js.html +298 -0
  221. package/coverage/lcov-report/src/automations/tests/serverLog.spec.js.html +151 -0
  222. package/coverage/lcov-report/src/automations/tests/updateRow.spec.js.html +217 -0
  223. package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
  224. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +1 -1
  225. package/coverage/lcov-report/src/automations/tests/zapier.spec.js.html +166 -0
  226. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +1 -1
  227. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +1 -1
  228. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  229. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +1 -1
  230. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +1 -1
  231. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +1 -1
  232. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +1 -1
  233. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +1 -1
  234. package/coverage/lcov-report/src/automations/triggers.ts.html +24 -24
  235. package/coverage/lcov-report/src/automations/unitTests/automationUtils.spec.ts.html +280 -0
  236. package/coverage/lcov-report/src/automations/unitTests/index.html +116 -0
  237. package/coverage/lcov-report/src/automations/utils.ts.html +38 -38
  238. package/coverage/lcov-report/src/constants/index.html +1 -1
  239. package/coverage/lcov-report/src/constants/index.ts.html +2 -2
  240. package/coverage/lcov-report/src/constants/layouts.ts.html +1 -1
  241. package/coverage/lcov-report/src/constants/screens.ts.html +3 -3
  242. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +1 -1
  243. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +1 -1
  244. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +1 -1
  245. package/coverage/lcov-report/src/db/defaultData/index.html +1 -1
  246. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +1 -1
  247. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +1 -1
  248. package/coverage/lcov-report/src/db/dynamoClient.ts.html +1 -1
  249. package/coverage/lcov-report/src/db/inMemoryView.ts.html +1 -1
  250. package/coverage/lcov-report/src/db/index.html +16 -16
  251. package/coverage/lcov-report/src/db/index.ts.html +13 -13
  252. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +12 -12
  253. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +1 -1
  254. package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
  255. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +15 -15
  256. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +6 -6
  257. package/coverage/lcov-report/src/db/newid.ts.html +3 -3
  258. package/coverage/lcov-report/src/db/tests/index.html +131 -0
  259. package/coverage/lcov-report/src/db/tests/linkController.spec.js.html +793 -0
  260. package/coverage/lcov-report/src/db/tests/linkTests.spec.js.html +277 -0
  261. package/coverage/lcov-report/src/db/utils.ts.html +33 -33
  262. package/coverage/lcov-report/src/definitions/automations.ts.html +1 -1
  263. package/coverage/lcov-report/src/definitions/index.html +1 -1
  264. package/coverage/lcov-report/src/environment.ts.html +19 -19
  265. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +1 -1
  266. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +1 -1
  267. package/coverage/lcov-report/src/events/index.html +1 -1
  268. package/coverage/lcov-report/src/events/index.ts.html +1 -1
  269. package/coverage/lcov-report/src/events/utils.ts.html +1 -1
  270. package/coverage/lcov-report/src/index.html +16 -16
  271. package/coverage/lcov-report/src/index.ts.html +1 -1
  272. package/coverage/lcov-report/src/integrations/airtable.ts.html +1 -1
  273. package/coverage/lcov-report/src/integrations/arangodb.ts.html +1 -1
  274. package/coverage/lcov-report/src/integrations/base/index.html +1 -1
  275. package/coverage/lcov-report/src/integrations/base/query.ts.html +1 -1
  276. package/coverage/lcov-report/src/integrations/base/sql.ts.html +1 -1
  277. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +1 -1
  278. package/coverage/lcov-report/src/integrations/base/utils.ts.html +1 -1
  279. package/coverage/lcov-report/src/integrations/couchdb.ts.html +1 -1
  280. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +1 -1
  281. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +1 -1
  282. package/coverage/lcov-report/src/integrations/firebase.ts.html +1 -1
  283. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +1 -1
  284. package/coverage/lcov-report/src/integrations/index.html +1 -1
  285. package/coverage/lcov-report/src/integrations/index.ts.html +10 -10
  286. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +1 -1
  287. package/coverage/lcov-report/src/integrations/mongodb.ts.html +1 -1
  288. package/coverage/lcov-report/src/integrations/mysql.ts.html +1 -1
  289. package/coverage/lcov-report/src/integrations/oracle.ts.html +1 -1
  290. package/coverage/lcov-report/src/integrations/postgres.ts.html +1 -1
  291. package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
  292. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +1 -1
  293. package/coverage/lcov-report/src/integrations/redis.ts.html +1 -1
  294. package/coverage/lcov-report/src/integrations/rest.ts.html +1 -1
  295. package/coverage/lcov-report/src/integrations/s3.ts.html +1 -1
  296. package/coverage/lcov-report/src/integrations/snowflake.ts.html +1 -1
  297. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  298. package/coverage/lcov-report/src/integrations/tests/airtable.spec.ts.html +310 -0
  299. package/coverage/lcov-report/src/integrations/tests/arangodb.spec.ts.html +199 -0
  300. package/coverage/lcov-report/src/integrations/tests/couchdb.spec.ts.html +349 -0
  301. package/coverage/lcov-report/src/integrations/tests/dynamodb.spec.ts.html +550 -0
  302. package/coverage/lcov-report/src/integrations/tests/elasticsearch.spec.ts.html +331 -0
  303. package/coverage/lcov-report/src/integrations/tests/firebase.spec.ts.html +376 -0
  304. package/coverage/lcov-report/src/integrations/tests/index.html +230 -5
  305. package/coverage/lcov-report/src/integrations/tests/microsoftSqlServer.spec.ts.html +253 -0
  306. package/coverage/lcov-report/src/integrations/tests/mongo.spec.ts.html +1087 -0
  307. package/coverage/lcov-report/src/integrations/tests/mysql.spec.ts.html +484 -0
  308. package/coverage/lcov-report/src/integrations/tests/oracle.spec.ts.html +373 -0
  309. package/coverage/lcov-report/src/integrations/tests/postgres.spec.ts.html +328 -0
  310. package/coverage/lcov-report/src/integrations/tests/redis.spec.ts.html +337 -0
  311. package/coverage/lcov-report/src/integrations/tests/rest.spec.ts.html +1870 -0
  312. package/coverage/lcov-report/src/integrations/tests/s3.spec.ts.html +421 -0
  313. package/coverage/lcov-report/src/integrations/tests/sql.spec.ts.html +1753 -0
  314. package/coverage/lcov-report/src/integrations/utils.ts.html +3 -3
  315. package/coverage/lcov-report/src/middleware/appInfo.ts.html +1 -1
  316. package/coverage/lcov-report/src/middleware/authorized.ts.html +19 -19
  317. package/coverage/lcov-report/src/middleware/builder.ts.html +13 -13
  318. package/coverage/lcov-report/src/middleware/currentapp.ts.html +47 -47
  319. package/coverage/lcov-report/src/middleware/index.html +15 -15
  320. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  321. package/coverage/lcov-report/src/middleware/publicApi.ts.html +1 -1
  322. package/coverage/lcov-report/src/middleware/resourceId.ts.html +1 -1
  323. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  324. package/coverage/lcov-report/src/middleware/tests/authorized.spec.js.html +574 -0
  325. package/coverage/lcov-report/src/middleware/tests/currentapp.spec.js.html +814 -0
  326. package/coverage/lcov-report/src/middleware/tests/index.html +161 -0
  327. package/coverage/lcov-report/src/middleware/tests/resourceId.spec.js.html +397 -0
  328. package/coverage/lcov-report/src/middleware/tests/selfhost.spec.js.html +214 -0
  329. package/coverage/lcov-report/src/middleware/utils.ts.html +3 -3
  330. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +1 -1
  331. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +1 -1
  332. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +1 -1
  333. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  334. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +1 -1
  335. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +1 -1
  336. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +1 -1
  337. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +1 -1
  338. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +1 -1
  339. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +1 -1
  340. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +1 -1
  341. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  342. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +1 -1
  343. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +1 -1
  344. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +1 -1
  345. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  346. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +1 -1
  347. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +1 -1
  348. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  349. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +1 -1
  350. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +1 -1
  351. package/coverage/lcov-report/src/migrations/functions/tests/appUrls.spec.js.html +163 -0
  352. package/coverage/lcov-report/src/migrations/functions/tests/index.html +161 -0
  353. package/coverage/lcov-report/src/migrations/functions/tests/syncQuotas.spec.js.html +163 -0
  354. package/coverage/lcov-report/src/migrations/functions/tests/tableSettings.spec.ts.html +517 -0
  355. package/coverage/lcov-report/src/migrations/functions/tests/userEmailViewCasing.spec.js.html +190 -0
  356. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  357. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +1 -1
  358. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +1 -1
  359. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +1 -1
  360. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +1 -1
  361. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/index.html +131 -0
  362. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts.html +190 -0
  363. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts.html +244 -0
  364. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +1 -1
  365. package/coverage/lcov-report/src/migrations/index.html +1 -1
  366. package/coverage/lcov-report/src/migrations/index.ts.html +1 -1
  367. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  368. package/coverage/lcov-report/src/migrations/tests/index.html +23 -8
  369. package/coverage/lcov-report/src/migrations/tests/index.spec.ts.html +535 -0
  370. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  371. package/coverage/lcov-report/src/sdk/app/applications/index.html +1 -1
  372. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +1 -1
  373. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +18 -18
  374. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +7 -7
  375. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  376. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +1 -1
  377. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +8 -8
  378. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +1 -1
  379. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +1 -1
  380. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +1 -1
  381. package/coverage/lcov-report/src/sdk/app/backups/index.html +1 -1
  382. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +1 -1
  383. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +1 -1
  384. package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +15 -15
  385. package/coverage/lcov-report/src/sdk/app/datasources/index.html +1 -1
  386. package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +1 -1
  387. package/coverage/lcov-report/src/sdk/app/queries/index.html +1 -1
  388. package/coverage/lcov-report/src/sdk/app/queries/index.ts.html +1 -1
  389. package/coverage/lcov-report/src/sdk/app/queries/queries.ts.html +1 -1
  390. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +1 -1
  391. package/coverage/lcov-report/src/sdk/app/rows/index.html +1 -1
  392. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +1 -1
  393. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +1 -1
  394. package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
  395. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +5 -5
  396. package/coverage/lcov-report/src/sdk/index.html +1 -1
  397. package/coverage/lcov-report/src/sdk/index.ts.html +2 -2
  398. package/coverage/lcov-report/src/sdk/tests/attachments.spec.ts.html +313 -0
  399. package/coverage/lcov-report/src/sdk/tests/index.html +116 -0
  400. package/coverage/lcov-report/src/sdk/users/index.html +1 -1
  401. package/coverage/lcov-report/src/sdk/users/index.ts.html +1 -1
  402. package/coverage/lcov-report/src/sdk/users/utils.ts.html +24 -24
  403. package/coverage/lcov-report/src/sdk/utils/index.html +1 -1
  404. package/coverage/lcov-report/src/sdk/utils/index.ts.html +1 -1
  405. package/coverage/lcov-report/src/startup.ts.html +4 -4
  406. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +308 -140
  407. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +6 -6
  408. package/coverage/lcov-report/src/tests/utilities/index.html +18 -18
  409. package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
  410. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +18 -18
  411. package/coverage/lcov-report/src/threads/automation.ts.html +1 -1
  412. package/coverage/lcov-report/src/threads/index.html +1 -1
  413. package/coverage/lcov-report/src/threads/index.ts.html +1 -1
  414. package/coverage/lcov-report/src/threads/query.ts.html +1 -1
  415. package/coverage/lcov-report/src/threads/utils.ts.html +1 -1
  416. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +2 -2
  417. package/coverage/lcov-report/src/utilities/centralPath.ts.html +1 -1
  418. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +3 -3
  419. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +1 -1
  420. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +1 -1
  421. package/coverage/lcov-report/src/utilities/fileSystem/index.html +1 -1
  422. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1 -1
  423. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +1 -1
  424. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  425. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +1 -1
  426. package/coverage/lcov-report/src/utilities/global.ts.html +36 -36
  427. package/coverage/lcov-report/src/utilities/index.html +34 -19
  428. package/coverage/lcov-report/src/utilities/index.ts.html +19 -19
  429. package/coverage/lcov-report/src/utilities/redis.ts.html +1 -1
  430. package/coverage/lcov-report/src/utilities/retry.ts.html +139 -0
  431. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  432. package/coverage/lcov-report/src/utilities/routing/index.ts.html +1 -1
  433. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +1 -1
  434. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +41 -41
  435. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +2 -2
  436. package/coverage/lcov-report/src/utilities/rowProcessor/tests/index.html +116 -0
  437. package/coverage/lcov-report/src/utilities/rowProcessor/tests/utils.spec.ts.html +256 -0
  438. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +12 -12
  439. package/coverage/lcov-report/src/utilities/schema.ts.html +1 -1
  440. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +1 -1
  441. package/coverage/lcov-report/src/utilities/security.ts.html +19 -19
  442. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  443. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +32 -32
  444. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  445. package/coverage/lcov-report/src/utilities/users.ts.html +1 -1
  446. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +15 -15
  447. package/coverage/lcov-report/src/watch.ts.html +1 -1
  448. package/coverage/lcov-report/src/websocket.ts.html +1 -1
  449. package/coverage/lcov.info +14419 -7208
  450. package/dist/app.js +1 -1
  451. package/dist/package.json +8 -6
  452. package/dist/tsconfig.build.tsbuildinfo +1 -1
  453. package/dist/utilities/retry.js +30 -0
  454. package/jest-testcontainers-config.js +8 -0
  455. package/jest.config.ts +28 -11
  456. package/package.json +9 -7
  457. package/src/api/controllers/query/import/tests/index.spec.js +1 -1
  458. package/src/api/routes/tests/__snapshots__/datasource.spec.ts.snap +1 -1
  459. package/src/api/routes/tests/analytics.spec.js +4 -1
  460. package/src/api/routes/tests/apikeys.spec.js +1 -1
  461. package/src/api/routes/tests/application.spec.ts +20 -6
  462. package/src/api/routes/tests/auth.spec.js +2 -2
  463. package/src/api/routes/tests/automation.spec.js +5 -1
  464. package/src/api/routes/tests/backup.spec.ts +4 -13
  465. package/src/api/routes/tests/{cloud.spec.ts → cloud.seq.spec.ts} +8 -14
  466. package/src/api/routes/tests/component.spec.js +1 -1
  467. package/src/api/routes/tests/datasource.spec.ts +20 -3
  468. package/src/api/routes/tests/dev.spec.js +1 -1
  469. package/src/api/routes/tests/integration.spec.js +1 -1
  470. package/src/api/routes/tests/layout.spec.js +1 -1
  471. package/src/api/routes/tests/metadata.spec.js +1 -1
  472. package/src/api/routes/tests/misc.spec.js +1 -1
  473. package/src/api/routes/tests/permissions.spec.js +4 -1
  474. package/src/api/routes/tests/{query.spec.js → query.seq.spec.js} +21 -1
  475. package/src/api/routes/tests/role.spec.js +6 -1
  476. package/src/api/routes/tests/routing.spec.js +1 -1
  477. package/src/api/routes/tests/row.spec.js +11 -3
  478. package/src/api/routes/tests/screen.spec.js +1 -1
  479. package/src/api/routes/tests/static.spec.js +2 -1
  480. package/src/api/routes/tests/table.spec.js +1 -1
  481. package/src/api/routes/tests/templates.spec.js +1 -1
  482. package/src/api/routes/tests/user.spec.js +3 -0
  483. package/src/api/routes/tests/utilities/TestFunctions.ts +25 -2
  484. package/src/api/routes/tests/utilities/index.ts +5 -3
  485. package/src/api/routes/tests/view.spec.js +4 -1
  486. package/src/api/routes/tests/webhook.spec.js +11 -2
  487. package/src/app.ts +2 -1
  488. package/src/automations/tests/automation.spec.js +4 -4
  489. package/src/automations/tests/bash.spec.js +1 -1
  490. package/src/automations/tests/discord.spec.js +1 -1
  491. package/src/automations/tests/executeQuery.spec.js +2 -3
  492. package/src/automations/tests/executeScript.spec.js +1 -1
  493. package/src/automations/tests/outgoingWebhook.spec.js +1 -1
  494. package/src/automations/tests/sendSmtpEmail.spec.js +1 -1
  495. package/src/automations/tests/serverLog.spec.js +1 -1
  496. package/src/automations/tests/updateRow.spec.js +1 -1
  497. package/src/automations/tests/zapier.spec.js +1 -1
  498. package/src/db/tests/linkController.spec.js +4 -1
  499. package/src/db/tests/linkTests.spec.js +1 -1
  500. package/src/migrations/functions/tests/appUrls.spec.js +1 -1
  501. package/src/migrations/functions/tests/syncQuotas.spec.js +1 -1
  502. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +1 -1
  503. package/src/migrations/tests/index.spec.ts +3 -2
  504. package/src/tests/jestEnv.ts +2 -6
  505. package/src/tests/jestSetup.ts +5 -6
  506. package/src/tests/utilities/TestConfiguration.ts +90 -34
  507. package/src/utilities/retry.ts +18 -0
@@ -0,0 +1,805 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/api/controllers/query/import/sources/tests/openapi3/openapi3.spec.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">src/api/controllers/query/import/sources/tests/openapi3</a> openapi3.spec.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">0% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>0/77</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</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/23</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">0% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>0/77</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line low'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
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>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
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>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
307
+ <span class="cline-any cline-no">&nbsp;</span>
308
+ <span class="cline-any cline-neutral">&nbsp;</span>
309
+ <span class="cline-any cline-no">&nbsp;</span>
310
+ <span class="cline-any cline-neutral">&nbsp;</span>
311
+ <span class="cline-any cline-no">&nbsp;</span>
312
+ <span class="cline-any cline-no">&nbsp;</span>
313
+ <span class="cline-any cline-neutral">&nbsp;</span>
314
+ <span class="cline-any cline-neutral">&nbsp;</span>
315
+ <span class="cline-any cline-neutral">&nbsp;</span>
316
+ <span class="cline-any cline-neutral">&nbsp;</span>
317
+ <span class="cline-any cline-neutral">&nbsp;</span>
318
+ <span class="cline-any cline-no">&nbsp;</span>
319
+ <span class="cline-any cline-neutral">&nbsp;</span>
320
+ <span class="cline-any cline-neutral">&nbsp;</span>
321
+ <span class="cline-any cline-no">&nbsp;</span>
322
+ <span class="cline-any cline-no">&nbsp;</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-no">&nbsp;</span>
326
+ <span class="cline-any cline-neutral">&nbsp;</span>
327
+ <span class="cline-any cline-neutral">&nbsp;</span>
328
+ <span class="cline-any cline-neutral">&nbsp;</span>
329
+ <span class="cline-any cline-neutral">&nbsp;</span>
330
+ <span class="cline-any cline-no">&nbsp;</span>
331
+ <span class="cline-any cline-no">&nbsp;</span>
332
+ <span class="cline-any cline-no">&nbsp;</span>
333
+ <span class="cline-any cline-neutral">&nbsp;</span>
334
+ <span class="cline-any cline-neutral">&nbsp;</span>
335
+ <span class="cline-any cline-no">&nbsp;</span>
336
+ <span class="cline-any cline-no">&nbsp;</span>
337
+ <span class="cline-any cline-no">&nbsp;</span>
338
+ <span class="cline-any cline-neutral">&nbsp;</span>
339
+ <span class="cline-any cline-neutral">&nbsp;</span>
340
+ <span class="cline-any cline-no">&nbsp;</span>
341
+ <span class="cline-any cline-no">&nbsp;</span>
342
+ <span class="cline-any cline-no">&nbsp;</span>
343
+ <span class="cline-any cline-neutral">&nbsp;</span>
344
+ <span class="cline-any cline-neutral">&nbsp;</span>
345
+ <span class="cline-any cline-neutral">&nbsp;</span>
346
+ <span class="cline-any cline-no">&nbsp;</span>
347
+ <span class="cline-any cline-no">&nbsp;</span>
348
+ <span class="cline-any cline-no">&nbsp;</span>
349
+ <span class="cline-any cline-no">&nbsp;</span>
350
+ <span class="cline-any cline-neutral">&nbsp;</span>
351
+ <span class="cline-any cline-neutral">&nbsp;</span>
352
+ <span class="cline-any cline-no">&nbsp;</span>
353
+ <span class="cline-any cline-no">&nbsp;</span>
354
+ <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <span class="cline-any cline-no">&nbsp;</span>
357
+ <span class="cline-any cline-no">&nbsp;</span>
358
+ <span class="cline-any cline-no">&nbsp;</span>
359
+ <span class="cline-any cline-no">&nbsp;</span>
360
+ <span class="cline-any cline-no">&nbsp;</span>
361
+ <span class="cline-any cline-neutral">&nbsp;</span>
362
+ <span class="cline-any cline-neutral">&nbsp;</span>
363
+ <span class="cline-any cline-neutral">&nbsp;</span>
364
+ <span class="cline-any cline-no">&nbsp;</span>
365
+ <span class="cline-any cline-no">&nbsp;</span>
366
+ <span class="cline-any cline-no">&nbsp;</span>
367
+ <span class="cline-any cline-no">&nbsp;</span>
368
+ <span class="cline-any cline-no">&nbsp;</span>
369
+ <span class="cline-any cline-neutral">&nbsp;</span>
370
+ <span class="cline-any cline-neutral">&nbsp;</span>
371
+ <span class="cline-any cline-no">&nbsp;</span>
372
+ <span class="cline-any cline-no">&nbsp;</span>
373
+ <span class="cline-any cline-no">&nbsp;</span>
374
+ <span class="cline-any cline-no">&nbsp;</span>
375
+ <span class="cline-any cline-neutral">&nbsp;</span>
376
+ <span class="cline-any cline-neutral">&nbsp;</span>
377
+ <span class="cline-any cline-neutral">&nbsp;</span>
378
+ <span class="cline-any cline-no">&nbsp;</span>
379
+ <span class="cline-any cline-no">&nbsp;</span>
380
+ <span class="cline-any cline-neutral">&nbsp;</span>
381
+ <span class="cline-any cline-neutral">&nbsp;</span>
382
+ <span class="cline-any cline-neutral">&nbsp;</span>
383
+ <span class="cline-any cline-neutral">&nbsp;</span>
384
+ <span class="cline-any cline-neutral">&nbsp;</span>
385
+ <span class="cline-any cline-neutral">&nbsp;</span>
386
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-no">&nbsp;</span>
388
+ <span class="cline-any cline-neutral">&nbsp;</span>
389
+ <span class="cline-any cline-neutral">&nbsp;</span>
390
+ <span class="cline-any cline-no">&nbsp;</span>
391
+ <span class="cline-any cline-no">&nbsp;</span>
392
+ <span class="cline-any cline-no">&nbsp;</span>
393
+ <span class="cline-any cline-no">&nbsp;</span>
394
+ <span class="cline-any cline-neutral">&nbsp;</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
396
+ <span class="cline-any cline-neutral">&nbsp;</span>
397
+ <span class="cline-any cline-no">&nbsp;</span>
398
+ <span class="cline-any cline-no">&nbsp;</span>
399
+ <span class="cline-any cline-neutral">&nbsp;</span>
400
+ <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-neutral">&nbsp;</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-neutral">&nbsp;</span>
404
+ <span class="cline-any cline-neutral">&nbsp;</span>
405
+ <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-no">&nbsp;</span>
407
+ <span class="cline-any cline-neutral">&nbsp;</span>
408
+ <span class="cline-any cline-neutral">&nbsp;</span>
409
+ <span class="cline-any cline-no">&nbsp;</span>
410
+ <span class="cline-any cline-no">&nbsp;</span>
411
+ <span class="cline-any cline-no">&nbsp;</span>
412
+ <span class="cline-any cline-no">&nbsp;</span>
413
+ <span class="cline-any cline-neutral">&nbsp;</span>
414
+ <span class="cline-any cline-neutral">&nbsp;</span>
415
+ <span class="cline-any cline-neutral">&nbsp;</span>
416
+ <span class="cline-any cline-no">&nbsp;</span>
417
+ <span class="cline-any cline-neutral">&nbsp;</span>
418
+ <span class="cline-any cline-neutral">&nbsp;</span>
419
+ <span class="cline-any cline-neutral">&nbsp;</span>
420
+ <span class="cline-any cline-no">&nbsp;</span>
421
+ <span class="cline-any cline-no">&nbsp;</span>
422
+ <span class="cline-any cline-neutral">&nbsp;</span>
423
+ <span class="cline-any cline-neutral">&nbsp;</span>
424
+ <span class="cline-any cline-neutral">&nbsp;</span>
425
+ <span class="cline-any cline-neutral">&nbsp;</span>
426
+ <span class="cline-any cline-neutral">&nbsp;</span>
427
+ <span class="cline-any cline-neutral">&nbsp;</span>
428
+ <span class="cline-any cline-neutral">&nbsp;</span>
429
+ <span class="cline-any cline-neutral">&nbsp;</span>
430
+ <span class="cline-any cline-neutral">&nbsp;</span>
431
+ <span class="cline-any cline-neutral">&nbsp;</span>
432
+ <span class="cline-any cline-neutral">&nbsp;</span>
433
+ <span class="cline-any cline-neutral">&nbsp;</span>
434
+ <span class="cline-any cline-neutral">&nbsp;</span>
435
+ <span class="cline-any cline-neutral">&nbsp;</span>
436
+ <span class="cline-any cline-neutral">&nbsp;</span>
437
+ <span class="cline-any cline-neutral">&nbsp;</span>
438
+ <span class="cline-any cline-no">&nbsp;</span>
439
+ <span class="cline-any cline-neutral">&nbsp;</span>
440
+ <span class="cline-any cline-neutral">&nbsp;</span>
441
+ <span class="cline-any cline-no">&nbsp;</span>
442
+ <span class="cline-any cline-no">&nbsp;</span>
443
+ <span class="cline-any cline-no">&nbsp;</span>
444
+ <span class="cline-any cline-no">&nbsp;</span>
445
+ <span class="cline-any cline-neutral">&nbsp;</span>
446
+ <span class="cline-any cline-neutral">&nbsp;</span>
447
+ <span class="cline-any cline-neutral">&nbsp;</span>
448
+ <span class="cline-any cline-neutral">&nbsp;</span>
449
+ <span class="cline-any cline-neutral">&nbsp;</span>
450
+ <span class="cline-any cline-no">&nbsp;</span>
451
+ <span class="cline-any cline-no">&nbsp;</span>
452
+ <span class="cline-any cline-neutral">&nbsp;</span>
453
+ <span class="cline-any cline-neutral">&nbsp;</span>
454
+ <span class="cline-any cline-neutral">&nbsp;</span>
455
+ <span class="cline-any cline-neutral">&nbsp;</span>
456
+ <span class="cline-any cline-neutral">&nbsp;</span>
457
+ <span class="cline-any cline-neutral">&nbsp;</span>
458
+ <span class="cline-any cline-neutral">&nbsp;</span>
459
+ <span class="cline-any cline-no">&nbsp;</span>
460
+ <span class="cline-any cline-neutral">&nbsp;</span>
461
+ <span class="cline-any cline-neutral">&nbsp;</span>
462
+ <span class="cline-any cline-no">&nbsp;</span>
463
+ <span class="cline-any cline-no">&nbsp;</span>
464
+ <span class="cline-any cline-no">&nbsp;</span>
465
+ <span class="cline-any cline-no">&nbsp;</span>
466
+ <span class="cline-any cline-neutral">&nbsp;</span>
467
+ <span class="cline-any cline-neutral">&nbsp;</span>
468
+ <span class="cline-any cline-neutral">&nbsp;</span>
469
+ <span class="cline-any cline-no">&nbsp;</span>
470
+ <span class="cline-any cline-no">&nbsp;</span>
471
+ <span class="cline-any cline-neutral">&nbsp;</span>
472
+ <span class="cline-any cline-neutral">&nbsp;</span>
473
+ <span class="cline-any cline-neutral">&nbsp;</span>
474
+ <span class="cline-any cline-neutral">&nbsp;</span>
475
+ <span class="cline-any cline-neutral">&nbsp;</span>
476
+ <span class="cline-any cline-neutral">&nbsp;</span>
477
+ <span class="cline-any cline-neutral">&nbsp;</span>
478
+ <span class="cline-any cline-neutral">&nbsp;</span>
479
+ <span class="cline-any cline-neutral">&nbsp;</span>
480
+ <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-neutral">&nbsp;</span>
482
+ <span class="cline-any cline-neutral">&nbsp;</span>
483
+ <span class="cline-any cline-neutral">&nbsp;</span>
484
+ <span class="cline-any cline-neutral">&nbsp;</span>
485
+ <span class="cline-any cline-neutral">&nbsp;</span>
486
+ <span class="cline-any cline-neutral">&nbsp;</span>
487
+ <span class="cline-any cline-neutral">&nbsp;</span>
488
+ <span class="cline-any cline-neutral">&nbsp;</span>
489
+ <span class="cline-any cline-neutral">&nbsp;</span>
490
+ <span class="cline-any cline-neutral">&nbsp;</span>
491
+ <span class="cline-any cline-neutral">&nbsp;</span>
492
+ <span class="cline-any cline-neutral">&nbsp;</span>
493
+ <span class="cline-any cline-neutral">&nbsp;</span>
494
+ <span class="cline-any cline-neutral">&nbsp;</span>
495
+ <span class="cline-any cline-neutral">&nbsp;</span>
496
+ <span class="cline-any cline-neutral">&nbsp;</span>
497
+ <span class="cline-any cline-neutral">&nbsp;</span>
498
+ <span class="cline-any cline-neutral">&nbsp;</span>
499
+ <span class="cline-any cline-neutral">&nbsp;</span>
500
+ <span class="cline-any cline-neutral">&nbsp;</span>
501
+ <span class="cline-any cline-neutral">&nbsp;</span>
502
+ <span class="cline-any cline-neutral">&nbsp;</span>
503
+ <span class="cline-any cline-neutral">&nbsp;</span>
504
+ <span class="cline-any cline-neutral">&nbsp;</span>
505
+ <span class="cline-any cline-neutral">&nbsp;</span>
506
+ <span class="cline-any cline-neutral">&nbsp;</span>
507
+ <span class="cline-any cline-neutral">&nbsp;</span>
508
+ <span class="cline-any cline-neutral">&nbsp;</span>
509
+ <span class="cline-any cline-neutral">&nbsp;</span>
510
+ <span class="cline-any cline-neutral">&nbsp;</span>
511
+ <span class="cline-any cline-no">&nbsp;</span>
512
+ <span class="cline-any cline-neutral">&nbsp;</span>
513
+ <span class="cline-any cline-neutral">&nbsp;</span>
514
+ <span class="cline-any cline-no">&nbsp;</span>
515
+ <span class="cline-any cline-no">&nbsp;</span>
516
+ <span class="cline-any cline-no">&nbsp;</span>
517
+ <span class="cline-any cline-no">&nbsp;</span>
518
+ <span class="cline-any cline-neutral">&nbsp;</span>
519
+ <span class="cline-any cline-neutral">&nbsp;</span>
520
+ <span class="cline-any cline-neutral">&nbsp;</span>
521
+ <span class="cline-any cline-neutral">&nbsp;</span>
522
+ <span class="cline-any cline-no">&nbsp;</span>
523
+ <span class="cline-any cline-no">&nbsp;</span>
524
+ <span class="cline-any cline-neutral">&nbsp;</span>
525
+ <span class="cline-any cline-neutral">&nbsp;</span>
526
+ <span class="cline-any cline-neutral">&nbsp;</span>
527
+ <span class="cline-any cline-neutral">&nbsp;</span>
528
+ <span class="cline-any cline-neutral">&nbsp;</span>
529
+ <span class="cline-any cline-neutral">&nbsp;</span>
530
+ <span class="cline-any cline-neutral">&nbsp;</span>
531
+ <span class="cline-any cline-neutral">&nbsp;</span>
532
+ <span class="cline-any cline-neutral">&nbsp;</span>
533
+ <span class="cline-any cline-neutral">&nbsp;</span>
534
+ <span class="cline-any cline-neutral">&nbsp;</span>
535
+ <span class="cline-any cline-neutral">&nbsp;</span>
536
+ <span class="cline-any cline-neutral">&nbsp;</span>
537
+ <span class="cline-any cline-neutral">&nbsp;</span>
538
+ <span class="cline-any cline-neutral">&nbsp;</span>
539
+ <span class="cline-any cline-neutral">&nbsp;</span>
540
+ <span class="cline-any cline-neutral">&nbsp;</span>
541
+ <span class="cline-any cline-neutral">&nbsp;</span>
542
+ <span class="cline-any cline-no">&nbsp;</span>
543
+ <span class="cline-any cline-neutral">&nbsp;</span>
544
+ <span class="cline-any cline-neutral">&nbsp;</span>
545
+ <span class="cline-any cline-neutral">&nbsp;</span>
546
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const fs = <span class="cstat-no" title="statement not covered" >require("fs")</span>
547
+ const path = <span class="cstat-no" title="statement not covered" >require("path")</span>
548
+ &nbsp;
549
+ const { OpenAPI3 } = <span class="cstat-no" title="statement not covered" >require("../../openapi3")</span>
550
+ &nbsp;
551
+ const getData = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(f</span>ile, extension) =&gt; {</span>
552
+ <span class="cstat-no" title="statement not covered" > return fs.readFileSync(</span>
553
+ path.join(__dirname, `./data/${file}/${file}.${extension}`),
554
+ "utf8"
555
+ )
556
+ }
557
+ &nbsp;
558
+ <span class="cstat-no" title="statement not covered" >describe("OpenAPI3 Import", <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
559
+ let openapi3
560
+ &nbsp;
561
+ <span class="cstat-no" title="statement not covered" > beforeEach(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
562
+ <span class="cstat-no" title="statement not covered" > openapi3 = new OpenAPI3()</span>
563
+ })
564
+ &nbsp;
565
+ <span class="cstat-no" title="statement not covered" > it("validates unsupported data", <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {</span>
566
+ let data
567
+ let supported
568
+ &nbsp;
569
+ // non json / yaml
570
+ <span class="cstat-no" title="statement not covered" > data = "curl http://example.com"</span>
571
+ <span class="cstat-no" title="statement not covered" > supported = await openapi3.isSupported(data)</span>
572
+ <span class="cstat-no" title="statement not covered" > expect(supported).toBe(false)</span>
573
+ &nbsp;
574
+ // Empty
575
+ <span class="cstat-no" title="statement not covered" > data = ""</span>
576
+ <span class="cstat-no" title="statement not covered" > supported = await openapi3.isSupported(data)</span>
577
+ <span class="cstat-no" title="statement not covered" > expect(supported).toBe(false)</span>
578
+ })
579
+ &nbsp;
580
+ const runTests = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >as</span>ync (filename, test, assertions) =&gt; {</span>
581
+ <span class="cstat-no" title="statement not covered" > for (let extension of ["json", "yaml"]) {</span>
582
+ <span class="cstat-no" title="statement not covered" > await test(filename, extension, assertions)</span>
583
+ }
584
+ }
585
+ &nbsp;
586
+ const testImportInfo = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >as</span>ync (file, extension) =&gt; {</span>
587
+ <span class="cstat-no" title="statement not covered" > await openapi3.isSupported(getData(file, extension))</span>
588
+ const info = <span class="cstat-no" title="statement not covered" >await openapi3.getInfo()</span>
589
+ <span class="cstat-no" title="statement not covered" > expect(info.name).toBe("Swagger Petstore - OpenAPI 3.0")</span>
590
+ }
591
+ &nbsp;
592
+ <span class="cstat-no" title="statement not covered" > it("returns import info", <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {</span>
593
+ <span class="cstat-no" title="statement not covered" > await runTests("petstore", testImportInfo)</span>
594
+ })
595
+ &nbsp;
596
+ <span class="cstat-no" title="statement not covered" > describe("Returns queries", <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
597
+ const indexQueries = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >qu</span>eries =&gt; {</span>
598
+ <span class="cstat-no" title="statement not covered" > return queries.reduce(<span class="fstat-no" title="function not covered" >(a</span>cc, query) =&gt; {</span>
599
+ <span class="cstat-no" title="statement not covered" > acc[query.name] = query</span>
600
+ <span class="cstat-no" title="statement not covered" > return acc</span>
601
+ }, {})
602
+ }
603
+ &nbsp;
604
+ const getQueries = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >as</span>ync (file, extension) =&gt; {</span>
605
+ <span class="cstat-no" title="statement not covered" > await openapi3.isSupported(getData(file, extension))</span>
606
+ const queries = <span class="cstat-no" title="statement not covered" >await openapi3.getQueries()</span>
607
+ <span class="cstat-no" title="statement not covered" > expect(queries.length).toBe(6)</span>
608
+ <span class="cstat-no" title="statement not covered" > return indexQueries(queries)</span>
609
+ }
610
+ &nbsp;
611
+ const testVerb = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >as</span>ync (file, extension, assertions) =&gt; {</span>
612
+ const queries = <span class="cstat-no" title="statement not covered" >await getQueries(file, extension)</span>
613
+ <span class="cstat-no" title="statement not covered" > for (let [operationId, method] of Object.entries(assertions)) {</span>
614
+ <span class="cstat-no" title="statement not covered" > expect(queries[operationId].queryVerb).toBe(method)</span>
615
+ }
616
+ }
617
+ &nbsp;
618
+ <span class="cstat-no" title="statement not covered" > it("populates verb", <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {</span>
619
+ const assertions = <span class="cstat-no" title="statement not covered" >{</span>
620
+ createEntity: "create",
621
+ getEntities: "read",
622
+ getEntity: "read",
623
+ updateEntity: "update",
624
+ patchEntity: "patch",
625
+ deleteEntity: "delete",
626
+ }
627
+ <span class="cstat-no" title="statement not covered" > await runTests("crud", testVerb, assertions)</span>
628
+ })
629
+ &nbsp;
630
+ const testPath = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >as</span>ync (file, extension, assertions) =&gt; {</span>
631
+ const queries = <span class="cstat-no" title="statement not covered" >await getQueries(file, extension)</span>
632
+ <span class="cstat-no" title="statement not covered" > for (let [operationId, urlPath] of Object.entries(assertions)) {</span>
633
+ <span class="cstat-no" title="statement not covered" > expect(queries[operationId].fields.path).toBe(urlPath)</span>
634
+ }
635
+ }
636
+ &nbsp;
637
+ <span class="cstat-no" title="statement not covered" > it("populates path", <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {</span>
638
+ const assertions = <span class="cstat-no" title="statement not covered" >{</span>
639
+ createEntity: "http://example.com/entities",
640
+ getEntities: "http://example.com/entities",
641
+ getEntity: "http://example.com/entities/{{entityId}}",
642
+ updateEntity: "http://example.com/entities/{{entityId}}",
643
+ patchEntity: "http://example.com/entities/{{entityId}}",
644
+ deleteEntity: "http://example.com/entities/{{entityId}}",
645
+ }
646
+ <span class="cstat-no" title="statement not covered" > await runTests("crud", testPath, assertions)</span>
647
+ })
648
+ &nbsp;
649
+ const testHeaders = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >as</span>ync (file, extension, assertions) =&gt; {</span>
650
+ const queries = <span class="cstat-no" title="statement not covered" >await getQueries(file, extension)</span>
651
+ <span class="cstat-no" title="statement not covered" > for (let [operationId, headers] of Object.entries(assertions)) {</span>
652
+ <span class="cstat-no" title="statement not covered" > expect(queries[operationId].fields.headers).toStrictEqual(headers)</span>
653
+ }
654
+ }
655
+ &nbsp;
656
+ const contentTypeHeader = <span class="cstat-no" title="statement not covered" >{</span>
657
+ "Content-Type": "application/json",
658
+ }
659
+ &nbsp;
660
+ <span class="cstat-no" title="statement not covered" > it("populates headers", <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {</span>
661
+ const assertions = <span class="cstat-no" title="statement not covered" >{</span>
662
+ createEntity: {
663
+ ...contentTypeHeader,
664
+ },
665
+ getEntities: {},
666
+ getEntity: {},
667
+ updateEntity: {
668
+ ...contentTypeHeader,
669
+ },
670
+ patchEntity: {
671
+ ...contentTypeHeader,
672
+ },
673
+ deleteEntity: {
674
+ "x-api-key": "{{x-api-key}}",
675
+ },
676
+ }
677
+ &nbsp;
678
+ <span class="cstat-no" title="statement not covered" > await runTests("crud", testHeaders, assertions)</span>
679
+ })
680
+ &nbsp;
681
+ const testQuery = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >as</span>ync (file, extension, assertions) =&gt; {</span>
682
+ const queries = <span class="cstat-no" title="statement not covered" >await getQueries(file, extension)</span>
683
+ <span class="cstat-no" title="statement not covered" > for (let [operationId, queryString] of Object.entries(assertions)) {</span>
684
+ <span class="cstat-no" title="statement not covered" > expect(queries[operationId].fields.queryString).toStrictEqual(</span>
685
+ queryString
686
+ )
687
+ }
688
+ }
689
+ &nbsp;
690
+ <span class="cstat-no" title="statement not covered" > it("populates query", <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {</span>
691
+ const assertions = <span class="cstat-no" title="statement not covered" >{</span>
692
+ createEntity: "",
693
+ getEntities: "page={{page}}&amp;size={{size}}",
694
+ getEntity: "",
695
+ updateEntity: "",
696
+ patchEntity: "",
697
+ deleteEntity: "",
698
+ }
699
+ <span class="cstat-no" title="statement not covered" > await runTests("crud", testQuery, assertions)</span>
700
+ })
701
+ &nbsp;
702
+ const testParameters = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >as</span>ync (file, extension, assertions) =&gt; {</span>
703
+ const queries = <span class="cstat-no" title="statement not covered" >await getQueries(file, extension)</span>
704
+ <span class="cstat-no" title="statement not covered" > for (let [operationId, parameters] of Object.entries(assertions)) {</span>
705
+ <span class="cstat-no" title="statement not covered" > expect(queries[operationId].parameters).toStrictEqual(parameters)</span>
706
+ }
707
+ }
708
+ &nbsp;
709
+ <span class="cstat-no" title="statement not covered" > it("populates parameters", <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {</span>
710
+ const assertions = <span class="cstat-no" title="statement not covered" >{</span>
711
+ createEntity: [],
712
+ getEntities: [
713
+ {
714
+ name: "page",
715
+ default: "",
716
+ },
717
+ {
718
+ name: "size",
719
+ default: "",
720
+ },
721
+ ],
722
+ getEntity: [
723
+ {
724
+ name: "entityId",
725
+ default: "",
726
+ },
727
+ ],
728
+ updateEntity: [
729
+ {
730
+ name: "entityId",
731
+ default: "",
732
+ },
733
+ ],
734
+ patchEntity: [
735
+ {
736
+ name: "entityId",
737
+ default: "",
738
+ },
739
+ ],
740
+ deleteEntity: [
741
+ {
742
+ name: "entityId",
743
+ default: "",
744
+ },
745
+ {
746
+ name: "x-api-key",
747
+ default: "",
748
+ },
749
+ ],
750
+ }
751
+ <span class="cstat-no" title="statement not covered" > await runTests("crud", testParameters, assertions)</span>
752
+ })
753
+ &nbsp;
754
+ const testBody = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >as</span>ync (file, extension, assertions) =&gt; {</span>
755
+ const queries = <span class="cstat-no" title="statement not covered" >await getQueries(file, extension)</span>
756
+ <span class="cstat-no" title="statement not covered" > for (let [operationId, body] of Object.entries(assertions)) {</span>
757
+ <span class="cstat-no" title="statement not covered" > expect(queries[operationId].fields.requestBody).toStrictEqual(</span>
758
+ JSON.stringify(body, null, 2)
759
+ )
760
+ }
761
+ }
762
+ <span class="cstat-no" title="statement not covered" > it("populates body", <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {</span>
763
+ const assertions = <span class="cstat-no" title="statement not covered" >{</span>
764
+ createEntity: {
765
+ name: "name",
766
+ type: "type",
767
+ },
768
+ getEntities: undefined,
769
+ getEntity: undefined,
770
+ updateEntity: {
771
+ id: 1,
772
+ name: "name",
773
+ type: "type",
774
+ },
775
+ patchEntity: {
776
+ id: 1,
777
+ name: "name",
778
+ type: "type",
779
+ },
780
+ deleteEntity: undefined,
781
+ }
782
+ <span class="cstat-no" title="statement not covered" > await runTests("crud", testBody, assertions)</span>
783
+ })
784
+ })
785
+ })
786
+ &nbsp;</pre></td></tr></table></pre>
787
+
788
+ <div class='push'></div><!-- for sticky footer -->
789
+ </div><!-- /wrapper -->
790
+ <div class='footer quiet pad2 space-top1 center small'>
791
+ Code coverage generated by
792
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
793
+ at Mon Feb 06 2023 09:24:58 GMT+0000 (Coordinated Universal Time)
794
+ </div>
795
+ <script src="../../../../../../../../prettify.js"></script>
796
+ <script>
797
+ window.onload = function () {
798
+ prettyPrint();
799
+ };
800
+ </script>
801
+ <script src="../../../../../../../../sorter.js"></script>
802
+ <script src="../../../../../../../../block-navigation.js"></script>
803
+ </body>
804
+ </html>
805
+