@cloudant/couchbackup 2.9.9-SNAPSHOT.96 → 2.9.9-SNAPSHOT.97

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 (438) hide show
  1. package/.scannerwork/report-task.txt +2 -2
  2. package/.scannerwork/scanner-report/analysis-warnings.pb +2 -2
  3. package/.scannerwork/scanner-report/changesets-19.pb +1 -0
  4. package/.scannerwork/scanner-report/changesets-20.pb +1 -0
  5. package/.scannerwork/scanner-report/changesets-21.pb +1 -0
  6. package/.scannerwork/scanner-report/changesets-22.pb +1 -0
  7. package/.scannerwork/scanner-report/changesets-25.pb +1 -0
  8. package/.scannerwork/scanner-report/changesets-26.pb +1 -0
  9. package/.scannerwork/scanner-report/changesets-27.pb +1 -0
  10. package/.scannerwork/scanner-report/changesets-28.pb +1 -0
  11. package/.scannerwork/scanner-report/changesets-29.pb +1 -0
  12. package/.scannerwork/scanner-report/changesets-4.pb +1 -0
  13. package/.scannerwork/scanner-report/changesets-41.pb +1 -0
  14. package/.scannerwork/scanner-report/changesets-42.pb +1 -0
  15. package/.scannerwork/scanner-report/changesets-43.pb +1 -0
  16. package/.scannerwork/scanner-report/changesets-44.pb +1 -0
  17. package/.scannerwork/scanner-report/changesets-45.pb +1 -0
  18. package/.scannerwork/scanner-report/changesets-46.pb +1 -0
  19. package/.scannerwork/scanner-report/changesets-47.pb +1 -0
  20. package/.scannerwork/scanner-report/changesets-48.pb +1 -0
  21. package/.scannerwork/scanner-report/changesets-49.pb +1 -0
  22. package/.scannerwork/scanner-report/changesets-50.pb +1 -0
  23. package/.scannerwork/scanner-report/changesets-65.pb +1 -0
  24. package/.scannerwork/scanner-report/changesets-66.pb +1 -0
  25. package/.scannerwork/scanner-report/changesets-69.pb +1 -0
  26. package/.scannerwork/scanner-report/component-1.pb +1 -2
  27. package/.scannerwork/scanner-report/component-19.pb +1 -0
  28. package/.scannerwork/scanner-report/component-20.pb +1 -0
  29. package/.scannerwork/scanner-report/component-21.pb +1 -0
  30. package/.scannerwork/scanner-report/component-22.pb +1 -0
  31. package/.scannerwork/scanner-report/component-23.pb +1 -1
  32. package/.scannerwork/scanner-report/component-24.pb +1 -1
  33. package/.scannerwork/scanner-report/component-25.pb +1 -0
  34. package/.scannerwork/scanner-report/component-26.pb +1 -0
  35. package/.scannerwork/scanner-report/component-27.pb +1 -0
  36. package/.scannerwork/scanner-report/component-28.pb +1 -1
  37. package/.scannerwork/scanner-report/component-29.pb +1 -1
  38. package/.scannerwork/scanner-report/component-30.pb +1 -1
  39. package/.scannerwork/scanner-report/component-31.pb +1 -1
  40. package/.scannerwork/scanner-report/component-32.pb +1 -1
  41. package/.scannerwork/scanner-report/component-33.pb +1 -1
  42. package/.scannerwork/scanner-report/component-34.pb +1 -1
  43. package/.scannerwork/scanner-report/component-35.pb +1 -1
  44. package/.scannerwork/scanner-report/component-36.pb +1 -1
  45. package/.scannerwork/scanner-report/component-37.pb +1 -1
  46. package/.scannerwork/scanner-report/component-38.pb +1 -1
  47. package/.scannerwork/scanner-report/component-4.pb +1 -0
  48. package/.scannerwork/scanner-report/component-40.pb +1 -0
  49. package/.scannerwork/scanner-report/component-41.pb +1 -0
  50. package/.scannerwork/scanner-report/component-42.pb +1 -0
  51. package/.scannerwork/scanner-report/component-43.pb +1 -0
  52. package/.scannerwork/scanner-report/component-44.pb +1 -0
  53. package/.scannerwork/scanner-report/component-45.pb +1 -0
  54. package/.scannerwork/scanner-report/component-46.pb +1 -0
  55. package/.scannerwork/scanner-report/component-47.pb +1 -0
  56. package/.scannerwork/scanner-report/component-48.pb +1 -0
  57. package/.scannerwork/scanner-report/component-49.pb +1 -0
  58. package/.scannerwork/scanner-report/component-5.pb +1 -1
  59. package/.scannerwork/scanner-report/component-50.pb +1 -0
  60. package/.scannerwork/scanner-report/component-51.pb +1 -1
  61. package/.scannerwork/scanner-report/component-52.pb +1 -1
  62. package/.scannerwork/scanner-report/component-53.pb +1 -1
  63. package/.scannerwork/scanner-report/component-54.pb +1 -1
  64. package/.scannerwork/scanner-report/component-55.pb +1 -1
  65. package/.scannerwork/scanner-report/component-57.pb +1 -1
  66. package/.scannerwork/scanner-report/component-58.pb +1 -1
  67. package/.scannerwork/scanner-report/component-59.pb +1 -1
  68. package/.scannerwork/scanner-report/component-6.pb +1 -1
  69. package/.scannerwork/scanner-report/component-61.pb +1 -1
  70. package/.scannerwork/scanner-report/component-65.pb +1 -1
  71. package/.scannerwork/scanner-report/component-66.pb +1 -0
  72. package/.scannerwork/scanner-report/component-69.pb +1 -1
  73. package/.scannerwork/scanner-report/component-7.pb +1 -1
  74. package/.scannerwork/scanner-report/coverages-20.pb +0 -0
  75. package/.scannerwork/scanner-report/coverages-22.pb +0 -0
  76. package/.scannerwork/scanner-report/coverages-23.pb +0 -0
  77. package/.scannerwork/scanner-report/coverages-24.pb +0 -0
  78. package/.scannerwork/scanner-report/coverages-27.pb +0 -0
  79. package/.scannerwork/scanner-report/coverages-30.pb +0 -0
  80. package/.scannerwork/scanner-report/coverages-31.pb +0 -0
  81. package/.scannerwork/scanner-report/coverages-32.pb +0 -0
  82. package/.scannerwork/scanner-report/coverages-33.pb +0 -0
  83. package/.scannerwork/scanner-report/coverages-34.pb +0 -0
  84. package/.scannerwork/scanner-report/coverages-35.pb +0 -0
  85. package/.scannerwork/scanner-report/coverages-36.pb +0 -0
  86. package/.scannerwork/scanner-report/coverages-37.pb +0 -0
  87. package/.scannerwork/scanner-report/coverages-4.pb +0 -0
  88. package/.scannerwork/scanner-report/coverages-42.pb +0 -0
  89. package/.scannerwork/scanner-report/coverages-43.pb +0 -0
  90. package/.scannerwork/scanner-report/coverages-46.pb +0 -0
  91. package/.scannerwork/scanner-report/coverages-5.pb +0 -0
  92. package/.scannerwork/scanner-report/coverages-51.pb +0 -0
  93. package/.scannerwork/scanner-report/coverages-52.pb +0 -0
  94. package/.scannerwork/scanner-report/coverages-53.pb +0 -0
  95. package/.scannerwork/scanner-report/coverages-54.pb +0 -0
  96. package/.scannerwork/scanner-report/coverages-57.pb +0 -0
  97. package/.scannerwork/scanner-report/coverages-58.pb +0 -0
  98. package/.scannerwork/scanner-report/coverages-6.pb +0 -0
  99. package/.scannerwork/scanner-report/coverages-65.pb +0 -0
  100. package/.scannerwork/scanner-report/coverages-66.pb +0 -0
  101. package/.scannerwork/scanner-report/coverages-7.pb +0 -0
  102. package/.scannerwork/scanner-report/duplications-19.pb +3 -0
  103. package/.scannerwork/scanner-report/duplications-22.pb +3 -0
  104. package/.scannerwork/scanner-report/duplications-23.pb +0 -2
  105. package/.scannerwork/scanner-report/duplications-24.pb +0 -2
  106. package/.scannerwork/scanner-report/duplications-32.pb +2 -0
  107. package/.scannerwork/scanner-report/duplications-33.pb +0 -2
  108. package/.scannerwork/scanner-report/duplications-36.pb +2 -0
  109. package/.scannerwork/scanner-report/duplications-43.pb +2 -0
  110. package/.scannerwork/scanner-report/duplications-45.pb +2 -0
  111. package/.scannerwork/scanner-report/duplications-5.pb +3 -0
  112. package/.scannerwork/scanner-report/duplications-52.pb +0 -3
  113. package/.scannerwork/scanner-report/duplications-53.pb +0 -3
  114. package/.scannerwork/scanner-report/duplications-57.pb +0 -2
  115. package/.scannerwork/scanner-report/duplications-6.pb +0 -2
  116. package/.scannerwork/scanner-report/duplications-65.pb +2 -0
  117. package/.scannerwork/scanner-report/duplications-66.pb +2 -0
  118. package/.scannerwork/scanner-report/measures-20.pb +0 -0
  119. package/.scannerwork/scanner-report/measures-21.pb +15 -0
  120. package/.scannerwork/scanner-report/measures-22.pb +0 -0
  121. package/.scannerwork/scanner-report/measures-23.pb +0 -0
  122. package/.scannerwork/scanner-report/measures-24.pb +0 -0
  123. package/.scannerwork/scanner-report/measures-27.pb +0 -0
  124. package/.scannerwork/scanner-report/measures-28.pb +0 -0
  125. package/.scannerwork/scanner-report/measures-29.pb +0 -0
  126. package/.scannerwork/scanner-report/measures-30.pb +0 -0
  127. package/.scannerwork/scanner-report/measures-31.pb +0 -0
  128. package/.scannerwork/scanner-report/measures-32.pb +0 -0
  129. package/.scannerwork/scanner-report/measures-33.pb +0 -0
  130. package/.scannerwork/scanner-report/measures-34.pb +0 -0
  131. package/.scannerwork/scanner-report/measures-35.pb +0 -0
  132. package/.scannerwork/scanner-report/measures-36.pb +0 -0
  133. package/.scannerwork/scanner-report/measures-37.pb +0 -0
  134. package/.scannerwork/scanner-report/measures-38.pb +0 -0
  135. package/.scannerwork/scanner-report/measures-4.pb +0 -0
  136. package/.scannerwork/scanner-report/measures-40.pb +0 -0
  137. package/.scannerwork/scanner-report/measures-42.pb +15 -0
  138. package/.scannerwork/scanner-report/measures-43.pb +0 -0
  139. package/.scannerwork/scanner-report/measures-46.pb +0 -0
  140. package/.scannerwork/scanner-report/measures-5.pb +0 -0
  141. package/.scannerwork/scanner-report/measures-51.pb +0 -0
  142. package/.scannerwork/scanner-report/measures-52.pb +0 -0
  143. package/.scannerwork/scanner-report/measures-53.pb +0 -0
  144. package/.scannerwork/scanner-report/measures-54.pb +0 -0
  145. package/.scannerwork/scanner-report/measures-55.pb +0 -0
  146. package/.scannerwork/scanner-report/measures-57.pb +0 -0
  147. package/.scannerwork/scanner-report/measures-58.pb +0 -0
  148. package/.scannerwork/scanner-report/measures-59.pb +0 -0
  149. package/.scannerwork/scanner-report/measures-6.pb +0 -0
  150. package/.scannerwork/scanner-report/measures-61.pb +0 -0
  151. package/.scannerwork/scanner-report/measures-65.pb +0 -0
  152. package/.scannerwork/scanner-report/measures-66.pb +0 -0
  153. package/.scannerwork/scanner-report/measures-69.pb +0 -0
  154. package/.scannerwork/scanner-report/measures-7.pb +0 -0
  155. package/.scannerwork/scanner-report/metadata.pb +0 -0
  156. package/.scannerwork/scanner-report/source-20.txt +35 -0
  157. package/.scannerwork/scanner-report/source-21.txt +293 -0
  158. package/.scannerwork/scanner-report/source-22.txt +119 -0
  159. package/.scannerwork/scanner-report/source-23.txt +64 -162
  160. package/.scannerwork/scanner-report/source-24.txt +583 -133
  161. package/.scannerwork/scanner-report/source-27.txt +36 -0
  162. package/.scannerwork/scanner-report/source-28.txt +142 -509
  163. package/.scannerwork/scanner-report/source-29.txt +366 -509
  164. package/.scannerwork/scanner-report/source-30.txt +19 -39
  165. package/.scannerwork/scanner-report/source-31.txt +80 -57
  166. package/.scannerwork/scanner-report/source-32.txt +127 -16
  167. package/.scannerwork/scanner-report/source-33.txt +120 -189
  168. package/.scannerwork/scanner-report/source-34.txt +39 -596
  169. package/.scannerwork/scanner-report/source-35.txt +129 -17
  170. package/.scannerwork/scanner-report/source-36.txt +200 -43
  171. package/.scannerwork/scanner-report/source-37.txt +93 -15
  172. package/.scannerwork/scanner-report/source-38.txt +167 -92
  173. package/.scannerwork/scanner-report/source-4.txt +34 -0
  174. package/.scannerwork/scanner-report/source-40.txt +509 -0
  175. package/.scannerwork/scanner-report/source-42.txt +104 -0
  176. package/.scannerwork/scanner-report/source-43.txt +92 -0
  177. package/.scannerwork/scanner-report/source-46.txt +54 -0
  178. package/.scannerwork/scanner-report/source-5.txt +229 -89
  179. package/.scannerwork/scanner-report/source-51.txt +59 -135
  180. package/.scannerwork/scanner-report/source-52.txt +95 -228
  181. package/.scannerwork/scanner-report/source-53.txt +31 -104
  182. package/.scannerwork/scanner-report/source-54.txt +147 -130
  183. package/.scannerwork/scanner-report/source-55.txt +509 -100
  184. package/.scannerwork/scanner-report/source-57.txt +52 -120
  185. package/.scannerwork/scanner-report/source-58.txt +40 -31
  186. package/.scannerwork/scanner-report/source-59.txt +509 -36
  187. package/.scannerwork/scanner-report/source-6.txt +47 -71
  188. package/.scannerwork/scanner-report/source-61.txt +509 -293
  189. package/.scannerwork/scanner-report/source-65.txt +190 -509
  190. package/.scannerwork/scanner-report/source-66.txt +175 -0
  191. package/.scannerwork/scanner-report/source-69.txt +418 -509
  192. package/.scannerwork/scanner-report/source-7.txt +31 -38
  193. package/.scannerwork/scanner-report/symbols-20.pb +17 -0
  194. package/.scannerwork/scanner-report/symbols-22.pb +77 -0
  195. package/.scannerwork/scanner-report/symbols-23.pb +60 -180
  196. package/.scannerwork/scanner-report/symbols-24.pb +1244 -143
  197. package/.scannerwork/scanner-report/symbols-27.pb +11 -0
  198. package/.scannerwork/scanner-report/symbols-30.pb +14 -19
  199. package/.scannerwork/scanner-report/symbols-31.pb +68 -29
  200. package/.scannerwork/scanner-report/symbols-32.pb +102 -10
  201. package/.scannerwork/scanner-report/symbols-33.pb +104 -410
  202. package/.scannerwork/scanner-report/symbols-34.pb +33 -1251
  203. package/.scannerwork/scanner-report/symbols-35.pb +85 -17
  204. package/.scannerwork/scanner-report/symbols-36.pb +417 -35
  205. package/.scannerwork/scanner-report/symbols-37.pb +28 -11
  206. package/.scannerwork/scanner-report/symbols-4.pb +10 -0
  207. package/.scannerwork/scanner-report/symbols-42.pb +42 -0
  208. package/.scannerwork/scanner-report/symbols-43.pb +44 -0
  209. package/.scannerwork/scanner-report/symbols-46.pb +15 -0
  210. package/.scannerwork/scanner-report/symbols-5.pb +393 -41
  211. package/.scannerwork/scanner-report/symbols-51.pb +44 -110
  212. package/.scannerwork/scanner-report/symbols-52.pb +58 -393
  213. package/.scannerwork/scanner-report/symbols-53.pb +19 -76
  214. package/.scannerwork/scanner-report/symbols-54.pb +121 -80
  215. package/.scannerwork/scanner-report/symbols-57.pb +30 -102
  216. package/.scannerwork/scanner-report/symbols-58.pb +19 -27
  217. package/.scannerwork/scanner-report/symbols-6.pb +44 -43
  218. package/.scannerwork/scanner-report/symbols-65.pb +180 -0
  219. package/.scannerwork/scanner-report/symbols-66.pb +153 -0
  220. package/.scannerwork/scanner-report/symbols-7.pb +27 -15
  221. package/.scannerwork/scanner-report/syntax-highlightings-20.pb +63 -0
  222. package/.scannerwork/scanner-report/syntax-highlightings-21.pb +659 -0
  223. package/.scannerwork/scanner-report/syntax-highlightings-22.pb +158 -0
  224. package/.scannerwork/scanner-report/syntax-highlightings-23.pb +71 -186
  225. package/.scannerwork/scanner-report/syntax-highlightings-24.pb +815 -142
  226. package/.scannerwork/scanner-report/syntax-highlightings-27.pb +59 -0
  227. package/.scannerwork/scanner-report/syntax-highlightings-28.pb +123 -3736
  228. package/.scannerwork/scanner-report/syntax-highlightings-29.pb +385 -3504
  229. package/.scannerwork/scanner-report/syntax-highlightings-30.pb +35 -63
  230. package/.scannerwork/scanner-report/syntax-highlightings-31.pb +75 -73
  231. package/.scannerwork/scanner-report/syntax-highlightings-32.pb +191 -14
  232. package/.scannerwork/scanner-report/syntax-highlightings-33.pb +162 -270
  233. package/.scannerwork/scanner-report/syntax-highlightings-34.pb +57 -849
  234. package/.scannerwork/scanner-report/syntax-highlightings-35.pb +155 -27
  235. package/.scannerwork/scanner-report/syntax-highlightings-36.pb +294 -58
  236. package/.scannerwork/scanner-report/syntax-highlightings-37.pb +103 -24
  237. package/.scannerwork/scanner-report/syntax-highlightings-38.pb +938 -99
  238. package/.scannerwork/scanner-report/syntax-highlightings-4.pb +50 -0
  239. package/.scannerwork/scanner-report/syntax-highlightings-40.pb +3747 -0
  240. package/.scannerwork/scanner-report/syntax-highlightings-42.pb +116 -0
  241. package/.scannerwork/scanner-report/syntax-highlightings-43.pb +90 -0
  242. package/.scannerwork/scanner-report/syntax-highlightings-46.pb +54 -0
  243. package/.scannerwork/scanner-report/syntax-highlightings-5.pb +298 -85
  244. package/.scannerwork/scanner-report/syntax-highlightings-51.pb +62 -190
  245. package/.scannerwork/scanner-report/syntax-highlightings-52.pb +96 -292
  246. package/.scannerwork/scanner-report/syntax-highlightings-53.pb +33 -127
  247. package/.scannerwork/scanner-report/syntax-highlightings-54.pb +173 -151
  248. package/.scannerwork/scanner-report/syntax-highlightings-55.pb +3736 -94
  249. package/.scannerwork/scanner-report/syntax-highlightings-57.pb +76 -200
  250. package/.scannerwork/scanner-report/syntax-highlightings-58.pb +59 -45
  251. package/.scannerwork/scanner-report/syntax-highlightings-59.pb +3738 -43
  252. package/.scannerwork/scanner-report/syntax-highlightings-6.pb +76 -56
  253. package/.scannerwork/scanner-report/syntax-highlightings-61.pb +3486 -398
  254. package/.scannerwork/scanner-report/syntax-highlightings-65.pb +202 -3725
  255. package/.scannerwork/scanner-report/syntax-highlightings-66.pb +214 -0
  256. package/.scannerwork/scanner-report/syntax-highlightings-69.pb +445 -3544
  257. package/.scannerwork/scanner-report/syntax-highlightings-7.pb +38 -24
  258. package/package.json +2 -2
  259. package/test-14-results.xml +147 -147
  260. package/test-16-results.xml +147 -147
  261. package/test-18-results.xml +150 -150
  262. package/test-19-results.xml +154 -154
  263. package/test-iam-18-results.xml +50 -50
  264. package/.scannerwork/scanner-report/changesets-10.pb +0 -2
  265. package/.scannerwork/scanner-report/changesets-11.pb +0 -1
  266. package/.scannerwork/scanner-report/changesets-12.pb +0 -1
  267. package/.scannerwork/scanner-report/changesets-13.pb +0 -1
  268. package/.scannerwork/scanner-report/changesets-14.pb +0 -1
  269. package/.scannerwork/scanner-report/changesets-15.pb +0 -1
  270. package/.scannerwork/scanner-report/changesets-16.pb +0 -1
  271. package/.scannerwork/scanner-report/changesets-17.pb +0 -1
  272. package/.scannerwork/scanner-report/changesets-18.pb +0 -1
  273. package/.scannerwork/scanner-report/changesets-2.pb +0 -1
  274. package/.scannerwork/scanner-report/changesets-3.pb +0 -1
  275. package/.scannerwork/scanner-report/changesets-38.pb +0 -1
  276. package/.scannerwork/scanner-report/changesets-39.pb +0 -1
  277. package/.scannerwork/scanner-report/changesets-55.pb +0 -1
  278. package/.scannerwork/scanner-report/changesets-56.pb +0 -1
  279. package/.scannerwork/scanner-report/changesets-59.pb +0 -1
  280. package/.scannerwork/scanner-report/changesets-60.pb +0 -1
  281. package/.scannerwork/scanner-report/changesets-61.pb +0 -1
  282. package/.scannerwork/scanner-report/changesets-62.pb +0 -1
  283. package/.scannerwork/scanner-report/changesets-63.pb +0 -1
  284. package/.scannerwork/scanner-report/changesets-64.pb +0 -1
  285. package/.scannerwork/scanner-report/changesets-8.pb +0 -1
  286. package/.scannerwork/scanner-report/changesets-9.pb +0 -1
  287. package/.scannerwork/scanner-report/component-10.pb +0 -2
  288. package/.scannerwork/scanner-report/component-11.pb +0 -1
  289. package/.scannerwork/scanner-report/component-12.pb +0 -1
  290. package/.scannerwork/scanner-report/component-13.pb +0 -1
  291. package/.scannerwork/scanner-report/component-14.pb +0 -1
  292. package/.scannerwork/scanner-report/component-15.pb +0 -1
  293. package/.scannerwork/scanner-report/component-16.pb +0 -1
  294. package/.scannerwork/scanner-report/component-17.pb +0 -1
  295. package/.scannerwork/scanner-report/component-18.pb +0 -1
  296. package/.scannerwork/scanner-report/component-2.pb +0 -1
  297. package/.scannerwork/scanner-report/component-3.pb +0 -1
  298. package/.scannerwork/scanner-report/component-39.pb +0 -1
  299. package/.scannerwork/scanner-report/component-56.pb +0 -1
  300. package/.scannerwork/scanner-report/component-60.pb +0 -1
  301. package/.scannerwork/scanner-report/component-62.pb +0 -1
  302. package/.scannerwork/scanner-report/component-63.pb +0 -1
  303. package/.scannerwork/scanner-report/component-64.pb +0 -1
  304. package/.scannerwork/scanner-report/component-70.pb +0 -1
  305. package/.scannerwork/scanner-report/component-8.pb +0 -1
  306. package/.scannerwork/scanner-report/component-9.pb +0 -1
  307. package/.scannerwork/scanner-report/coverages-11.pb +0 -0
  308. package/.scannerwork/scanner-report/coverages-13.pb +0 -0
  309. package/.scannerwork/scanner-report/coverages-16.pb +0 -0
  310. package/.scannerwork/scanner-report/coverages-18.pb +0 -0
  311. package/.scannerwork/scanner-report/coverages-2.pb +0 -0
  312. package/.scannerwork/scanner-report/coverages-38.pb +0 -0
  313. package/.scannerwork/scanner-report/coverages-55.pb +0 -0
  314. package/.scannerwork/scanner-report/coverages-59.pb +0 -0
  315. package/.scannerwork/scanner-report/coverages-64.pb +0 -0
  316. package/.scannerwork/scanner-report/duplications-60.pb +0 -3
  317. package/.scannerwork/scanner-report/duplications-62.pb +0 -0
  318. package/.scannerwork/scanner-report/duplications-63.pb +0 -0
  319. package/.scannerwork/scanner-report/duplications-64.pb +0 -0
  320. package/.scannerwork/scanner-report/duplications-8.pb +0 -0
  321. package/.scannerwork/scanner-report/duplications-9.pb +0 -2
  322. package/.scannerwork/scanner-report/measures-11.pb +0 -0
  323. package/.scannerwork/scanner-report/measures-13.pb +0 -0
  324. package/.scannerwork/scanner-report/measures-16.pb +0 -0
  325. package/.scannerwork/scanner-report/measures-18.pb +0 -0
  326. package/.scannerwork/scanner-report/measures-2.pb +0 -0
  327. package/.scannerwork/scanner-report/measures-3.pb +0 -0
  328. package/.scannerwork/scanner-report/measures-39.pb +0 -0
  329. package/.scannerwork/scanner-report/measures-62.pb +0 -0
  330. package/.scannerwork/scanner-report/measures-64.pb +0 -0
  331. package/.scannerwork/scanner-report/measures-70.pb +0 -0
  332. package/.scannerwork/scanner-report/source-11.txt +0 -111
  333. package/.scannerwork/scanner-report/source-13.txt +0 -164
  334. package/.scannerwork/scanner-report/source-16.txt +0 -80
  335. package/.scannerwork/scanner-report/source-18.txt +0 -46
  336. package/.scannerwork/scanner-report/source-2.txt +0 -114
  337. package/.scannerwork/scanner-report/source-3.txt +0 -418
  338. package/.scannerwork/scanner-report/source-39.txt +0 -366
  339. package/.scannerwork/scanner-report/source-62.txt +0 -142
  340. package/.scannerwork/scanner-report/source-64.txt +0 -68
  341. package/.scannerwork/scanner-report/source-70.txt +0 -167
  342. package/.scannerwork/scanner-report/symbols-11.pb +0 -59
  343. package/.scannerwork/scanner-report/symbols-13.pb +0 -126
  344. package/.scannerwork/scanner-report/symbols-16.pb +0 -46
  345. package/.scannerwork/scanner-report/symbols-18.pb +0 -20
  346. package/.scannerwork/scanner-report/symbols-2.pb +0 -28
  347. package/.scannerwork/scanner-report/symbols-38.pb +0 -60
  348. package/.scannerwork/scanner-report/symbols-55.pb +0 -69
  349. package/.scannerwork/scanner-report/symbols-59.pb +0 -14
  350. package/.scannerwork/scanner-report/symbols-64.pb +0 -45
  351. package/.scannerwork/scanner-report/syntax-highlightings-11.pb +0 -133
  352. package/.scannerwork/scanner-report/syntax-highlightings-13.pb +0 -213
  353. package/.scannerwork/scanner-report/syntax-highlightings-16.pb +0 -95
  354. package/.scannerwork/scanner-report/syntax-highlightings-18.pb +0 -64
  355. package/.scannerwork/scanner-report/syntax-highlightings-2.pb +0 -138
  356. package/.scannerwork/scanner-report/syntax-highlightings-3.pb +0 -648
  357. package/.scannerwork/scanner-report/syntax-highlightings-39.pb +0 -630
  358. package/.scannerwork/scanner-report/syntax-highlightings-62.pb +0 -134
  359. package/.scannerwork/scanner-report/syntax-highlightings-64.pb +0 -110
  360. package/.scannerwork/scanner-report/syntax-highlightings-70.pb +0 -949
  361. /package/.scannerwork/scanner-report/{coverages-60.pb → coverages-19.pb} +0 -0
  362. /package/.scannerwork/scanner-report/{coverages-61.pb → coverages-21.pb} +0 -0
  363. /package/.scannerwork/scanner-report/{coverages-56.pb → coverages-25.pb} +0 -0
  364. /package/.scannerwork/scanner-report/{coverages-63.pb → coverages-26.pb} +0 -0
  365. /package/.scannerwork/scanner-report/{coverages-62.pb → coverages-28.pb} +0 -0
  366. /package/.scannerwork/scanner-report/{coverages-39.pb → coverages-29.pb} +0 -0
  367. /package/.scannerwork/scanner-report/{coverages-14.pb → coverages-41.pb} +0 -0
  368. /package/.scannerwork/scanner-report/{coverages-12.pb → coverages-44.pb} +0 -0
  369. /package/.scannerwork/scanner-report/{coverages-9.pb → coverages-45.pb} +0 -0
  370. /package/.scannerwork/scanner-report/{coverages-15.pb → coverages-47.pb} +0 -0
  371. /package/.scannerwork/scanner-report/{coverages-17.pb → coverages-48.pb} +0 -0
  372. /package/.scannerwork/scanner-report/{coverages-10.pb → coverages-49.pb} +0 -0
  373. /package/.scannerwork/scanner-report/{coverages-8.pb → coverages-50.pb} +0 -0
  374. /package/.scannerwork/scanner-report/{coverages-3.pb → coverages-69.pb} +0 -0
  375. /package/.scannerwork/scanner-report/{duplications-10.pb → duplications-20.pb} +0 -0
  376. /package/.scannerwork/scanner-report/{duplications-61.pb → duplications-21.pb} +0 -0
  377. /package/.scannerwork/scanner-report/{duplications-11.pb → duplications-26.pb} +0 -0
  378. /package/.scannerwork/scanner-report/{duplications-12.pb → duplications-27.pb} +0 -0
  379. /package/.scannerwork/scanner-report/{duplications-13.pb → duplications-28.pb} +0 -0
  380. /package/.scannerwork/scanner-report/{duplications-14.pb → duplications-29.pb} +0 -0
  381. /package/.scannerwork/scanner-report/{duplications-15.pb → duplications-4.pb} +0 -0
  382. /package/.scannerwork/scanner-report/{duplications-16.pb → duplications-41.pb} +0 -0
  383. /package/.scannerwork/scanner-report/{duplications-17.pb → duplications-42.pb} +0 -0
  384. /package/.scannerwork/scanner-report/{duplications-18.pb → duplications-44.pb} +0 -0
  385. /package/.scannerwork/scanner-report/{duplications-2.pb → duplications-46.pb} +0 -0
  386. /package/.scannerwork/scanner-report/{duplications-3.pb → duplications-47.pb} +0 -0
  387. /package/.scannerwork/scanner-report/{duplications-38.pb → duplications-48.pb} +0 -0
  388. /package/.scannerwork/scanner-report/{duplications-39.pb → duplications-49.pb} +0 -0
  389. /package/.scannerwork/scanner-report/{duplications-55.pb → duplications-50.pb} +0 -0
  390. /package/.scannerwork/scanner-report/{duplications-59.pb → duplications-69.pb} +0 -0
  391. /package/.scannerwork/scanner-report/{issues-62.pb → issues-28.pb} +0 -0
  392. /package/.scannerwork/scanner-report/{issues-39.pb → issues-29.pb} +0 -0
  393. /package/.scannerwork/scanner-report/{issues-52.pb → issues-5.pb} +0 -0
  394. /package/.scannerwork/scanner-report/{issues-58.pb → issues-7.pb} +0 -0
  395. /package/.scannerwork/scanner-report/{measures-60.pb → measures-19.pb} +0 -0
  396. /package/.scannerwork/scanner-report/{measures-56.pb → measures-25.pb} +0 -0
  397. /package/.scannerwork/scanner-report/{measures-63.pb → measures-26.pb} +0 -0
  398. /package/.scannerwork/scanner-report/{measures-14.pb → measures-41.pb} +0 -0
  399. /package/.scannerwork/scanner-report/{measures-12.pb → measures-44.pb} +0 -0
  400. /package/.scannerwork/scanner-report/{measures-9.pb → measures-45.pb} +0 -0
  401. /package/.scannerwork/scanner-report/{measures-15.pb → measures-47.pb} +0 -0
  402. /package/.scannerwork/scanner-report/{measures-17.pb → measures-48.pb} +0 -0
  403. /package/.scannerwork/scanner-report/{measures-10.pb → measures-49.pb} +0 -0
  404. /package/.scannerwork/scanner-report/{measures-8.pb → measures-50.pb} +0 -0
  405. /package/.scannerwork/scanner-report/{source-60.txt → source-19.txt} +0 -0
  406. /package/.scannerwork/scanner-report/{source-56.txt → source-25.txt} +0 -0
  407. /package/.scannerwork/scanner-report/{source-63.txt → source-26.txt} +0 -0
  408. /package/.scannerwork/scanner-report/{source-14.txt → source-41.txt} +0 -0
  409. /package/.scannerwork/scanner-report/{source-12.txt → source-44.txt} +0 -0
  410. /package/.scannerwork/scanner-report/{source-9.txt → source-45.txt} +0 -0
  411. /package/.scannerwork/scanner-report/{source-15.txt → source-47.txt} +0 -0
  412. /package/.scannerwork/scanner-report/{source-17.txt → source-48.txt} +0 -0
  413. /package/.scannerwork/scanner-report/{source-10.txt → source-49.txt} +0 -0
  414. /package/.scannerwork/scanner-report/{source-8.txt → source-50.txt} +0 -0
  415. /package/.scannerwork/scanner-report/{symbols-60.pb → symbols-19.pb} +0 -0
  416. /package/.scannerwork/scanner-report/{symbols-61.pb → symbols-21.pb} +0 -0
  417. /package/.scannerwork/scanner-report/{symbols-56.pb → symbols-25.pb} +0 -0
  418. /package/.scannerwork/scanner-report/{symbols-63.pb → symbols-26.pb} +0 -0
  419. /package/.scannerwork/scanner-report/{symbols-62.pb → symbols-28.pb} +0 -0
  420. /package/.scannerwork/scanner-report/{symbols-39.pb → symbols-29.pb} +0 -0
  421. /package/.scannerwork/scanner-report/{symbols-14.pb → symbols-41.pb} +0 -0
  422. /package/.scannerwork/scanner-report/{symbols-12.pb → symbols-44.pb} +0 -0
  423. /package/.scannerwork/scanner-report/{symbols-9.pb → symbols-45.pb} +0 -0
  424. /package/.scannerwork/scanner-report/{symbols-15.pb → symbols-47.pb} +0 -0
  425. /package/.scannerwork/scanner-report/{symbols-17.pb → symbols-48.pb} +0 -0
  426. /package/.scannerwork/scanner-report/{symbols-10.pb → symbols-49.pb} +0 -0
  427. /package/.scannerwork/scanner-report/{symbols-8.pb → symbols-50.pb} +0 -0
  428. /package/.scannerwork/scanner-report/{symbols-3.pb → symbols-69.pb} +0 -0
  429. /package/.scannerwork/scanner-report/{syntax-highlightings-60.pb → syntax-highlightings-19.pb} +0 -0
  430. /package/.scannerwork/scanner-report/{syntax-highlightings-56.pb → syntax-highlightings-25.pb} +0 -0
  431. /package/.scannerwork/scanner-report/{syntax-highlightings-63.pb → syntax-highlightings-26.pb} +0 -0
  432. /package/.scannerwork/scanner-report/{syntax-highlightings-14.pb → syntax-highlightings-41.pb} +0 -0
  433. /package/.scannerwork/scanner-report/{syntax-highlightings-12.pb → syntax-highlightings-44.pb} +0 -0
  434. /package/.scannerwork/scanner-report/{syntax-highlightings-9.pb → syntax-highlightings-45.pb} +0 -0
  435. /package/.scannerwork/scanner-report/{syntax-highlightings-15.pb → syntax-highlightings-47.pb} +0 -0
  436. /package/.scannerwork/scanner-report/{syntax-highlightings-17.pb → syntax-highlightings-48.pb} +0 -0
  437. /package/.scannerwork/scanner-report/{syntax-highlightings-10.pb → syntax-highlightings-49.pb} +0 -0
  438. /package/.scannerwork/scanner-report/{syntax-highlightings-8.pb → syntax-highlightings-50.pb} +0 -0
