@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
@@ -1,5 +1,4 @@
1
- #!/usr/bin/env node
2
- // Copyright © 2017, 2021 IBM Corp. All rights reserved.
1
+ // Copyright © 2017 IBM Corp. All rights reserved.
3
2
  //
4
3
  // Licensed under the Apache License, Version 2.0 (the "License");
5
4
  // you may not use this file except in compliance with the License.
@@ -12,45 +11,26 @@
12
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
12
  // See the License for the specific language governing permissions and
14
13
  // limitations under the License.
15
- 'use strict';
16
-
17
- const error = require('../includes/error.js');
18
- const cliutils = require('../includes/cliutils.js');
19
- const couchbackup = require('../app.js');
20
- const parser = require('../includes/parser.js');
21
- const debug = require('debug');
22
- const restoreDebug = debug('couchbackup:restore');
23
- const restoreBatchDebug = debug('couchbackup:restore:batch');
24
14
 
25
- restoreDebug.enabled = true;
26
-
27
- const program = parser.parseRestoreArgs();
28
- const databaseUrl = cliutils.databaseUrl(program.url, program.db);
29
- const opts = {
30
- bufferSize: program.bufferSize,
31
- parallelism: program.parallelism,
32
- requestTimeout: program.requestTimeout,
33
- iamApiKey: program.iamApiKey,
34
- iamTokenUrl: program.iamTokenUrl
35
- };
15
+ /* global describe it */
16
+ 'use strict';
36
17
 
