@cloudant/couchbackup 2.9.13-SNAPSHOT.144 → 2.9.13

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 (414) 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-11.pb +1 -0
  4. package/.scannerwork/scanner-report/changesets-12.pb +1 -0
  5. package/.scannerwork/scanner-report/changesets-14.pb +1 -0
  6. package/.scannerwork/scanner-report/changesets-15.pb +1 -0
  7. package/.scannerwork/scanner-report/changesets-16.pb +1 -0
  8. package/.scannerwork/scanner-report/changesets-17.pb +1 -0
  9. package/.scannerwork/scanner-report/changesets-18.pb +1 -0
  10. package/.scannerwork/scanner-report/changesets-19.pb +1 -0
  11. package/.scannerwork/scanner-report/changesets-2.pb +1 -0
  12. package/.scannerwork/scanner-report/changesets-20.pb +1 -0
  13. package/.scannerwork/scanner-report/changesets-37.pb +1 -0
  14. package/.scannerwork/scanner-report/changesets-38.pb +1 -0
  15. package/.scannerwork/scanner-report/changesets-39.pb +1 -0
  16. package/.scannerwork/scanner-report/changesets-55.pb +1 -0
  17. package/.scannerwork/scanner-report/changesets-56.pb +1 -0
  18. package/.scannerwork/scanner-report/changesets-57.pb +1 -0
  19. package/.scannerwork/scanner-report/changesets-60.pb +1 -0
  20. package/.scannerwork/scanner-report/changesets-61.pb +1 -0
  21. package/.scannerwork/scanner-report/changesets-63.pb +1 -0
  22. package/.scannerwork/scanner-report/changesets-64.pb +1 -0
  23. package/.scannerwork/scanner-report/component-1.pb +1 -1
  24. package/.scannerwork/scanner-report/component-11.pb +1 -0
  25. package/.scannerwork/scanner-report/component-12.pb +1 -0
  26. package/.scannerwork/scanner-report/component-14.pb +1 -0
  27. package/.scannerwork/scanner-report/component-15.pb +1 -0
  28. package/.scannerwork/scanner-report/component-16.pb +1 -0
  29. package/.scannerwork/scanner-report/component-17.pb +1 -0
  30. package/.scannerwork/scanner-report/component-18.pb +1 -0
  31. package/.scannerwork/scanner-report/component-19.pb +1 -0
  32. package/.scannerwork/scanner-report/component-2.pb +1 -0
  33. package/.scannerwork/scanner-report/component-20.pb +1 -0
  34. package/.scannerwork/scanner-report/component-21.pb +1 -1
  35. package/.scannerwork/scanner-report/component-22.pb +1 -1
  36. package/.scannerwork/scanner-report/component-23.pb +1 -1
  37. package/.scannerwork/scanner-report/component-35.pb +1 -1
  38. package/.scannerwork/scanner-report/component-36.pb +1 -1
  39. package/.scannerwork/scanner-report/component-37.pb +1 -0
  40. package/.scannerwork/scanner-report/component-38.pb +1 -0
  41. package/.scannerwork/scanner-report/component-39.pb +1 -0
  42. package/.scannerwork/scanner-report/component-40.pb +1 -1
  43. package/.scannerwork/scanner-report/component-41.pb +1 -1
  44. package/.scannerwork/scanner-report/component-42.pb +1 -1
  45. package/.scannerwork/scanner-report/component-43.pb +1 -1
  46. package/.scannerwork/scanner-report/component-44.pb +1 -1
  47. package/.scannerwork/scanner-report/component-45.pb +1 -1
  48. package/.scannerwork/scanner-report/component-46.pb +1 -1
  49. package/.scannerwork/scanner-report/component-47.pb +1 -1
  50. package/.scannerwork/scanner-report/component-48.pb +1 -1
  51. package/.scannerwork/scanner-report/component-5.pb +1 -1
  52. package/.scannerwork/scanner-report/component-50.pb +1 -1
  53. package/.scannerwork/scanner-report/component-52.pb +1 -1
  54. package/.scannerwork/scanner-report/component-53.pb +1 -1
  55. package/.scannerwork/scanner-report/component-54.pb +1 -1
  56. package/.scannerwork/scanner-report/component-55.pb +1 -0
  57. package/.scannerwork/scanner-report/component-56.pb +1 -0
  58. package/.scannerwork/scanner-report/component-57.pb +1 -0
  59. package/.scannerwork/scanner-report/component-58.pb +1 -1
  60. package/.scannerwork/scanner-report/component-59.pb +1 -1
  61. package/.scannerwork/scanner-report/component-60.pb +1 -1
  62. package/.scannerwork/scanner-report/component-61.pb +1 -0
  63. package/.scannerwork/scanner-report/component-62.pb +1 -1
  64. package/.scannerwork/scanner-report/component-63.pb +1 -0
  65. package/.scannerwork/scanner-report/component-64.pb +1 -0
  66. package/.scannerwork/scanner-report/component-8.pb +1 -1
  67. package/.scannerwork/scanner-report/coverages-11.pb +0 -0
  68. package/.scannerwork/scanner-report/coverages-14.pb +0 -0
  69. package/.scannerwork/scanner-report/coverages-15.pb +0 -0
  70. package/.scannerwork/scanner-report/coverages-16.pb +0 -0
  71. package/.scannerwork/scanner-report/coverages-17.pb +0 -0
  72. package/.scannerwork/scanner-report/coverages-21.pb +0 -0
  73. package/.scannerwork/scanner-report/coverages-22.pb +0 -0
  74. package/.scannerwork/scanner-report/coverages-23.pb +0 -0
  75. package/.scannerwork/scanner-report/coverages-35.pb +0 -0
  76. package/.scannerwork/scanner-report/coverages-36.pb +0 -0
  77. package/.scannerwork/scanner-report/coverages-40.pb +0 -0
  78. package/.scannerwork/scanner-report/coverages-41.pb +0 -0
  79. package/.scannerwork/scanner-report/coverages-42.pb +0 -0
  80. package/.scannerwork/scanner-report/coverages-43.pb +0 -0
  81. package/.scannerwork/scanner-report/coverages-44.pb +0 -0
  82. package/.scannerwork/scanner-report/coverages-45.pb +0 -0
  83. package/.scannerwork/scanner-report/coverages-46.pb +0 -0
  84. package/.scannerwork/scanner-report/coverages-47.pb +0 -0
  85. package/.scannerwork/scanner-report/coverages-48.pb +0 -0
  86. package/.scannerwork/scanner-report/coverages-5.pb +0 -0
  87. package/.scannerwork/scanner-report/coverages-52.pb +0 -0
  88. package/.scannerwork/scanner-report/coverages-53.pb +0 -0
  89. package/.scannerwork/scanner-report/coverages-54.pb +0 -0
  90. package/.scannerwork/scanner-report/coverages-55.pb +0 -0
  91. package/.scannerwork/scanner-report/coverages-56.pb +0 -0
  92. package/.scannerwork/scanner-report/coverages-57.pb +0 -0
  93. package/.scannerwork/scanner-report/coverages-58.pb +0 -0
  94. package/.scannerwork/scanner-report/coverages-59.pb +0 -0
  95. package/.scannerwork/scanner-report/coverages-60.pb +0 -0
  96. package/.scannerwork/scanner-report/coverages-61.pb +0 -0
  97. package/.scannerwork/scanner-report/coverages-62.pb +0 -0
  98. package/.scannerwork/scanner-report/coverages-64.pb +0 -0
  99. package/.scannerwork/scanner-report/duplications-11.pb +2 -0
  100. package/.scannerwork/scanner-report/duplications-12.pb +2 -0
  101. package/.scannerwork/scanner-report/duplications-21.pb +3 -0
  102. package/.scannerwork/scanner-report/duplications-22.pb +2 -0
  103. package/.scannerwork/scanner-report/duplications-23.pb +3 -0
  104. package/.scannerwork/scanner-report/duplications-42.pb +3 -0
  105. package/.scannerwork/scanner-report/duplications-44.pb +0 -2
  106. package/.scannerwork/scanner-report/duplications-45.pb +2 -0
  107. package/.scannerwork/scanner-report/duplications-54.pb +0 -2
  108. package/.scannerwork/scanner-report/duplications-60.pb +2 -0
  109. package/.scannerwork/scanner-report/duplications-61.pb +2 -0
  110. package/.scannerwork/scanner-report/duplications-62.pb +0 -2
  111. package/.scannerwork/scanner-report/duplications-63.pb +0 -0
  112. package/.scannerwork/scanner-report/duplications-64.pb +0 -0
  113. package/.scannerwork/scanner-report/issues-23.pb +3 -2
  114. package/.scannerwork/scanner-report/issues-36.pb +3 -0
  115. package/.scannerwork/scanner-report/measures-11.pb +0 -0
  116. package/.scannerwork/scanner-report/measures-14.pb +0 -0
  117. package/.scannerwork/scanner-report/measures-15.pb +0 -0
  118. package/.scannerwork/scanner-report/measures-16.pb +0 -0
  119. package/.scannerwork/scanner-report/measures-17.pb +0 -0
  120. package/.scannerwork/scanner-report/measures-20.pb +0 -0
  121. package/.scannerwork/scanner-report/measures-21.pb +0 -0
  122. package/.scannerwork/scanner-report/measures-22.pb +0 -0
  123. package/.scannerwork/scanner-report/measures-23.pb +0 -0
  124. package/.scannerwork/scanner-report/measures-35.pb +0 -0
  125. package/.scannerwork/scanner-report/measures-36.pb +0 -0
  126. package/.scannerwork/scanner-report/measures-40.pb +0 -0
  127. package/.scannerwork/scanner-report/measures-41.pb +0 -0
  128. package/.scannerwork/scanner-report/measures-42.pb +0 -0
  129. package/.scannerwork/scanner-report/measures-43.pb +0 -0
  130. package/.scannerwork/scanner-report/measures-44.pb +0 -0
  131. package/.scannerwork/scanner-report/measures-45.pb +0 -0
  132. package/.scannerwork/scanner-report/measures-46.pb +0 -0
  133. package/.scannerwork/scanner-report/measures-47.pb +0 -0
  134. package/.scannerwork/scanner-report/measures-48.pb +0 -0
  135. package/.scannerwork/scanner-report/measures-5.pb +0 -0
  136. package/.scannerwork/scanner-report/measures-50.pb +0 -0
  137. package/.scannerwork/scanner-report/measures-52.pb +0 -0
  138. package/.scannerwork/scanner-report/measures-53.pb +12 -11
  139. package/.scannerwork/scanner-report/measures-54.pb +0 -0
  140. package/.scannerwork/scanner-report/measures-55.pb +0 -0
  141. package/.scannerwork/scanner-report/measures-56.pb +0 -0
  142. package/.scannerwork/scanner-report/measures-57.pb +0 -0
  143. package/.scannerwork/scanner-report/measures-58.pb +0 -0
  144. package/.scannerwork/scanner-report/measures-59.pb +0 -0
  145. package/.scannerwork/scanner-report/measures-60.pb +0 -0
  146. package/.scannerwork/scanner-report/measures-61.pb +0 -0
  147. package/.scannerwork/scanner-report/measures-62.pb +0 -0
  148. package/.scannerwork/scanner-report/measures-64.pb +0 -0
  149. package/.scannerwork/scanner-report/measures-8.pb +0 -0
  150. package/.scannerwork/scanner-report/metadata.pb +0 -0
  151. package/.scannerwork/scanner-report/source-11.txt +175 -0
  152. package/.scannerwork/scanner-report/source-14.txt +68 -0
  153. package/.scannerwork/scanner-report/source-15.txt +100 -0
  154. package/.scannerwork/scanner-report/{source-28.txt → source-16.txt} +14 -7
  155. package/.scannerwork/scanner-report/source-17.txt +63 -0
  156. package/.scannerwork/scanner-report/source-20.txt +625 -0
  157. package/.scannerwork/scanner-report/source-21.txt +97 -14
  158. package/.scannerwork/scanner-report/source-22.txt +203 -46
  159. package/.scannerwork/scanner-report/source-23.txt +213 -111
  160. package/.scannerwork/scanner-report/source-35.txt +346 -14
  161. package/.scannerwork/scanner-report/source-36.txt +125 -46
  162. package/.scannerwork/scanner-report/source-40.txt +19 -403
  163. package/.scannerwork/scanner-report/source-41.txt +15 -115
  164. package/.scannerwork/scanner-report/source-42.txt +113 -36
  165. package/.scannerwork/scanner-report/source-43.txt +64 -253
  166. package/.scannerwork/scanner-report/source-44.txt +132 -51
  167. package/.scannerwork/scanner-report/source-45.txt +267 -138
  168. package/.scannerwork/scanner-report/source-46.txt +130 -101
  169. package/.scannerwork/scanner-report/source-47.txt +37 -61
  170. package/.scannerwork/scanner-report/source-48.txt +62 -16
  171. package/.scannerwork/scanner-report/source-5.txt +382 -64
  172. package/.scannerwork/scanner-report/source-50.txt +509 -46
  173. package/.scannerwork/scanner-report/source-52.txt +16 -163
  174. package/.scannerwork/scanner-report/source-53.txt +148 -74
  175. package/.scannerwork/scanner-report/source-54.txt +18 -64
  176. package/.scannerwork/scanner-report/source-55.txt +129 -0
  177. package/.scannerwork/scanner-report/source-56.txt +281 -0
  178. package/.scannerwork/scanner-report/source-57.txt +118 -0
  179. package/.scannerwork/scanner-report/source-58.txt +84 -36
  180. package/.scannerwork/scanner-report/source-59.txt +60 -57
  181. package/.scannerwork/scanner-report/source-60.txt +75 -509
  182. package/.scannerwork/scanner-report/source-61.txt +92 -0
  183. package/.scannerwork/scanner-report/source-62.txt +35 -156
  184. package/.scannerwork/scanner-report/source-64.txt +164 -0
  185. package/.scannerwork/scanner-report/source-8.txt +167 -625
  186. package/.scannerwork/scanner-report/symbols-11.pb +153 -0
  187. package/.scannerwork/scanner-report/symbols-14.pb +45 -0
  188. package/.scannerwork/scanner-report/symbols-15.pb +69 -0
  189. package/.scannerwork/scanner-report/symbols-16.pb +14 -0
  190. package/.scannerwork/scanner-report/symbols-17.pb +43 -0
  191. package/.scannerwork/scanner-report/symbols-21.pb +77 -14
  192. package/.scannerwork/scanner-report/symbols-22.pb +417 -44
  193. package/.scannerwork/scanner-report/symbols-23.pb +387 -109
  194. package/.scannerwork/scanner-report/symbols-35.pb +494 -10
  195. package/.scannerwork/scanner-report/symbols-36.pb +115 -42
  196. package/.scannerwork/scanner-report/symbols-40.pb +10 -610
  197. package/.scannerwork/scanner-report/symbols-41.pb +9 -33
  198. package/.scannerwork/scanner-report/symbols-42.pb +97 -15
  199. package/.scannerwork/scanner-report/symbols-43.pb +60 -354
  200. package/.scannerwork/scanner-report/symbols-44.pb +111 -41
  201. package/.scannerwork/scanner-report/symbols-45.pb +482 -122
  202. package/.scannerwork/scanner-report/symbols-46.pb +85 -30
  203. package/.scannerwork/scanner-report/symbols-47.pb +18 -45
  204. package/.scannerwork/scanner-report/symbols-48.pb +29 -13
  205. package/.scannerwork/scanner-report/symbols-5.pb +610 -69
  206. package/.scannerwork/scanner-report/symbols-52.pb +13 -143
  207. package/.scannerwork/scanner-report/symbols-53.pb +143 -41
  208. package/.scannerwork/scanner-report/symbols-54.pb +18 -42
  209. package/.scannerwork/scanner-report/symbols-55.pb +33 -0
  210. package/.scannerwork/scanner-report/symbols-56.pb +354 -0
  211. package/.scannerwork/scanner-report/symbols-57.pb +30 -0
  212. package/.scannerwork/scanner-report/symbols-58.pb +41 -18
  213. package/.scannerwork/scanner-report/symbols-59.pb +45 -29
  214. package/.scannerwork/scanner-report/symbols-60.pb +42 -0
  215. package/.scannerwork/scanner-report/symbols-61.pb +44 -0
  216. package/.scannerwork/scanner-report/symbols-62.pb +14 -152
  217. package/.scannerwork/scanner-report/symbols-64.pb +126 -0
  218. package/.scannerwork/scanner-report/syntax-highlightings-11.pb +214 -0
  219. package/.scannerwork/scanner-report/syntax-highlightings-14.pb +110 -0
  220. package/.scannerwork/scanner-report/syntax-highlightings-15.pb +105 -0
  221. package/.scannerwork/scanner-report/syntax-highlightings-16.pb +54 -0
  222. package/.scannerwork/scanner-report/syntax-highlightings-17.pb +82 -0
  223. package/.scannerwork/scanner-report/syntax-highlightings-20.pb +887 -0
  224. package/.scannerwork/scanner-report/syntax-highlightings-21.pb +123 -19
  225. package/.scannerwork/scanner-report/syntax-highlightings-22.pb +281 -60
  226. package/.scannerwork/scanner-report/syntax-highlightings-23.pb +292 -97
  227. package/.scannerwork/scanner-report/syntax-highlightings-35.pb +594 -14
  228. package/.scannerwork/scanner-report/syntax-highlightings-36.pb +98 -46
  229. package/.scannerwork/scanner-report/syntax-highlightings-40.pb +21 -619
  230. package/.scannerwork/scanner-report/syntax-highlightings-41.pb +16 -97
  231. package/.scannerwork/scanner-report/syntax-highlightings-42.pb +153 -25
  232. package/.scannerwork/scanner-report/syntax-highlightings-43.pb +65 -240
  233. package/.scannerwork/scanner-report/syntax-highlightings-44.pb +189 -44
  234. package/.scannerwork/scanner-report/syntax-highlightings-45.pb +593 -147
  235. package/.scannerwork/scanner-report/syntax-highlightings-46.pb +154 -76
  236. package/.scannerwork/scanner-report/syntax-highlightings-47.pb +61 -74
  237. package/.scannerwork/scanner-report/syntax-highlightings-48.pb +91 -33
  238. package/.scannerwork/scanner-report/syntax-highlightings-5.pb +613 -70
  239. package/.scannerwork/scanner-report/syntax-highlightings-50.pb +3736 -53
  240. package/.scannerwork/scanner-report/syntax-highlightings-52.pb +15 -213
  241. package/.scannerwork/scanner-report/syntax-highlightings-53.pb +205 -78
  242. package/.scannerwork/scanner-report/syntax-highlightings-54.pb +27 -53
  243. package/.scannerwork/scanner-report/syntax-highlightings-55.pb +129 -0
  244. package/.scannerwork/scanner-report/syntax-highlightings-56.pb +285 -0
  245. package/.scannerwork/scanner-report/syntax-highlightings-57.pb +113 -0
  246. package/.scannerwork/scanner-report/syntax-highlightings-58.pb +97 -63
  247. package/.scannerwork/scanner-report/syntax-highlightings-59.pb +74 -82
  248. package/.scannerwork/scanner-report/syntax-highlightings-60.pb +67 -3736
  249. package/.scannerwork/scanner-report/syntax-highlightings-61.pb +90 -0
  250. package/.scannerwork/scanner-report/syntax-highlightings-62.pb +23 -183
  251. package/.scannerwork/scanner-report/syntax-highlightings-64.pb +213 -0
  252. package/.scannerwork/scanner-report/syntax-highlightings-8.pb +809 -747
  253. package/CHANGES.md +5 -0
  254. package/package.json +1 -1
  255. package/test-18-results.xml +163 -163
  256. package/test-iam-18-results.xml +49 -49
  257. package/.scannerwork/scanner-report/changesets-24.pb +0 -1
  258. package/.scannerwork/scanner-report/changesets-25.pb +0 -1
  259. package/.scannerwork/scanner-report/changesets-26.pb +0 -1
  260. package/.scannerwork/scanner-report/changesets-27.pb +0 -1
  261. package/.scannerwork/scanner-report/changesets-28.pb +0 -1
  262. package/.scannerwork/scanner-report/changesets-29.pb +0 -1
  263. package/.scannerwork/scanner-report/changesets-3.pb +0 -1
  264. package/.scannerwork/scanner-report/changesets-30.pb +0 -1
  265. package/.scannerwork/scanner-report/changesets-31.pb +0 -1
  266. package/.scannerwork/scanner-report/changesets-32.pb +0 -1
  267. package/.scannerwork/scanner-report/changesets-33.pb +0 -1
  268. package/.scannerwork/scanner-report/changesets-34.pb +0 -1
  269. package/.scannerwork/scanner-report/changesets-4.pb +0 -1
  270. package/.scannerwork/scanner-report/changesets-49.pb +0 -1
  271. package/.scannerwork/scanner-report/changesets-50.pb +0 -1
  272. package/.scannerwork/scanner-report/changesets-6.pb +0 -1
  273. package/.scannerwork/scanner-report/changesets-65.pb +0 -1
  274. package/.scannerwork/scanner-report/changesets-7.pb +0 -1
  275. package/.scannerwork/scanner-report/changesets-8.pb +0 -1
  276. package/.scannerwork/scanner-report/changesets-9.pb +0 -1
  277. package/.scannerwork/scanner-report/component-24.pb +0 -1
  278. package/.scannerwork/scanner-report/component-25.pb +0 -1
  279. package/.scannerwork/scanner-report/component-26.pb +0 -1
  280. package/.scannerwork/scanner-report/component-27.pb +0 -1
  281. package/.scannerwork/scanner-report/component-28.pb +0 -1
  282. package/.scannerwork/scanner-report/component-29.pb +0 -1
  283. package/.scannerwork/scanner-report/component-3.pb +0 -1
  284. package/.scannerwork/scanner-report/component-30.pb +0 -1
  285. package/.scannerwork/scanner-report/component-31.pb +0 -1
  286. package/.scannerwork/scanner-report/component-32.pb +0 -1
  287. package/.scannerwork/scanner-report/component-33.pb +0 -1
  288. package/.scannerwork/scanner-report/component-34.pb +0 -1
  289. package/.scannerwork/scanner-report/component-4.pb +0 -1
  290. package/.scannerwork/scanner-report/component-49.pb +0 -1
  291. package/.scannerwork/scanner-report/component-6.pb +0 -1
  292. package/.scannerwork/scanner-report/component-65.pb +0 -1
  293. package/.scannerwork/scanner-report/component-67.pb +0 -1
  294. package/.scannerwork/scanner-report/component-7.pb +0 -1
  295. package/.scannerwork/scanner-report/component-9.pb +0 -1
  296. package/.scannerwork/scanner-report/coverages-27.pb +0 -0
  297. package/.scannerwork/scanner-report/coverages-28.pb +0 -0
  298. package/.scannerwork/scanner-report/coverages-29.pb +0 -0
  299. package/.scannerwork/scanner-report/coverages-30.pb +0 -0
  300. package/.scannerwork/scanner-report/coverages-32.pb +0 -0
  301. package/.scannerwork/scanner-report/coverages-33.pb +0 -0
  302. package/.scannerwork/scanner-report/coverages-34.pb +0 -0
  303. package/.scannerwork/scanner-report/coverages-4.pb +0 -0
  304. package/.scannerwork/scanner-report/coverages-50.pb +0 -0
  305. package/.scannerwork/scanner-report/coverages-6.pb +0 -0
  306. package/.scannerwork/scanner-report/coverages-9.pb +0 -0
  307. package/.scannerwork/scanner-report/duplications-27.pb +0 -2
  308. package/.scannerwork/scanner-report/duplications-30.pb +0 -3
  309. package/.scannerwork/scanner-report/duplications-33.pb +0 -3
  310. package/.scannerwork/scanner-report/duplications-34.pb +0 -2
  311. package/.scannerwork/scanner-report/duplications-6.pb +0 -3
  312. package/.scannerwork/scanner-report/duplications-65.pb +0 -2
  313. package/.scannerwork/scanner-report/issues-33.pb +0 -4
  314. package/.scannerwork/scanner-report/measures-27.pb +0 -0
  315. package/.scannerwork/scanner-report/measures-28.pb +0 -0
  316. package/.scannerwork/scanner-report/measures-29.pb +0 -0
  317. package/.scannerwork/scanner-report/measures-30.pb +0 -0
  318. package/.scannerwork/scanner-report/measures-32.pb +0 -0
  319. package/.scannerwork/scanner-report/measures-33.pb +0 -0
  320. package/.scannerwork/scanner-report/measures-34.pb +0 -15
  321. package/.scannerwork/scanner-report/measures-4.pb +0 -0
  322. package/.scannerwork/scanner-report/measures-6.pb +0 -0
  323. package/.scannerwork/scanner-report/measures-67.pb +0 -0
  324. package/.scannerwork/scanner-report/measures-9.pb +0 -0
  325. package/.scannerwork/scanner-report/source-27.txt +0 -225
  326. package/.scannerwork/scanner-report/source-29.txt +0 -156
  327. package/.scannerwork/scanner-report/source-30.txt +0 -131
  328. package/.scannerwork/scanner-report/source-32.txt +0 -92
  329. package/.scannerwork/scanner-report/source-33.txt +0 -244
  330. package/.scannerwork/scanner-report/source-34.txt +0 -293
  331. package/.scannerwork/scanner-report/source-4.txt +0 -366
  332. package/.scannerwork/scanner-report/source-6.txt +0 -119
  333. package/.scannerwork/scanner-report/source-67.txt +0 -167
  334. package/.scannerwork/scanner-report/source-9.txt +0 -147
  335. package/.scannerwork/scanner-report/symbols-27.pb +0 -418
  336. package/.scannerwork/scanner-report/symbols-28.pb +0 -9
  337. package/.scannerwork/scanner-report/symbols-29.pb +0 -112
  338. package/.scannerwork/scanner-report/symbols-30.pb +0 -97
  339. package/.scannerwork/scanner-report/symbols-32.pb +0 -60
  340. package/.scannerwork/scanner-report/symbols-33.pb +0 -394
  341. package/.scannerwork/scanner-report/symbols-34.pb +0 -486
  342. package/.scannerwork/scanner-report/symbols-4.pb +0 -494
  343. package/.scannerwork/scanner-report/symbols-50.pb +0 -20
  344. package/.scannerwork/scanner-report/symbols-6.pb +0 -77
  345. package/.scannerwork/scanner-report/symbols-9.pb +0 -85
  346. package/.scannerwork/scanner-report/syntax-highlightings-27.pb +0 -331
  347. package/.scannerwork/scanner-report/syntax-highlightings-28.pb +0 -48
  348. package/.scannerwork/scanner-report/syntax-highlightings-29.pb +0 -223
  349. package/.scannerwork/scanner-report/syntax-highlightings-30.pb +0 -182
  350. package/.scannerwork/scanner-report/syntax-highlightings-32.pb +0 -110
  351. package/.scannerwork/scanner-report/syntax-highlightings-33.pb +0 -329
  352. package/.scannerwork/scanner-report/syntax-highlightings-34.pb +0 -659
  353. package/.scannerwork/scanner-report/syntax-highlightings-4.pb +0 -630
  354. package/.scannerwork/scanner-report/syntax-highlightings-6.pb +0 -158
  355. package/.scannerwork/scanner-report/syntax-highlightings-67.pb +0 -949
  356. package/.scannerwork/scanner-report/syntax-highlightings-9.pb +0 -191
  357. /package/.scannerwork/scanner-report/{coverages-65.pb → coverages-12.pb} +0 -0
  358. /package/.scannerwork/scanner-report/{coverages-24.pb → coverages-18.pb} +0 -0
  359. /package/.scannerwork/scanner-report/{coverages-31.pb → coverages-19.pb} +0 -0
  360. /package/.scannerwork/scanner-report/{coverages-3.pb → coverages-2.pb} +0 -0
  361. /package/.scannerwork/scanner-report/{coverages-8.pb → coverages-20.pb} +0 -0
  362. /package/.scannerwork/scanner-report/{coverages-26.pb → coverages-37.pb} +0 -0
  363. /package/.scannerwork/scanner-report/{coverages-7.pb → coverages-38.pb} +0 -0
  364. /package/.scannerwork/scanner-report/{coverages-25.pb → coverages-39.pb} +0 -0
  365. /package/.scannerwork/scanner-report/{coverages-49.pb → coverages-63.pb} +0 -0
  366. /package/.scannerwork/scanner-report/{duplications-24.pb → duplications-14.pb} +0 -0
  367. /package/.scannerwork/scanner-report/{duplications-25.pb → duplications-15.pb} +0 -0
  368. /package/.scannerwork/scanner-report/{duplications-29.pb → duplications-16.pb} +0 -0
  369. /package/.scannerwork/scanner-report/{duplications-3.pb → duplications-17.pb} +0 -0
  370. /package/.scannerwork/scanner-report/{duplications-31.pb → duplications-18.pb} +0 -0
  371. /package/.scannerwork/scanner-report/{duplications-32.pb → duplications-19.pb} +0 -0
  372. /package/.scannerwork/scanner-report/{duplications-4.pb → duplications-2.pb} +0 -0
  373. /package/.scannerwork/scanner-report/{duplications-41.pb → duplications-20.pb} +0 -0
  374. /package/.scannerwork/scanner-report/{duplications-26.pb → duplications-37.pb} +0 -0
  375. /package/.scannerwork/scanner-report/{duplications-49.pb → duplications-38.pb} +0 -0
  376. /package/.scannerwork/scanner-report/{duplications-50.pb → duplications-39.pb} +0 -0
  377. /package/.scannerwork/scanner-report/{duplications-7.pb → duplications-55.pb} +0 -0
  378. /package/.scannerwork/scanner-report/{duplications-8.pb → duplications-56.pb} +0 -0
  379. /package/.scannerwork/scanner-report/{duplications-9.pb → duplications-57.pb} +0 -0
  380. /package/.scannerwork/scanner-report/{issues-4.pb → issues-35.pb} +0 -0
  381. /package/.scannerwork/scanner-report/{issues-25.pb → issues-39.pb} +0 -0
  382. /package/.scannerwork/scanner-report/{measures-65.pb → measures-12.pb} +0 -0
  383. /package/.scannerwork/scanner-report/{measures-24.pb → measures-18.pb} +0 -0
  384. /package/.scannerwork/scanner-report/{measures-31.pb → measures-19.pb} +0 -0
  385. /package/.scannerwork/scanner-report/{measures-3.pb → measures-2.pb} +0 -0
  386. /package/.scannerwork/scanner-report/{measures-26.pb → measures-37.pb} +0 -0
  387. /package/.scannerwork/scanner-report/{measures-7.pb → measures-38.pb} +0 -0
  388. /package/.scannerwork/scanner-report/{measures-25.pb → measures-39.pb} +0 -0
  389. /package/.scannerwork/scanner-report/{measures-49.pb → measures-63.pb} +0 -0
  390. /package/.scannerwork/scanner-report/{source-65.txt → source-12.txt} +0 -0
  391. /package/.scannerwork/scanner-report/{source-24.txt → source-18.txt} +0 -0
  392. /package/.scannerwork/scanner-report/{source-31.txt → source-19.txt} +0 -0
  393. /package/.scannerwork/scanner-report/{source-3.txt → source-2.txt} +0 -0
  394. /package/.scannerwork/scanner-report/{source-26.txt → source-37.txt} +0 -0
  395. /package/.scannerwork/scanner-report/{source-7.txt → source-38.txt} +0 -0
  396. /package/.scannerwork/scanner-report/{source-25.txt → source-39.txt} +0 -0
  397. /package/.scannerwork/scanner-report/{source-49.txt → source-63.txt} +0 -0
  398. /package/.scannerwork/scanner-report/{symbols-65.pb → symbols-12.pb} +0 -0
  399. /package/.scannerwork/scanner-report/{symbols-24.pb → symbols-18.pb} +0 -0
  400. /package/.scannerwork/scanner-report/{symbols-31.pb → symbols-19.pb} +0 -0
  401. /package/.scannerwork/scanner-report/{symbols-3.pb → symbols-2.pb} +0 -0
  402. /package/.scannerwork/scanner-report/{symbols-8.pb → symbols-20.pb} +0 -0
  403. /package/.scannerwork/scanner-report/{symbols-26.pb → symbols-37.pb} +0 -0
  404. /package/.scannerwork/scanner-report/{symbols-7.pb → symbols-38.pb} +0 -0
  405. /package/.scannerwork/scanner-report/{symbols-25.pb → symbols-39.pb} +0 -0
  406. /package/.scannerwork/scanner-report/{symbols-49.pb → symbols-63.pb} +0 -0
  407. /package/.scannerwork/scanner-report/{syntax-highlightings-65.pb → syntax-highlightings-12.pb} +0 -0
  408. /package/.scannerwork/scanner-report/{syntax-highlightings-24.pb → syntax-highlightings-18.pb} +0 -0
  409. /package/.scannerwork/scanner-report/{syntax-highlightings-31.pb → syntax-highlightings-19.pb} +0 -0
  410. /package/.scannerwork/scanner-report/{syntax-highlightings-3.pb → syntax-highlightings-2.pb} +0 -0
  411. /package/.scannerwork/scanner-report/{syntax-highlightings-26.pb → syntax-highlightings-37.pb} +0 -0
  412. /package/.scannerwork/scanner-report/{syntax-highlightings-7.pb → syntax-highlightings-38.pb} +0 -0
  413. /package/.scannerwork/scanner-report/{syntax-highlightings-25.pb → syntax-highlightings-39.pb} +0 -0
  414. /package/.scannerwork/scanner-report/{syntax-highlightings-49.pb → syntax-highlightings-63.pb} +0 -0
