@cloudant/couchbackup 2.9.15-SNAPSHOT.176 → 2.9.15

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 (424) hide show
  1. package/.scannerwork/report-task.txt +2 -2
  2. package/.scannerwork/scanner-report/analysis-cache2.pb +0 -0
  3. package/.scannerwork/scanner-report/analysis-warnings.pb +2 -2
  4. package/.scannerwork/scanner-report/analysis.log +1 -1
  5. package/.scannerwork/scanner-report/changesets-19.pb +1 -0
  6. package/.scannerwork/scanner-report/changesets-20.pb +1 -0
  7. package/.scannerwork/scanner-report/changesets-21.pb +1 -0
  8. package/.scannerwork/scanner-report/changesets-22.pb +1 -0
  9. package/.scannerwork/scanner-report/changesets-23.pb +1 -0
  10. package/.scannerwork/scanner-report/changesets-24.pb +1 -0
  11. package/.scannerwork/scanner-report/changesets-26.pb +1 -0
  12. package/.scannerwork/scanner-report/changesets-29.pb +1 -0
  13. package/.scannerwork/scanner-report/changesets-30.pb +1 -0
  14. package/.scannerwork/scanner-report/changesets-31.pb +1 -0
  15. package/.scannerwork/scanner-report/changesets-33.pb +1 -0
  16. package/.scannerwork/scanner-report/changesets-34.pb +1 -0
  17. package/.scannerwork/scanner-report/changesets-35.pb +1 -0
  18. package/.scannerwork/scanner-report/changesets-36.pb +1 -0
  19. package/.scannerwork/scanner-report/changesets-37.pb +1 -0
  20. package/.scannerwork/scanner-report/changesets-38.pb +1 -0
  21. package/.scannerwork/scanner-report/changesets-39.pb +1 -0
  22. package/.scannerwork/scanner-report/changesets-66.pb +1 -0
  23. package/.scannerwork/scanner-report/changesets-67.pb +1 -0
  24. package/.scannerwork/scanner-report/component-1.pb +2 -2
  25. package/.scannerwork/scanner-report/component-10.pb +1 -1
  26. package/.scannerwork/scanner-report/component-12.pb +1 -1
  27. package/.scannerwork/scanner-report/component-14.pb +1 -1
  28. package/.scannerwork/scanner-report/component-16.pb +1 -1
  29. package/.scannerwork/scanner-report/component-17.pb +1 -1
  30. package/.scannerwork/scanner-report/component-18.pb +1 -1
  31. package/.scannerwork/scanner-report/component-19.pb +1 -0
  32. package/.scannerwork/scanner-report/component-20.pb +1 -0
  33. package/.scannerwork/scanner-report/component-21.pb +1 -0
  34. package/.scannerwork/scanner-report/component-22.pb +1 -0
  35. package/.scannerwork/scanner-report/component-23.pb +1 -0
  36. package/.scannerwork/scanner-report/component-24.pb +1 -1
  37. package/.scannerwork/scanner-report/component-25.pb +1 -1
  38. package/.scannerwork/scanner-report/component-26.pb +1 -0
  39. package/.scannerwork/scanner-report/component-27.pb +1 -1
  40. package/.scannerwork/scanner-report/component-28.pb +1 -1
  41. package/.scannerwork/scanner-report/component-29.pb +1 -0
  42. package/.scannerwork/scanner-report/component-3.pb +1 -0
  43. package/.scannerwork/scanner-report/component-30.pb +1 -1
  44. package/.scannerwork/scanner-report/component-31.pb +1 -1
  45. package/.scannerwork/scanner-report/component-32.pb +1 -1
  46. package/.scannerwork/scanner-report/component-33.pb +1 -0
  47. package/.scannerwork/scanner-report/component-34.pb +1 -0
  48. package/.scannerwork/scanner-report/component-35.pb +1 -0
  49. package/.scannerwork/scanner-report/component-36.pb +1 -0
  50. package/.scannerwork/scanner-report/component-37.pb +1 -0
  51. package/.scannerwork/scanner-report/component-38.pb +1 -0
  52. package/.scannerwork/scanner-report/component-39.pb +1 -0
  53. package/.scannerwork/scanner-report/component-53.pb +1 -1
  54. package/.scannerwork/scanner-report/component-54.pb +1 -1
  55. package/.scannerwork/scanner-report/component-55.pb +1 -1
  56. package/.scannerwork/scanner-report/component-56.pb +1 -1
  57. package/.scannerwork/scanner-report/component-57.pb +1 -1
  58. package/.scannerwork/scanner-report/component-58.pb +1 -1
  59. package/.scannerwork/scanner-report/component-59.pb +1 -1
  60. package/.scannerwork/scanner-report/component-6.pb +1 -1
  61. package/.scannerwork/scanner-report/component-60.pb +1 -1
  62. package/.scannerwork/scanner-report/component-61.pb +1 -1
  63. package/.scannerwork/scanner-report/component-62.pb +1 -1
  64. package/.scannerwork/scanner-report/component-63.pb +1 -1
  65. package/.scannerwork/scanner-report/component-64.pb +1 -1
  66. package/.scannerwork/scanner-report/component-65.pb +1 -1
  67. package/.scannerwork/scanner-report/component-66.pb +1 -0
  68. package/.scannerwork/scanner-report/component-67.pb +1 -0
  69. package/.scannerwork/scanner-report/component-68.pb +1 -1
  70. package/.scannerwork/scanner-report/component-69.pb +1 -1
  71. package/.scannerwork/scanner-report/component-70.pb +1 -1
  72. package/.scannerwork/scanner-report/coverages-12.pb +0 -0
  73. package/.scannerwork/scanner-report/coverages-14.pb +0 -0
  74. package/.scannerwork/scanner-report/coverages-16.pb +0 -0
  75. package/.scannerwork/scanner-report/coverages-17.pb +0 -0
  76. package/.scannerwork/scanner-report/coverages-18.pb +0 -0
  77. package/.scannerwork/scanner-report/coverages-19.pb +0 -0
  78. package/.scannerwork/scanner-report/coverages-21.pb +0 -0
  79. package/.scannerwork/scanner-report/coverages-22.pb +0 -0
  80. package/.scannerwork/scanner-report/coverages-24.pb +0 -0
  81. package/.scannerwork/scanner-report/coverages-25.pb +0 -0
  82. package/.scannerwork/scanner-report/coverages-27.pb +0 -0
  83. package/.scannerwork/scanner-report/coverages-28.pb +0 -0
  84. package/.scannerwork/scanner-report/coverages-29.pb +0 -0
  85. package/.scannerwork/scanner-report/coverages-30.pb +0 -0
  86. package/.scannerwork/scanner-report/coverages-31.pb +0 -0
  87. package/.scannerwork/scanner-report/coverages-32.pb +0 -0
  88. package/.scannerwork/scanner-report/coverages-34.pb +0 -0
  89. package/.scannerwork/scanner-report/coverages-35.pb +0 -0
  90. package/.scannerwork/scanner-report/coverages-37.pb +0 -0
  91. package/.scannerwork/scanner-report/coverages-53.pb +0 -0
  92. package/.scannerwork/scanner-report/coverages-54.pb +0 -0
  93. package/.scannerwork/scanner-report/coverages-55.pb +0 -0
  94. package/.scannerwork/scanner-report/coverages-56.pb +0 -0
  95. package/.scannerwork/scanner-report/coverages-57.pb +0 -0
  96. package/.scannerwork/scanner-report/coverages-58.pb +0 -0
  97. package/.scannerwork/scanner-report/coverages-59.pb +0 -0
  98. package/.scannerwork/scanner-report/coverages-60.pb +0 -0
  99. package/.scannerwork/scanner-report/coverages-61.pb +0 -0
  100. package/.scannerwork/scanner-report/coverages-62.pb +0 -0
  101. package/.scannerwork/scanner-report/coverages-63.pb +0 -0
  102. package/.scannerwork/scanner-report/coverages-64.pb +0 -0
  103. package/.scannerwork/scanner-report/coverages-65.pb +0 -0
  104. package/.scannerwork/scanner-report/coverages-67.pb +0 -0
  105. package/.scannerwork/scanner-report/coverages-68.pb +0 -0
  106. package/.scannerwork/scanner-report/coverages-69.pb +0 -0
  107. package/.scannerwork/scanner-report/duplications-12.pb +2 -0
  108. package/.scannerwork/scanner-report/duplications-14.pb +2 -0
  109. package/.scannerwork/scanner-report/duplications-25.pb +2 -0
  110. package/.scannerwork/scanner-report/duplications-54.pb +0 -0
  111. package/.scannerwork/scanner-report/duplications-56.pb +2 -0
  112. package/.scannerwork/scanner-report/duplications-66.pb +2 -0
  113. package/.scannerwork/scanner-report/duplications-67.pb +0 -0
  114. package/.scannerwork/scanner-report/duplications-68.pb +0 -2
  115. package/.scannerwork/scanner-report/duplications-69.pb +0 -2
  116. package/.scannerwork/scanner-report/issues-17.pb +3 -0
  117. package/.scannerwork/scanner-report/issues-32.pb +4 -1
  118. package/.scannerwork/scanner-report/measures-10.pb +0 -0
  119. package/.scannerwork/scanner-report/measures-12.pb +0 -0
  120. package/.scannerwork/scanner-report/measures-14.pb +0 -0
  121. package/.scannerwork/scanner-report/measures-16.pb +0 -0
  122. package/.scannerwork/scanner-report/measures-17.pb +0 -0
  123. package/.scannerwork/scanner-report/measures-18.pb +0 -0
  124. package/.scannerwork/scanner-report/measures-19.pb +0 -0
  125. package/.scannerwork/scanner-report/measures-21.pb +0 -0
  126. package/.scannerwork/scanner-report/measures-22.pb +16 -0
  127. package/.scannerwork/scanner-report/measures-24.pb +0 -0
  128. package/.scannerwork/scanner-report/measures-25.pb +0 -0
  129. package/.scannerwork/scanner-report/measures-27.pb +0 -0
  130. package/.scannerwork/scanner-report/measures-28.pb +0 -0
  131. package/.scannerwork/scanner-report/measures-29.pb +0 -0
  132. package/.scannerwork/scanner-report/measures-3.pb +0 -0
  133. package/.scannerwork/scanner-report/measures-30.pb +0 -0
  134. package/.scannerwork/scanner-report/measures-31.pb +0 -0
  135. package/.scannerwork/scanner-report/measures-32.pb +0 -0
  136. package/.scannerwork/scanner-report/measures-34.pb +0 -0
  137. package/.scannerwork/scanner-report/measures-35.pb +0 -0
  138. package/.scannerwork/scanner-report/measures-37.pb +0 -0
  139. package/.scannerwork/scanner-report/measures-53.pb +0 -0
  140. package/.scannerwork/scanner-report/measures-54.pb +0 -0
  141. package/.scannerwork/scanner-report/measures-55.pb +0 -0
  142. package/.scannerwork/scanner-report/measures-56.pb +0 -0
  143. package/.scannerwork/scanner-report/measures-57.pb +0 -0
  144. package/.scannerwork/scanner-report/measures-58.pb +0 -0
  145. package/.scannerwork/scanner-report/measures-59.pb +0 -0
  146. package/.scannerwork/scanner-report/measures-6.pb +0 -0
  147. package/.scannerwork/scanner-report/measures-60.pb +0 -0
  148. package/.scannerwork/scanner-report/measures-61.pb +0 -0
  149. package/.scannerwork/scanner-report/measures-62.pb +0 -0
  150. package/.scannerwork/scanner-report/measures-63.pb +0 -0
  151. package/.scannerwork/scanner-report/measures-64.pb +0 -0
  152. package/.scannerwork/scanner-report/measures-65.pb +0 -0
  153. package/.scannerwork/scanner-report/measures-66.pb +0 -0
  154. package/.scannerwork/scanner-report/measures-67.pb +0 -0
  155. package/.scannerwork/scanner-report/measures-68.pb +0 -0
  156. package/.scannerwork/scanner-report/measures-69.pb +0 -0
  157. package/.scannerwork/scanner-report/metadata.pb +0 -0
  158. package/.scannerwork/scanner-report/source-10.txt +424 -92
  159. package/.scannerwork/scanner-report/source-12.txt +173 -14
  160. package/.scannerwork/scanner-report/source-14.txt +156 -145
  161. package/.scannerwork/scanner-report/source-16.txt +32 -99
  162. package/.scannerwork/scanner-report/source-17.txt +116 -115
  163. package/.scannerwork/scanner-report/source-18.txt +117 -29
  164. package/.scannerwork/scanner-report/source-19.txt +37 -0
  165. package/.scannerwork/scanner-report/source-21.txt +41 -0
  166. package/.scannerwork/scanner-report/source-22.txt +293 -0
  167. package/.scannerwork/scanner-report/source-24.txt +32 -424
  168. package/.scannerwork/scanner-report/source-25.txt +155 -386
  169. package/.scannerwork/scanner-report/source-27.txt +84 -65
  170. package/.scannerwork/scanner-report/source-28.txt +432 -43
  171. package/.scannerwork/scanner-report/source-29.txt +42 -0
  172. package/.scannerwork/scanner-report/source-3.txt +424 -0
  173. package/.scannerwork/scanner-report/source-30.txt +29 -424
  174. package/.scannerwork/scanner-report/source-31.txt +37 -102
  175. package/.scannerwork/scanner-report/source-32.txt +288 -89
  176. package/.scannerwork/scanner-report/source-34.txt +106 -0
  177. package/.scannerwork/scanner-report/source-35.txt +75 -0
  178. package/.scannerwork/scanner-report/source-37.txt +191 -0
  179. package/.scannerwork/scanner-report/source-53.txt +104 -61
  180. package/.scannerwork/scanner-report/source-54.txt +31 -14
  181. package/.scannerwork/scanner-report/source-55.txt +150 -23
  182. package/.scannerwork/scanner-report/source-56.txt +51 -167
  183. package/.scannerwork/scanner-report/source-57.txt +255 -80
  184. package/.scannerwork/scanner-report/source-58.txt +58 -427
  185. package/.scannerwork/scanner-report/source-59.txt +162 -118
  186. package/.scannerwork/scanner-report/source-6.txt +102 -41
  187. package/.scannerwork/scanner-report/source-60.txt +99 -27
  188. package/.scannerwork/scanner-report/source-61.txt +43 -16
  189. package/.scannerwork/scanner-report/source-62.txt +115 -315
  190. package/.scannerwork/scanner-report/source-63.txt +16 -27
  191. package/.scannerwork/scanner-report/source-64.txt +25 -21
  192. package/.scannerwork/scanner-report/source-65.txt +92 -274
  193. package/.scannerwork/scanner-report/{source-15.txt → source-66.txt} +29 -12
  194. package/.scannerwork/scanner-report/source-67.txt +414 -0
  195. package/.scannerwork/scanner-report/source-68.txt +42 -157
  196. package/.scannerwork/scanner-report/source-69.txt +57 -166
  197. package/.scannerwork/scanner-report/source-70.txt +155 -155
  198. package/.scannerwork/scanner-report/symbols-12.pb +180 -14
  199. package/.scannerwork/scanner-report/symbols-14.pb +147 -120
  200. package/.scannerwork/scanner-report/symbols-16.pb +7 -46
  201. package/.scannerwork/scanner-report/symbols-17.pb +86 -33
  202. package/.scannerwork/scanner-report/symbols-18.pb +71 -7
  203. package/.scannerwork/scanner-report/symbols-19.pb +9 -0
  204. package/.scannerwork/scanner-report/symbols-21.pb +31 -0
  205. package/.scannerwork/scanner-report/symbols-22.pb +428 -0
  206. package/.scannerwork/scanner-report/symbols-24.pb +9 -0
  207. package/.scannerwork/scanner-report/symbols-25.pb +179 -580
  208. package/.scannerwork/scanner-report/symbols-27.pb +69 -32
  209. package/.scannerwork/scanner-report/symbols-28.pb +790 -21
  210. package/.scannerwork/scanner-report/symbols-29.pb +19 -0
  211. package/.scannerwork/scanner-report/symbols-30.pb +8 -0
  212. package/.scannerwork/scanner-report/symbols-31.pb +13 -0
  213. package/.scannerwork/scanner-report/symbols-32.pb +353 -86
  214. package/.scannerwork/scanner-report/symbols-34.pb +59 -0
  215. package/.scannerwork/scanner-report/symbols-35.pb +39 -0
  216. package/.scannerwork/scanner-report/symbols-37.pb +209 -0
  217. package/.scannerwork/scanner-report/symbols-53.pb +30 -39
  218. package/.scannerwork/scanner-report/symbols-54.pb +20 -8
  219. package/.scannerwork/scanner-report/symbols-55.pb +126 -9
  220. package/.scannerwork/scanner-report/symbols-56.pb +41 -208
  221. package/.scannerwork/scanner-report/symbols-57.pb +354 -59
  222. package/.scannerwork/scanner-report/symbols-58.pb +43 -787
  223. package/.scannerwork/scanner-report/symbols-59.pb +143 -70
  224. package/.scannerwork/scanner-report/symbols-60.pb +46 -31
  225. package/.scannerwork/scanner-report/symbols-61.pb +19 -9
  226. package/.scannerwork/scanner-report/symbols-62.pb +33 -353
  227. package/.scannerwork/scanner-report/symbols-63.pb +14 -19
  228. package/.scannerwork/scanner-report/symbols-64.pb +18 -13
  229. package/.scannerwork/scanner-report/symbols-65.pb +57 -426
  230. package/.scannerwork/scanner-report/symbols-67.pb +604 -0
  231. package/.scannerwork/scanner-report/symbols-68.pb +21 -153
  232. package/.scannerwork/scanner-report/symbols-69.pb +32 -180
  233. package/.scannerwork/scanner-report/syntax-highlightings-10.pb +3329 -82
  234. package/.scannerwork/scanner-report/syntax-highlightings-12.pb +195 -15
  235. package/.scannerwork/scanner-report/syntax-highlightings-14.pb +156 -155
  236. package/.scannerwork/scanner-report/syntax-highlightings-16.pb +32 -96
  237. package/.scannerwork/scanner-report/syntax-highlightings-17.pb +90 -94
  238. package/.scannerwork/scanner-report/syntax-highlightings-18.pb +145 -26
  239. package/.scannerwork/scanner-report/syntax-highlightings-19.pb +61 -0
  240. package/.scannerwork/scanner-report/syntax-highlightings-21.pb +69 -0
  241. package/.scannerwork/scanner-report/syntax-highlightings-22.pb +720 -0
  242. package/.scannerwork/scanner-report/syntax-highlightings-24.pb +43 -3329
  243. package/.scannerwork/scanner-report/syntax-highlightings-25.pb +187 -548
  244. package/.scannerwork/scanner-report/syntax-highlightings-27.pb +77 -70
  245. package/.scannerwork/scanner-report/syntax-highlightings-28.pb +598 -53
  246. package/.scannerwork/scanner-report/syntax-highlightings-29.pb +66 -0
  247. package/.scannerwork/scanner-report/syntax-highlightings-3.pb +3342 -0
  248. package/.scannerwork/scanner-report/syntax-highlightings-30.pb +32 -3323
  249. package/.scannerwork/scanner-report/syntax-highlightings-31.pb +44 -674
  250. package/.scannerwork/scanner-report/syntax-highlightings-32.pb +582 -87
  251. package/.scannerwork/scanner-report/syntax-highlightings-34.pb +178 -0
  252. package/.scannerwork/scanner-report/syntax-highlightings-35.pb +101 -0
  253. package/.scannerwork/scanner-report/syntax-highlightings-37.pb +290 -0
  254. package/.scannerwork/scanner-report/syntax-highlightings-53.pb +83 -71
  255. package/.scannerwork/scanner-report/syntax-highlightings-54.pb +35 -20
  256. package/.scannerwork/scanner-report/syntax-highlightings-55.pb +179 -27
  257. package/.scannerwork/scanner-report/syntax-highlightings-56.pb +47 -256
  258. package/.scannerwork/scanner-report/syntax-highlightings-57.pb +244 -137
  259. package/.scannerwork/scanner-report/syntax-highlightings-58.pb +58 -590
  260. package/.scannerwork/scanner-report/syntax-highlightings-59.pb +196 -134
  261. package/.scannerwork/scanner-report/syntax-highlightings-6.pb +673 -34
  262. package/.scannerwork/scanner-report/syntax-highlightings-60.pb +95 -38
  263. package/.scannerwork/scanner-report/syntax-highlightings-61.pb +28 -23
  264. package/.scannerwork/scanner-report/syntax-highlightings-62.pb +93 -584
  265. package/.scannerwork/scanner-report/syntax-highlightings-63.pb +15 -36
  266. package/.scannerwork/scanner-report/syntax-highlightings-64.pb +23 -33
  267. package/.scannerwork/scanner-report/syntax-highlightings-65.pb +96 -683
  268. package/.scannerwork/scanner-report/syntax-highlightings-66.pb +93 -0
  269. package/.scannerwork/scanner-report/syntax-highlightings-67.pb +641 -0
  270. package/.scannerwork/scanner-report/syntax-highlightings-68.pb +58 -190
  271. package/.scannerwork/scanner-report/syntax-highlightings-69.pb +75 -200
  272. package/.scannerwork/scanner-report/syntax-highlightings-70.pb +94 -96
  273. package/CHANGES.md +4 -0
  274. package/package.json +1 -1
  275. package/test-18-results.xml +157 -157
  276. package/test-20-results.xml +153 -153
  277. package/test-21-results.xml +145 -145
  278. package/test-iam-20-results.xml +50 -50
  279. package/.scannerwork/scanner-report/changesets-10.pb +0 -2
  280. package/.scannerwork/scanner-report/changesets-11.pb +0 -1
  281. package/.scannerwork/scanner-report/changesets-13.pb +0 -1
  282. package/.scannerwork/scanner-report/changesets-15.pb +0 -1
  283. package/.scannerwork/scanner-report/changesets-4.pb +0 -1
  284. package/.scannerwork/scanner-report/changesets-44.pb +0 -1
  285. package/.scannerwork/scanner-report/changesets-45.pb +0 -1
  286. package/.scannerwork/scanner-report/changesets-46.pb +0 -1
  287. package/.scannerwork/scanner-report/changesets-47.pb +0 -1
  288. package/.scannerwork/scanner-report/changesets-48.pb +0 -1
  289. package/.scannerwork/scanner-report/changesets-49.pb +0 -1
  290. package/.scannerwork/scanner-report/changesets-5.pb +0 -1
  291. package/.scannerwork/scanner-report/changesets-50.pb +0 -1
  292. package/.scannerwork/scanner-report/changesets-51.pb +0 -1
  293. package/.scannerwork/scanner-report/changesets-52.pb +0 -1
  294. package/.scannerwork/scanner-report/changesets-6.pb +0 -1
  295. package/.scannerwork/scanner-report/changesets-7.pb +0 -1
  296. package/.scannerwork/scanner-report/changesets-8.pb +0 -1
  297. package/.scannerwork/scanner-report/changesets-9.pb +0 -1
  298. package/.scannerwork/scanner-report/component-11.pb +0 -1
  299. package/.scannerwork/scanner-report/component-13.pb +0 -1
  300. package/.scannerwork/scanner-report/component-15.pb +0 -1
  301. package/.scannerwork/scanner-report/component-4.pb +0 -1
  302. package/.scannerwork/scanner-report/component-44.pb +0 -1
  303. package/.scannerwork/scanner-report/component-45.pb +0 -1
  304. package/.scannerwork/scanner-report/component-46.pb +0 -1
  305. package/.scannerwork/scanner-report/component-47.pb +0 -1
  306. package/.scannerwork/scanner-report/component-48.pb +0 -1
  307. package/.scannerwork/scanner-report/component-49.pb +0 -1
  308. package/.scannerwork/scanner-report/component-5.pb +0 -1
  309. package/.scannerwork/scanner-report/component-50.pb +0 -1
  310. package/.scannerwork/scanner-report/component-51.pb +0 -1
  311. package/.scannerwork/scanner-report/component-52.pb +0 -1
  312. package/.scannerwork/scanner-report/component-7.pb +0 -1
  313. package/.scannerwork/scanner-report/component-8.pb +0 -1
  314. package/.scannerwork/scanner-report/component-9.pb +0 -1
  315. package/.scannerwork/scanner-report/coverages-11.pb +0 -0
  316. package/.scannerwork/scanner-report/coverages-13.pb +0 -0
  317. package/.scannerwork/scanner-report/coverages-15.pb +0 -0
  318. package/.scannerwork/scanner-report/coverages-4.pb +0 -0
  319. package/.scannerwork/scanner-report/coverages-44.pb +0 -0
  320. package/.scannerwork/scanner-report/coverages-47.pb +0 -0
  321. package/.scannerwork/scanner-report/coverages-5.pb +0 -0
  322. package/.scannerwork/scanner-report/coverages-6.pb +0 -0
  323. package/.scannerwork/scanner-report/coverages-7.pb +0 -0
  324. package/.scannerwork/scanner-report/coverages-8.pb +0 -0
  325. package/.scannerwork/scanner-report/coverages-9.pb +0 -0
  326. package/.scannerwork/scanner-report/duplications-10.pb +0 -2
  327. package/.scannerwork/scanner-report/duplications-15.pb +0 -3
  328. package/.scannerwork/scanner-report/duplications-44.pb +0 -2
  329. package/.scannerwork/scanner-report/issues-62.pb +0 -6
  330. package/.scannerwork/scanner-report/measures-11.pb +0 -0
  331. package/.scannerwork/scanner-report/measures-13.pb +0 -0
  332. package/.scannerwork/scanner-report/measures-15.pb +0 -0
  333. package/.scannerwork/scanner-report/measures-4.pb +0 -0
  334. package/.scannerwork/scanner-report/measures-44.pb +0 -0
  335. package/.scannerwork/scanner-report/measures-47.pb +0 -0
  336. package/.scannerwork/scanner-report/measures-5.pb +0 -0
  337. package/.scannerwork/scanner-report/measures-7.pb +0 -16
  338. package/.scannerwork/scanner-report/measures-8.pb +0 -0
  339. package/.scannerwork/scanner-report/measures-9.pb +0 -0
  340. package/.scannerwork/scanner-report/source-11.txt +0 -46
  341. package/.scannerwork/scanner-report/source-13.txt +0 -111
  342. package/.scannerwork/scanner-report/source-4.txt +0 -118
  343. package/.scannerwork/scanner-report/source-44.txt +0 -183
  344. package/.scannerwork/scanner-report/source-47.txt +0 -100
  345. package/.scannerwork/scanner-report/source-5.txt +0 -80
  346. package/.scannerwork/scanner-report/source-7.txt +0 -178
  347. package/.scannerwork/scanner-report/source-8.txt +0 -281
  348. package/.scannerwork/scanner-report/source-9.txt +0 -59
  349. package/.scannerwork/scanner-report/symbols-11.pb +0 -20
  350. package/.scannerwork/scanner-report/symbols-13.pb +0 -59
  351. package/.scannerwork/scanner-report/symbols-15.pb +0 -42
  352. package/.scannerwork/scanner-report/symbols-4.pb +0 -30
  353. package/.scannerwork/scanner-report/symbols-44.pb +0 -203
  354. package/.scannerwork/scanner-report/symbols-47.pb +0 -69
  355. package/.scannerwork/scanner-report/symbols-5.pb +0 -46
  356. package/.scannerwork/scanner-report/symbols-6.pb +0 -18
  357. package/.scannerwork/scanner-report/symbols-7.pb +0 -144
  358. package/.scannerwork/scanner-report/symbols-8.pb +0 -354
  359. package/.scannerwork/scanner-report/symbols-9.pb +0 -19
  360. package/.scannerwork/scanner-report/syntax-highlightings-11.pb +0 -64
  361. package/.scannerwork/scanner-report/syntax-highlightings-13.pb +0 -133
  362. package/.scannerwork/scanner-report/syntax-highlightings-15.pb +0 -81
  363. package/.scannerwork/scanner-report/syntax-highlightings-4.pb +0 -113
  364. package/.scannerwork/scanner-report/syntax-highlightings-44.pb +0 -280
  365. package/.scannerwork/scanner-report/syntax-highlightings-47.pb +0 -107
  366. package/.scannerwork/scanner-report/syntax-highlightings-5.pb +0 -95
  367. package/.scannerwork/scanner-report/syntax-highlightings-7.pb +0 -243
  368. package/.scannerwork/scanner-report/syntax-highlightings-8.pb +0 -285
  369. package/.scannerwork/scanner-report/syntax-highlightings-9.pb +0 -59
  370. /package/.scannerwork/scanner-report/{coverages-50.pb → coverages-20.pb} +0 -0
  371. /package/.scannerwork/scanner-report/{coverages-48.pb → coverages-23.pb} +0 -0
  372. /package/.scannerwork/scanner-report/{coverages-51.pb → coverages-26.pb} +0 -0
  373. /package/.scannerwork/scanner-report/{coverages-45.pb → coverages-33.pb} +0 -0
  374. /package/.scannerwork/scanner-report/{coverages-46.pb → coverages-36.pb} +0 -0
  375. /package/.scannerwork/scanner-report/{coverages-52.pb → coverages-38.pb} +0 -0
  376. /package/.scannerwork/scanner-report/{coverages-49.pb → coverages-39.pb} +0 -0
  377. /package/.scannerwork/scanner-report/{coverages-10.pb → coverages-66.pb} +0 -0
  378. /package/.scannerwork/scanner-report/{duplications-11.pb → duplications-19.pb} +0 -0
  379. /package/.scannerwork/scanner-report/{duplications-13.pb → duplications-20.pb} +0 -0
  380. /package/.scannerwork/scanner-report/{duplications-4.pb → duplications-21.pb} +0 -0
  381. /package/.scannerwork/scanner-report/{duplications-45.pb → duplications-22.pb} +0 -0
  382. /package/.scannerwork/scanner-report/{duplications-46.pb → duplications-23.pb} +0 -0
  383. /package/.scannerwork/scanner-report/{duplications-47.pb → duplications-24.pb} +0 -0
  384. /package/.scannerwork/scanner-report/{duplications-51.pb → duplications-26.pb} +0 -0
  385. /package/.scannerwork/scanner-report/{duplications-48.pb → duplications-29.pb} +0 -0
  386. /package/.scannerwork/scanner-report/{duplications-5.pb → duplications-31.pb} +0 -0
  387. /package/.scannerwork/scanner-report/{duplications-50.pb → duplications-33.pb} +0 -0
  388. /package/.scannerwork/scanner-report/{duplications-52.pb → duplications-34.pb} +0 -0
  389. /package/.scannerwork/scanner-report/{duplications-6.pb → duplications-35.pb} +0 -0
  390. /package/.scannerwork/scanner-report/{duplications-7.pb → duplications-36.pb} +0 -0
  391. /package/.scannerwork/scanner-report/{duplications-8.pb → duplications-37.pb} +0 -0
  392. /package/.scannerwork/scanner-report/{duplications-9.pb → duplications-38.pb} +0 -0
  393. /package/.scannerwork/scanner-report/{duplications-49.pb → duplications-39.pb} +0 -0
  394. /package/.scannerwork/scanner-report/{issues-51.pb → issues-26.pb} +0 -0
  395. /package/.scannerwork/scanner-report/{issues-63.pb → issues-29.pb} +0 -0
  396. /package/.scannerwork/scanner-report/{measures-50.pb → measures-20.pb} +0 -0
  397. /package/.scannerwork/scanner-report/{measures-48.pb → measures-23.pb} +0 -0
  398. /package/.scannerwork/scanner-report/{measures-51.pb → measures-26.pb} +0 -0
  399. /package/.scannerwork/scanner-report/{measures-45.pb → measures-33.pb} +0 -0
  400. /package/.scannerwork/scanner-report/{measures-46.pb → measures-36.pb} +0 -0
  401. /package/.scannerwork/scanner-report/{measures-52.pb → measures-38.pb} +0 -0
  402. /package/.scannerwork/scanner-report/{measures-49.pb → measures-39.pb} +0 -0
  403. /package/.scannerwork/scanner-report/{source-50.txt → source-20.txt} +0 -0
  404. /package/.scannerwork/scanner-report/{source-48.txt → source-23.txt} +0 -0
  405. /package/.scannerwork/scanner-report/{source-51.txt → source-26.txt} +0 -0
  406. /package/.scannerwork/scanner-report/{source-45.txt → source-33.txt} +0 -0
  407. /package/.scannerwork/scanner-report/{source-46.txt → source-36.txt} +0 -0
  408. /package/.scannerwork/scanner-report/{source-52.txt → source-38.txt} +0 -0
  409. /package/.scannerwork/scanner-report/{source-49.txt → source-39.txt} +0 -0
  410. /package/.scannerwork/scanner-report/{symbols-50.pb → symbols-20.pb} +0 -0
  411. /package/.scannerwork/scanner-report/{symbols-48.pb → symbols-23.pb} +0 -0
  412. /package/.scannerwork/scanner-report/{symbols-51.pb → symbols-26.pb} +0 -0
  413. /package/.scannerwork/scanner-report/{symbols-45.pb → symbols-33.pb} +0 -0
  414. /package/.scannerwork/scanner-report/{symbols-46.pb → symbols-36.pb} +0 -0
  415. /package/.scannerwork/scanner-report/{symbols-52.pb → symbols-38.pb} +0 -0
  416. /package/.scannerwork/scanner-report/{symbols-49.pb → symbols-39.pb} +0 -0
  417. /package/.scannerwork/scanner-report/{symbols-10.pb → symbols-66.pb} +0 -0
  418. /package/.scannerwork/scanner-report/{syntax-highlightings-50.pb → syntax-highlightings-20.pb} +0 -0
  419. /package/.scannerwork/scanner-report/{syntax-highlightings-48.pb → syntax-highlightings-23.pb} +0 -0
  420. /package/.scannerwork/scanner-report/{syntax-highlightings-51.pb → syntax-highlightings-26.pb} +0 -0
  421. /package/.scannerwork/scanner-report/{syntax-highlightings-45.pb → syntax-highlightings-33.pb} +0 -0
  422. /package/.scannerwork/scanner-report/{syntax-highlightings-46.pb → syntax-highlightings-36.pb} +0 -0
  423. /package/.scannerwork/scanner-report/{syntax-highlightings-52.pb → syntax-highlightings-38.pb} +0 -0
  424. /package/.scannerwork/scanner-report/{syntax-highlightings-49.pb → syntax-highlightings-39.pb} +0 -0