@@ -0,0 +1,92 @@
1
+ // Copyright © 2017 IBM Corp. All rights reserved.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ 'use strict';
15
+
16
+ const fs = require('fs');
17
+ const stream = require('stream');
18
+ const liner = require('./liner.js');
19
+
20
+ const onLine = function(onCommand, getDocs) {
21
+ const change = new stream.Transform({ objectMode: true });
22
+
23
+ change._transform = function(line, encoding, done) {
24
+ if (line && line[0] === ':') {
25
+ const obj = {
26
+ command: null,
27
+ batch: null,
28
+ docs: []
29
+ };
30
+
31
+ let matches;
32
+
33
+ // extract command
34
+ matches = line.match(/^:([a-z_]+) ?/);
35
+ if (matches) {
36
+ obj.command = matches[1];
37
+ }
38
+
39
+ // extract batch
40
+ matches = line.match(/ batch([0-9]+)/);
41
+ if (matches) {
42
+ obj.batch = parseInt(matches[1]);
43
+ }
44
+
45
+ // extract doc ids
46
+ if (getDocs && obj.command === 't') {
47
+ const json = line.replace(/^.* batch[0-9]+ /, '').trim();
48
+ obj.docs = JSON.parse(json);
49
+ }
50
+ onCommand(obj);
51
+ }
52
+ done();
53
+ };
54
+ return change;
55
+ };
56
+
57
+ /**
58
+ * Generate a list of remaining batches from a download file.
59
+ *
60
+ * @param {string} log - log file name
61
+ * @param {function} callback - callback with err, {changesComplete: N, batches: N}.
62
+ * changesComplete signifies whether the log file appeared to
63
+ * have completed reading the changes feed (contains :changes_complete).
64
+ * batches are remaining batch IDs for download.
65
+ */
66
+ module.exports = function(log, callback) {
67
+ // our sense of state
68
+ const state = {
69
+
70
+ };
71
+ let changesComplete = false;
72
+
73
+ // called with each line from the log file
74
+ const onCommand = function(obj) {
75
+ if (obj.command === 't') {
76
+ state[obj.batch] = true;
77
+ } else if (obj.command === 'd') {
78
+ delete state[obj.batch];
79
+ } else if (obj.command === 'changes_complete') {
80
+ changesComplete = true;
81
+ }
82
+ };
83
+
84
+ // stream through the previous log file
85
+ fs.createReadStream(log)
86
+ .pipe(liner())
87
+ .pipe(onLine(onCommand, false))
88
+ .on('finish', function() {
89
+ const obj = { changesComplete: changesComplete, batches: state };
90
+ callback(null, obj);
91
+ });
92
+ };
@@ -0,0 +1,54 @@
1
+ // Copyright © 2017, 2018 IBM Corp. All rights reserved.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ 'use strict';
15
+
16
+ /**
17
+ * Utility methods for the command line interface.
18
+ * @module cliutils
19
+ * @see module:cliutils
20
+ */
21
+
22
+ const url = require('url');
23
+
24
+ module.exports = {
25
+
26
+ /**
27
+ * Combine a base URL and a database name, ensuring at least single slash
28
+ * between root and database name. This allows users to have Couch behind
29
+ * proxies that mount Couch's / endpoint at some other mount point.
30
+ * @param {string} root - root URL
31
+ * @param {string} databaseName - database name
32
+ * @return concatenated URL.
33
+ *
34
+ * @private
35
+ */
36
+ databaseUrl: function databaseUrl(root, databaseName) {
37
+ if (!root.endsWith('/')) {
38
+ root = root + '/';
39
+ }
40
+ return new url.URL(encodeURIComponent(databaseName), root).toString();
41
+ },
42
+
43
+ /**
44
+ * Generate CLI argument usage text.
45
+ *
46
+ * @param {string} description - argument description.
47
+ * @param {string} defaultValue - default argument value.
48
+ *
49
+ * @private
50
+ */
51
+ getUsage: function getUsage(description, defaultValue) {
52
+ return `${description} ${defaultValue !== undefined ? ` (default: ${defaultValue})` : ''}`;
53
+ }
54
+ };
@@ -11,94 +11,234 @@
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
+
15
+ /* global describe it beforeEach */
14
16
  'use strict';