@@ -11,108 +11,137 @@
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
- 'use strict';
15
-
16
- const path = require('path');
17
- const tmp = require('tmp');
18
-
19
- /**
20
- Return API default settings.
21
- */
22
- function apiDefaults() {
23
- return {
24
- parallelism: 5,
25
- bufferSize: 500,
26
- requestTimeout: 120000,
27
- log: tmp.tmpNameSync(),
28
- resume: false,
29
- mode: 'full'
30
- };
31
- }
32
-
33
- /**
34
- Return CLI default settings.
35
- */
36
- function cliDefaults() {
37
- const defaults = apiDefaults();
38
14
 
39
- // add additional legacy settings
40
- defaults.db = 'test';
41
- defaults.url = 'http://localhost:5984';
42
-
43
- // add CLI only option
44
- defaults.quiet = false;
45
-
46
- return defaults;
47
- }
15
+ /* global describe it beforeEach */
16
+ 'use strict';
48
17
 
49
- /**
50
- Override settings **in-place** with environment variables.
51
- */
52
- function applyEnvironmentVariables(opts) {
53
- // if we have a custom CouchDB url
54
- if (typeof process.env.COUCH_URL !== 'undefined') {
55
- opts.url = process.env.COUCH_URL;
56
- }
57
-
58
- // if we have a specified databases
59
- if (typeof process.env.COUCH_DATABASE !== 'undefined') {
60
- opts.db = process.env.COUCH_DATABASE;
61
- }
62
-
63
- // if we have a specified buffer size
64
- if (typeof process.env.COUCH_BUFFER_SIZE !== 'undefined') {
65
- opts.bufferSize = parseInt(process.env.COUCH_BUFFER_SIZE);
66
- }
67
-
68
- // if we have a specified parallelism
69
- if (typeof process.env.COUCH_PARALLELISM !== 'undefined') {
70
- opts.parallelism = parseInt(process.env.COUCH_PARALLELISM);
71
- }
72
-
73
- // if we have a specified request timeout
74
- if (typeof process.env.COUCH_REQUEST_TIMEOUT !== 'undefined') {
75
- opts.requestTimeout = parseInt(process.env.COUCH_REQUEST_TIMEOUT);
76
- }
77
-
78
- // if we have a specified log file
79
- if (typeof process.env.COUCH_LOG !== 'undefined') {
80
- opts.log = path.normalize(process.env.COUCH_LOG);
81
- }
82
-
83
- // if we are instructed to resume
84
- if (typeof process.env.COUCH_RESUME !== 'undefined' && process.env.COUCH_RESUME === 'true') {
85
- opts.resume = true;
86
- }
87
-
88
- // if we are given an output filename
89
- if (typeof process.env.COUCH_OUTPUT !== 'undefined') {
90
- opts.output = path.normalize(process.env.COUCH_OUTPUT);
91
- }
92
-
93
- // if we only want a shallow copy
94
- if (typeof process.env.COUCH_MODE !== 'undefined' && process.env.COUCH_MODE === 'shallow') {
95
- opts.mode = 'shallow';
96
- }
97
-
98
- // if we are instructed to be quiet
99
- if (typeof process.env.COUCH_QUIET !== 'undefined' && process.env.COUCH_QUIET === 'true') {
100
- opts.quiet = true;
101
- }
102
-
103
- // if we have a specified API key
104
- if (typeof process.env.CLOUDANT_IAM_API_KEY !== 'undefined') {
105
- opts.iamApiKey = process.env.CLOUDANT_IAM_API_KEY;
106
- }
107
-
108
- // if we have a specified IAM token endpoint
109
- if (typeof process.env.CLOUDANT_IAM_TOKEN_URL !== 'undefined') {
110
- opts.iamTokenUrl = process.env.CLOUDANT_IAM_TOKEN_URL;
111
- }
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
+
26
+ const longTestTimeout = 3000;
27
+
28
+ // The writer expects a line-by-line stream so this utility function does that
29
+ // processing for the tests (which normally happens in the internal restore
30
+ // function).
31
+ function testLinestream(fixture = './test/fixtures/animaldb_expected.json') {
32
+ return fs.createReadStream(fixture)
33
+ .pipe(liner());
112
34
  }
113
35
 
114
- module.exports = {
115
- apiDefaults: apiDefaults,
116
- cliDefaults: cliDefaults,
117
- applyEnvironmentVariables: applyEnvironmentVariables
118
- };
36
+ describe('#unit Check database restore writer', function() {
37
+ const dbUrl = 'http://localhost:5984/animaldb';
38
+ const db = request.client(dbUrl, { parallelism: 1 });
39
+
40
+ beforeEach('Reset nocks', function() {
41
+ nock.cleanAll();
42
+ });
43
+
44
+ it('should complete successfully', function(done) {
45
+ nock(dbUrl)
46
+ .post('/_bulk_docs')
47
+ .reply(200, []); // success
48
+
49
+ testLinestream()
50
+ .pipe(writer(db, 500, 1, noopEmitter))
51
+ .on('error', function(err) {
52
+ done(err);
53
+ })
54
+ .on('finished', function(data) {
55
+ assert.strictEqual(data.total, 15);
56
+ assert.ok(nock.isDone());
57
+ done();
58
+ });
59
+ });
60
+
61
+ it('should terminate on a fatal error', function(done) {
62
+ nock(dbUrl)
63
+ .post('/_bulk_docs')
64
+ .reply(401, { error: 'Unauthorized' }); // fatal error
65
+
66
+ testLinestream()
67
+ .pipe(writer(db, 500, 1, noopEmitter))
68
+ .on('error', function(err) {
69
+ assert.strictEqual(err.name, 'Unauthorized');
70
+ assert.strictEqual(err.message, 'Access is denied due to invalid credentials.');
71
+ assert.ok(nock.isDone());
72
+ done();
73
+ });
74
+ });
75
+
76
+ it('should retry on transient errors', function(done) {
77
+ nock(dbUrl)
78
+ .post('/_bulk_docs')
79
+ .reply(429, { error: 'Too Many Requests' }) // transient error
80
+ .post('/_bulk_docs')
81
+ .reply(500, { error: 'Internal Server Error' }) // transient error
82
+ .post('/_bulk_docs')
83
+ .reply(200, { ok: true }); // third time lucky success
84
+
85
+ testLinestream()
86
+ .pipe(writer(db, 500, 1, noopEmitter))
87
+ .on('error', function(err) {
88
+ done(err);
89
+ })
90
+ .on('finished', function(data) {
91
+ assert.strictEqual(data.total, 15);
92
+ assert.ok(nock.isDone());
93
+ done();
94
+ });
95
+ }).timeout(longTestTimeout);
96
+
97
+ it('should fail after 3 transient errors', function(done) {
98
+ nock(dbUrl)
99
+ .post('/_bulk_docs')
100
+ .reply(429, { error: 'Too Many Requests' }) // transient error
101
+ .post('/_bulk_docs')
102
+ .reply(500, { error: 'Internal Server Error' }) // transient error
103
+ .post('/_bulk_docs')
104
+ .reply(503, { error: 'Service Unavailable' }); // Final transient error
105
+
106
+ testLinestream()
107
+ .pipe(writer(db, 500, 1, noopEmitter))
108
+ .on('error', function(err) {
109
+ assert.strictEqual(err.name, 'HTTPFatalError');
110
+ assert.strictEqual(err.message, `503 : post ${dbUrl}/_bulk_docs - Error: Service Unavailable`);
111
+ assert.ok(nock.isDone());
112
+ done();
113
+ });
114
+ }).timeout(longTestTimeout);
115
+
116
+ it('should restore shallow backups without rev info successfully', function(done) {
117
+ nock(dbUrl)
118
+ .post('/_bulk_docs')
119
+ .reply(200, [{ ok: true, id: 'foo', rev: '1-abc' }]); // success
120
+
121
+ testLinestream('./test/fixtures/animaldb_old_shallow.json')
122
+ .pipe(writer(db, 500, 1, noopEmitter))
123
+ .on('error', function(err) {
124
+ done(err);
125
+ })
126
+ .on('finished', function(data) {
127
+ assert.strictEqual(data.total, 11);
128
+ assert.ok(nock.isDone());
129
+ done();
130
+ });
131
+ });
132
+
133
+ it('should get a batch error for non-empty array response with new_edits false', function(done) {
134
+ nock(dbUrl)
135
+ .post('/_bulk_docs')
136
+ .reply(200, [{ id: 'foo', error: 'foo', reason: 'bar' }]);
137
+
138
+ testLinestream()
139
+ .pipe(writer(db, 500, 1, noopEmitter))
140
+ .on('error', function(err) {
141
+ assert.strictEqual(err.name, 'Error');
142
+ assert.strictEqual(err.message, 'Error writing batch with new_edits:false and 1 items');
143
+ assert.ok(nock.isDone());
144
+ done();
145
+ });
146
+ });
147
+ });
@@ -1,4 +1,5 @@
1
- // Copyright © 2017, 2022 IBM Corp. All rights reserved.
1
+ #!/usr/bin/env node
2
+ // Copyright © 2017, 2021 IBM Corp. All rights reserved.
2
3
  //
3
4
  // Licensed under the Apache License, Version 2.0 (the "License");
4
5
  // you may not use this file except in compliance with the License.
@@ -13,68 +14,43 @@
13
14
  // limitations under the License.
14
15
  'use strict';
15
16
 
16
- const async = require('async');
17
- const error = require('./error.js');
18
- const events = require('events');
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');
19
24
 
20
- module.exports = function(db, options) {
21
- const ee = new events.EventEmitter();
22
- const start = new Date().getTime();
23
- let batch = 0;
24
- let hasErrored = false;
25
- let startKey = null;
26
- let total = 0;
25
+ restoreDebug.enabled = true;
27
26
 
28
- async.doUntil(
29
- function(callback) {
30
- // Note, include_docs: true is set automatically when using the
31
- // fetch function.
32
- const opts = { db: db.db, limit: options.bufferSize, includeDocs: true };
33
-
34
- // To avoid double fetching a document solely for the purposes of getting
35
- // the next ID to use as a startKey for the next page we instead use the
36
- // last ID of the current page and append the lowest unicode sort
37
- // character.
38
- if (startKey) opts.startKey = `${startKey}\0`;
39
- db.service.postAllDocs(opts).then(response => {
40
- const body = response.result;
41
- if (!body.rows) {
42
- ee.emit('error', new error.BackupError(
43
- 'AllDocsError', 'ERROR: Invalid all docs response'));
44
- callback();
45
- } else {
46
- if (body.rows.length < opts.limit) {
47
- startKey = null; // last batch
48
- } else {
49
- startKey = body.rows[opts.limit - 1].id;
50
- }
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
+ };
51
36
 
52
- const docs = [];
53
- body.rows.forEach(function(doc) {
54
- docs.push(doc.doc);
55
- });
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));
56
42
 
57
- if (docs.length > 0) {
58
- ee.emit('received', {
59
- batch: batch++,
60
- data: docs,
61
- length: docs.length,
62
- time: (new Date().getTime() - start) / 1000,
63
- total: total += docs.length
64
- });
65
- }
66
- callback();
67
- }
68
- }).catch(err => {
69
- err = error.convertResponseError(err);
70
- ee.emit('error', err);
71
- hasErrored = true;
72
- callback();
73
- });
74
- },
75
- function(callback) { callback(null, hasErrored || startKey == null); },
76
- function() { ee.emit('finished', { total: total }); }
77
- );
43
+ restoreBatchDebug.enabled = !program.quiet;
78
44
 
