@budibase/server 2.3.2-alpha.0 → 2.3.2

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 (514) hide show
  1. package/__mocks__/aws-sdk.ts +1 -1
  2. package/builder/assets/{index.3dd03883.css → index.4488f38d.css} +1 -1
  3. package/builder/assets/{index.38fddbcb.js → index.8d53fdd7.js} +207 -207
  4. package/builder/index.html +2 -2
  5. package/coverage/clover.xml +4382 -8804
  6. package/coverage/coverage-final.json +70 -153
  7. package/coverage/lcov-report/index.html +122 -332
  8. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +1 -1
  9. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +1 -1
  10. package/coverage/lcov-report/src/api/controllers/application.ts.html +114 -114
  11. package/coverage/lcov-report/src/api/controllers/auth.ts.html +1 -1
  12. package/coverage/lcov-report/src/api/controllers/automation.ts.html +25 -25
  13. package/coverage/lcov-report/src/api/controllers/backup.ts.html +1 -1
  14. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +15 -15
  15. package/coverage/lcov-report/src/api/controllers/component.ts.html +1 -1
  16. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +17 -17
  17. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +12 -12
  18. package/coverage/lcov-report/src/api/controllers/deploy/index.html +1 -1
  19. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +70 -70
  20. package/coverage/lcov-report/src/api/controllers/dev.ts.html +10 -10
  21. package/coverage/lcov-report/src/api/controllers/index.html +35 -35
  22. package/coverage/lcov-report/src/api/controllers/integration.ts.html +1 -1
  23. package/coverage/lcov-report/src/api/controllers/layout.ts.html +11 -11
  24. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +1 -1
  25. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +1 -1
  26. package/coverage/lcov-report/src/api/controllers/permission.ts.html +22 -22
  27. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +1 -1
  28. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +1 -1
  29. package/coverage/lcov-report/src/api/controllers/plugin/index.html +1 -1
  30. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +8 -8
  31. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +1 -1
  32. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +1 -1
  33. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +1 -1
  34. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +1 -1
  35. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +1 -1
  36. package/coverage/lcov-report/src/api/controllers/public/index.html +1 -1
  37. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +1 -1
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +1 -1
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +1 -1
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +1 -1
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +1 -1
  43. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +1 -1
  44. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +1 -1
  45. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +1 -1
  46. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +1 -1
  47. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +1 -1
  48. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +1 -1
  49. package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
  50. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +1 -1
  51. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +1 -1
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +1 -1
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +1 -1
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +1 -1
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +1 -1
  58. package/coverage/lcov-report/src/api/controllers/query/index.html +1 -1
  59. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +13 -13
  60. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +1 -1
  61. package/coverage/lcov-report/src/api/controllers/role.ts.html +1 -1
  62. package/coverage/lcov-report/src/api/controllers/routing.ts.html +1 -1
  63. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +1 -1
  64. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +1 -1
  65. package/coverage/lcov-report/src/api/controllers/row/index.html +5 -5
  66. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +16 -16
  67. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +16 -16
  68. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +1 -1
  69. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +16 -16
  70. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +15 -15
  71. package/coverage/lcov-report/src/api/controllers/screen.ts.html +21 -21
  72. package/coverage/lcov-report/src/api/controllers/script.ts.html +1 -1
  73. package/coverage/lcov-report/src/api/controllers/static/index.html +1 -1
  74. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +1 -1
  75. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +43 -43
  76. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +1 -1
  77. package/coverage/lcov-report/src/api/controllers/table/index.html +20 -20
  78. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +18 -18
  79. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +49 -49
  80. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +34 -34
  81. package/coverage/lcov-report/src/api/controllers/templates.ts.html +1 -1
  82. package/coverage/lcov-report/src/api/controllers/user.ts.html +15 -15
  83. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +1 -1
  84. package/coverage/lcov-report/src/api/controllers/view/index.html +1 -1
  85. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +1 -1
  86. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +1 -1
  87. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +1 -1
  88. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +13 -13
  89. package/coverage/lcov-report/src/api/index.html +1 -1
  90. package/coverage/lcov-report/src/api/index.ts.html +5 -5
  91. package/coverage/lcov-report/src/api/routes/analytics.ts.html +1 -1
  92. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +1 -1
  93. package/coverage/lcov-report/src/api/routes/application.ts.html +1 -1
  94. package/coverage/lcov-report/src/api/routes/auth.ts.html +1 -1
  95. package/coverage/lcov-report/src/api/routes/automation.ts.html +1 -1
  96. package/coverage/lcov-report/src/api/routes/backup.ts.html +1 -1
  97. package/coverage/lcov-report/src/api/routes/cloud.ts.html +1 -1
  98. package/coverage/lcov-report/src/api/routes/component.ts.html +1 -1
  99. package/coverage/lcov-report/src/api/routes/datasource.ts.html +1 -1
  100. package/coverage/lcov-report/src/api/routes/deploy.ts.html +1 -1
  101. package/coverage/lcov-report/src/api/routes/dev.ts.html +1 -1
  102. package/coverage/lcov-report/src/api/routes/index.html +1 -1
  103. package/coverage/lcov-report/src/api/routes/index.ts.html +1 -1
  104. package/coverage/lcov-report/src/api/routes/integration.ts.html +1 -1
  105. package/coverage/lcov-report/src/api/routes/layout.ts.html +1 -1
  106. package/coverage/lcov-report/src/api/routes/metadata.ts.html +1 -1
  107. package/coverage/lcov-report/src/api/routes/migrations.ts.html +1 -1
  108. package/coverage/lcov-report/src/api/routes/permission.ts.html +1 -1
  109. package/coverage/lcov-report/src/api/routes/plugin.ts.html +1 -1
  110. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +5 -2
  111. package/coverage/lcov-report/src/api/routes/public/index.html +1 -1
  112. package/coverage/lcov-report/src/api/routes/public/index.ts.html +1 -1
  113. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +1 -1
  114. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +1 -1
  115. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +1 -1
  116. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +1 -1
  117. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +1 -1
  118. package/coverage/lcov-report/src/api/routes/public/tests/index.html +8 -38
  119. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +1 -1
  120. package/coverage/lcov-report/src/api/routes/public/users.ts.html +1 -1
  121. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +1 -1
  122. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  123. package/coverage/lcov-report/src/api/routes/query.ts.html +1 -1
  124. package/coverage/lcov-report/src/api/routes/role.ts.html +1 -1
  125. package/coverage/lcov-report/src/api/routes/routing.ts.html +1 -1
  126. package/coverage/lcov-report/src/api/routes/row.ts.html +1 -1
  127. package/coverage/lcov-report/src/api/routes/screen.ts.html +1 -1
  128. package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
  129. package/coverage/lcov-report/src/api/routes/static.ts.html +1 -1
  130. package/coverage/lcov-report/src/api/routes/table.ts.html +1 -1
  131. package/coverage/lcov-report/src/api/routes/templates.ts.html +1 -1
  132. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +41 -110
  133. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +19 -19
  134. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +5 -11
  135. package/coverage/lcov-report/src/api/routes/user.ts.html +1 -1
  136. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  137. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +1 -1
  138. package/coverage/lcov-report/src/api/routes/view.ts.html +1 -1
  139. package/coverage/lcov-report/src/api/routes/webhook.ts.html +1 -1
  140. package/coverage/lcov-report/src/app.ts.html +3 -6
  141. package/coverage/lcov-report/src/automations/actions.ts.html +1 -1
  142. package/coverage/lcov-report/src/automations/automationUtils.ts.html +1 -1
  143. package/coverage/lcov-report/src/automations/bullboard.ts.html +2 -2
  144. package/coverage/lcov-report/src/automations/index.html +27 -27
  145. package/coverage/lcov-report/src/automations/index.ts.html +5 -5
  146. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  147. package/coverage/lcov-report/src/automations/logging/index.ts.html +7 -7
  148. package/coverage/lcov-report/src/automations/steps/bash.ts.html +1 -1
  149. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +1 -1
  150. package/coverage/lcov-report/src/automations/steps/delay.ts.html +1 -1
  151. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +1 -1
  152. package/coverage/lcov-report/src/automations/steps/discord.ts.html +1 -1
  153. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +1 -1
  154. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +1 -1
  155. package/coverage/lcov-report/src/automations/steps/filter.ts.html +1 -1
  156. package/coverage/lcov-report/src/automations/steps/index.html +1 -1
  157. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +1 -1
  158. package/coverage/lcov-report/src/automations/steps/loop.ts.html +1 -1
  159. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +1 -1
  160. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +1 -1
  161. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +1 -1
  162. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +1 -1
  163. package/coverage/lcov-report/src/automations/steps/slack.ts.html +1 -1
  164. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +1 -1
  165. package/coverage/lcov-report/src/automations/steps/utils.ts.html +1 -1
  166. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +1 -1
  167. package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
  168. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +1 -1
  169. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +1 -1
  170. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +1 -1
  171. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  172. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +1 -1
  173. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +1 -1
  174. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +1 -1
  175. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +1 -1
  176. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +1 -1
  177. package/coverage/lcov-report/src/automations/triggers.ts.html +24 -24
  178. package/coverage/lcov-report/src/automations/utils.ts.html +38 -38
  179. package/coverage/lcov-report/src/constants/index.html +1 -1
  180. package/coverage/lcov-report/src/constants/index.ts.html +2 -2
  181. package/coverage/lcov-report/src/constants/layouts.ts.html +1 -1
  182. package/coverage/lcov-report/src/constants/screens.ts.html +3 -3
  183. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +1 -1
  184. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +1 -1
  185. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +1 -1
  186. package/coverage/lcov-report/src/db/defaultData/index.html +1 -1
  187. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +1 -1
  188. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +1 -1
  189. package/coverage/lcov-report/src/db/dynamoClient.ts.html +1 -1
  190. package/coverage/lcov-report/src/db/inMemoryView.ts.html +1 -1
  191. package/coverage/lcov-report/src/db/index.html +16 -16
  192. package/coverage/lcov-report/src/db/index.ts.html +13 -13
  193. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +12 -12
  194. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +1 -1
  195. package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
  196. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +15 -15
  197. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +6 -6
  198. package/coverage/lcov-report/src/db/newid.ts.html +3 -3
  199. package/coverage/lcov-report/src/db/utils.ts.html +33 -33
  200. package/coverage/lcov-report/src/definitions/automations.ts.html +1 -1
  201. package/coverage/lcov-report/src/definitions/index.html +1 -1
  202. package/coverage/lcov-report/src/environment.ts.html +19 -19
  203. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +1 -1
  204. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +1 -1
  205. package/coverage/lcov-report/src/events/index.html +1 -1
  206. package/coverage/lcov-report/src/events/index.ts.html +1 -1
  207. package/coverage/lcov-report/src/events/utils.ts.html +1 -1
  208. package/coverage/lcov-report/src/index.html +16 -16
  209. package/coverage/lcov-report/src/index.ts.html +1 -1
  210. package/coverage/lcov-report/src/integrations/airtable.ts.html +1 -1
  211. package/coverage/lcov-report/src/integrations/arangodb.ts.html +1 -1
  212. package/coverage/lcov-report/src/integrations/base/index.html +1 -1
  213. package/coverage/lcov-report/src/integrations/base/query.ts.html +1 -1
  214. package/coverage/lcov-report/src/integrations/base/sql.ts.html +1 -1
  215. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +1 -1
  216. package/coverage/lcov-report/src/integrations/base/utils.ts.html +1 -1
  217. package/coverage/lcov-report/src/integrations/couchdb.ts.html +1 -1
  218. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +1 -1
  219. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +1 -1
  220. package/coverage/lcov-report/src/integrations/firebase.ts.html +1 -1
  221. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +1 -1
  222. package/coverage/lcov-report/src/integrations/index.html +1 -1
  223. package/coverage/lcov-report/src/integrations/index.ts.html +10 -10
  224. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +1 -1
  225. package/coverage/lcov-report/src/integrations/mongodb.ts.html +1 -1
  226. package/coverage/lcov-report/src/integrations/mysql.ts.html +1 -1
  227. package/coverage/lcov-report/src/integrations/oracle.ts.html +1 -1
  228. package/coverage/lcov-report/src/integrations/postgres.ts.html +1 -1
  229. package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
  230. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +1 -1
  231. package/coverage/lcov-report/src/integrations/redis.ts.html +1 -1
  232. package/coverage/lcov-report/src/integrations/rest.ts.html +1 -1
  233. package/coverage/lcov-report/src/integrations/s3.ts.html +1 -1
  234. package/coverage/lcov-report/src/integrations/snowflake.ts.html +1 -1
  235. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  236. package/coverage/lcov-report/src/integrations/tests/index.html +5 -230
  237. package/coverage/lcov-report/src/integrations/utils.ts.html +3 -3
  238. package/coverage/lcov-report/src/middleware/appInfo.ts.html +1 -1
  239. package/coverage/lcov-report/src/middleware/authorized.ts.html +19 -19
  240. package/coverage/lcov-report/src/middleware/builder.ts.html +13 -13
  241. package/coverage/lcov-report/src/middleware/currentapp.ts.html +47 -47
  242. package/coverage/lcov-report/src/middleware/index.html +15 -15
  243. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  244. package/coverage/lcov-report/src/middleware/publicApi.ts.html +1 -1
  245. package/coverage/lcov-report/src/middleware/resourceId.ts.html +1 -1
  246. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  247. package/coverage/lcov-report/src/middleware/utils.ts.html +3 -3
  248. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +1 -1
  249. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +1 -1
  250. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +1 -1
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  252. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +1 -1
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +1 -1
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +1 -1
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +1 -1
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +1 -1
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +1 -1
  258. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +1 -1
  259. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +1 -1
  261. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +1 -1
  262. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +1 -1
  263. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  264. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +1 -1
  265. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +1 -1
  266. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  267. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +1 -1
  268. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +1 -1
  269. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  270. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +1 -1
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +1 -1
  272. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +1 -1
  273. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +1 -1
  274. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +1 -1
  275. package/coverage/lcov-report/src/migrations/index.html +1 -1
  276. package/coverage/lcov-report/src/migrations/index.ts.html +1 -1
  277. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  278. package/coverage/lcov-report/src/migrations/tests/index.html +8 -23
  279. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  280. package/coverage/lcov-report/src/sdk/app/applications/index.html +1 -1
  281. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +1 -1
  282. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +18 -18
  283. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +7 -7
  284. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  285. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +1 -1
  286. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +8 -8
  287. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +1 -1
  288. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +8 -26
  289. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +1 -1
  290. package/coverage/lcov-report/src/sdk/app/backups/index.html +10 -10
  291. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +1 -1
  292. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +1 -1
  293. package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +15 -15
  294. package/coverage/lcov-report/src/sdk/app/datasources/index.html +1 -1
  295. package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +1 -1
  296. package/coverage/lcov-report/src/sdk/app/queries/index.html +1 -1
  297. package/coverage/lcov-report/src/sdk/app/queries/index.ts.html +1 -1
  298. package/coverage/lcov-report/src/sdk/app/queries/queries.ts.html +1 -1
  299. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +1 -1
  300. package/coverage/lcov-report/src/sdk/app/rows/index.html +1 -1
  301. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +1 -1
  302. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +1 -1
  303. package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
  304. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +5 -5
  305. package/coverage/lcov-report/src/sdk/index.html +1 -1
  306. package/coverage/lcov-report/src/sdk/index.ts.html +2 -2
  307. package/coverage/lcov-report/src/sdk/users/index.html +1 -1
  308. package/coverage/lcov-report/src/sdk/users/index.ts.html +1 -1
  309. package/coverage/lcov-report/src/sdk/users/utils.ts.html +24 -24
  310. package/coverage/lcov-report/src/sdk/utils/index.html +1 -1
  311. package/coverage/lcov-report/src/sdk/utils/index.ts.html +1 -1
  312. package/coverage/lcov-report/src/startup.ts.html +4 -4
  313. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +140 -308
  314. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +6 -6
  315. package/coverage/lcov-report/src/tests/utilities/index.html +18 -18
  316. package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
  317. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +18 -18
  318. package/coverage/lcov-report/src/threads/automation.ts.html +1 -1
  319. package/coverage/lcov-report/src/threads/index.html +1 -1
  320. package/coverage/lcov-report/src/threads/index.ts.html +1 -1
  321. package/coverage/lcov-report/src/threads/query.ts.html +1 -1
  322. package/coverage/lcov-report/src/threads/utils.ts.html +1 -1
  323. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +2 -2
  324. package/coverage/lcov-report/src/utilities/centralPath.ts.html +1 -1
  325. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +3 -3
  326. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +1 -1
  327. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +1 -1
  328. package/coverage/lcov-report/src/utilities/fileSystem/index.html +1 -1
  329. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1 -1
  330. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +1 -1
  331. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  332. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +1 -1
  333. package/coverage/lcov-report/src/utilities/global.ts.html +36 -36
  334. package/coverage/lcov-report/src/utilities/index.html +19 -34
  335. package/coverage/lcov-report/src/utilities/index.ts.html +19 -19
  336. package/coverage/lcov-report/src/utilities/redis.ts.html +1 -1
  337. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  338. package/coverage/lcov-report/src/utilities/routing/index.ts.html +1 -1
  339. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +1 -1
  340. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +41 -41
  341. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +2 -2
  342. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +12 -12
  343. package/coverage/lcov-report/src/utilities/schema.ts.html +1 -1
  344. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +1 -1
  345. package/coverage/lcov-report/src/utilities/security.ts.html +19 -19
  346. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  347. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +32 -32
  348. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  349. package/coverage/lcov-report/src/utilities/users.ts.html +1 -1
  350. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +15 -15
  351. package/coverage/lcov-report/src/watch.ts.html +1 -1
  352. package/coverage/lcov-report/src/websocket.ts.html +1 -1
  353. package/coverage/lcov.info +13055 -20268
  354. package/dist/app.js +1 -1
  355. package/dist/package.json +0 -2
  356. package/dist/sdk/app/backups/exports.js +2 -8
  357. package/dist/tsconfig.build.tsbuildinfo +1 -1
  358. package/jest.config.ts +11 -28
  359. package/package.json +6 -8
  360. package/src/api/controllers/query/import/tests/index.spec.js +1 -1
  361. package/src/api/routes/public/applications.ts +1 -0
  362. package/src/api/routes/tests/__snapshots__/datasource.spec.ts.snap +1 -1
  363. package/src/api/routes/tests/analytics.spec.js +1 -4
  364. package/src/api/routes/tests/apikeys.spec.js +1 -1
  365. package/src/api/routes/tests/application.spec.ts +6 -20
  366. package/src/api/routes/tests/auth.spec.js +2 -2
  367. package/src/api/routes/tests/automation.spec.js +2 -6
  368. package/src/api/routes/tests/backup.spec.ts +13 -4
  369. package/src/api/routes/tests/{cloud.seq.spec.ts → cloud.spec.ts} +14 -10
  370. package/src/api/routes/tests/component.spec.js +1 -1
  371. package/src/api/routes/tests/datasource.spec.ts +3 -20
  372. package/src/api/routes/tests/dev.spec.js +1 -1
  373. package/src/api/routes/tests/integration.spec.js +1 -1
  374. package/src/api/routes/tests/layout.spec.js +1 -1
  375. package/src/api/routes/tests/metadata.spec.js +1 -1
  376. package/src/api/routes/tests/misc.spec.js +1 -1
  377. package/src/api/routes/tests/permissions.spec.js +1 -4
  378. package/src/api/routes/tests/{query.seq.spec.js → query.spec.js} +1 -21
  379. package/src/api/routes/tests/role.spec.js +1 -6
  380. package/src/api/routes/tests/routing.spec.js +1 -1
  381. package/src/api/routes/tests/row.spec.js +3 -11
  382. package/src/api/routes/tests/screen.spec.js +1 -1
  383. package/src/api/routes/tests/static.spec.js +1 -2
  384. package/src/api/routes/tests/table.spec.js +1 -1
  385. package/src/api/routes/tests/templates.spec.js +1 -1
  386. package/src/api/routes/tests/user.spec.js +0 -3
  387. package/src/api/routes/tests/utilities/TestFunctions.ts +2 -25
  388. package/src/api/routes/tests/utilities/index.ts +3 -5
  389. package/src/api/routes/tests/view.spec.js +1 -4
  390. package/src/api/routes/tests/webhook.spec.js +2 -11
  391. package/src/app.ts +1 -2
  392. package/src/automations/tests/automation.spec.js +4 -4
  393. package/src/automations/tests/bash.spec.js +1 -1
  394. package/src/automations/tests/discord.spec.js +1 -1
  395. package/src/automations/tests/executeQuery.spec.js +3 -2
  396. package/src/automations/tests/executeScript.spec.js +1 -1
  397. package/src/automations/tests/outgoingWebhook.spec.js +1 -1
  398. package/src/automations/tests/sendSmtpEmail.spec.js +1 -1
  399. package/src/automations/tests/serverLog.spec.js +1 -1
  400. package/src/automations/tests/updateRow.spec.js +1 -1
  401. package/src/automations/tests/zapier.spec.js +1 -1
  402. package/src/db/tests/linkController.spec.js +1 -4
  403. package/src/db/tests/linkTests.spec.js +1 -1
  404. package/src/migrations/functions/tests/appUrls.spec.js +1 -1
  405. package/src/migrations/functions/tests/syncQuotas.spec.js +1 -1
  406. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +1 -1
  407. package/src/migrations/tests/index.spec.ts +2 -3
  408. package/src/sdk/app/backups/exports.ts +2 -8
  409. package/src/tests/jestEnv.ts +6 -2
  410. package/src/tests/jestSetup.ts +6 -5
  411. package/src/tests/utilities/TestConfiguration.ts +34 -90
  412. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/curl.spec.js.html +0 -391
  413. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/index.html +0 -116
  414. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/index.html +0 -116
  415. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js.html +0 -796
  416. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/index.html +0 -116
  417. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/openapi3.spec.js.html +0 -805
  418. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.html +0 -116
  419. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.spec.js.html +0 -568
  420. package/coverage/lcov-report/src/api/controllers/view/tests/index.html +0 -116
  421. package/coverage/lcov-report/src/api/controllers/view/tests/viewBuilder.spec.js.html +0 -277
  422. package/coverage/lcov-report/src/api/routes/public/tests/compare.spec.js.html +0 -583
  423. package/coverage/lcov-report/src/api/routes/public/tests/users.spec.js.html +0 -199
  424. package/coverage/lcov-report/src/api/routes/tests/analytics.spec.js.html +0 -271
  425. package/coverage/lcov-report/src/api/routes/tests/apikeys.spec.js.html +0 -259
  426. package/coverage/lcov-report/src/api/routes/tests/application.spec.ts.html +0 -1066
  427. package/coverage/lcov-report/src/api/routes/tests/auth.spec.js.html +0 -154
  428. package/coverage/lcov-report/src/api/routes/tests/automation.spec.js.html +0 -1123
  429. package/coverage/lcov-report/src/api/routes/tests/backup.spec.ts.html +0 -223
  430. package/coverage/lcov-report/src/api/routes/tests/cloud.seq.spec.ts.html +0 -268
  431. package/coverage/lcov-report/src/api/routes/tests/component.spec.js.html +0 -178
  432. package/coverage/lcov-report/src/api/routes/tests/datasource.spec.ts.html +0 -799
  433. package/coverage/lcov-report/src/api/routes/tests/dev.spec.js.html +0 -202
  434. package/coverage/lcov-report/src/api/routes/tests/index.html +0 -521
  435. package/coverage/lcov-report/src/api/routes/tests/integration.spec.js.html +0 -238
  436. package/coverage/lcov-report/src/api/routes/tests/internalSearch.spec.js.html +0 -670
  437. package/coverage/lcov-report/src/api/routes/tests/layout.spec.js.html +0 -259
  438. package/coverage/lcov-report/src/api/routes/tests/metadata.spec.js.html +0 -280
  439. package/coverage/lcov-report/src/api/routes/tests/misc.spec.js.html +0 -358
  440. package/coverage/lcov-report/src/api/routes/tests/permissions.spec.js.html +0 -484
  441. package/coverage/lcov-report/src/api/routes/tests/plugin.spec.ts.html +0 -622
  442. package/coverage/lcov-report/src/api/routes/tests/query.seq.spec.js.html +0 -1696
  443. package/coverage/lcov-report/src/api/routes/tests/role.spec.js.html +0 -478
  444. package/coverage/lcov-report/src/api/routes/tests/routing.spec.js.html +0 -430
  445. package/coverage/lcov-report/src/api/routes/tests/row.spec.js.html +0 -1804
  446. package/coverage/lcov-report/src/api/routes/tests/screen.spec.js.html +0 -391
  447. package/coverage/lcov-report/src/api/routes/tests/static.spec.js.html +0 -541
  448. package/coverage/lcov-report/src/api/routes/tests/table.spec.js.html +0 -991
  449. package/coverage/lcov-report/src/api/routes/tests/templates.spec.js.html +0 -154
  450. package/coverage/lcov-report/src/api/routes/tests/user.spec.js.html +0 -688
  451. package/coverage/lcov-report/src/api/routes/tests/view.spec.js.html +0 -1342
  452. package/coverage/lcov-report/src/api/routes/tests/webhook.spec.js.html +0 -484
  453. package/coverage/lcov-report/src/automations/tests/automation.spec.js.html +0 -337
  454. package/coverage/lcov-report/src/automations/tests/bash.spec.js.html +0 -187
  455. package/coverage/lcov-report/src/automations/tests/createRow.spec.ts.html +0 -223
  456. package/coverage/lcov-report/src/automations/tests/delay.spec.js.html +0 -133
  457. package/coverage/lcov-report/src/automations/tests/deleteRow.spec.ts.html +0 -250
  458. package/coverage/lcov-report/src/automations/tests/discord.spec.js.html +0 -166
  459. package/coverage/lcov-report/src/automations/tests/executeQuery.spec.js.html +0 -229
  460. package/coverage/lcov-report/src/automations/tests/executeScript.spec.js.html +0 -229
  461. package/coverage/lcov-report/src/automations/tests/filter.spec.js.html +0 -232
  462. package/coverage/lcov-report/src/automations/tests/index.html +0 -341
  463. package/coverage/lcov-report/src/automations/tests/loop.spec.ts.html +0 -220
  464. package/coverage/lcov-report/src/automations/tests/outgoingWebhook.spec.js.html +0 -202
  465. package/coverage/lcov-report/src/automations/tests/queryRows.spec.js.html +0 -436
  466. package/coverage/lcov-report/src/automations/tests/sendSmtpEmail.spec.js.html +0 -298
  467. package/coverage/lcov-report/src/automations/tests/serverLog.spec.js.html +0 -151
  468. package/coverage/lcov-report/src/automations/tests/updateRow.spec.js.html +0 -217
  469. package/coverage/lcov-report/src/automations/tests/zapier.spec.js.html +0 -166
  470. package/coverage/lcov-report/src/automations/unitTests/automationUtils.spec.ts.html +0 -280
  471. package/coverage/lcov-report/src/automations/unitTests/index.html +0 -116
  472. package/coverage/lcov-report/src/db/tests/index.html +0 -131
  473. package/coverage/lcov-report/src/db/tests/linkController.spec.js.html +0 -793
  474. package/coverage/lcov-report/src/db/tests/linkTests.spec.js.html +0 -277
  475. package/coverage/lcov-report/src/integrations/tests/airtable.spec.ts.html +0 -310
  476. package/coverage/lcov-report/src/integrations/tests/arangodb.spec.ts.html +0 -199
  477. package/coverage/lcov-report/src/integrations/tests/couchdb.spec.ts.html +0 -349
  478. package/coverage/lcov-report/src/integrations/tests/dynamodb.spec.ts.html +0 -550
  479. package/coverage/lcov-report/src/integrations/tests/elasticsearch.spec.ts.html +0 -331
  480. package/coverage/lcov-report/src/integrations/tests/firebase.spec.ts.html +0 -376
  481. package/coverage/lcov-report/src/integrations/tests/microsoftSqlServer.spec.ts.html +0 -253
  482. package/coverage/lcov-report/src/integrations/tests/mongo.spec.ts.html +0 -1087
  483. package/coverage/lcov-report/src/integrations/tests/mysql.spec.ts.html +0 -484
  484. package/coverage/lcov-report/src/integrations/tests/oracle.spec.ts.html +0 -373
  485. package/coverage/lcov-report/src/integrations/tests/postgres.spec.ts.html +0 -328
  486. package/coverage/lcov-report/src/integrations/tests/redis.spec.ts.html +0 -337
  487. package/coverage/lcov-report/src/integrations/tests/rest.spec.ts.html +0 -1870
  488. package/coverage/lcov-report/src/integrations/tests/s3.spec.ts.html +0 -421
  489. package/coverage/lcov-report/src/integrations/tests/sql.spec.ts.html +0 -1753
  490. package/coverage/lcov-report/src/middleware/tests/authorized.spec.js.html +0 -574
  491. package/coverage/lcov-report/src/middleware/tests/currentapp.spec.js.html +0 -814
  492. package/coverage/lcov-report/src/middleware/tests/index.html +0 -161
  493. package/coverage/lcov-report/src/middleware/tests/resourceId.spec.js.html +0 -397
  494. package/coverage/lcov-report/src/middleware/tests/selfhost.spec.js.html +0 -214
  495. package/coverage/lcov-report/src/migrations/functions/tests/appUrls.spec.js.html +0 -163
  496. package/coverage/lcov-report/src/migrations/functions/tests/index.html +0 -161
  497. package/coverage/lcov-report/src/migrations/functions/tests/syncQuotas.spec.js.html +0 -163
  498. package/coverage/lcov-report/src/migrations/functions/tests/tableSettings.spec.ts.html +0 -517
  499. package/coverage/lcov-report/src/migrations/functions/tests/userEmailViewCasing.spec.js.html +0 -190
  500. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/index.html +0 -131
  501. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts.html +0 -190
  502. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts.html +0 -244
  503. package/coverage/lcov-report/src/migrations/tests/index.spec.ts.html +0 -535
  504. package/coverage/lcov-report/src/sdk/tests/attachments.spec.ts.html +0 -313
  505. package/coverage/lcov-report/src/sdk/tests/index.html +0 -116
  506. package/coverage/lcov-report/src/utilities/retry.ts.html +0 -139
  507. package/coverage/lcov-report/src/utilities/rowProcessor/tests/index.html +0 -116
  508. package/coverage/lcov-report/src/utilities/rowProcessor/tests/utils.spec.ts.html +0 -256
  509. package/dist/utilities/retry.js +0 -30
  510. package/jest-testcontainers-config.js +0 -8
  511. package/scripts/load/create-many-apps.js +0 -24
  512. package/scripts/load/create-many-rows.js +0 -30
  513. package/scripts/load/utils.js +0 -66
  514. package/src/utilities/retry.ts +0 -18