15
17
 
16
- // fatal errors
17
- const codes = {
18
- Error: 1,
19
- InvalidOption: 2,
20
- DatabaseNotFound: 10,
21
- Unauthorized: 11,
22
- Forbidden: 12,
23
- DatabaseNotEmpty: 13,
24
- NoLogFileName: 20,
25
- LogDoesNotExist: 21,
26
- IncompleteChangesInLogFile: 22,
27
- SpoolChangesError: 30,
28
- HTTPFatalError: 40,
29
- BulkGetError: 50
30
- };
31
-
32
- class BackupError extends Error {
33
- constructor(name, message) {
34
- super(message);
35
- this.name = name;
36
- }
37
- }
38
-
39
- class HTTPError extends BackupError {
40
- constructor(responseError, name) {
41
- // Special case some names for more useful error messages
42
- switch (responseError.status) {
43
- case 401:
44
- name = 'Unauthorized';
45
- break;
46
- case 403:
47
- name = 'Forbidden';
48
- break;
49
- default:
50
- name = name || 'HTTPFatalError';
51
- }
52
- super(name, responseError.message);
53
- }
54
- }
55
-
56
- // Default function to return an error for HTTP status codes
57
- // < 400 -> OK
58
- // 4XX (except 429) -> Fatal
59
- // 429 & >=500 -> Transient
60
- function checkResponse(err) {
61
- if (err) {
62
- // Construct an HTTPError if there is request information on the error
63
- // Codes < 400 are considered OK
64
- if (err.status >= 400) {
65
- return new HTTPError(err);
66
- } else {
67
- // Send it back again if there was no status code, e.g. a cxn error
68
- return augmentMessage(err);
69
- }
70
- }
71
- }
72
-
73
- function convertResponseError(responseError, errorFactory) {
74
- if (!errorFactory) {
75
- errorFactory = checkResponse;
76
- }
77
- return errorFactory(responseError);
78
- }
79
-
80
- function augmentMessage(err) {
81
- // For errors that don't have a status code, we are likely looking at a cxn
82
- // error.
83
- // Try to augment the message with more detail (core puts the code in statusText)
84
- if (err && err.statusText) {
85
- err.message = `${err.message} ${err.statusText}`;
86
- }
87
- if (err && err.description) {
88
- err.message = `${err.message} ${err.description}`;
89
- }
90
- return err;
91
- }
92
-
93
- module.exports = {
94
- BackupError: BackupError,
95
- HTTPError: HTTPError,
96
- convertResponseError: convertResponseError,
97
- terminationCallback: function terminationCallback(err, data) {
98
- if (err) {
99
- console.error(`ERROR: ${err.message}`);
100
- process.exitCode = codes[err.name] || 1;
101
- process.exit();
102
- }
103
- }
104
- };
18
+ const assert = require('assert');
19
+ const nock = require('nock');
20
+ const request = require('../includes/request.js');
21
+ const error = require('../includes/error.js');
22
+
23
+ const url = 'http://localhost:7777/testdb';
24
+ const db = request.client(url, { parallelism: 1 });
25
+ const timeoutDb = request.client(url, { parallelism: 1, requestTimeout: 500 });
26
+ const longTestTimeout = 3000;
27
+
28
+ beforeEach('Clean nock', function() {
29
+ nock.cleanAll();
30
+ });
31
+
32
+ describe('#unit Check request headers', function() {
33
+ it('should have a couchbackup user-agent', function(done) {
34
+ const couch = nock(url)
35
+ .matchHeader('user-agent', /couchbackup-cloudant\/\d+\.\d+\.\d+(?:-SNAPSHOT)? \(Node.js v\d+\.\d+\.\d+\)/)
36
+ .head('/good')
37
+ .reply(200);
38
+
39
+ db.service.headDocument({ db: db.db, docId: 'good' }).then(response => {
40
+ assert.ok(couch.isDone());
41
+ done();
42
+ }).catch(err => {
43
+ done(err);
44
+ });
45
+ });
46
+ });
47
+
48
+ describe('#unit Check request response error callback', function() {
49
+ it('should not callback with error for 200 response', function(done) {
50
+ const couch = nock(url)
51
+ .get('/good')
52
+ .reply(200, { ok: true });
53
+
54
+ db.service.getDocument({ db: db.db, docId: 'good' }).then(response => {
55
+ assert.ok(response.result);
56
+ assert.ok(couch.isDone());
57
+ done();
58
+ }).catch(err => {
59
+ err = error.convertResponseError(err);
60
+ done(err);
61
+ });
62
+ });
63
+
64
+ it('should callback with error after 3 500 responses', function(done) {
65
+ const couch = nock(url)
66
+ .get('/bad')
67
+ .times(3)
68
+ .reply(500, function(uri, requestBody) {
69
+ this.req.response.statusMessage = 'Internal Server Error';
70
+ return { error: 'foo', reason: 'bar' };
71
+ });
72
+
73
+ db.service.getDocument({ db: db.db, docId: 'bad' }).then(response => {
74
+ done(new Error('Successful response when error expected.'));
75
+ }).catch(err => {
76
+ err = error.convertResponseError(err);
77
+ assert.strictEqual(err.name, 'HTTPFatalError');
78
+ assert.strictEqual(err.message, `500 Internal Server Error: get ${url}/bad - Error: foo, Reason: bar`);
79
+ assert.ok(couch.isDone());
80
+ done();
81
+ }).catch(err => {
82
+ // Handle assertion errors
83
+ done(err);
84
+ });
85
+ }).timeout(longTestTimeout);
86
+
87
+ it('should callback with error after 3 POST 503 responses', function(done) {
88
+ const couch = nock(url)
89
+ .post('/_bulk_get')
90
+ .query(true)
91
+ .times(3)
92
+ .reply(503, function(uri, requestBody) {
93
+ this.req.response.statusMessage = 'Service Unavailable';
94
+ return { error: 'service_unavailable', reason: 'Service unavailable' };
95
+ });
96
+
97
+ db.service.postBulkGet({ db: db.db, revs: true, docs: [] }).then(response => {
98
+ done(new Error('Successful response when error expected.'));
99
+ }).catch(err => {
100
+ err = error.convertResponseError(err);
101
+ assert.strictEqual(err.name, 'HTTPFatalError');
102
+ assert.strictEqual(err.message, `503 Service Unavailable: post ${url}/_bulk_get - Error: service_unavailable, Reason: Service unavailable`);
103
+ assert.ok(couch.isDone());
104
+ done();
105
+ }).catch(err => {
106
+ // Handle assertion errors
107
+ done(err);
108
+ });
109
+ }).timeout(longTestTimeout);
110
+
111
+ it('should callback with error after 3 429 responses', function(done) {
112
+ const couch = nock(url)
113
+ .get('/bad')
114
+ .times(3)
115
+ .reply(429, function(uri, requestBody) {
116
+ this.req.response.statusMessage = 'Too Many Requests';
117
+ return { error: 'foo', reason: 'bar' };
118
+ });
119
+
120
+ db.service.getDocument({ db: db.db, docId: 'bad' }).then(response => {
121
+ done(new Error('Successful response when error expected.'));
122
+ }).catch(err => {
123
+ err = error.convertResponseError(err);
124
+ assert.strictEqual(err.name, 'HTTPFatalError');
125
+ assert.strictEqual(err.message, `429 Too Many Requests: get ${url}/bad - Error: foo, Reason: bar`);
126
+ assert.ok(couch.isDone());
127
+ done();
128
+ }).catch(err => {
129
+ // Handle assertion errors
130
+ done(err);
131
+ });
132
+ }).timeout(longTestTimeout);
133
+
134
+ it('should callback with fatal error for 404 response', function(done) {
135
+ const couch = nock(url)
136
+ .get('/bad')
137
+ .reply(404, function(uri, requestBody) {
138
+ this.req.response.statusMessage = 'Not Found';
139
+ return { error: 'foo', reason: 'bar' };
140
+ });
141
+
142
+ db.service.getDocument({ db: db.db, docId: 'bad' }).then(response => {
143
+ done(new Error('Successful response when error expected.'));
144
+ }).catch(err => {
145
+ err = error.convertResponseError(err);
146
+ assert.strictEqual(err.name, 'HTTPFatalError');
147
+ assert.strictEqual(err.message, `404 Not Found: get ${url}/bad - Error: foo, Reason: bar`);
148
+ assert.ok(couch.isDone());
149
+ done();
150
+ }).catch(err => {
151
+ // Handle assertion errors
152
+ done(err);
153
+ });
154
+ });
155
+
156
+ it('should callback with same error for no status code error response', function(done) {
157
+ const couch = nock(url)
158
+ .get('/bad')
159
+ .times(3)
160
+ .replyWithError('testing badness');
161
+
162
+ db.service.getDocument({ db: db.db, docId: 'bad' }).then(response => {
163
+ done(new Error('Successful response when error expected.'));
164
+ }).catch(err => {
165
+ const err2 = error.convertResponseError(err);
166
+ assert.strictEqual(err, err2);
167
+ assert.ok(couch.isDone());
168
+ done();
169
+ }).catch(err => {
170
+ // Handle assertion errors
171
+ done(err);
172
+ });
173
+ }).timeout(longTestTimeout);
174
+
175
+ it('should retry request if HTTP request gets timed out', function(done) {
176
+ const couch = nock(url)
177
+ .post('/_bulk_get')
178
+ .query(true)
179
+ .delay(1000)
180
+ .reply(200, { results: { docs: [{ id: '1', ok: { _id: '1' } }] } })
181
+ .post('/_bulk_get')
182
+ .query(true)
183
+ .reply(200, { results: { docs: [{ id: '1', ok: { _id: '1' } }, { id: '2', ok: { _id: '2' } }] } });
184
+
185
+ timeoutDb.service.postBulkGet({ db: db.db, revs: true, docs: [] }).then(response => {
186
+ assert.ok(response);
187
+ assert.ok(response.result);
188
+ assert.ok(response.result.results);
189
+ assert.ok(response.result.results.docs);
190
+ assert.strictEqual(response.result.results.docs.length, 2);
191
+ assert.ok(couch.isDone());
192
+ done();
193
+ }).catch(err => {
194
+ done(err);
195
+ });
196
+ });
197
+
198
+ it('should callback with error code ESOCKETTIMEDOUT if 3 HTTP requests gets timed out', function(done) {
199
+ // Increase the timeout for this test to allow for the delays
200
+ this.timeout(3000);
201
+ const couch = nock(url)
202
+ .post('/_bulk_get')
203
+ .query(true)
204
+ .delay(1000)
205
+ .times(3)
206
+ .reply(200, { ok: true });
207
+
208
+ timeoutDb.service.postBulkGet({ db: db.db, revs: true, docs: [] }).then(response => {
209
+ done(new Error('Successful response when error expected.'));
210
+ }).catch(err => {
211
+ err = error.convertResponseError(err);
212
+ // Note axios returns ECONNABORTED rather than ESOCKETTIMEDOUT
213
+ // See https://github.com/axios/axios/issues/2710 via https://github.com/axios/axios/issues/1543`
214
+ assert.strictEqual(err.statusText, 'ECONNABORTED');
215
+ assert.strictEqual(err.message, `timeout of 500ms exceeded: post ${url}/_bulk_get ECONNABORTED`);
216
+ assert.ok(couch.isDone());
217
+ done();
218
+ }).catch(err => {
219
+ // Handle assertion errors
220
+ done(err);
221
+ });
222
+ });
223
+ describe('#unit Check credentials', function() {
224
+ it('should properly decode username and password', function(done) {
225
+ const username = 'user%123';
226
+ const password = 'colon:at@321';
227
+ const url = `http://${encodeURIComponent(username)}:${encodeURIComponent(password)}@localhost:7777/testdb`;
228
+ const sessionUrl = 'http://localhost:7777';
229
+ const couch = nock(sessionUrl)
230
+ .post('/_session', { username: username, password: password })
231
+ .reply(200, { ok: true }, { 'Set-Cookie': 'AuthSession=ABC123DEF4356;' })
232
+ .get('/')
233
+ .reply(200);
234
+ const db = request.client(url, { parallelism: 1 });
235
+ db.service.getServerInformation().then(response => {
236
+ assert.ok(response);
237
+ assert.ok(couch.isDone());
238
+ done();
239
+ }).catch(err => {
240
+ done(err);
241
+ });
242
+ });
243
+ });
244
+ });