79
- return ee;
80
- };
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);
56
+ });
@@ -1,4 +1,5 @@
1
- // Copyright © 2017, 2018 IBM Corp. All rights reserved.
1
+ #!/usr/bin/env node
2
+ // Copyright © 2017, 2021 IBM Corp. All rights reserved.
2
3
  //
3
4
  // Licensed under the Apache License, Version 2.0 (the "License");
4
5
  // you may not use this file except in compliance with the License.
@@ -13,19 +14,64 @@
13
14
  // limitations under the License.
14
15
  'use strict';
15
16
 
16
- module.exports = function(db, options, readstream, ee, callback) {
17
- const liner = require('../includes/liner.js')();
18
- const writer = require('../includes/writer.js')(db, options.bufferSize, options.parallelism, ee);
19
-
20
- // pipe the input to the output, via transformation functions
21
- readstream
22
- .pipe(liner) // transform the input stream into per-line
23
- .on('error', function(err) {
24
- // Forward the error to the writer event emitter where we already have
25
- // listeners on for handling errors
26
- writer.emit('error', err);
27
- })
28
- .pipe(writer); // transform the data
29
-
30
- callback(null, writer);
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
31
40
  };
41
+
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));
47
+
48
+ backupBatchDebug.enabled = !program.quiet;
49
+
50
+ let ws = process.stdout;
51
+
52
+ // open output file
53
+ if (program.output) {
54
+ let flags = 'w';
55
+ if (program.log && program.resume) {
56
+ flags = 'a';
57
+ }
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
+ });