37
- // log configuration to console
38
- console.error('='.repeat(80));
39
- console.error('Performing restore on ' + databaseUrl.replace(/\/\/.+@/g, '//****:****@') + ' using configuration:');
40
- console.error(JSON.stringify(opts, null, 2).replace(/"iamApiKey": "[^"]+"/, '"iamApiKey": "****"'));
41
- console.error('='.repeat(80));
18
+ const u = require('./citestutils.js');
42
19
 
43
- restoreBatchDebug.enabled = !program.quiet;
20
+ describe('Encryption tests', function() {
21
+ // Note CLI only to use openssl command
22
+ const p = { useApi: false, encryption: true };
44
23
 
45
- return couchbackup.restore(
46
- process.stdin, // restore from stdin
47
- databaseUrl,
48
- opts,
49
- error.terminationCallback
50
- ).on('restored', function(obj) {
51
- restoreBatchDebug('restored', obj.total);
52
- }).on('error', function(e) {
53
- restoreDebug('ERROR', e);
54
- }).on('finished', function(obj) {
55
- restoreDebug('finished', obj);
24
+ it('should backup and restore animaldb via an encrypted file', function(done) {
25
+ // Allow up to 60 s for backup and restore of animaldb
26
+ u.setTimeout(this, 60);
27
+ const encryptedBackup = `./${this.fileName}`;
28
+ u.testBackupAndRestoreViaFile(p, 'animaldb', encryptedBackup, this.dbName, function(err) {
29
+ if (err) {
30
+ done(err);
31
+ } else {
32
+ u.assertEncryptedFile(encryptedBackup, done);
33
+ }
34
+ });
35
+ });
56
36
  });
@@ -1,5 +1,4 @@
1
- #!/usr/bin/env node
2
- // Copyright © 2017, 2021 IBM Corp. All rights reserved.
1
+ // Copyright © 2023 IBM Corp. All rights reserved.
3
2
  //
4
3
  // Licensed under the Apache License, Version 2.0 (the "License");
5
4
  // you may not use this file except in compliance with the License.
@@ -12,66 +11,90 @@
12
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
12
  // See the License for the specific language governing permissions and
14
13
  // limitations under the License.
14
+
15
15
  'use strict';
16
16
 
17
- const error = require('../includes/error.js');
18
- const fs = require('fs');
19
- const cliutils = require('../includes/cliutils.js');
20
- const couchbackup = require('../app.js');
21
- const parser = require('../includes/parser.js');
22
- const debug = require('debug');
23
- const backupDebug = debug('couchbackup:backup');
24
- const backupBatchDebug = debug('couchbackup:backup:batch');
25
-
26
- backupDebug.enabled = true;
27
-
28
- const program = parser.parseBackupArgs();
29
-
30
- const databaseUrl = cliutils.databaseUrl(program.url, program.db);
31
- const opts = {
32
- bufferSize: program.bufferSize,
33
- log: program.log,
34
- mode: program.mode,
35
- parallelism: program.parallelism,
36
- requestTimeout: program.requestTimeout,
37
- resume: program.resume,
38
- iamApiKey: program.iamApiKey,
39
- iamTokenUrl: program.iamTokenUrl
17
+ const chunk = require('lodash/chunk');
18
+ const difference = require('lodash/difference');
19
+ const forOwn = require('lodash/forOwn');
20
+ const isEmpty = require('lodash/isEmpty');
21
+ const union = require('lodash/union');
22
+
23
+ const compare = async(database1, database2, client) => {
24
+ // check docs same in both dbs
25
+ const allDocs1 = await getAllDocs(client, database1);
26
+ const allDocs2 = await getAllDocs(client, database2);
27
+
28
+ const onlyInDb1 = (difference(allDocs1, allDocs2));
29
+ const onlyInDb2 = (difference(allDocs2, allDocs1));
30
+
31
+ let databasesSame = isEmpty(onlyInDb1) && isEmpty(onlyInDb2);
32
+
33
+ if (!databasesSame) {
34
+ console.log(onlyInDb1.length + ' documents only in db 1.');
35
+ console.log('Document IDs only in db 1: ' + onlyInDb1);
36
+ console.log(onlyInDb2.length + ' documents only in db 2.');
37
+ console.log('Document IDs only in db 2: ' + onlyInDb2);
38
+ }
39
+
40
+ // check revs same in docs common to both dbs
41
+ const partitionSize = 500;
42
+ const batches = chunk(union(allDocs1, allDocs2), partitionSize);
43
+
44
+ const missingRevsInDb2 = await getMissingRevs(client, database1, database2, batches);
45
+ const missingRevsInDb1 = await getMissingRevs(client, database2, database1, batches);
46
+
47
+ databasesSame = databasesSame && isEmpty(missingRevsInDb1) && isEmpty(missingRevsInDb2);
48
+
49
+ if (!databasesSame) {
50
+ console.log('Missing revs in db 1:' + JSON.stringify(missingRevsInDb1));
51
+ console.log('Missing revs in db 2:' + JSON.stringify(missingRevsInDb2));
52
+ }
53
+
54
+ return databasesSame;
40
55
  };
41
56
 
42
- // log configuration to console
43
- console.error('='.repeat(80));
44
- console.error('Performing backup on ' + databaseUrl.replace(/\/\/.+@/g, '//****:****@') + ' using configuration:');
45
- console.error(JSON.stringify(opts, null, 2).replace(/"iamApiKey": "[^"]+"/, '"iamApiKey": "****"'));
46
- console.error('='.repeat(80));
57
+ const getMissingRevs = async(client, databaseName1, databaseName2, batcheses) => {
58
+ const fakeRevisionId = '9999-a';
47
59
 
48
- backupBatchDebug.enabled = !program.quiet;
60
+ const missing = {};
49
61
 
50
- let ws = process.stdout;
62
+ // look in db1 - use a fake revision ID to fetch all leaf revisions
51
63
 
52
- // open output file
53
- if (program.output) {
54
- let flags = 'w';
55
- if (program.log && program.resume) {
56
- flags = 'a';
64
+ for (const batches of batcheses) {
65
+ const documentRevisions = {};
66
+ batches.forEach(id => (documentRevisions[id] = [fakeRevisionId]));
67
+
68
+ const result1 = await client.postRevsDiff({ db: databaseName1, documentRevisions });
69
+ const revsDiffRequestDb2 = {};
70
+ forOwn(result1.result, (v, k) => (revsDiffRequestDb2[k] = v.possible_ancestors));
71
+ // look in db2
72
+ const result2 = await client.postRevsDiff({ db: databaseName2, documentRevisions: revsDiffRequestDb2 });
73
+ forOwn(result2.result, (v, k) => {
74
+ if ('missing' in v) {
75
+ missing[k] = v.missing;
76
+ }
77
+ });
57
78
  }
58
- const fd = fs.openSync(program.output, flags);
59
- ws = fs.createWriteStream(null, { fd: fd });
60
- }
61
-
62
- backupDebug('Fetching all database changes...');
63
-
64
- return couchbackup.backup(
65
- databaseUrl,
66
- ws,
67
- opts,
68
- error.terminationCallback
69
- ).on('changes', function(batch) {
70
- backupBatchDebug('Total batches received:', batch + 1);
71
- }).on('written', function(obj) {
72
- backupBatchDebug('Written batch ID:', obj.batch, 'Total document revisions written:', obj.total, 'Time:', obj.time);
73
- }).on('error', function(e) {
74
- backupDebug('ERROR', e);
75
- }).on('finished', function(obj) {
76
- backupDebug('Finished - Total document revisions written:', obj.total);
77
- });
79
+ return missing;
80
+ };
81
+
82
+ const getAllDocs = async(client, database) => {
83
+ let allDocIds = [];
84
+ const limit = 2000;
85
+ let startKey = '\u0000';
86
+ do {
87
+ const pageOfDocIds = (await client.postAllDocs({ db: database, startKey, limit })).result.rows.map(r => r.id);
88
+ allDocIds = allDocIds.concat(pageOfDocIds);
89
+ if (pageOfDocIds.length < limit) {
90
+ startKey = null;
91
+ } else {
92
+ startKey = pageOfDocIds[limit - 1] + '\u0000';
93
+ }
94
+ } while (startKey != null);
95
+ return allDocIds;
96
+ };
97
+
98
+ module.exports = {
99
+ compare
100
+ };
@@ -1,4 +1,4 @@
1
- // Copyright © 2017 IBM Corp. All rights reserved.
1
+ // Copyright © 2017, 2022 IBM Corp. All rights reserved.
2
2
  //
3
3
  // Licensed under the Apache License, Version 2.0 (the "License");
4
4
  // you may not use this file except in compliance with the License.
@@ -12,23 +12,134 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- /* global describe it */
15
+ /* global describe it beforeEach */
16
16
  'use strict';
17
17
 
18
18
  const assert = require('assert');
19
- const logfilesummary = require('../includes/logfilesummary.js');
20
-
21
- describe('#unit Fetching summary from the log file', function() {
22
- it('should fetch a summary correctly', function(done) {
23
- logfilesummary('./test/fixtures/test.log', function(err, data) {
24
- assert.ok(!err);
25
- assert.ok(data);
26
- assert.strictEqual(data.changesComplete, true);
27
- assert.strictEqual(typeof data.batches, 'object');
28
- assert.strictEqual(Object.keys(data.batches).length, 2);
29
- assert.deepStrictEqual(data.batches['1'], true);
30
- assert.deepStrictEqual(data.batches['4'], true);
31
- done();
32
- });
19
+ const backup = require('../includes/shallowbackup.js');
20
+ const request = require('../includes/request.js');
21
+ const fs = require('fs');
22
+ const nock = require('nock');
23
+
24
+ // Function to create a DB object and call the shallow backup function
25
+ // This is normally done by app.js
26
+ function shallowBackup(dbUrl, opts) {
27
+ const db = request.client(dbUrl, opts);
28
+ // Disable compression to make body assertions easier
29
+ db.service.setEnableGzipCompression(false);
30
+ return backup(db, opts);
31
+ }
32
+
33
+ // Note all these tests include a body parameter of include_docs and a query
34
+ // string of include_docs because of a quirk of nano that when using the fetch
35
+ // method always adds the include_docs query string.
36
+ describe('#unit Perform backup using shallow backup', function() {
37
+ const dbUrl = 'http://localhost:5984/animaldb';
38
+ // Query string keys are stringified by Nano
39
+ const badgerKey = 'badger\0';
40
+ const kookaburraKey = 'kookaburra\0';
41
+ const snipeKey = 'snipe\0';
42
+
43
+ beforeEach('Reset nocks', function() {
44
+ nock.cleanAll();
45
+ });
46
+
47
+ it('should perform a shallow backup', function(done) {
48
+ const couch = nock(dbUrl)
49
+ // batch 1
50
+ .post('/_all_docs', { limit: 3, include_docs: true })
51
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_1.json', 'utf8')))
52
+ // batch 2
53
+ .post('/_all_docs', { limit: 3, start_key: badgerKey, include_docs: true })
54
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_2.json', 'utf8')))
55
+ // batch 3
56
+ .post('/_all_docs', { limit: 3, start_key: kookaburraKey, include_docs: true })
57
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_3.json', 'utf8')))
58
+ // batch 4
59
+ .post('/_all_docs', { limit: 3, start_key: snipeKey, include_docs: true })
60
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_4.json', 'utf8')));
61
+
62
+ shallowBackup(dbUrl, { bufferSize: 3, parallelism: 1 })
63
+ .on('error', function(err) {
64
+ assert.fail(err);
65
+ })
66
+ .on('received', function(data) {
67
+ if (data.batch === 3) {
68
+ assert.strictEqual(data.length, 2); // smaller last batch
69
+ } else {
70
+ assert.strictEqual(data.length, 3);
71
+ }
72
+ })
73
+ .on('finished', function(data) {
74
+ assert.strictEqual(data.total, 11);
75
+ assert.ok(couch.isDone());
76
+ done();
77
+ });
78
+ });
79
+
80
+ it('should perform a shallow backup with transient error', function(done) {
81
+ const couch = nock(dbUrl)
82
+ // batch 1
83
+ .post('/_all_docs', { limit: 3, include_docs: true })
84
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_1.json', 'utf8')))
85
+ // batch 2
86
+ .post('/_all_docs', { limit: 3, start_key: badgerKey, include_docs: true })
87
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_2.json', 'utf8')))
88
+ // batch 3 - transient error
89
+ .post('/_all_docs', { limit: 3, start_key: kookaburraKey, include_docs: true })
90
+ .reply(500, { error: 'Internal Server Error' })
91
+ // batch 3 - retry
92
+ .post('/_all_docs', { limit: 3, start_key: kookaburraKey, include_docs: true })
93
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_3.json', 'utf8')))
94
+ // batch 4
95
+ .post('/_all_docs', { limit: 3, start_key: snipeKey, include_docs: true })
96
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_4.json', 'utf8')));
97
+
98
+ shallowBackup(dbUrl, { bufferSize: 3, parallelism: 1 })
99
+ .on('error', function(err) {
100
+ assert.strictEqual(err.name, 'HTTPError');
101
+ })
102
+ .on('received', function(data) {
103
+ if (data.batch === 3) {
104
+ assert.strictEqual(data.length, 2); // smaller last batch
105
+ } else {
106
+ assert.strictEqual(data.length, 3);
107
+ }
108
+ })
109
+ .on('finished', function(data) {
110
+ assert.strictEqual(data.total, 11);
111
+ assert.ok(couch.isDone());
112
+ done();
113
+ });
114
+ });
115
+
116
+ it('should fail to perform a shallow backup on fatal error', function(done) {
117
+ const couch = nock(dbUrl)
118
+ // batch 1
119
+ .post('/_all_docs', { limit: 3, include_docs: true })
120
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_1.json', 'utf8')))
121
+ // batch 2
122
+ .post('/_all_docs', { limit: 3, start_key: badgerKey, include_docs: true })
123
+ .reply(200, JSON.parse(fs.readFileSync('./test/fixtures/animaldb_all_docs_2.json', 'utf8')))
124
+ // batch 3 - fatal error
125
+ .post('/_all_docs', { limit: 3, start_key: kookaburraKey, include_docs: true })
126
+ .reply(401, { error: 'Unauthorized' });
127
+
128
+ let errCount = 0;
129
+
130
+ shallowBackup(dbUrl, { bufferSize: 3, parallelism: 1 })
131
+ .on('error', function(err) {
132
+ errCount++;
133
+ assert.strictEqual(err.name, 'Unauthorized');
134
+ })
135
+ .on('received', function(data) {
136
+ assert.strictEqual(data.length, 3);
137
+ })
138
+ .on('finished', function(data) {
139
+ assert.strictEqual(data.total, 6);
140
+ assert.ok(couch.isDone());
141
+ assert.strictEqual(errCount, 1);
142
+ done();
143
+ });
33
144
  });
34
145
  });