@@ -1,4 +1,4 @@
1
- // Copyright © 2017, 2021 IBM Corp. All rights reserved.
1
+ // Copyright © 2017, 2023 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.
@@ -11,119 +11,120 @@
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 before after */
14
16
  'use strict';
15
17
 
16
- const cliutils = require('./cliutils.js');
17
- const config = require('./config.js');
18
- const error = require('./error.js');
19
- const path = require('path');
20
- const pkg = require('../package.json');
21
-
22
- function parseBackupArgs() {
23
- const program = require('commander');
24
-
25
- // Option CLI defaults
26
- const defaults = config.cliDefaults();
27
-
28
- // Options set by environment variables
29
- const envVarOptions = {};
30
- config.applyEnvironmentVariables(envVarOptions);
31
-
32
- program
33
- .version(pkg.version)
34
- .description('Backup a CouchDB/Cloudant database to a backup text file.')
35
- .usage('[options...]')
36
- .option('-b, --buffer-size <n>',
37
- cliutils.getUsage('number of documents fetched at once', defaults.bufferSize),
38
- Number)
39
- .option('-d, --db <db>',
40
- cliutils.getUsage('name of the database to backup', defaults.db))
41
- .option('-k, --iam-api-key <API key>',
42
- cliutils.getUsage('IAM API key to access the Cloudant server'))
43
- .option('-l, --log <file>',
44
- cliutils.getUsage('file to store logging information during backup; invalid in "shallow" mode', 'a temporary file'),
45
- path.normalize)
46
- .option('-m, --mode <mode>',
47
- cliutils.getUsage('"shallow" if only a superficial backup is done (ignoring conflicts and revision tokens), else "full" for complete backup', defaults.mode),
48
- (mode) => { return mode.toLowerCase(); })
49
- .option('-o, --output <file>',
50
- cliutils.getUsage('file name to store the backup data', 'stdout'),
51
- path.normalize)
52
- .option('-p, --parallelism <n>',
53
- cliutils.getUsage('number of HTTP requests to perform in parallel when performing a backup; ignored in "shallow" mode', defaults.parallelism),
54
- Number)
55
- .option('-q, --quiet',
56
- cliutils.getUsage('suppress batch messages', defaults.quiet))
57
- .option('-r, --resume',
58
- cliutils.getUsage('continue a previous backup from its last known position; invalid in "shallow" mode', defaults.resume))
59
- .option('-t, --request-timeout <n>',
60
- cliutils.getUsage('milliseconds to wait for a response to a HTTP request before retrying the request', defaults.requestTimeout),
61
- Number)
62
- .option('-u, --url <url>',
63
- cliutils.getUsage('URL of the CouchDB/Cloudant server', defaults.url))
64
- .parse(process.argv);
65
-
66
- // Remove defaults that don't apply when using shallow mode
67
- if (program.opts().mode === 'shallow' || envVarOptions.mode === 'shallow') {
68
- delete defaults.parallelism;
69
- delete defaults.log;
70
- delete defaults.resume;
71
- }
72
-
73
- // Apply the options in order so that the CLI overrides env vars and env variables
74
- // override defaults.
75
- const opts = Object.assign({}, defaults, envVarOptions, program.opts());
76
-
77
- if (opts.resume && (opts.log === defaults.log)) {
78
- // If resuming and the log file arg is the newly generated tmp name from defaults then we know that --log wasn't specified.
79
- // We have to do this check here for the CLI case because of the default.
80
- error.terminationCallback(new error.BackupError('NoLogFileName', 'To resume a backup, a log file must be specified'));
81
- }
82
-
83
- return opts;
84
- }
85
-
86
- function parseRestoreArgs() {
87
- const program = require('commander');
88
-
89
- // Option CLI defaults
90
- const defaults = config.cliDefaults();
91
-
92
- // Options set by environment variables
93
- const envVarOptions = {};
94
- config.applyEnvironmentVariables(envVarOptions);
95
-
96
- program
97
- .version(pkg.version)
98
- .description('Restore a CouchDB/Cloudant database from a backup text file.')
99
- .usage('[options...]')
100
- .option('-b, --buffer-size <n>',
101
- cliutils.getUsage('number of documents restored at once', defaults.bufferSize),
102
- Number)
103
- .option('-d, --db <db>',
104
- cliutils.getUsage('name of the new, existing database to restore to', defaults.db))
105
- .option('-k, --iam-api-key <API key>',
106
- cliutils.getUsage('IAM API key to access the Cloudant server'))
107
- .option('-p, --parallelism <n>',
108
- cliutils.getUsage('number of HTTP requests to perform in parallel when restoring a backup', defaults.parallelism),
109
- Number)
110
- .option('-q, --quiet',
111
- cliutils.getUsage('suppress batch messages', defaults.quiet))
112
- .option('-t, --request-timeout <n>',
113
- cliutils.getUsage('milliseconds to wait for a response to a HTTP request before retrying the request', defaults.requestTimeout),
114
- Number)
115
- .option('-u, --url <url>',
116
- cliutils.getUsage('URL of the CouchDB/Cloudant server', defaults.url))
117
- .parse(process.argv);
118
-
119
- // Apply the options in order so that the CLI overrides env vars and env variables
120
- // override defaults.
121
- const opts = Object.assign({}, defaults, envVarOptions, program.opts());
122
-
123
- return opts;
124
- }
125
-
126
- module.exports = {
127
- parseBackupArgs: parseBackupArgs,
128
- parseRestoreArgs: parseRestoreArgs
129
- };
18
+ const assert = require('assert');
19
+ const applyEnvVars = require('../includes/config.js').applyEnvironmentVariables;
20
+
21
+ describe('#unit Configuration', function() {
22
+ let processEnvCopy;
23
+
24
+ before('Save env', function() {
25
+ // Copy env so we can reset it after the tests
26
+ processEnvCopy = JSON.parse(JSON.stringify(process.env));
27
+ });
28
+
29
+ after('Reset env', function() {
30
+ process.env = processEnvCopy;
31
+ });
32
+
33
+ it('respects the COUCH_URL env variable', function() {
34
+ process.env.COUCH_URL = 'http://user:pass@myurl.com';
35
+ const config = {};
36
+ applyEnvVars(config);
37
+ assert.strictEqual(typeof config.url, 'string');
38
+ assert.strictEqual(config.url, process.env.COUCH_URL);
39
+ });
40
+
41
+ it('respects the COUCH_DATABASE env variable', function() {
42
+ process.env.COUCH_DATABASE = 'mydb';
43
+ const config = {};
44
+ applyEnvVars(config);
45
+ assert.strictEqual(typeof config.db, 'string');
46
+ assert.strictEqual(config.db, process.env.COUCH_DATABASE);
47
+ });
48
+
49
+ it('respects the COUCH_BUFFER_SIZE env variable', function() {
50
+ process.env.COUCH_BUFFER_SIZE = '1000';
51
+ const config = {};
52
+ applyEnvVars(config);
53
+ assert.strictEqual(typeof config.bufferSize, 'number');
54
+ assert.strictEqual(config.bufferSize, 1000);
55
+ });
56
+
57
+ it('respects the COUCH_PARALLELISM env variable', function() {
58
+ process.env.COUCH_PARALLELISM = '20';
59
+ const config = {};
60
+ applyEnvVars(config);
61
+ assert.strictEqual(typeof config.parallelism, 'number');
62
+ assert.strictEqual(config.parallelism, 20);
63
+ });
64
+
65
+ it('respects the COUCH_REQUEST_TIMEOUT env variable', function() {
66
+ process.env.COUCH_REQUEST_TIMEOUT = '10000';
67
+ const config = {};
68
+ applyEnvVars(config);
69
+ assert.strictEqual(typeof config.requestTimeout, 'number');
70
+ assert.strictEqual(config.requestTimeout, 10000);
71
+ });
72
+
73
+ it('respects the CLOUDANT_IAM_API_KEY env variable', function() {
74
+ const key = 'ABC123-ZYX987_cba789-xyz321';
75
+ process.env.CLOUDANT_IAM_API_KEY = key;
76
+ const config = {};
77
+ applyEnvVars(config);
78
+ assert.strictEqual(typeof config.iamApiKey, 'string');
79
+ assert.strictEqual(config.iamApiKey, key);
80
+ });
81
+
82
+ it('respects the CLOUDANT_IAM_TOKEN_URL env variable', function() {
83
+ const u = 'https://testhost.example:1234/identity/token';
84
+ process.env.CLOUDANT_IAM_TOKEN_URL = u;
85
+ const config = {};
86
+ applyEnvVars(config);
87
+ assert.strictEqual(typeof config.iamTokenUrl, 'string');
88
+ assert.strictEqual(config.iamTokenUrl, u);
89
+ });
90
+
91
+ it('respects the COUCH_LOG env variable', function() {
92
+ process.env.COUCH_LOG = 'my.log';
93
+ const config = {};
94
+ applyEnvVars(config);
95
+ assert.strictEqual(typeof config.log, 'string');
96
+ assert.strictEqual(config.log, process.env.COUCH_LOG);
97
+ });
98
+
99
+ it('respects the COUCH_RESUME env variable', function() {
100
+ process.env.COUCH_RESUME = 'true';
101
+ const config = {};
102
+ applyEnvVars(config);
103
+ assert.strictEqual(typeof config.resume, 'boolean');
104
+ assert.strictEqual(config.resume, true);
105
+ });
106
+
107
+ it('respects the COUCH_OUTPUT env variable', function() {
108
+ process.env.COUCH_OUTPUT = 'myfile.txt';
109
+ const config = {};
110
+ applyEnvVars(config);
111
+ assert.strictEqual(typeof config.output, 'string');
112
+ assert.strictEqual(config.output, process.env.COUCH_OUTPUT);
113
+ });
114
+
115
+ it('respects the COUCH_MODE env variable', function() {
116
+ process.env.COUCH_MODE = 'shallow';
117
+ const config = {};
118
+ applyEnvVars(config);
119
+ assert.strictEqual(typeof config.mode, 'string');
120
+ assert.strictEqual(config.mode, 'shallow');
121
+ });
122
+
123
+ it('respects the COUCH_QUIET env variable', function() {
124
+ process.env.COUCH_QUIET = 'true';
125
+ const config = {};
126
+ applyEnvVars(config);
127
+ assert.strictEqual(typeof config.quiet, 'boolean');
128
+ assert.strictEqual(config.quiet, true);
129
+ });
130
+ });
@@ -1,4 +1,4 @@
1
- // Copyright © 2017 IBM Corp. All rights reserved.
1
+ // Copyright © 2017, 2023 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,35 +12,123 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- /* global after before describe */
15
+ /* global describe it beforeEach */
16
16
  'use strict';