@@ -1,1753 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/integrations/tests/sql.spec.ts</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/integrations/tests</a> sql.spec.ts</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/106</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>0/22</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/37</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/106</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>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a>
337
- <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a>
340
- <a name='L275'></a><a href='#L275'>275</a>
341
- <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a>
343
- <a name='L278'></a><a href='#L278'>278</a>
344
- <a name='L279'></a><a href='#L279'>279</a>
345
- <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a>
347
- <a name='L282'></a><a href='#L282'>282</a>
348
- <a name='L283'></a><a href='#L283'>283</a>
349
- <a name='L284'></a><a href='#L284'>284</a>
350
- <a name='L285'></a><a href='#L285'>285</a>
351
- <a name='L286'></a><a href='#L286'>286</a>
352
- <a name='L287'></a><a href='#L287'>287</a>
353
- <a name='L288'></a><a href='#L288'>288</a>
354
- <a name='L289'></a><a href='#L289'>289</a>
355
- <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a>
361
- <a name='L296'></a><a href='#L296'>296</a>
362
- <a name='L297'></a><a href='#L297'>297</a>
363
- <a name='L298'></a><a href='#L298'>298</a>
364
- <a name='L299'></a><a href='#L299'>299</a>
365
- <a name='L300'></a><a href='#L300'>300</a>
366
- <a name='L301'></a><a href='#L301'>301</a>
367
- <a name='L302'></a><a href='#L302'>302</a>
368
- <a name='L303'></a><a href='#L303'>303</a>
369
- <a name='L304'></a><a href='#L304'>304</a>
370
- <a name='L305'></a><a href='#L305'>305</a>
371
- <a name='L306'></a><a href='#L306'>306</a>
372
- <a name='L307'></a><a href='#L307'>307</a>
373
- <a name='L308'></a><a href='#L308'>308</a>
374
- <a name='L309'></a><a href='#L309'>309</a>
375
- <a name='L310'></a><a href='#L310'>310</a>
376
- <a name='L311'></a><a href='#L311'>311</a>
377
- <a name='L312'></a><a href='#L312'>312</a>
378
- <a name='L313'></a><a href='#L313'>313</a>
379
- <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a>
381
- <a name='L316'></a><a href='#L316'>316</a>
382
- <a name='L317'></a><a href='#L317'>317</a>
383
- <a name='L318'></a><a href='#L318'>318</a>
384
- <a name='L319'></a><a href='#L319'>319</a>
385
- <a name='L320'></a><a href='#L320'>320</a>
386
- <a name='L321'></a><a href='#L321'>321</a>
387
- <a name='L322'></a><a href='#L322'>322</a>
388
- <a name='L323'></a><a href='#L323'>323</a>
389
- <a name='L324'></a><a href='#L324'>324</a>
390
- <a name='L325'></a><a href='#L325'>325</a>
391
- <a name='L326'></a><a href='#L326'>326</a>
392
- <a name='L327'></a><a href='#L327'>327</a>
393
- <a name='L328'></a><a href='#L328'>328</a>
394
- <a name='L329'></a><a href='#L329'>329</a>
395
- <a name='L330'></a><a href='#L330'>330</a>
396
- <a name='L331'></a><a href='#L331'>331</a>
397
- <a name='L332'></a><a href='#L332'>332</a>
398
- <a name='L333'></a><a href='#L333'>333</a>
399
- <a name='L334'></a><a href='#L334'>334</a>
400
- <a name='L335'></a><a href='#L335'>335</a>
401
- <a name='L336'></a><a href='#L336'>336</a>
402
- <a name='L337'></a><a href='#L337'>337</a>
403
- <a name='L338'></a><a href='#L338'>338</a>
404
- <a name='L339'></a><a href='#L339'>339</a>
405
- <a name='L340'></a><a href='#L340'>340</a>
406
- <a name='L341'></a><a href='#L341'>341</a>
407
- <a name='L342'></a><a href='#L342'>342</a>
408
- <a name='L343'></a><a href='#L343'>343</a>
409
- <a name='L344'></a><a href='#L344'>344</a>
410
- <a name='L345'></a><a href='#L345'>345</a>
411
- <a name='L346'></a><a href='#L346'>346</a>
412
- <a name='L347'></a><a href='#L347'>347</a>
413
- <a name='L348'></a><a href='#L348'>348</a>
414
- <a name='L349'></a><a href='#L349'>349</a>
415
- <a name='L350'></a><a href='#L350'>350</a>
416
- <a name='L351'></a><a href='#L351'>351</a>
417
- <a name='L352'></a><a href='#L352'>352</a>
418
- <a name='L353'></a><a href='#L353'>353</a>
419
- <a name='L354'></a><a href='#L354'>354</a>
420
- <a name='L355'></a><a href='#L355'>355</a>
421
- <a name='L356'></a><a href='#L356'>356</a>
422
- <a name='L357'></a><a href='#L357'>357</a>
423
- <a name='L358'></a><a href='#L358'>358</a>
424
- <a name='L359'></a><a href='#L359'>359</a>
425
- <a name='L360'></a><a href='#L360'>360</a>
426
- <a name='L361'></a><a href='#L361'>361</a>
427
- <a name='L362'></a><a href='#L362'>362</a>
428
- <a name='L363'></a><a href='#L363'>363</a>
429
- <a name='L364'></a><a href='#L364'>364</a>
430
- <a name='L365'></a><a href='#L365'>365</a>
431
- <a name='L366'></a><a href='#L366'>366</a>
432
- <a name='L367'></a><a href='#L367'>367</a>
433
- <a name='L368'></a><a href='#L368'>368</a>
434
- <a name='L369'></a><a href='#L369'>369</a>
435
- <a name='L370'></a><a href='#L370'>370</a>
436
- <a name='L371'></a><a href='#L371'>371</a>
437
- <a name='L372'></a><a href='#L372'>372</a>
438
- <a name='L373'></a><a href='#L373'>373</a>
439
- <a name='L374'></a><a href='#L374'>374</a>
440
- <a name='L375'></a><a href='#L375'>375</a>
441
- <a name='L376'></a><a href='#L376'>376</a>
442
- <a name='L377'></a><a href='#L377'>377</a>
443
- <a name='L378'></a><a href='#L378'>378</a>
444
- <a name='L379'></a><a href='#L379'>379</a>
445
- <a name='L380'></a><a href='#L380'>380</a>
446
- <a name='L381'></a><a href='#L381'>381</a>
447
- <a name='L382'></a><a href='#L382'>382</a>
448
- <a name='L383'></a><a href='#L383'>383</a>
449
- <a name='L384'></a><a href='#L384'>384</a>
450
- <a name='L385'></a><a href='#L385'>385</a>
451
- <a name='L386'></a><a href='#L386'>386</a>
452
- <a name='L387'></a><a href='#L387'>387</a>
453
- <a name='L388'></a><a href='#L388'>388</a>
454
- <a name='L389'></a><a href='#L389'>389</a>
455
- <a name='L390'></a><a href='#L390'>390</a>
456
- <a name='L391'></a><a href='#L391'>391</a>
457
- <a name='L392'></a><a href='#L392'>392</a>
458
- <a name='L393'></a><a href='#L393'>393</a>
459
- <a name='L394'></a><a href='#L394'>394</a>
460
- <a name='L395'></a><a href='#L395'>395</a>
461
- <a name='L396'></a><a href='#L396'>396</a>
462
- <a name='L397'></a><a href='#L397'>397</a>
463
- <a name='L398'></a><a href='#L398'>398</a>
464
- <a name='L399'></a><a href='#L399'>399</a>
465
- <a name='L400'></a><a href='#L400'>400</a>
466
- <a name='L401'></a><a href='#L401'>401</a>
467
- <a name='L402'></a><a href='#L402'>402</a>
468
- <a name='L403'></a><a href='#L403'>403</a>
469
- <a name='L404'></a><a href='#L404'>404</a>
470
- <a name='L405'></a><a href='#L405'>405</a>
471
- <a name='L406'></a><a href='#L406'>406</a>
472
- <a name='L407'></a><a href='#L407'>407</a>
473
- <a name='L408'></a><a href='#L408'>408</a>
474
- <a name='L409'></a><a href='#L409'>409</a>
475
- <a name='L410'></a><a href='#L410'>410</a>
476
- <a name='L411'></a><a href='#L411'>411</a>
477
- <a name='L412'></a><a href='#L412'>412</a>
478
- <a name='L413'></a><a href='#L413'>413</a>
479
- <a name='L414'></a><a href='#L414'>414</a>
480
- <a name='L415'></a><a href='#L415'>415</a>
481
- <a name='L416'></a><a href='#L416'>416</a>
482
- <a name='L417'></a><a href='#L417'>417</a>
483
- <a name='L418'></a><a href='#L418'>418</a>
484
- <a name='L419'></a><a href='#L419'>419</a>
485
- <a name='L420'></a><a href='#L420'>420</a>
486
- <a name='L421'></a><a href='#L421'>421</a>
487
- <a name='L422'></a><a href='#L422'>422</a>
488
- <a name='L423'></a><a href='#L423'>423</a>
489
- <a name='L424'></a><a href='#L424'>424</a>
490
- <a name='L425'></a><a href='#L425'>425</a>
491
- <a name='L426'></a><a href='#L426'>426</a>
492
- <a name='L427'></a><a href='#L427'>427</a>
493
- <a name='L428'></a><a href='#L428'>428</a>
494
- <a name='L429'></a><a href='#L429'>429</a>
495
- <a name='L430'></a><a href='#L430'>430</a>
496
- <a name='L431'></a><a href='#L431'>431</a>
497
- <a name='L432'></a><a href='#L432'>432</a>
498
- <a name='L433'></a><a href='#L433'>433</a>
499
- <a name='L434'></a><a href='#L434'>434</a>
500
- <a name='L435'></a><a href='#L435'>435</a>
501
- <a name='L436'></a><a href='#L436'>436</a>
502
- <a name='L437'></a><a href='#L437'>437</a>
503
- <a name='L438'></a><a href='#L438'>438</a>
504
- <a name='L439'></a><a href='#L439'>439</a>
505
- <a name='L440'></a><a href='#L440'>440</a>
506
- <a name='L441'></a><a href='#L441'>441</a>
507
- <a name='L442'></a><a href='#L442'>442</a>
508
- <a name='L443'></a><a href='#L443'>443</a>
509
- <a name='L444'></a><a href='#L444'>444</a>
510
- <a name='L445'></a><a href='#L445'>445</a>
511
- <a name='L446'></a><a href='#L446'>446</a>
512
- <a name='L447'></a><a href='#L447'>447</a>
513
- <a name='L448'></a><a href='#L448'>448</a>
514
- <a name='L449'></a><a href='#L449'>449</a>
515
- <a name='L450'></a><a href='#L450'>450</a>
516
- <a name='L451'></a><a href='#L451'>451</a>
517
- <a name='L452'></a><a href='#L452'>452</a>
518
- <a name='L453'></a><a href='#L453'>453</a>
519
- <a name='L454'></a><a href='#L454'>454</a>
520
- <a name='L455'></a><a href='#L455'>455</a>
521
- <a name='L456'></a><a href='#L456'>456</a>
522
- <a name='L457'></a><a href='#L457'>457</a>
523
- <a name='L458'></a><a href='#L458'>458</a>
524
- <a name='L459'></a><a href='#L459'>459</a>
525
- <a name='L460'></a><a href='#L460'>460</a>
526
- <a name='L461'></a><a href='#L461'>461</a>
527
- <a name='L462'></a><a href='#L462'>462</a>
528
- <a name='L463'></a><a href='#L463'>463</a>
529
- <a name='L464'></a><a href='#L464'>464</a>
530
- <a name='L465'></a><a href='#L465'>465</a>
531
- <a name='L466'></a><a href='#L466'>466</a>
532
- <a name='L467'></a><a href='#L467'>467</a>
533
- <a name='L468'></a><a href='#L468'>468</a>
534
- <a name='L469'></a><a href='#L469'>469</a>
535
- <a name='L470'></a><a href='#L470'>470</a>
536
- <a name='L471'></a><a href='#L471'>471</a>
537
- <a name='L472'></a><a href='#L472'>472</a>
538
- <a name='L473'></a><a href='#L473'>473</a>
539
- <a name='L474'></a><a href='#L474'>474</a>
540
- <a name='L475'></a><a href='#L475'>475</a>
541
- <a name='L476'></a><a href='#L476'>476</a>
542
- <a name='L477'></a><a href='#L477'>477</a>
543
- <a name='L478'></a><a href='#L478'>478</a>
544
- <a name='L479'></a><a href='#L479'>479</a>
545
- <a name='L480'></a><a href='#L480'>480</a>
546
- <a name='L481'></a><a href='#L481'>481</a>
547
- <a name='L482'></a><a href='#L482'>482</a>
548
- <a name='L483'></a><a href='#L483'>483</a>
549
- <a name='L484'></a><a href='#L484'>484</a>
550
- <a name='L485'></a><a href='#L485'>485</a>
551
- <a name='L486'></a><a href='#L486'>486</a>
552
- <a name='L487'></a><a href='#L487'>487</a>
553
- <a name='L488'></a><a href='#L488'>488</a>
554
- <a name='L489'></a><a href='#L489'>489</a>
555
- <a name='L490'></a><a href='#L490'>490</a>
556
- <a name='L491'></a><a href='#L491'>491</a>
557
- <a name='L492'></a><a href='#L492'>492</a>
558
- <a name='L493'></a><a href='#L493'>493</a>
559
- <a name='L494'></a><a href='#L494'>494</a>
560
- <a name='L495'></a><a href='#L495'>495</a>
561
- <a name='L496'></a><a href='#L496'>496</a>
562
- <a name='L497'></a><a href='#L497'>497</a>
563
- <a name='L498'></a><a href='#L498'>498</a>
564
- <a name='L499'></a><a href='#L499'>499</a>
565
- <a name='L500'></a><a href='#L500'>500</a>
566
- <a name='L501'></a><a href='#L501'>501</a>
567
- <a name='L502'></a><a href='#L502'>502</a>
568
- <a name='L503'></a><a href='#L503'>503</a>
569
- <a name='L504'></a><a href='#L504'>504</a>
570
- <a name='L505'></a><a href='#L505'>505</a>
571
- <a name='L506'></a><a href='#L506'>506</a>
572
- <a name='L507'></a><a href='#L507'>507</a>
573
- <a name='L508'></a><a href='#L508'>508</a>
574
- <a name='L509'></a><a href='#L509'>509</a>
575
- <a name='L510'></a><a href='#L510'>510</a>
576
- <a name='L511'></a><a href='#L511'>511</a>
577
- <a name='L512'></a><a href='#L512'>512</a>
578
- <a name='L513'></a><a href='#L513'>513</a>
579
- <a name='L514'></a><a href='#L514'>514</a>
580
- <a name='L515'></a><a href='#L515'>515</a>
581
- <a name='L516'></a><a href='#L516'>516</a>
582
- <a name='L517'></a><a href='#L517'>517</a>
583
- <a name='L518'></a><a href='#L518'>518</a>
584
- <a name='L519'></a><a href='#L519'>519</a>
585
- <a name='L520'></a><a href='#L520'>520</a>
586
- <a name='L521'></a><a href='#L521'>521</a>
587
- <a name='L522'></a><a href='#L522'>522</a>
588
- <a name='L523'></a><a href='#L523'>523</a>
589
- <a name='L524'></a><a href='#L524'>524</a>
590
- <a name='L525'></a><a href='#L525'>525</a>
591
- <a name='L526'></a><a href='#L526'>526</a>
592
- <a name='L527'></a><a href='#L527'>527</a>
593
- <a name='L528'></a><a href='#L528'>528</a>
594
- <a name='L529'></a><a href='#L529'>529</a>
595
- <a name='L530'></a><a href='#L530'>530</a>
596
- <a name='L531'></a><a href='#L531'>531</a>
597
- <a name='L532'></a><a href='#L532'>532</a>
598
- <a name='L533'></a><a href='#L533'>533</a>
599
- <a name='L534'></a><a href='#L534'>534</a>
600
- <a name='L535'></a><a href='#L535'>535</a>
601
- <a name='L536'></a><a href='#L536'>536</a>
602
- <a name='L537'></a><a href='#L537'>537</a>
603
- <a name='L538'></a><a href='#L538'>538</a>
604
- <a name='L539'></a><a href='#L539'>539</a>
605
- <a name='L540'></a><a href='#L540'>540</a>
606
- <a name='L541'></a><a href='#L541'>541</a>
607
- <a name='L542'></a><a href='#L542'>542</a>
608
- <a name='L543'></a><a href='#L543'>543</a>
609
- <a name='L544'></a><a href='#L544'>544</a>
610
- <a name='L545'></a><a href='#L545'>545</a>
611
- <a name='L546'></a><a href='#L546'>546</a>
612
- <a name='L547'></a><a href='#L547'>547</a>
613
- <a name='L548'></a><a href='#L548'>548</a>
614
- <a name='L549'></a><a href='#L549'>549</a>
615
- <a name='L550'></a><a href='#L550'>550</a>
616
- <a name='L551'></a><a href='#L551'>551</a>
617
- <a name='L552'></a><a href='#L552'>552</a>
618
- <a name='L553'></a><a href='#L553'>553</a>
619
- <a name='L554'></a><a href='#L554'>554</a>
620
- <a name='L555'></a><a href='#L555'>555</a>
621
- <a name='L556'></a><a href='#L556'>556</a>
622
- <a name='L557'></a><a href='#L557'>557</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
623
- <span class="cline-any cline-no">&nbsp;</span>
624
- <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-no">&nbsp;</span>
626
- <span class="cline-any cline-neutral">&nbsp;</span>
627
- <span class="cline-any cline-neutral">&nbsp;</span>
628
- <span class="cline-any cline-no">&nbsp;</span>
629
- <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-neutral">&nbsp;</span>
632
- <span class="cline-any cline-neutral">&nbsp;</span>
633
- <span class="cline-any cline-neutral">&nbsp;</span>
634
- <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-neutral">&nbsp;</span>
636
- <span class="cline-any cline-neutral">&nbsp;</span>
637
- <span class="cline-any cline-neutral">&nbsp;</span>
638
- <span class="cline-any cline-neutral">&nbsp;</span>
639
- <span class="cline-any cline-neutral">&nbsp;</span>
640
- <span class="cline-any cline-neutral">&nbsp;</span>
641
- <span class="cline-any cline-neutral">&nbsp;</span>
642
- <span class="cline-any cline-no">&nbsp;</span>
643
- <span class="cline-any cline-neutral">&nbsp;</span>
644
- <span class="cline-any cline-neutral">&nbsp;</span>
645
- <span class="cline-any cline-neutral">&nbsp;</span>
646
- <span class="cline-any cline-neutral">&nbsp;</span>
647
- <span class="cline-any cline-neutral">&nbsp;</span>
648
- <span class="cline-any cline-neutral">&nbsp;</span>
649
- <span class="cline-any cline-neutral">&nbsp;</span>
650
- <span class="cline-any cline-neutral">&nbsp;</span>
651
- <span class="cline-any cline-neutral">&nbsp;</span>
652
- <span class="cline-any cline-neutral">&nbsp;</span>
653
- <span class="cline-any cline-neutral">&nbsp;</span>
654
- <span class="cline-any cline-no">&nbsp;</span>
655
- <span class="cline-any cline-neutral">&nbsp;</span>
656
- <span class="cline-any cline-neutral">&nbsp;</span>
657
- <span class="cline-any cline-neutral">&nbsp;</span>
658
- <span class="cline-any cline-neutral">&nbsp;</span>
659
- <span class="cline-any cline-neutral">&nbsp;</span>
660
- <span class="cline-any cline-neutral">&nbsp;</span>
661
- <span class="cline-any cline-no">&nbsp;</span>
662
- <span class="cline-any cline-neutral">&nbsp;</span>
663
- <span class="cline-any cline-neutral">&nbsp;</span>
664
- <span class="cline-any cline-neutral">&nbsp;</span>
665
- <span class="cline-any cline-neutral">&nbsp;</span>
666
- <span class="cline-any cline-neutral">&nbsp;</span>
667
- <span class="cline-any cline-neutral">&nbsp;</span>
668
- <span class="cline-any cline-neutral">&nbsp;</span>
669
- <span class="cline-any cline-no">&nbsp;</span>
670
- <span class="cline-any cline-neutral">&nbsp;</span>
671
- <span class="cline-any cline-neutral">&nbsp;</span>
672
- <span class="cline-any cline-neutral">&nbsp;</span>
673
- <span class="cline-any cline-neutral">&nbsp;</span>
674
- <span class="cline-any cline-neutral">&nbsp;</span>
675
- <span class="cline-any cline-neutral">&nbsp;</span>
676
- <span class="cline-any cline-no">&nbsp;</span>
677
- <span class="cline-any cline-neutral">&nbsp;</span>
678
- <span class="cline-any cline-neutral">&nbsp;</span>
679
- <span class="cline-any cline-neutral">&nbsp;</span>
680
- <span class="cline-any cline-neutral">&nbsp;</span>
681
- <span class="cline-any cline-neutral">&nbsp;</span>
682
- <span class="cline-any cline-neutral">&nbsp;</span>
683
- <span class="cline-any cline-neutral">&nbsp;</span>
684
- <span class="cline-any cline-neutral">&nbsp;</span>
685
- <span class="cline-any cline-neutral">&nbsp;</span>
686
- <span class="cline-any cline-neutral">&nbsp;</span>
687
- <span class="cline-any cline-neutral">&nbsp;</span>
688
- <span class="cline-any cline-neutral">&nbsp;</span>
689
- <span class="cline-any cline-neutral">&nbsp;</span>
690
- <span class="cline-any cline-neutral">&nbsp;</span>
691
- <span class="cline-any cline-neutral">&nbsp;</span>
692
- <span class="cline-any cline-neutral">&nbsp;</span>
693
- <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-neutral">&nbsp;</span>
695
- <span class="cline-any cline-neutral">&nbsp;</span>
696
- <span class="cline-any cline-neutral">&nbsp;</span>
697
- <span class="cline-any cline-neutral">&nbsp;</span>
698
- <span class="cline-any cline-neutral">&nbsp;</span>
699
- <span class="cline-any cline-neutral">&nbsp;</span>
700
- <span class="cline-any cline-neutral">&nbsp;</span>
701
- <span class="cline-any cline-neutral">&nbsp;</span>
702
- <span class="cline-any cline-neutral">&nbsp;</span>
703
- <span class="cline-any cline-neutral">&nbsp;</span>
704
- <span class="cline-any cline-neutral">&nbsp;</span>
705
- <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-neutral">&nbsp;</span>
707
- <span class="cline-any cline-neutral">&nbsp;</span>
708
- <span class="cline-any cline-no">&nbsp;</span>
709
- <span class="cline-any cline-neutral">&nbsp;</span>
710
- <span class="cline-any cline-neutral">&nbsp;</span>
711
- <span class="cline-any cline-neutral">&nbsp;</span>
712
- <span class="cline-any cline-neutral">&nbsp;</span>
713
- <span class="cline-any cline-neutral">&nbsp;</span>
714
- <span class="cline-any cline-neutral">&nbsp;</span>
715
- <span class="cline-any cline-neutral">&nbsp;</span>
716
- <span class="cline-any cline-neutral">&nbsp;</span>
717
- <span class="cline-any cline-neutral">&nbsp;</span>
718
- <span class="cline-any cline-neutral">&nbsp;</span>
719
- <span class="cline-any cline-neutral">&nbsp;</span>
720
- <span class="cline-any cline-neutral">&nbsp;</span>
721
- <span class="cline-any cline-neutral">&nbsp;</span>
722
- <span class="cline-any cline-neutral">&nbsp;</span>
723
- <span class="cline-any cline-neutral">&nbsp;</span>
724
- <span class="cline-any cline-neutral">&nbsp;</span>
725
- <span class="cline-any cline-neutral">&nbsp;</span>
726
- <span class="cline-any cline-neutral">&nbsp;</span>
727
- <span class="cline-any cline-neutral">&nbsp;</span>
728
- <span class="cline-any cline-neutral">&nbsp;</span>
729
- <span class="cline-any cline-neutral">&nbsp;</span>
730
- <span class="cline-any cline-neutral">&nbsp;</span>
731
- <span class="cline-any cline-neutral">&nbsp;</span>
732
- <span class="cline-any cline-neutral">&nbsp;</span>
733
- <span class="cline-any cline-neutral">&nbsp;</span>
734
- <span class="cline-any cline-neutral">&nbsp;</span>
735
- <span class="cline-any cline-neutral">&nbsp;</span>
736
- <span class="cline-any cline-neutral">&nbsp;</span>
737
- <span class="cline-any cline-neutral">&nbsp;</span>
738
- <span class="cline-any cline-neutral">&nbsp;</span>
739
- <span class="cline-any cline-neutral">&nbsp;</span>
740
- <span class="cline-any cline-neutral">&nbsp;</span>
741
- <span class="cline-any cline-no">&nbsp;</span>
742
- <span class="cline-any cline-no">&nbsp;</span>
743
- <span class="cline-any cline-no">&nbsp;</span>
744
- <span class="cline-any cline-neutral">&nbsp;</span>
745
- <span class="cline-any cline-neutral">&nbsp;</span>
746
- <span class="cline-any cline-no">&nbsp;</span>
747
- <span class="cline-any cline-no">&nbsp;</span>
748
- <span class="cline-any cline-neutral">&nbsp;</span>
749
- <span class="cline-any cline-neutral">&nbsp;</span>
750
- <span class="cline-any cline-no">&nbsp;</span>
751
- <span class="cline-any cline-no">&nbsp;</span>
752
- <span class="cline-any cline-no">&nbsp;</span>
753
- <span class="cline-any cline-neutral">&nbsp;</span>
754
- <span class="cline-any cline-neutral">&nbsp;</span>
755
- <span class="cline-any cline-neutral">&nbsp;</span>
756
- <span class="cline-any cline-neutral">&nbsp;</span>
757
- <span class="cline-any cline-neutral">&nbsp;</span>
758
- <span class="cline-any cline-no">&nbsp;</span>
759
- <span class="cline-any cline-no">&nbsp;</span>
760
- <span class="cline-any cline-no">&nbsp;</span>
761
- <span class="cline-any cline-no">&nbsp;</span>
762
- <span class="cline-any cline-neutral">&nbsp;</span>
763
- <span class="cline-any cline-neutral">&nbsp;</span>
764
- <span class="cline-any cline-neutral">&nbsp;</span>
765
- <span class="cline-any cline-neutral">&nbsp;</span>
766
- <span class="cline-any cline-no">&nbsp;</span>
767
- <span class="cline-any cline-neutral">&nbsp;</span>
768
- <span class="cline-any cline-neutral">&nbsp;</span>
769
- <span class="cline-any cline-neutral">&nbsp;</span>
770
- <span class="cline-any cline-neutral">&nbsp;</span>
771
- <span class="cline-any cline-neutral">&nbsp;</span>
772
- <span class="cline-any cline-no">&nbsp;</span>
773
- <span class="cline-any cline-no">&nbsp;</span>
774
- <span class="cline-any cline-neutral">&nbsp;</span>
775
- <span class="cline-any cline-neutral">&nbsp;</span>
776
- <span class="cline-any cline-neutral">&nbsp;</span>
777
- <span class="cline-any cline-neutral">&nbsp;</span>
778
- <span class="cline-any cline-neutral">&nbsp;</span>
779
- <span class="cline-any cline-neutral">&nbsp;</span>
780
- <span class="cline-any cline-neutral">&nbsp;</span>
781
- <span class="cline-any cline-neutral">&nbsp;</span>
782
- <span class="cline-any cline-no">&nbsp;</span>
783
- <span class="cline-any cline-neutral">&nbsp;</span>
784
- <span class="cline-any cline-neutral">&nbsp;</span>
785
- <span class="cline-any cline-neutral">&nbsp;</span>
786
- <span class="cline-any cline-neutral">&nbsp;</span>
787
- <span class="cline-any cline-neutral">&nbsp;</span>
788
- <span class="cline-any cline-no">&nbsp;</span>
789
- <span class="cline-any cline-no">&nbsp;</span>
790
- <span class="cline-any cline-neutral">&nbsp;</span>
791
- <span class="cline-any cline-neutral">&nbsp;</span>
792
- <span class="cline-any cline-neutral">&nbsp;</span>
793
- <span class="cline-any cline-neutral">&nbsp;</span>
794
- <span class="cline-any cline-neutral">&nbsp;</span>
795
- <span class="cline-any cline-neutral">&nbsp;</span>
796
- <span class="cline-any cline-neutral">&nbsp;</span>
797
- <span class="cline-any cline-neutral">&nbsp;</span>
798
- <span class="cline-any cline-neutral">&nbsp;</span>
799
- <span class="cline-any cline-neutral">&nbsp;</span>
800
- <span class="cline-any cline-neutral">&nbsp;</span>
801
- <span class="cline-any cline-no">&nbsp;</span>
802
- <span class="cline-any cline-neutral">&nbsp;</span>
803
- <span class="cline-any cline-neutral">&nbsp;</span>
804
- <span class="cline-any cline-neutral">&nbsp;</span>
805
- <span class="cline-any cline-neutral">&nbsp;</span>
806
- <span class="cline-any cline-neutral">&nbsp;</span>
807
- <span class="cline-any cline-no">&nbsp;</span>
808
- <span class="cline-any cline-no">&nbsp;</span>
809
- <span class="cline-any cline-neutral">&nbsp;</span>
810
- <span class="cline-any cline-neutral">&nbsp;</span>
811
- <span class="cline-any cline-neutral">&nbsp;</span>
812
- <span class="cline-any cline-neutral">&nbsp;</span>
813
- <span class="cline-any cline-neutral">&nbsp;</span>
814
- <span class="cline-any cline-neutral">&nbsp;</span>
815
- <span class="cline-any cline-neutral">&nbsp;</span>
816
- <span class="cline-any cline-neutral">&nbsp;</span>
817
- <span class="cline-any cline-neutral">&nbsp;</span>
818
- <span class="cline-any cline-neutral">&nbsp;</span>
819
- <span class="cline-any cline-no">&nbsp;</span>
820
- <span class="cline-any cline-neutral">&nbsp;</span>
821
- <span class="cline-any cline-neutral">&nbsp;</span>
822
- <span class="cline-any cline-neutral">&nbsp;</span>
823
- <span class="cline-any cline-neutral">&nbsp;</span>
824
- <span class="cline-any cline-neutral">&nbsp;</span>
825
- <span class="cline-any cline-no">&nbsp;</span>
826
- <span class="cline-any cline-no">&nbsp;</span>
827
- <span class="cline-any cline-neutral">&nbsp;</span>
828
- <span class="cline-any cline-neutral">&nbsp;</span>
829
- <span class="cline-any cline-neutral">&nbsp;</span>
830
- <span class="cline-any cline-neutral">&nbsp;</span>
831
- <span class="cline-any cline-neutral">&nbsp;</span>
832
- <span class="cline-any cline-neutral">&nbsp;</span>
833
- <span class="cline-any cline-neutral">&nbsp;</span>
834
- <span class="cline-any cline-neutral">&nbsp;</span>
835
- <span class="cline-any cline-neutral">&nbsp;</span>
836
- <span class="cline-any cline-neutral">&nbsp;</span>
837
- <span class="cline-any cline-no">&nbsp;</span>
838
- <span class="cline-any cline-neutral">&nbsp;</span>
839
- <span class="cline-any cline-neutral">&nbsp;</span>
840
- <span class="cline-any cline-neutral">&nbsp;</span>
841
- <span class="cline-any cline-neutral">&nbsp;</span>
842
- <span class="cline-any cline-neutral">&nbsp;</span>
843
- <span class="cline-any cline-no">&nbsp;</span>
844
- <span class="cline-any cline-no">&nbsp;</span>
845
- <span class="cline-any cline-neutral">&nbsp;</span>
846
- <span class="cline-any cline-neutral">&nbsp;</span>
847
- <span class="cline-any cline-neutral">&nbsp;</span>
848
- <span class="cline-any cline-neutral">&nbsp;</span>
849
- <span class="cline-any cline-neutral">&nbsp;</span>
850
- <span class="cline-any cline-no">&nbsp;</span>
851
- <span class="cline-any cline-neutral">&nbsp;</span>
852
- <span class="cline-any cline-neutral">&nbsp;</span>
853
- <span class="cline-any cline-neutral">&nbsp;</span>
854
- <span class="cline-any cline-neutral">&nbsp;</span>
855
- <span class="cline-any cline-neutral">&nbsp;</span>
856
- <span class="cline-any cline-no">&nbsp;</span>
857
- <span class="cline-any cline-no">&nbsp;</span>
858
- <span class="cline-any cline-neutral">&nbsp;</span>
859
- <span class="cline-any cline-neutral">&nbsp;</span>
860
- <span class="cline-any cline-neutral">&nbsp;</span>
861
- <span class="cline-any cline-neutral">&nbsp;</span>
862
- <span class="cline-any cline-neutral">&nbsp;</span>
863
- <span class="cline-any cline-neutral">&nbsp;</span>
864
- <span class="cline-any cline-neutral">&nbsp;</span>
865
- <span class="cline-any cline-neutral">&nbsp;</span>
866
- <span class="cline-any cline-neutral">&nbsp;</span>
867
- <span class="cline-any cline-neutral">&nbsp;</span>
868
- <span class="cline-any cline-neutral">&nbsp;</span>
869
- <span class="cline-any cline-neutral">&nbsp;</span>
870
- <span class="cline-any cline-no">&nbsp;</span>
871
- <span class="cline-any cline-neutral">&nbsp;</span>
872
- <span class="cline-any cline-neutral">&nbsp;</span>
873
- <span class="cline-any cline-neutral">&nbsp;</span>
874
- <span class="cline-any cline-neutral">&nbsp;</span>
875
- <span class="cline-any cline-neutral">&nbsp;</span>
876
- <span class="cline-any cline-no">&nbsp;</span>
877
- <span class="cline-any cline-no">&nbsp;</span>
878
- <span class="cline-any cline-neutral">&nbsp;</span>
879
- <span class="cline-any cline-neutral">&nbsp;</span>
880
- <span class="cline-any cline-neutral">&nbsp;</span>
881
- <span class="cline-any cline-neutral">&nbsp;</span>
882
- <span class="cline-any cline-neutral">&nbsp;</span>
883
- <span class="cline-any cline-neutral">&nbsp;</span>
884
- <span class="cline-any cline-no">&nbsp;</span>
885
- <span class="cline-any cline-neutral">&nbsp;</span>
886
- <span class="cline-any cline-neutral">&nbsp;</span>
887
- <span class="cline-any cline-neutral">&nbsp;</span>
888
- <span class="cline-any cline-neutral">&nbsp;</span>
889
- <span class="cline-any cline-neutral">&nbsp;</span>
890
- <span class="cline-any cline-no">&nbsp;</span>
891
- <span class="cline-any cline-no">&nbsp;</span>
892
- <span class="cline-any cline-no">&nbsp;</span>
893
- <span class="cline-any cline-neutral">&nbsp;</span>
894
- <span class="cline-any cline-neutral">&nbsp;</span>
895
- <span class="cline-any cline-neutral">&nbsp;</span>
896
- <span class="cline-any cline-neutral">&nbsp;</span>
897
- <span class="cline-any cline-neutral">&nbsp;</span>
898
- <span class="cline-any cline-no">&nbsp;</span>
899
- <span class="cline-any cline-no">&nbsp;</span>
900
- <span class="cline-any cline-no">&nbsp;</span>
901
- <span class="cline-any cline-neutral">&nbsp;</span>
902
- <span class="cline-any cline-neutral">&nbsp;</span>
903
- <span class="cline-any cline-neutral">&nbsp;</span>
904
- <span class="cline-any cline-neutral">&nbsp;</span>
905
- <span class="cline-any cline-neutral">&nbsp;</span>
906
- <span class="cline-any cline-no">&nbsp;</span>
907
- <span class="cline-any cline-no">&nbsp;</span>
908
- <span class="cline-any cline-no">&nbsp;</span>
909
- <span class="cline-any cline-neutral">&nbsp;</span>
910
- <span class="cline-any cline-neutral">&nbsp;</span>
911
- <span class="cline-any cline-neutral">&nbsp;</span>
912
- <span class="cline-any cline-neutral">&nbsp;</span>
913
- <span class="cline-any cline-neutral">&nbsp;</span>
914
- <span class="cline-any cline-neutral">&nbsp;</span>
915
- <span class="cline-any cline-neutral">&nbsp;</span>
916
- <span class="cline-any cline-neutral">&nbsp;</span>
917
- <span class="cline-any cline-neutral">&nbsp;</span>
918
- <span class="cline-any cline-neutral">&nbsp;</span>
919
- <span class="cline-any cline-no">&nbsp;</span>
920
- <span class="cline-any cline-neutral">&nbsp;</span>
921
- <span class="cline-any cline-neutral">&nbsp;</span>
922
- <span class="cline-any cline-neutral">&nbsp;</span>
923
- <span class="cline-any cline-neutral">&nbsp;</span>
924
- <span class="cline-any cline-neutral">&nbsp;</span>
925
- <span class="cline-any cline-no">&nbsp;</span>
926
- <span class="cline-any cline-no">&nbsp;</span>
927
- <span class="cline-any cline-no">&nbsp;</span>
928
- <span class="cline-any cline-neutral">&nbsp;</span>
929
- <span class="cline-any cline-neutral">&nbsp;</span>
930
- <span class="cline-any cline-neutral">&nbsp;</span>
931
- <span class="cline-any cline-neutral">&nbsp;</span>
932
- <span class="cline-any cline-neutral">&nbsp;</span>
933
- <span class="cline-any cline-neutral">&nbsp;</span>
934
- <span class="cline-any cline-neutral">&nbsp;</span>
935
- <span class="cline-any cline-neutral">&nbsp;</span>
936
- <span class="cline-any cline-neutral">&nbsp;</span>
937
- <span class="cline-any cline-neutral">&nbsp;</span>
938
- <span class="cline-any cline-no">&nbsp;</span>
939
- <span class="cline-any cline-neutral">&nbsp;</span>
940
- <span class="cline-any cline-neutral">&nbsp;</span>
941
- <span class="cline-any cline-neutral">&nbsp;</span>
942
- <span class="cline-any cline-neutral">&nbsp;</span>
943
- <span class="cline-any cline-neutral">&nbsp;</span>
944
- <span class="cline-any cline-no">&nbsp;</span>
945
- <span class="cline-any cline-no">&nbsp;</span>
946
- <span class="cline-any cline-no">&nbsp;</span>
947
- <span class="cline-any cline-neutral">&nbsp;</span>
948
- <span class="cline-any cline-neutral">&nbsp;</span>
949
- <span class="cline-any cline-neutral">&nbsp;</span>
950
- <span class="cline-any cline-neutral">&nbsp;</span>
951
- <span class="cline-any cline-neutral">&nbsp;</span>
952
- <span class="cline-any cline-neutral">&nbsp;</span>
953
- <span class="cline-any cline-neutral">&nbsp;</span>
954
- <span class="cline-any cline-neutral">&nbsp;</span>
955
- <span class="cline-any cline-neutral">&nbsp;</span>
956
- <span class="cline-any cline-neutral">&nbsp;</span>
957
- <span class="cline-any cline-no">&nbsp;</span>
958
- <span class="cline-any cline-neutral">&nbsp;</span>
959
- <span class="cline-any cline-neutral">&nbsp;</span>
960
- <span class="cline-any cline-neutral">&nbsp;</span>
961
- <span class="cline-any cline-neutral">&nbsp;</span>
962
- <span class="cline-any cline-neutral">&nbsp;</span>
963
- <span class="cline-any cline-no">&nbsp;</span>
964
- <span class="cline-any cline-no">&nbsp;</span>
965
- <span class="cline-any cline-neutral">&nbsp;</span>
966
- <span class="cline-any cline-neutral">&nbsp;</span>
967
- <span class="cline-any cline-neutral">&nbsp;</span>
968
- <span class="cline-any cline-neutral">&nbsp;</span>
969
- <span class="cline-any cline-neutral">&nbsp;</span>
970
- <span class="cline-any cline-neutral">&nbsp;</span>
971
- <span class="cline-any cline-neutral">&nbsp;</span>
972
- <span class="cline-any cline-neutral">&nbsp;</span>
973
- <span class="cline-any cline-neutral">&nbsp;</span>
974
- <span class="cline-any cline-no">&nbsp;</span>
975
- <span class="cline-any cline-neutral">&nbsp;</span>
976
- <span class="cline-any cline-neutral">&nbsp;</span>
977
- <span class="cline-any cline-neutral">&nbsp;</span>
978
- <span class="cline-any cline-neutral">&nbsp;</span>
979
- <span class="cline-any cline-neutral">&nbsp;</span>
980
- <span class="cline-any cline-no">&nbsp;</span>
981
- <span class="cline-any cline-no">&nbsp;</span>
982
- <span class="cline-any cline-neutral">&nbsp;</span>
983
- <span class="cline-any cline-neutral">&nbsp;</span>
984
- <span class="cline-any cline-neutral">&nbsp;</span>
985
- <span class="cline-any cline-neutral">&nbsp;</span>
986
- <span class="cline-any cline-neutral">&nbsp;</span>
987
- <span class="cline-any cline-neutral">&nbsp;</span>
988
- <span class="cline-any cline-neutral">&nbsp;</span>
989
- <span class="cline-any cline-neutral">&nbsp;</span>
990
- <span class="cline-any cline-neutral">&nbsp;</span>
991
- <span class="cline-any cline-no">&nbsp;</span>
992
- <span class="cline-any cline-neutral">&nbsp;</span>
993
- <span class="cline-any cline-neutral">&nbsp;</span>
994
- <span class="cline-any cline-neutral">&nbsp;</span>
995
- <span class="cline-any cline-neutral">&nbsp;</span>
996
- <span class="cline-any cline-neutral">&nbsp;</span>
997
- <span class="cline-any cline-no">&nbsp;</span>
998
- <span class="cline-any cline-no">&nbsp;</span>
999
- <span class="cline-any cline-neutral">&nbsp;</span>
1000
- <span class="cline-any cline-neutral">&nbsp;</span>
1001
- <span class="cline-any cline-neutral">&nbsp;</span>
1002
- <span class="cline-any cline-neutral">&nbsp;</span>
1003
- <span class="cline-any cline-neutral">&nbsp;</span>
1004
- <span class="cline-any cline-neutral">&nbsp;</span>
1005
- <span class="cline-any cline-neutral">&nbsp;</span>
1006
- <span class="cline-any cline-neutral">&nbsp;</span>
1007
- <span class="cline-any cline-neutral">&nbsp;</span>
1008
- <span class="cline-any cline-no">&nbsp;</span>
1009
- <span class="cline-any cline-neutral">&nbsp;</span>
1010
- <span class="cline-any cline-neutral">&nbsp;</span>
1011
- <span class="cline-any cline-neutral">&nbsp;</span>
1012
- <span class="cline-any cline-neutral">&nbsp;</span>
1013
- <span class="cline-any cline-neutral">&nbsp;</span>
1014
- <span class="cline-any cline-no">&nbsp;</span>
1015
- <span class="cline-any cline-no">&nbsp;</span>
1016
- <span class="cline-any cline-neutral">&nbsp;</span>
1017
- <span class="cline-any cline-neutral">&nbsp;</span>
1018
- <span class="cline-any cline-neutral">&nbsp;</span>
1019
- <span class="cline-any cline-neutral">&nbsp;</span>
1020
- <span class="cline-any cline-neutral">&nbsp;</span>
1021
- <span class="cline-any cline-neutral">&nbsp;</span>
1022
- <span class="cline-any cline-neutral">&nbsp;</span>
1023
- <span class="cline-any cline-neutral">&nbsp;</span>
1024
- <span class="cline-any cline-neutral">&nbsp;</span>
1025
- <span class="cline-any cline-no">&nbsp;</span>
1026
- <span class="cline-any cline-neutral">&nbsp;</span>
1027
- <span class="cline-any cline-neutral">&nbsp;</span>
1028
- <span class="cline-any cline-neutral">&nbsp;</span>
1029
- <span class="cline-any cline-neutral">&nbsp;</span>
1030
- <span class="cline-any cline-neutral">&nbsp;</span>
1031
- <span class="cline-any cline-no">&nbsp;</span>
1032
- <span class="cline-any cline-no">&nbsp;</span>
1033
- <span class="cline-any cline-neutral">&nbsp;</span>
1034
- <span class="cline-any cline-neutral">&nbsp;</span>
1035
- <span class="cline-any cline-neutral">&nbsp;</span>
1036
- <span class="cline-any cline-neutral">&nbsp;</span>
1037
- <span class="cline-any cline-neutral">&nbsp;</span>
1038
- <span class="cline-any cline-neutral">&nbsp;</span>
1039
- <span class="cline-any cline-neutral">&nbsp;</span>
1040
- <span class="cline-any cline-neutral">&nbsp;</span>
1041
- <span class="cline-any cline-neutral">&nbsp;</span>
1042
- <span class="cline-any cline-no">&nbsp;</span>
1043
- <span class="cline-any cline-neutral">&nbsp;</span>
1044
- <span class="cline-any cline-neutral">&nbsp;</span>
1045
- <span class="cline-any cline-neutral">&nbsp;</span>
1046
- <span class="cline-any cline-neutral">&nbsp;</span>
1047
- <span class="cline-any cline-neutral">&nbsp;</span>
1048
- <span class="cline-any cline-no">&nbsp;</span>
1049
- <span class="cline-any cline-no">&nbsp;</span>
1050
- <span class="cline-any cline-neutral">&nbsp;</span>
1051
- <span class="cline-any cline-neutral">&nbsp;</span>
1052
- <span class="cline-any cline-neutral">&nbsp;</span>
1053
- <span class="cline-any cline-neutral">&nbsp;</span>
1054
- <span class="cline-any cline-neutral">&nbsp;</span>
1055
- <span class="cline-any cline-neutral">&nbsp;</span>
1056
- <span class="cline-any cline-neutral">&nbsp;</span>
1057
- <span class="cline-any cline-neutral">&nbsp;</span>
1058
- <span class="cline-any cline-neutral">&nbsp;</span>
1059
- <span class="cline-any cline-no">&nbsp;</span>
1060
- <span class="cline-any cline-neutral">&nbsp;</span>
1061
- <span class="cline-any cline-neutral">&nbsp;</span>
1062
- <span class="cline-any cline-neutral">&nbsp;</span>
1063
- <span class="cline-any cline-neutral">&nbsp;</span>
1064
- <span class="cline-any cline-neutral">&nbsp;</span>
1065
- <span class="cline-any cline-no">&nbsp;</span>
1066
- <span class="cline-any cline-no">&nbsp;</span>
1067
- <span class="cline-any cline-neutral">&nbsp;</span>
1068
- <span class="cline-any cline-neutral">&nbsp;</span>
1069
- <span class="cline-any cline-neutral">&nbsp;</span>
1070
- <span class="cline-any cline-neutral">&nbsp;</span>
1071
- <span class="cline-any cline-neutral">&nbsp;</span>
1072
- <span class="cline-any cline-neutral">&nbsp;</span>
1073
- <span class="cline-any cline-neutral">&nbsp;</span>
1074
- <span class="cline-any cline-neutral">&nbsp;</span>
1075
- <span class="cline-any cline-neutral">&nbsp;</span>
1076
- <span class="cline-any cline-no">&nbsp;</span>
1077
- <span class="cline-any cline-neutral">&nbsp;</span>
1078
- <span class="cline-any cline-neutral">&nbsp;</span>
1079
- <span class="cline-any cline-neutral">&nbsp;</span>
1080
- <span class="cline-any cline-neutral">&nbsp;</span>
1081
- <span class="cline-any cline-neutral">&nbsp;</span>
1082
- <span class="cline-any cline-no">&nbsp;</span>
1083
- <span class="cline-any cline-no">&nbsp;</span>
1084
- <span class="cline-any cline-neutral">&nbsp;</span>
1085
- <span class="cline-any cline-neutral">&nbsp;</span>
1086
- <span class="cline-any cline-neutral">&nbsp;</span>
1087
- <span class="cline-any cline-neutral">&nbsp;</span>
1088
- <span class="cline-any cline-neutral">&nbsp;</span>
1089
- <span class="cline-any cline-neutral">&nbsp;</span>
1090
- <span class="cline-any cline-neutral">&nbsp;</span>
1091
- <span class="cline-any cline-neutral">&nbsp;</span>
1092
- <span class="cline-any cline-neutral">&nbsp;</span>
1093
- <span class="cline-any cline-no">&nbsp;</span>
1094
- <span class="cline-any cline-neutral">&nbsp;</span>
1095
- <span class="cline-any cline-neutral">&nbsp;</span>
1096
- <span class="cline-any cline-neutral">&nbsp;</span>
1097
- <span class="cline-any cline-neutral">&nbsp;</span>
1098
- <span class="cline-any cline-neutral">&nbsp;</span>
1099
- <span class="cline-any cline-no">&nbsp;</span>
1100
- <span class="cline-any cline-no">&nbsp;</span>
1101
- <span class="cline-any cline-neutral">&nbsp;</span>
1102
- <span class="cline-any cline-neutral">&nbsp;</span>
1103
- <span class="cline-any cline-neutral">&nbsp;</span>
1104
- <span class="cline-any cline-neutral">&nbsp;</span>
1105
- <span class="cline-any cline-neutral">&nbsp;</span>
1106
- <span class="cline-any cline-neutral">&nbsp;</span>
1107
- <span class="cline-any cline-neutral">&nbsp;</span>
1108
- <span class="cline-any cline-neutral">&nbsp;</span>
1109
- <span class="cline-any cline-neutral">&nbsp;</span>
1110
- <span class="cline-any cline-no">&nbsp;</span>
1111
- <span class="cline-any cline-neutral">&nbsp;</span>
1112
- <span class="cline-any cline-neutral">&nbsp;</span>
1113
- <span class="cline-any cline-neutral">&nbsp;</span>
1114
- <span class="cline-any cline-neutral">&nbsp;</span>
1115
- <span class="cline-any cline-neutral">&nbsp;</span>
1116
- <span class="cline-any cline-no">&nbsp;</span>
1117
- <span class="cline-any cline-no">&nbsp;</span>
1118
- <span class="cline-any cline-no">&nbsp;</span>
1119
- <span class="cline-any cline-neutral">&nbsp;</span>
1120
- <span class="cline-any cline-neutral">&nbsp;</span>
1121
- <span class="cline-any cline-neutral">&nbsp;</span>
1122
- <span class="cline-any cline-neutral">&nbsp;</span>
1123
- <span class="cline-any cline-neutral">&nbsp;</span>
1124
- <span class="cline-any cline-no">&nbsp;</span>
1125
- <span class="cline-any cline-no">&nbsp;</span>
1126
- <span class="cline-any cline-no">&nbsp;</span>
1127
- <span class="cline-any cline-neutral">&nbsp;</span>
1128
- <span class="cline-any cline-neutral">&nbsp;</span>
1129
- <span class="cline-any cline-neutral">&nbsp;</span>
1130
- <span class="cline-any cline-neutral">&nbsp;</span>
1131
- <span class="cline-any cline-neutral">&nbsp;</span>
1132
- <span class="cline-any cline-no">&nbsp;</span>
1133
- <span class="cline-any cline-no">&nbsp;</span>
1134
- <span class="cline-any cline-neutral">&nbsp;</span>
1135
- <span class="cline-any cline-neutral">&nbsp;</span>
1136
- <span class="cline-any cline-no">&nbsp;</span>
1137
- <span class="cline-any cline-neutral">&nbsp;</span>
1138
- <span class="cline-any cline-neutral">&nbsp;</span>
1139
- <span class="cline-any cline-neutral">&nbsp;</span>
1140
- <span class="cline-any cline-neutral">&nbsp;</span>
1141
- <span class="cline-any cline-neutral">&nbsp;</span>
1142
- <span class="cline-any cline-no">&nbsp;</span>
1143
- <span class="cline-any cline-no">&nbsp;</span>
1144
- <span class="cline-any cline-no">&nbsp;</span>
1145
- <span class="cline-any cline-neutral">&nbsp;</span>
1146
- <span class="cline-any cline-neutral">&nbsp;</span>
1147
- <span class="cline-any cline-neutral">&nbsp;</span>
1148
- <span class="cline-any cline-neutral">&nbsp;</span>
1149
- <span class="cline-any cline-neutral">&nbsp;</span>
1150
- <span class="cline-any cline-neutral">&nbsp;</span>
1151
- <span class="cline-any cline-neutral">&nbsp;</span>
1152
- <span class="cline-any cline-neutral">&nbsp;</span>
1153
- <span class="cline-any cline-neutral">&nbsp;</span>
1154
- <span class="cline-any cline-no">&nbsp;</span>
1155
- <span class="cline-any cline-neutral">&nbsp;</span>
1156
- <span class="cline-any cline-neutral">&nbsp;</span>
1157
- <span class="cline-any cline-neutral">&nbsp;</span>
1158
- <span class="cline-any cline-neutral">&nbsp;</span>
1159
- <span class="cline-any cline-neutral">&nbsp;</span>
1160
- <span class="cline-any cline-no">&nbsp;</span>
1161
- <span class="cline-any cline-no">&nbsp;</span>
1162
- <span class="cline-any cline-no">&nbsp;</span>
1163
- <span class="cline-any cline-neutral">&nbsp;</span>
1164
- <span class="cline-any cline-neutral">&nbsp;</span>
1165
- <span class="cline-any cline-neutral">&nbsp;</span>
1166
- <span class="cline-any cline-neutral">&nbsp;</span>
1167
- <span class="cline-any cline-neutral">&nbsp;</span>
1168
- <span class="cline-any cline-neutral">&nbsp;</span>
1169
- <span class="cline-any cline-neutral">&nbsp;</span>
1170
- <span class="cline-any cline-neutral">&nbsp;</span>
1171
- <span class="cline-any cline-neutral">&nbsp;</span>
1172
- <span class="cline-any cline-no">&nbsp;</span>
1173
- <span class="cline-any cline-neutral">&nbsp;</span>
1174
- <span class="cline-any cline-neutral">&nbsp;</span>
1175
- <span class="cline-any cline-neutral">&nbsp;</span>
1176
- <span class="cline-any cline-neutral">&nbsp;</span>
1177
- <span class="cline-any cline-neutral">&nbsp;</span>
1178
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Sql = <span class="cstat-no" title="statement not covered" >require("../base/sql").default</span>
1179
- const { SqlClient } = <span class="cstat-no" title="statement not covered" >require("../utils")</span>
1180
- &nbsp;
1181
- const TABLE_NAME = <span class="cstat-no" title="statement not covered" >"test"</span>
1182
- &nbsp;
1183
- function <span class="fstat-no" title="function not covered" >endpoint(t</span>able: any, operation: any) {
1184
- <span class="cstat-no" title="statement not covered" > return {</span>
1185
- datasourceId: "Postgres",
1186
- operation: operation,
1187
- entityId: table || TABLE_NAME,
1188
- }
1189
- }
1190
- &nbsp;
1191
- function <span class="fstat-no" title="function not covered" >generateReadJson({</span>
1192
- table,
1193
- fields,
1194
- filters,
1195
- sort,
1196
- paginate,
1197
- }: any = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
1198
- <span class="cstat-no" title="statement not covered" > return {</span>
1199
- endpoint: endpoint(table || TABLE_NAME, "READ"),
1200
- resource: {
1201
- fields: fields || [],
1202
- },
1203
- filters: filters || {},
1204
- sort: sort || {},
1205
- paginate: paginate || {},
1206
- }
1207
- }
1208
- &nbsp;
1209
- function <span class="fstat-no" title="function not covered" >generateCreateJson(t</span>able = <span class="branch-0 cbranch-no" title="branch not covered" >TABLE_NAME,</span> body = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
1210
- <span class="cstat-no" title="statement not covered" > return {</span>
1211
- endpoint: endpoint(table, "CREATE"),
1212
- body,
1213
- }
1214
- }
1215
- &nbsp;
1216
- function <span class="fstat-no" title="function not covered" >generateUpdateJson(t</span>able = <span class="branch-0 cbranch-no" title="branch not covered" >TABLE_NAME,</span> body = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span> filters = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
1217
- <span class="cstat-no" title="statement not covered" > return {</span>
1218
- endpoint: endpoint(table, "UPDATE"),
1219
- filters,
1220
- body,
1221
- }
1222
- }
1223
- &nbsp;
1224
- function <span class="fstat-no" title="function not covered" >generateDeleteJson(t</span>able = <span class="branch-0 cbranch-no" title="branch not covered" >TABLE_NAME,</span> filters = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
1225
- <span class="cstat-no" title="statement not covered" > return {</span>
1226
- endpoint: endpoint(table, "DELETE"),
1227
- filters,
1228
- }
1229
- }
1230
- &nbsp;
1231
- function <span class="fstat-no" title="function not covered" >generateRelationshipJson(c</span>onfig: { schema?: string } = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
1232
- <span class="cstat-no" title="statement not covered" > return {</span>
1233
- endpoint: {
1234
- datasourceId: "Postgres",
1235
- entityId: "brands",
1236
- operation: "READ",
1237
- schema: config.schema,
1238
- },
1239
- resource: {
1240
- fields: [
1241
- "brands.brand_id",
1242
- "brands.brand_name",
1243
- "products.product_id",
1244
- "products.product_name",
1245
- "products.brand_id",
1246
- ],
1247
- },
1248
- filters: {},
1249
- sort: {},
1250
- paginate: {},
1251
- relationships: [
1252
- {
1253
- from: "brand_id",
1254
- to: "brand_id",
1255
- tableName: "products",
1256
- column: "products",
1257
- },
1258
- ],
1259
- extra: { idFilter: {} },
1260
- }
1261
- }
1262
- &nbsp;
1263
- function <span class="fstat-no" title="function not covered" >generateManyRelationshipJson(c</span>onfig: { schema?: string } = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
1264
- <span class="cstat-no" title="statement not covered" > return {</span>
1265
- endpoint: {
1266
- datasourceId: "Postgres",
1267
- entityId: "stores",
1268
- operation: "READ",
1269
- schema: config.schema,
1270
- },
1271
- resource: {
1272
- fields: [
1273
- "stores.store_id",
1274
- "stores.store_name",
1275
- "products.product_id",
1276
- "products.product_name",
1277
- ],
1278
- },
1279
- filters: {},
1280
- sort: {},
1281
- paginate: {},
1282
- relationships: [
1283
- {
1284
- from: "store_id",
1285
- to: "product_id",
1286
- tableName: "products",
1287
- column: "products",
1288
- through: "stocks",
1289
- fromPrimary: "store_id",
1290
- toPrimary: "product_id",
1291
- },
1292
- ],
1293
- extra: { idFilter: {} },
1294
- }
1295
- }
1296
- &nbsp;
1297
- <span class="cstat-no" title="statement not covered" >describe("SQL query builder", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1298
- const limit = <span class="cstat-no" title="statement not covered" >500</span>
1299
- const client = <span class="cstat-no" title="statement not covered" >SqlClient.POSTGRES</span>
1300
- let sql: any
1301
- &nbsp;
1302
- <span class="cstat-no" title="statement not covered" > beforeEach(<span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1303
- <span class="cstat-no" title="statement not covered" > sql = new Sql(client, limit)</span>
1304
- })
1305
- &nbsp;
1306
- <span class="cstat-no" title="statement not covered" > it("should test a basic read", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1307
- const query = <span class="cstat-no" title="statement not covered" >sql._query(generateReadJson())</span>
1308
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1309
- bindings: [limit],
1310
- sql: `select * from (select * from "${TABLE_NAME}" limit $1) as "${TABLE_NAME}"`,
1311
- })
1312
- })
1313
- &nbsp;
1314
- <span class="cstat-no" title="statement not covered" > it("should test a read with specific columns", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1315
- const nameProp = <span class="cstat-no" title="statement not covered" >`${TABLE_NAME}.name`,</span>
1316
- ageProp = <span class="cstat-no" title="statement not covered" >`${TABLE_NAME}.age`</span>
1317
- const query = <span class="cstat-no" title="statement not covered" >sql._query(</span>
1318
- generateReadJson({
1319
- fields: [nameProp, ageProp],
1320
- })
1321
- )
1322
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1323
- bindings: [limit],
1324
- sql: `select "${TABLE_NAME}"."name" as "${nameProp}", "${TABLE_NAME}"."age" as "${ageProp}" from (select * from "${TABLE_NAME}" limit $1) as "${TABLE_NAME}"`,
1325
- })
1326
- })
1327
- &nbsp;
1328
- <span class="cstat-no" title="statement not covered" > it("should test a where string starts with read", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1329
- const query = <span class="cstat-no" title="statement not covered" >sql._query(</span>
1330
- generateReadJson({
1331
- filters: {
1332
- string: {
1333
- name: "John",
1334
- },
1335
- },
1336
- })
1337
- )
1338
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1339
- bindings: ["John%", limit],
1340
- sql: `select * from (select * from "${TABLE_NAME}" where "${TABLE_NAME}"."name" ilike $1 limit $2) as "${TABLE_NAME}"`,
1341
- })
1342
- })
1343
- &nbsp;
1344
- <span class="cstat-no" title="statement not covered" > it("should test a where range read", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1345
- const query = <span class="cstat-no" title="statement not covered" >sql._query(</span>
1346
- generateReadJson({
1347
- filters: {
1348
- range: {
1349
- age: {
1350
- low: 2,
1351
- high: 10,
1352
- },
1353
- },
1354
- },
1355
- })
1356
- )
1357
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1358
- bindings: [2, 10, limit],
1359
- sql: `select * from (select * from "${TABLE_NAME}" where "${TABLE_NAME}"."age" between $1 and $2 limit $3) as "${TABLE_NAME}"`,
1360
- })
1361
- })
1362
- &nbsp;
1363
- <span class="cstat-no" title="statement not covered" > it("should test for multiple IDs with OR", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1364
- const query = <span class="cstat-no" title="statement not covered" >sql._query(</span>
1365
- generateReadJson({
1366
- filters: {
1367
- equal: {
1368
- age: 10,
1369
- name: "John",
1370
- },
1371
- allOr: true,
1372
- },
1373
- })
1374
- )
1375
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1376
- bindings: [10, "John", limit],
1377
- sql: `select * from (select * from "${TABLE_NAME}" where ("${TABLE_NAME}"."age" = $1) or ("${TABLE_NAME}"."name" = $2) limit $3) as "${TABLE_NAME}"`,
1378
- })
1379
- })
1380
- &nbsp;
1381
- <span class="cstat-no" title="statement not covered" > it("should allow filtering on a related field", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1382
- const query = <span class="cstat-no" title="statement not covered" >sql._query(</span>
1383
- generateReadJson({
1384
- filters: {
1385
- equal: {
1386
- age: 10,
1387
- "task.name": "task 1",
1388
- },
1389
- },
1390
- })
1391
- )
1392
- // order of bindings changes because relationship filters occur outside inner query
1393
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1394
- bindings: [10, limit, "task 1"],
1395
- sql: `select * from (select * from "${TABLE_NAME}" where "${TABLE_NAME}"."age" = $1 limit $2) as "${TABLE_NAME}" where "task"."name" = $3`,
1396
- })
1397
- })
1398
- &nbsp;
1399
- <span class="cstat-no" title="statement not covered" > it("should test an create statement", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1400
- const query = <span class="cstat-no" title="statement not covered" >sql._query(</span>
1401
- generateCreateJson(TABLE_NAME, {
1402
- name: "Michael",
1403
- age: 45,
1404
- })
1405
- )
1406
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1407
- bindings: [45, "Michael"],
1408
- sql: `insert into "${TABLE_NAME}" ("age", "name") values ($1, $2) returning *`,
1409
- })
1410
- })
1411
- &nbsp;
1412
- <span class="cstat-no" title="statement not covered" > it("should test an update statement", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1413
- const query = <span class="cstat-no" title="statement not covered" >sql._query(</span>
1414
- generateUpdateJson(
1415
- TABLE_NAME,
1416
- {
1417
- name: "John",
1418
- },
1419
- {
1420
- equal: {
1421
- id: 1001,
1422
- },
1423
- }
1424
- )
1425
- )
1426
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1427
- bindings: ["John", 1001],
1428
- sql: `update "${TABLE_NAME}" set "name" = $1 where "${TABLE_NAME}"."id" = $2 returning *`,
1429
- })
1430
- })
1431
- &nbsp;
1432
- <span class="cstat-no" title="statement not covered" > it("should test a delete statement", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1433
- const query = <span class="cstat-no" title="statement not covered" >sql._query(</span>
1434
- generateDeleteJson(TABLE_NAME, {
1435
- equal: {
1436
- id: 1001,
1437
- },
1438
- })
1439
- )
1440
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1441
- bindings: [1001],
1442
- sql: `delete from "${TABLE_NAME}" where "${TABLE_NAME}"."id" = $1 returning *`,
1443
- })
1444
- })
1445
- &nbsp;
1446
- <span class="cstat-no" title="statement not covered" > it("should work with MS-SQL", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1447
- const query = <span class="cstat-no" title="statement not covered" >new Sql(SqlClient.MS_SQL, 10)._query(generateReadJson())</span>
1448
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1449
- bindings: [10],
1450
- sql: `select * from (select top (@p0) * from [${TABLE_NAME}]) as [${TABLE_NAME}]`,
1451
- })
1452
- })
1453
- &nbsp;
1454
- <span class="cstat-no" title="statement not covered" > it("should work with MySQL", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1455
- const query = <span class="cstat-no" title="statement not covered" >new Sql(SqlClient.MY_SQL, 10)._query(generateReadJson())</span>
1456
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1457
- bindings: [10],
1458
- sql: `select * from (select * from \`${TABLE_NAME}\` limit ?) as \`${TABLE_NAME}\``,
1459
- })
1460
- })
1461
- &nbsp;
1462
- <span class="cstat-no" title="statement not covered" > it("should use greater than when only low range specified", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1463
- const date = <span class="cstat-no" title="statement not covered" >new Date()</span>
1464
- const query = <span class="cstat-no" title="statement not covered" >sql._query(</span>
1465
- generateReadJson({
1466
- filters: {
1467
- range: {
1468
- property: {
1469
- low: date,
1470
- },
1471
- },
1472
- },
1473
- })
1474
- )
1475
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1476
- bindings: [date, limit],
1477
- sql: `select * from (select * from "${TABLE_NAME}" where "${TABLE_NAME}"."property" &gt; $1 limit $2) as "${TABLE_NAME}"`,
1478
- })
1479
- })
1480
- &nbsp;
1481
- <span class="cstat-no" title="statement not covered" > it("should use less than when only high range specified", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1482
- const date = <span class="cstat-no" title="statement not covered" >new Date()</span>
1483
- const query = <span class="cstat-no" title="statement not covered" >sql._query(</span>
1484
- generateReadJson({
1485
- filters: {
1486
- range: {
1487
- property: {
1488
- high: date,
1489
- },
1490
- },
1491
- },
1492
- })
1493
- )
1494
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1495
- bindings: [date, limit],
1496
- sql: `select * from (select * from "${TABLE_NAME}" where "${TABLE_NAME}"."property" &lt; $1 limit $2) as "${TABLE_NAME}"`,
1497
- })
1498
- })
1499
- &nbsp;
1500
- <span class="cstat-no" title="statement not covered" > it("should use greater than when only low range specified", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1501
- const date = <span class="cstat-no" title="statement not covered" >new Date()</span>
1502
- const query = <span class="cstat-no" title="statement not covered" >sql._query(</span>
1503
- generateReadJson({
1504
- filters: {
1505
- range: {
1506
- property: {
1507
- low: date,
1508
- },
1509
- },
1510
- },
1511
- })
1512
- )
1513
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1514
- bindings: [date, limit],
1515
- sql: `select * from (select * from "${TABLE_NAME}" where "${TABLE_NAME}"."property" &gt; $1 limit $2) as "${TABLE_NAME}"`,
1516
- })
1517
- })
1518
- &nbsp;
1519
- <span class="cstat-no" title="statement not covered" > it("should use AND like expression for MS-SQL when filter is contains", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1520
- const query = <span class="cstat-no" title="statement not covered" >new Sql(SqlClient.MS_SQL, 10)._query(</span>
1521
- generateReadJson({
1522
- filters: {
1523
- contains: {
1524
- age: [20, 25],
1525
- name: ["John", "Mary"],
1526
- },
1527
- },
1528
- })
1529
- )
1530
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1531
- bindings: [10, "%20%", "%25%", `%"John"%`, `%"Mary"%`],
1532
- sql: `select * from (select top (@p0) * from [${TABLE_NAME}] where (LOWER([${TABLE_NAME}].[age]) LIKE @p1 AND LOWER([${TABLE_NAME}].[age]) LIKE @p2) and (LOWER([${TABLE_NAME}].[name]) LIKE @p3 AND LOWER([${TABLE_NAME}].[name]) LIKE @p4)) as [${TABLE_NAME}]`,
1533
- })
1534
- })
1535
- &nbsp;
1536
- <span class="cstat-no" title="statement not covered" > it("should use JSON_CONTAINS expression for MySQL when filter is contains", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1537
- const query = <span class="cstat-no" title="statement not covered" >new Sql(SqlClient.MY_SQL, 10)._query(</span>
1538
- generateReadJson({
1539
- filters: {
1540
- contains: {
1541
- age: [20],
1542
- name: ["John"],
1543
- },
1544
- },
1545
- })
1546
- )
1547
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1548
- bindings: [10],
1549
- sql: `select * from (select * from \`${TABLE_NAME}\` where JSON_CONTAINS(${TABLE_NAME}.age, '[20]') and JSON_CONTAINS(${TABLE_NAME}.name, '["John"]') limit ?) as \`${TABLE_NAME}\``,
1550
- })
1551
- })
1552
- &nbsp;
1553
- <span class="cstat-no" title="statement not covered" > it("should use jsonb operator expression for PostgreSQL when filter is contains", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1554
- const query = <span class="cstat-no" title="statement not covered" >new Sql(SqlClient.POSTGRES, 10)._query(</span>
1555
- generateReadJson({
1556
- filters: {
1557
- contains: {
1558
- age: [20],
1559
- name: ["John"],
1560
- },
1561
- },
1562
- })
1563
- )
1564
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1565
- bindings: [10],
1566
- sql: `select * from (select * from \"${TABLE_NAME}\" where \"${TABLE_NAME}\".\"age\"::jsonb @&gt; '[20]' and \"${TABLE_NAME}\".\"name\"::jsonb @&gt; '["John"]' limit $1) as \"${TABLE_NAME}\"`,
1567
- })
1568
- })
1569
- &nbsp;
1570
- <span class="cstat-no" title="statement not covered" > it("should use NOT like expression for MS-SQL when filter is notContains", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1571
- const query = <span class="cstat-no" title="statement not covered" >new Sql(SqlClient.MS_SQL, 10)._query(</span>
1572
- generateReadJson({
1573
- filters: {
1574
- notContains: {
1575
- age: [20],
1576
- name: ["John"],
1577
- },
1578
- },
1579
- })
1580
- )
1581
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1582
- bindings: [10, "%20%", `%"John"%`],
1583
- sql: `select * from (select top (@p0) * from [${TABLE_NAME}] where NOT (LOWER([${TABLE_NAME}].[age]) LIKE @p1) and NOT (LOWER([${TABLE_NAME}].[name]) LIKE @p2)) as [${TABLE_NAME}]`,
1584
- })
1585
- })
1586
- &nbsp;
1587
- <span class="cstat-no" title="statement not covered" > it("should use NOT JSON_CONTAINS expression for MySQL when filter is notContains", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1588
- const query = <span class="cstat-no" title="statement not covered" >new Sql(SqlClient.MY_SQL, 10)._query(</span>
1589
- generateReadJson({
1590
- filters: {
1591
- notContains: {
1592
- age: [20],
1593
- name: ["John"],
1594
- },
1595
- },
1596
- })
1597
- )
1598
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1599
- bindings: [10],
1600
- sql: `select * from (select * from \`${TABLE_NAME}\` where NOT JSON_CONTAINS(${TABLE_NAME}.age, '[20]') and NOT JSON_CONTAINS(${TABLE_NAME}.name, '["John"]') limit ?) as \`${TABLE_NAME}\``,
1601
- })
1602
- })
1603
- &nbsp;
1604
- <span class="cstat-no" title="statement not covered" > it("should use jsonb operator NOT expression for PostgreSQL when filter is notContains", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1605
- const query = <span class="cstat-no" title="statement not covered" >new Sql(SqlClient.POSTGRES, 10)._query(</span>
1606
- generateReadJson({
1607
- filters: {
1608
- notContains: {
1609
- age: [20],
1610
- name: ["John"],
1611
- },
1612
- },
1613
- })
1614
- )
1615
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1616
- bindings: [10],
1617
- sql: `select * from (select * from \"${TABLE_NAME}\" where NOT \"${TABLE_NAME}\".\"age\"::jsonb @&gt; '[20]' and NOT \"${TABLE_NAME}\".\"name\"::jsonb @&gt; '["John"]' limit $1) as \"${TABLE_NAME}\"`,
1618
- })
1619
- })
1620
- &nbsp;
1621
- <span class="cstat-no" title="statement not covered" > it("should use OR like expression for MS-SQL when filter is containsAny", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1622
- const query = <span class="cstat-no" title="statement not covered" >new Sql(SqlClient.MS_SQL, 10)._query(</span>
1623
- generateReadJson({
1624
- filters: {
1625
- containsAny: {
1626
- age: [20, 25],
1627
- name: ["John", "Mary"],
1628
- },
1629
- },
1630
- })
1631
- )
1632
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1633
- bindings: [10, "%20%", "%25%", `%"John"%`, `%"Mary"%`],
1634
- sql: `select * from (select top (@p0) * from [${TABLE_NAME}] where (LOWER([${TABLE_NAME}].[age]) LIKE @p1 OR LOWER([${TABLE_NAME}].[age]) LIKE @p2) and (LOWER([${TABLE_NAME}].[name]) LIKE @p3 OR LOWER([${TABLE_NAME}].[name]) LIKE @p4)) as [${TABLE_NAME}]`,
1635
- })
1636
- })
1637
- &nbsp;
1638
- <span class="cstat-no" title="statement not covered" > it("should use JSON_OVERLAPS expression for MySQL when filter is containsAny", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1639
- const query = <span class="cstat-no" title="statement not covered" >new Sql(SqlClient.MY_SQL, 10)._query(</span>
1640
- generateReadJson({
1641
- filters: {
1642
- containsAny: {
1643
- age: [20, 25],
1644
- name: ["John", "Mary"],
1645
- },
1646
- },
1647
- })
1648
- )
1649
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1650
- bindings: [10],
1651
- sql: `select * from (select * from \`${TABLE_NAME}\` where JSON_OVERLAPS(${TABLE_NAME}.age, '[20,25]') and JSON_OVERLAPS(${TABLE_NAME}.name, '["John","Mary"]') limit ?) as \`${TABLE_NAME}\``,
1652
- })
1653
- })
1654
- &nbsp;
1655
- <span class="cstat-no" title="statement not covered" > it("should use ?| operator expression for PostgreSQL when filter is containsAny", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1656
- const query = <span class="cstat-no" title="statement not covered" >new Sql(SqlClient.POSTGRES, 10)._query(</span>
1657
- generateReadJson({
1658
- filters: {
1659
- containsAny: {
1660
- age: [20, 25],
1661
- name: ["John", "Mary"],
1662
- },
1663
- },
1664
- })
1665
- )
1666
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1667
- bindings: [10],
1668
- sql: `select * from (select * from \"${TABLE_NAME}\" where \"${TABLE_NAME}\".\"age\"::jsonb ?| array [20,25] and \"${TABLE_NAME}\".\"name\"::jsonb ?| array ['John','Mary'] limit $1) as \"${TABLE_NAME}\"`,
1669
- })
1670
- })
1671
- &nbsp;
1672
- <span class="cstat-no" title="statement not covered" > it("should add the schema to the LEFT JOIN", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1673
- const query = <span class="cstat-no" title="statement not covered" >sql._query(generateRelationshipJson({ schema: "production" }))</span>
1674
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1675
- bindings: [500, 5000],
1676
- sql: `select "brands"."brand_id" as "brands.brand_id", "brands"."brand_name" as "brands.brand_name", "products"."product_id" as "products.product_id", "products"."product_name" as "products.product_name", "products"."brand_id" as "products.brand_id" from (select * from "production"."brands" limit $1) as "brands" left join "production"."products" on "brands"."brand_id" = "products"."brand_id" limit $2`,
1677
- })
1678
- })
1679
- &nbsp;
1680
- <span class="cstat-no" title="statement not covered" > it("should handle if the schema is not present when doing a LEFT JOIN", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1681
- const query = <span class="cstat-no" title="statement not covered" >sql._query(generateRelationshipJson())</span>
1682
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1683
- bindings: [500, 5000],
1684
- sql: `select "brands"."brand_id" as "brands.brand_id", "brands"."brand_name" as "brands.brand_name", "products"."product_id" as "products.product_id", "products"."product_name" as "products.product_name", "products"."brand_id" as "products.brand_id" from (select * from "brands" limit $1) as "brands" left join "products" on "brands"."brand_id" = "products"."brand_id" limit $2`,
1685
- })
1686
- })
1687
- &nbsp;
1688
- <span class="cstat-no" title="statement not covered" > it("should add the schema to both the toTable and throughTable in many-to-many join", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1689
- const query = <span class="cstat-no" title="statement not covered" >sql._query(</span>
1690
- generateManyRelationshipJson({ schema: "production" })
1691
- )
1692
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1693
- bindings: [500, 5000],
1694
- sql: `select "stores"."store_id" as "stores.store_id", "stores"."store_name" as "stores.store_name", "products"."product_id" as "products.product_id", "products"."product_name" as "products.product_name" from (select * from "production"."stores" limit $1) as "stores" left join "production"."stocks" on "stores"."store_id" = "stocks"."store_id" left join "production"."products" on "products"."product_id" = "stocks"."product_id" limit $2`,
1695
- })
1696
- })
1697
- &nbsp;
1698
- <span class="cstat-no" title="statement not covered" > it("should handle table names with dashes when performing a LIKE in MySQL", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1699
- const tableName = <span class="cstat-no" title="statement not covered" >"Table-Name-With-Dashes"</span>
1700
- const query = <span class="cstat-no" title="statement not covered" >new Sql(SqlClient.MY_SQL, limit)._query(</span>
1701
- generateReadJson({
1702
- table: tableName,
1703
- filters: {
1704
- string: {
1705
- name: "John",
1706
- },
1707
- },
1708
- })
1709
- )
1710
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1711
- bindings: ["John%", limit],
1712
- sql: `select * from (select * from \`${tableName}\` where LOWER(\`${tableName}\`.\`name\`) LIKE ? limit ?) as \`${tableName}\``,
1713
- })
1714
- })
1715
- &nbsp;
1716
- <span class="cstat-no" title="statement not covered" > it("should handle table names with dashes when performing a LIKE in SQL Server", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1717
- const tableName = <span class="cstat-no" title="statement not covered" >"Table-Name-With-Dashes"</span>
1718
- const query = <span class="cstat-no" title="statement not covered" >new Sql(SqlClient.MS_SQL, limit)._query(</span>
1719
- generateReadJson({
1720
- table: tableName,
1721
- filters: {
1722
- string: {
1723
- name: "John",
1724
- },
1725
- },
1726
- })
1727
- )
1728
- <span class="cstat-no" title="statement not covered" > expect(query).toEqual({</span>
1729
- bindings: [limit, "John%"],
1730
- sql: `select * from (select top (@p0) * from [${tableName}] where LOWER([${tableName}].[name]) LIKE @p1) as [${tableName}]`,
1731
- })
1732
- })
1733
- })
1734
- &nbsp;</pre></td></tr></table></pre>
1735
-
1736
- <div class='push'></div><!-- for sticky footer -->
1737
- </div><!-- /wrapper -->
1738
- <div class='footer quiet pad2 space-top1 center small'>
1739
- Code coverage generated by
1740
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1741
- at Tue Feb 07 2023 11:55:17 GMT+0000 (Coordinated Universal Time)
1742
- </div>
1743
- <script src="../../../prettify.js"></script>
1744
- <script>
1745
- window.onload = function () {
1746
- prettyPrint();
1747
- };
1748
- </script>
1749
- <script src="../../../sorter.js"></script>
1750
- <script src="../../../block-navigation.js"></script>
1751
- </body>
1752
- </html>
1753
-