17
17
 
18
- // Import the common hooks
19
- require('../test/hooks.js');
20
-
21
- const poisons = [
22
- 'normal',
23
- 'bandwidth-limit',
24
- 'latency',
25
- 'slow-read',
26
- 'rate-limit'
27
- ];
28
-
29
- poisons.forEach(function(poison) {
30
- describe('unreliable network tests (using poison ' + poison + ')', function() {
31
- before('start server', function() {
32
-
33
- // **************************
34
- // Currently these tests do nothing
35
- // pending resolution of https://github.com/IBM/couchbackup/issues/360
36
- // to add a new toxic server
37
- // **************************
38
- });
39
-
40
- after('stop server', function() {
41
- });
42
-
43
- delete require.cache[require.resolve('../test/ci_e2e.js')];
44
- require('../test/ci_e2e.js');
18
+ const assert = require('assert');
19
+ const fs = require('fs');
20
+ const nock = require('nock');
21
+ const request = require('../includes/request.js');
22
+ const writer = require('../includes/writer.js');
23
+ const noopEmitter = new (require('events')).EventEmitter();
24
+ const liner = require('../includes/liner.js');
25
+ const { once } = require('node:events');
26
+ const { pipeline } = require('node:stream/promises');
27
+ const longTestTimeout = 3000;
28
+
29
+ describe('#unit Check database restore writer', function() {
30
+ const dbUrl = 'http://localhost:5984/animaldb';
31
+ const db = request.client(dbUrl, { parallelism: 1 });
32
+
33
+ beforeEach('Reset nocks', function() {
34
+ nock.cleanAll();
35
+ });
36
+
37
+ it('should complete successfully', async function() {
38
+ nock(dbUrl)
39
+ .post('/_bulk_docs')
40
+ .reply(200, []); // success
41
+
42
+ const w = writer(db, 500, 1, noopEmitter);
43
+ return Promise.all([pipeline(fs.createReadStream('./test/fixtures/animaldb_expected.json'), liner(), w),
44
+ once(w, 'finished').then((data) => {
45
+ assert.strictEqual(data[0].total, 15);
46
+ assert.ok(nock.isDone());
47
+ })]);
48
+ });
49
+
50
+ it('should terminate on a fatal error', async function() {
51
+ nock(dbUrl)
52
+ .post('/_bulk_docs')
53
+ .reply(401, { error: 'Unauthorized' }); // fatal error
54
+
55
+ const w = writer(db, 500, 1, noopEmitter);
56
+ return assert.rejects(
57
+ pipeline(fs.createReadStream('./test/fixtures/animaldb_expected.json'), liner(), w),
58
+ (err) => {
59
+ assert.strictEqual(err.name, 'Unauthorized');
60
+ assert.strictEqual(err.message, 'Access is denied due to invalid credentials.');
61
+ assert.ok(nock.isDone());
62
+ return true;
63
+ }
64
+ );
65
+ });
66
+
67
+ it('should retry on transient errors', async function() {
68
+ nock(dbUrl)
69
+ .post('/_bulk_docs')
70
+ .reply(429, { error: 'Too Many Requests' }) // transient error
71
+ .post('/_bulk_docs')
72
+ .reply(500, { error: 'Internal Server Error' }) // transient error
73
+ .post('/_bulk_docs')
74
+ .reply(200, { ok: true }); // third time lucky success
75
+
76
+ const w = writer(db, 500, 1, noopEmitter);
77
+ return Promise.all([pipeline(fs.createReadStream('./test/fixtures/animaldb_expected.json'), liner(), w),
78
+ once(w, 'finished').then((data) => {
79
+ assert.strictEqual(data[0].total, 15);
80
+ assert.ok(nock.isDone());
81
+ })]);
82
+ }).timeout(longTestTimeout);
83
+
84
+ it('should fail after 3 transient errors', async function() {
85
+ nock(dbUrl)
86
+ .post('/_bulk_docs')
87
+ .reply(429, { error: 'Too Many Requests' }) // transient error
88
+ .post('/_bulk_docs')
89
+ .reply(500, { error: 'Internal Server Error' }) // transient error
90
+ .post('/_bulk_docs')
91
+ .reply(503, { error: 'Service Unavailable' }); // Final transient error
92
+
93
+ const w = writer(db, 500, 1, noopEmitter);
94
+ return assert.rejects(
95
+ pipeline(fs.createReadStream('./test/fixtures/animaldb_expected.json'), liner(), w),
96
+ (err) => {
97
+ assert.strictEqual(err.name, 'HTTPFatalError');
98
+ assert.strictEqual(err.message, `503 : post ${dbUrl}/_bulk_docs - Error: Service Unavailable`);
99
+ assert.ok(nock.isDone());
100
+ return true;
101
+ }
102
+ );
103
+ }).timeout(longTestTimeout);
104
+
105
+ it('should restore shallow backups without rev info successfully', async function() {
106
+ nock(dbUrl)
107
+ .post('/_bulk_docs')
108
+ .reply(200, [{ ok: true, id: 'foo', rev: '1-abc' }]); // success
109
+
110
+ const w = writer(db, 500, 1, noopEmitter);
111
+ return Promise.all([pipeline(fs.createReadStream('./test/fixtures/animaldb_old_shallow.json'), liner(), w),
112
+ once(w, 'finished').then((data) => {
113
+ assert.strictEqual(data[0].total, 11);
114
+ assert.ok(nock.isDone());
115
+ })]);
116
+ });
117
+
118
+ it('should get a batch error for non-empty array response with new_edits false', async function() {
119
+ nock(dbUrl)
120
+ .post('/_bulk_docs')
121
+ .reply(200, [{ id: 'foo', error: 'foo', reason: 'bar' }]);
122
+
123
+ const w = writer(db, 500, 1, noopEmitter);
124
+ return assert.rejects(
125
+ pipeline(fs.createReadStream('./test/fixtures/animaldb_expected.json'), liner(), w),
126
+ (err) => {
127
+ assert.strictEqual(err.name, 'Error');
128
+ assert.strictEqual(err.message, 'Error writing batch with new_edits:false and 1 items');
129
+ assert.ok(nock.isDone());
130
+ return true;
131
+ }
132
+ );
45
133
  });
46
134
  });
@@ -0,0 +1,37 @@
1
+ // Copyright © 2017, 2023 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
+
15
+ /* global describe it */
16
+ 'use strict';
17
+
18
+ delete require.cache[require.resolve('./citestutils.js')];
19
+ const u = require('./citestutils.js');
20
+
21
+ [{ useApi: true }, { useApi: false }].forEach(function(params) {
22
+ describe(u.scenario('End to end backup and restore', params), function() {
23
+ it('should backup and restore animaldb', async function() {
24
+ // Allow up to 60 s for backup and restore of animaldb
25
+ u.setTimeout(this, 60);
26
+ return u.testDirectBackupAndRestore(params, 'animaldb', this.dbName);
27
+ });
28
+
29
+ it('should backup and restore largedb1g #slow', async function() {
30
+ // Allow up to 30 m for backup and restore of largedb1g
31
+ // This is a long time but when many builds run in parallel it can take a
32
+ // while to get this done.
33
+ u.setTimeout(this, 30 * 60);
34
+ return u.testDirectBackupAndRestore(params, 'largedb1g', this.dbName);
35
+ });
36
+ });
37
+ });
@@ -0,0 +1,41 @@
1
+ // Copyright © 2017, 2023 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
+
15
+ /* global describe it */
16
+ 'use strict';
17
+
18
+ const assert = require('assert');
19
+ const logfilegetbatches = require('../includes/logfilegetbatches.js');
20
+
21
+ describe('#unit Fetching batches from a log file', function() {
22
+ it('should fetch multiple batches correctly', async function() {
23
+ return new Promise((resolve, reject) => {
24
+ logfilegetbatches('./test/fixtures/test.log', [1, 4], function(err, data) {
25
+ try {
26
+ assert.ok(!err);
27
+ assert.ok(data);
28
+ assert.strictEqual(typeof data, 'object');
29
+ assert.strictEqual(Object.keys(data).length, 2);
30
+ assert.deepStrictEqual(data['1'].docs, [{ id: '6' }, { id: '7' }, { id: '8' }, { id: '9' }, { id: '10' }]);
31
+ assert.strictEqual(data['1'].batch, 1);
32
+ assert.deepStrictEqual(data['4'].docs, [{ id: '21' }, { id: '22' }]);
33
+ assert.strictEqual(data['4'].batch, 4);
34
+ resolve();
35
+ } catch (err) {
36
+ reject(err);
37
+ }
38
+ });
39
+ });
40
+ });
41
+ });