@cloudant/couchbackup 2.9.15-SNAPSHOT.175 → 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 (357) 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-12.pb +1 -0
  6. package/.scannerwork/scanner-report/changesets-14.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-20.pb +1 -0
  12. package/.scannerwork/scanner-report/changesets-22.pb +1 -0
  13. package/.scannerwork/scanner-report/changesets-39.pb +1 -0
  14. package/.scannerwork/scanner-report/component-1.pb +2 -1
  15. package/.scannerwork/scanner-report/component-10.pb +2 -0
  16. package/.scannerwork/scanner-report/component-12.pb +1 -1
  17. package/.scannerwork/scanner-report/component-14.pb +1 -0
  18. package/.scannerwork/scanner-report/component-16.pb +1 -0
  19. package/.scannerwork/scanner-report/component-17.pb +1 -0
  20. package/.scannerwork/scanner-report/component-18.pb +1 -0
  21. package/.scannerwork/scanner-report/component-19.pb +1 -0
  22. package/.scannerwork/scanner-report/component-20.pb +1 -0
  23. package/.scannerwork/scanner-report/component-21.pb +1 -1
  24. package/.scannerwork/scanner-report/component-22.pb +1 -0
  25. package/.scannerwork/scanner-report/component-23.pb +1 -1
  26. package/.scannerwork/scanner-report/component-24.pb +1 -1
  27. package/.scannerwork/scanner-report/component-25.pb +1 -1
  28. package/.scannerwork/scanner-report/component-26.pb +1 -1
  29. package/.scannerwork/scanner-report/component-27.pb +1 -1
  30. package/.scannerwork/scanner-report/component-28.pb +1 -1
  31. package/.scannerwork/scanner-report/component-29.pb +1 -1
  32. package/.scannerwork/scanner-report/component-3.pb +1 -1
  33. package/.scannerwork/scanner-report/component-30.pb +1 -1
  34. package/.scannerwork/scanner-report/component-31.pb +1 -1
  35. package/.scannerwork/scanner-report/component-32.pb +1 -1
  36. package/.scannerwork/scanner-report/component-33.pb +1 -1
  37. package/.scannerwork/scanner-report/component-34.pb +1 -1
  38. package/.scannerwork/scanner-report/component-35.pb +1 -1
  39. package/.scannerwork/scanner-report/component-36.pb +1 -1
  40. package/.scannerwork/scanner-report/component-37.pb +1 -1
  41. package/.scannerwork/scanner-report/component-38.pb +1 -1
  42. package/.scannerwork/scanner-report/component-39.pb +1 -0
  43. package/.scannerwork/scanner-report/component-53.pb +1 -1
  44. package/.scannerwork/scanner-report/component-54.pb +1 -1
  45. package/.scannerwork/scanner-report/component-55.pb +1 -1
  46. package/.scannerwork/scanner-report/component-56.pb +1 -1
  47. package/.scannerwork/scanner-report/component-57.pb +1 -1
  48. package/.scannerwork/scanner-report/component-58.pb +1 -1
  49. package/.scannerwork/scanner-report/component-59.pb +1 -1
  50. package/.scannerwork/scanner-report/component-6.pb +1 -1
  51. package/.scannerwork/scanner-report/component-60.pb +1 -1
  52. package/.scannerwork/scanner-report/component-62.pb +1 -1
  53. package/.scannerwork/scanner-report/component-64.pb +1 -1
  54. package/.scannerwork/scanner-report/component-65.pb +1 -1
  55. package/.scannerwork/scanner-report/component-66.pb +1 -1
  56. package/.scannerwork/scanner-report/component-67.pb +1 -1
  57. package/.scannerwork/scanner-report/component-68.pb +1 -1
  58. package/.scannerwork/scanner-report/component-69.pb +1 -1
  59. package/.scannerwork/scanner-report/component-70.pb +1 -1
  60. package/.scannerwork/scanner-report/coverages-16.pb +0 -0
  61. package/.scannerwork/scanner-report/coverages-17.pb +0 -0
  62. package/.scannerwork/scanner-report/coverages-18.pb +0 -0
  63. package/.scannerwork/scanner-report/coverages-19.pb +0 -0
  64. package/.scannerwork/scanner-report/coverages-21.pb +0 -0
  65. package/.scannerwork/scanner-report/coverages-22.pb +0 -0
  66. package/.scannerwork/scanner-report/coverages-23.pb +0 -0
  67. package/.scannerwork/scanner-report/coverages-24.pb +0 -0
  68. package/.scannerwork/scanner-report/coverages-25.pb +0 -0
  69. package/.scannerwork/scanner-report/coverages-26.pb +0 -0
  70. package/.scannerwork/scanner-report/coverages-27.pb +0 -0
  71. package/.scannerwork/scanner-report/coverages-28.pb +0 -0
  72. package/.scannerwork/scanner-report/coverages-29.pb +0 -0
  73. package/.scannerwork/scanner-report/coverages-30.pb +0 -0
  74. package/.scannerwork/scanner-report/coverages-31.pb +0 -0
  75. package/.scannerwork/scanner-report/coverages-32.pb +0 -0
  76. package/.scannerwork/scanner-report/coverages-33.pb +0 -0
  77. package/.scannerwork/scanner-report/coverages-34.pb +0 -0
  78. package/.scannerwork/scanner-report/coverages-35.pb +0 -0
  79. package/.scannerwork/scanner-report/coverages-36.pb +0 -0
  80. package/.scannerwork/scanner-report/coverages-37.pb +0 -0
  81. package/.scannerwork/scanner-report/coverages-38.pb +0 -0
  82. package/.scannerwork/scanner-report/coverages-39.pb +0 -0
  83. package/.scannerwork/scanner-report/coverages-53.pb +0 -0
  84. package/.scannerwork/scanner-report/coverages-54.pb +0 -0
  85. package/.scannerwork/scanner-report/coverages-55.pb +0 -0
  86. package/.scannerwork/scanner-report/coverages-56.pb +0 -0
  87. package/.scannerwork/scanner-report/coverages-57.pb +0 -0
  88. package/.scannerwork/scanner-report/coverages-58.pb +0 -0
  89. package/.scannerwork/scanner-report/coverages-59.pb +0 -0
  90. package/.scannerwork/scanner-report/coverages-60.pb +0 -0
  91. package/.scannerwork/scanner-report/coverages-62.pb +0 -0
  92. package/.scannerwork/scanner-report/coverages-64.pb +0 -0
  93. package/.scannerwork/scanner-report/coverages-65.pb +0 -0
  94. package/.scannerwork/scanner-report/coverages-66.pb +0 -0
  95. package/.scannerwork/scanner-report/coverages-67.pb +0 -0
  96. package/.scannerwork/scanner-report/coverages-68.pb +0 -0
  97. package/.scannerwork/scanner-report/coverages-69.pb +0 -0
  98. package/.scannerwork/scanner-report/duplications-12.pb +2 -0
  99. package/.scannerwork/scanner-report/duplications-14.pb +2 -0
  100. package/.scannerwork/scanner-report/duplications-24.pb +0 -2
  101. package/.scannerwork/scanner-report/duplications-25.pb +2 -0
  102. package/.scannerwork/scanner-report/duplications-26.pb +3 -0
  103. package/.scannerwork/scanner-report/duplications-33.pb +0 -3
  104. package/.scannerwork/scanner-report/duplications-36.pb +0 -2
  105. package/.scannerwork/scanner-report/duplications-39.pb +2 -0
  106. package/.scannerwork/scanner-report/duplications-56.pb +2 -0
  107. package/.scannerwork/scanner-report/duplications-58.pb +0 -2
  108. package/.scannerwork/scanner-report/duplications-60.pb +0 -2
  109. package/.scannerwork/scanner-report/duplications-66.pb +2 -0
  110. package/.scannerwork/scanner-report/issues-17.pb +3 -0
  111. package/.scannerwork/scanner-report/issues-26.pb +3 -2
  112. package/.scannerwork/scanner-report/measures-12.pb +0 -0
  113. package/.scannerwork/scanner-report/measures-16.pb +0 -0
  114. package/.scannerwork/scanner-report/measures-17.pb +0 -0
  115. package/.scannerwork/scanner-report/measures-18.pb +0 -0
  116. package/.scannerwork/scanner-report/measures-19.pb +0 -0
  117. package/.scannerwork/scanner-report/measures-21.pb +0 -0
  118. package/.scannerwork/scanner-report/measures-22.pb +16 -0
  119. package/.scannerwork/scanner-report/measures-23.pb +0 -0
  120. package/.scannerwork/scanner-report/measures-24.pb +0 -0
  121. package/.scannerwork/scanner-report/measures-25.pb +0 -0
  122. package/.scannerwork/scanner-report/measures-26.pb +0 -0
  123. package/.scannerwork/scanner-report/measures-27.pb +0 -0
  124. package/.scannerwork/scanner-report/measures-28.pb +0 -0
  125. package/.scannerwork/scanner-report/measures-29.pb +0 -0
  126. package/.scannerwork/scanner-report/measures-30.pb +0 -0
  127. package/.scannerwork/scanner-report/measures-31.pb +0 -0
  128. package/.scannerwork/scanner-report/measures-32.pb +0 -0
  129. package/.scannerwork/scanner-report/measures-33.pb +0 -0
  130. package/.scannerwork/scanner-report/measures-34.pb +0 -0
  131. package/.scannerwork/scanner-report/measures-35.pb +0 -0
  132. package/.scannerwork/scanner-report/measures-36.pb +0 -0
  133. package/.scannerwork/scanner-report/measures-37.pb +0 -0
  134. package/.scannerwork/scanner-report/measures-38.pb +0 -0
  135. package/.scannerwork/scanner-report/measures-39.pb +0 -0
  136. package/.scannerwork/scanner-report/measures-53.pb +0 -0
  137. package/.scannerwork/scanner-report/measures-54.pb +0 -0
  138. package/.scannerwork/scanner-report/measures-55.pb +0 -0
  139. package/.scannerwork/scanner-report/measures-56.pb +0 -0
  140. package/.scannerwork/scanner-report/measures-57.pb +0 -0
  141. package/.scannerwork/scanner-report/measures-58.pb +0 -0
  142. package/.scannerwork/scanner-report/measures-59.pb +0 -0
  143. package/.scannerwork/scanner-report/measures-6.pb +0 -0
  144. package/.scannerwork/scanner-report/measures-60.pb +0 -0
  145. package/.scannerwork/scanner-report/measures-62.pb +0 -0
  146. package/.scannerwork/scanner-report/measures-64.pb +0 -0
  147. package/.scannerwork/scanner-report/measures-65.pb +0 -0
  148. package/.scannerwork/scanner-report/measures-66.pb +0 -0
  149. package/.scannerwork/scanner-report/measures-67.pb +0 -0
  150. package/.scannerwork/scanner-report/measures-68.pb +0 -0
  151. package/.scannerwork/scanner-report/measures-69.pb +0 -0
  152. package/.scannerwork/scanner-report/measures-70.pb +0 -0
  153. package/.scannerwork/scanner-report/metadata.pb +0 -0
  154. package/.scannerwork/scanner-report/{source-4.txt → source-10.txt} +162 -162
  155. package/.scannerwork/scanner-report/source-12.txt +190 -424
  156. package/.scannerwork/scanner-report/source-16.txt +46 -0
  157. package/.scannerwork/scanner-report/source-17.txt +130 -0
  158. package/.scannerwork/scanner-report/source-18.txt +134 -0
  159. package/.scannerwork/scanner-report/source-19.txt +37 -0
  160. package/.scannerwork/scanner-report/source-21.txt +22 -27
  161. package/.scannerwork/scanner-report/source-22.txt +293 -0
  162. package/.scannerwork/scanner-report/source-23.txt +83 -82
  163. package/.scannerwork/scanner-report/source-24.txt +13 -168
  164. package/.scannerwork/scanner-report/source-25.txt +163 -9
  165. package/.scannerwork/scanner-report/source-26.txt +180 -97
  166. package/.scannerwork/scanner-report/source-27.txt +85 -60
  167. package/.scannerwork/scanner-report/source-28.txt +428 -16
  168. package/.scannerwork/scanner-report/source-29.txt +20 -18
  169. package/.scannerwork/scanner-report/source-3.txt +154 -154
  170. package/.scannerwork/scanner-report/source-30.txt +10 -115
  171. package/.scannerwork/scanner-report/source-31.txt +17 -21
  172. package/.scannerwork/scanner-report/source-32.txt +314 -136
  173. package/.scannerwork/scanner-report/source-33.txt +44 -192
  174. package/.scannerwork/scanner-report/source-34.txt +73 -158
  175. package/.scannerwork/scanner-report/source-35.txt +54 -16
  176. package/.scannerwork/scanner-report/source-36.txt +130 -162
  177. package/.scannerwork/scanner-report/source-37.txt +158 -68
  178. package/.scannerwork/scanner-report/source-38.txt +19 -272
  179. package/.scannerwork/scanner-report/source-39.txt +187 -0
  180. package/.scannerwork/scanner-report/source-53.txt +104 -18
  181. package/.scannerwork/scanner-report/source-54.txt +22 -425
  182. package/.scannerwork/scanner-report/source-55.txt +150 -28
  183. package/.scannerwork/scanner-report/source-56.txt +53 -43
  184. package/.scannerwork/scanner-report/source-57.txt +241 -78
  185. package/.scannerwork/scanner-report/source-58.txt +59 -71
  186. package/.scannerwork/scanner-report/source-59.txt +147 -133
  187. package/.scannerwork/scanner-report/source-6.txt +102 -81
  188. package/.scannerwork/scanner-report/source-60.txt +91 -53
  189. package/.scannerwork/scanner-report/source-62.txt +108 -25
  190. package/.scannerwork/scanner-report/source-64.txt +20 -260
  191. package/.scannerwork/scanner-report/source-65.txt +87 -154
  192. package/.scannerwork/scanner-report/source-66.txt +65 -14
  193. package/.scannerwork/scanner-report/source-67.txt +388 -85
  194. package/.scannerwork/scanner-report/source-68.txt +41 -61
  195. package/.scannerwork/scanner-report/source-69.txt +63 -111
  196. package/.scannerwork/scanner-report/source-70.txt +424 -113
  197. package/.scannerwork/scanner-report/symbols-16.pb +7 -0
  198. package/.scannerwork/scanner-report/symbols-17.pb +86 -0
  199. package/.scannerwork/scanner-report/symbols-18.pb +71 -0
  200. package/.scannerwork/scanner-report/symbols-19.pb +9 -0
  201. package/.scannerwork/scanner-report/symbols-21.pb +31 -7
  202. package/.scannerwork/scanner-report/symbols-22.pb +428 -0
  203. package/.scannerwork/scanner-report/symbols-23.pb +57 -68
  204. package/.scannerwork/scanner-report/symbols-24.pb +9 -227
  205. package/.scannerwork/scanner-report/symbols-25.pb +203 -8
  206. package/.scannerwork/scanner-report/symbols-26.pb +263 -85
  207. package/.scannerwork/scanner-report/symbols-27.pb +68 -38
  208. package/.scannerwork/scanner-report/symbols-28.pb +790 -9
  209. package/.scannerwork/scanner-report/symbols-29.pb +19 -23
  210. package/.scannerwork/scanner-report/symbols-30.pb +8 -71
  211. package/.scannerwork/scanner-report/symbols-31.pb +13 -31
  212. package/.scannerwork/scanner-report/symbols-32.pb +353 -93
  213. package/.scannerwork/scanner-report/symbols-33.pb +33 -264
  214. package/.scannerwork/scanner-report/symbols-34.pb +59 -209
  215. package/.scannerwork/scanner-report/symbols-35.pb +39 -13
  216. package/.scannerwork/scanner-report/symbols-36.pb +88 -198
  217. package/.scannerwork/scanner-report/symbols-37.pb +209 -58
  218. package/.scannerwork/scanner-report/symbols-38.pb +23 -428
  219. package/.scannerwork/scanner-report/symbols-39.pb +227 -0
  220. package/.scannerwork/scanner-report/symbols-53.pb +30 -9
  221. package/.scannerwork/scanner-report/symbols-54.pb +19 -789
  222. package/.scannerwork/scanner-report/symbols-55.pb +126 -19
  223. package/.scannerwork/scanner-report/symbols-56.pb +41 -32
  224. package/.scannerwork/scanner-report/symbols-57.pb +354 -30
  225. package/.scannerwork/scanner-report/symbols-58.pb +45 -43
  226. package/.scannerwork/scanner-report/symbols-59.pb +129 -111
  227. package/.scannerwork/scanner-report/symbols-60.pb +44 -40
  228. package/.scannerwork/scanner-report/symbols-62.pb +33 -20
  229. package/.scannerwork/scanner-report/symbols-64.pb +18 -354
  230. package/.scannerwork/scanner-report/symbols-65.pb +56 -141
  231. package/.scannerwork/scanner-report/symbols-66.pb +42 -16
  232. package/.scannerwork/scanner-report/symbols-67.pb +604 -59
  233. package/.scannerwork/scanner-report/symbols-68.pb +21 -46
  234. package/.scannerwork/scanner-report/symbols-69.pb +31 -32
  235. package/.scannerwork/scanner-report/{syntax-highlightings-4.pb → syntax-highlightings-10.pb} +94 -94
  236. package/.scannerwork/scanner-report/syntax-highlightings-12.pb +202 -3317
  237. package/.scannerwork/scanner-report/syntax-highlightings-16.pb +62 -0
  238. package/.scannerwork/scanner-report/syntax-highlightings-17.pb +125 -0
  239. package/.scannerwork/scanner-report/syntax-highlightings-18.pb +181 -0
  240. package/.scannerwork/scanner-report/syntax-highlightings-19.pb +61 -0
  241. package/.scannerwork/scanner-report/syntax-highlightings-21.pb +36 -29
  242. package/.scannerwork/scanner-report/syntax-highlightings-22.pb +720 -0
  243. package/.scannerwork/scanner-report/syntax-highlightings-23.pb +114 -67
  244. package/.scannerwork/scanner-report/syntax-highlightings-24.pb +19 -333
  245. package/.scannerwork/scanner-report/syntax-highlightings-25.pb +246 -15
  246. package/.scannerwork/scanner-report/syntax-highlightings-26.pb +260 -88
  247. package/.scannerwork/scanner-report/syntax-highlightings-27.pb +68 -62
  248. package/.scannerwork/scanner-report/syntax-highlightings-28.pb +592 -26
  249. package/.scannerwork/scanner-report/syntax-highlightings-29.pb +27 -17
  250. package/.scannerwork/scanner-report/syntax-highlightings-3.pb +88 -87
  251. package/.scannerwork/scanner-report/syntax-highlightings-30.pb +15 -147
  252. package/.scannerwork/scanner-report/syntax-highlightings-31.pb +26 -33
  253. package/.scannerwork/scanner-report/syntax-highlightings-32.pb +550 -167
  254. package/.scannerwork/scanner-report/syntax-highlightings-33.pb +64 -251
  255. package/.scannerwork/scanner-report/syntax-highlightings-34.pb +138 -250
  256. package/.scannerwork/scanner-report/syntax-highlightings-35.pb +64 -25
  257. package/.scannerwork/scanner-report/syntax-highlightings-36.pb +162 -205
  258. package/.scannerwork/scanner-report/syntax-highlightings-37.pb +246 -110
  259. package/.scannerwork/scanner-report/syntax-highlightings-38.pb +19 -683
  260. package/.scannerwork/scanner-report/syntax-highlightings-39.pb +368 -0
  261. package/.scannerwork/scanner-report/syntax-highlightings-53.pb +83 -24
  262. package/.scannerwork/scanner-report/syntax-highlightings-54.pb +33 -596
  263. package/.scannerwork/scanner-report/syntax-highlightings-55.pb +177 -30
  264. package/.scannerwork/scanner-report/syntax-highlightings-56.pb +47 -76
  265. package/.scannerwork/scanner-report/syntax-highlightings-57.pb +250 -78
  266. package/.scannerwork/scanner-report/syntax-highlightings-58.pb +57 -55
  267. package/.scannerwork/scanner-report/syntax-highlightings-59.pb +166 -136
  268. package/.scannerwork/scanner-report/syntax-highlightings-6.pb +689 -98
  269. package/.scannerwork/scanner-report/syntax-highlightings-60.pb +93 -48
  270. package/.scannerwork/scanner-report/syntax-highlightings-62.pb +94 -29
  271. package/.scannerwork/scanner-report/syntax-highlightings-64.pb +19 -252
  272. package/.scannerwork/scanner-report/syntax-highlightings-65.pb +88 -198
  273. package/.scannerwork/scanner-report/syntax-highlightings-66.pb +59 -18
  274. package/.scannerwork/scanner-report/syntax-highlightings-67.pb +609 -101
  275. package/.scannerwork/scanner-report/syntax-highlightings-68.pb +61 -74
  276. package/.scannerwork/scanner-report/syntax-highlightings-69.pb +74 -103
  277. package/.scannerwork/scanner-report/syntax-highlightings-70.pb +3328 -115
  278. package/CHANGES.md +4 -0
  279. package/package.json +2 -2
  280. package/test-18-results.xml +157 -157
  281. package/test-20-results.xml +162 -162
  282. package/test-21-results.xml +163 -163
  283. package/test-iam-20-results.xml +50 -50
  284. package/.scannerwork/scanner-report/changesets-11.pb +0 -1
  285. package/.scannerwork/scanner-report/changesets-2.pb +0 -1
  286. package/.scannerwork/scanner-report/changesets-50.pb +0 -1
  287. package/.scannerwork/scanner-report/changesets-51.pb +0 -1
  288. package/.scannerwork/scanner-report/changesets-52.pb +0 -1
  289. package/.scannerwork/scanner-report/changesets-6.pb +0 -1
  290. package/.scannerwork/scanner-report/changesets-7.pb +0 -1
  291. package/.scannerwork/scanner-report/changesets-70.pb +0 -1
  292. package/.scannerwork/scanner-report/changesets-8.pb +0 -1
  293. package/.scannerwork/scanner-report/component-11.pb +0 -1
  294. package/.scannerwork/scanner-report/component-2.pb +0 -1
  295. package/.scannerwork/scanner-report/component-4.pb +0 -1
  296. package/.scannerwork/scanner-report/component-5.pb +0 -1
  297. package/.scannerwork/scanner-report/component-50.pb +0 -1
  298. package/.scannerwork/scanner-report/component-51.pb +0 -1
  299. package/.scannerwork/scanner-report/component-52.pb +0 -1
  300. package/.scannerwork/scanner-report/component-7.pb +0 -1
  301. package/.scannerwork/scanner-report/component-8.pb +0 -1
  302. package/.scannerwork/scanner-report/coverages-2.pb +0 -0
  303. package/.scannerwork/scanner-report/coverages-51.pb +0 -0
  304. package/.scannerwork/scanner-report/coverages-52.pb +0 -0
  305. package/.scannerwork/scanner-report/coverages-6.pb +0 -0
  306. package/.scannerwork/scanner-report/coverages-7.pb +0 -0
  307. package/.scannerwork/scanner-report/coverages-70.pb +0 -0
  308. package/.scannerwork/scanner-report/duplications-11.pb +0 -2
  309. package/.scannerwork/scanner-report/duplications-7.pb +0 -0
  310. package/.scannerwork/scanner-report/duplications-70.pb +0 -0
  311. package/.scannerwork/scanner-report/duplications-8.pb +0 -2
  312. package/.scannerwork/scanner-report/issues-33.pb +0 -4
  313. package/.scannerwork/scanner-report/measures-11.pb +0 -0
  314. package/.scannerwork/scanner-report/measures-2.pb +0 -0
  315. package/.scannerwork/scanner-report/measures-5.pb +0 -0
  316. package/.scannerwork/scanner-report/measures-51.pb +0 -0
  317. package/.scannerwork/scanner-report/measures-52.pb +0 -0
  318. package/.scannerwork/scanner-report/measures-7.pb +0 -0
  319. package/.scannerwork/scanner-report/source-11.txt +0 -190
  320. package/.scannerwork/scanner-report/source-2.txt +0 -414
  321. package/.scannerwork/scanner-report/source-5.txt +0 -102
  322. package/.scannerwork/scanner-report/source-51.txt +0 -329
  323. package/.scannerwork/scanner-report/source-52.txt +0 -106
  324. package/.scannerwork/scanner-report/source-7.txt +0 -60
  325. package/.scannerwork/scanner-report/symbols-2.pb +0 -604
  326. package/.scannerwork/scanner-report/symbols-51.pb +0 -353
  327. package/.scannerwork/scanner-report/symbols-52.pb +0 -59
  328. package/.scannerwork/scanner-report/symbols-6.pb +0 -32
  329. package/.scannerwork/scanner-report/symbols-7.pb +0 -21
  330. package/.scannerwork/scanner-report/symbols-70.pb +0 -46
  331. package/.scannerwork/scanner-report/syntax-highlightings-11.pb +0 -225
  332. package/.scannerwork/scanner-report/syntax-highlightings-2.pb +0 -641
  333. package/.scannerwork/scanner-report/syntax-highlightings-5.pb +0 -691
  334. package/.scannerwork/scanner-report/syntax-highlightings-51.pb +0 -620
  335. package/.scannerwork/scanner-report/syntax-highlightings-52.pb +0 -178
  336. package/.scannerwork/scanner-report/syntax-highlightings-7.pb +0 -82
  337. /package/.scannerwork/scanner-report/{coverages-11.pb → coverages-12.pb} +0 -0
  338. /package/.scannerwork/scanner-report/{coverages-8.pb → coverages-14.pb} +0 -0
  339. /package/.scannerwork/scanner-report/{coverages-50.pb → coverages-20.pb} +0 -0
  340. /package/.scannerwork/scanner-report/{duplications-2.pb → duplications-16.pb} +0 -0
  341. /package/.scannerwork/scanner-report/{duplications-30.pb → duplications-17.pb} +0 -0
  342. /package/.scannerwork/scanner-report/{duplications-50.pb → duplications-18.pb} +0 -0
  343. /package/.scannerwork/scanner-report/{duplications-51.pb → duplications-19.pb} +0 -0
  344. /package/.scannerwork/scanner-report/{duplications-52.pb → duplications-20.pb} +0 -0
  345. /package/.scannerwork/scanner-report/{duplications-6.pb → duplications-22.pb} +0 -0
  346. /package/.scannerwork/scanner-report/{issues-55.pb → issues-29.pb} +0 -0
  347. /package/.scannerwork/scanner-report/{issues-51.pb → issues-32.pb} +0 -0
  348. /package/.scannerwork/scanner-report/{measures-4.pb → measures-10.pb} +0 -0
  349. /package/.scannerwork/scanner-report/{measures-8.pb → measures-14.pb} +0 -0
  350. /package/.scannerwork/scanner-report/{measures-50.pb → measures-20.pb} +0 -0
  351. /package/.scannerwork/scanner-report/{source-8.txt → source-14.txt} +0 -0
  352. /package/.scannerwork/scanner-report/{source-50.txt → source-20.txt} +0 -0
  353. /package/.scannerwork/scanner-report/{symbols-11.pb → symbols-12.pb} +0 -0
  354. /package/.scannerwork/scanner-report/{symbols-8.pb → symbols-14.pb} +0 -0
  355. /package/.scannerwork/scanner-report/{symbols-50.pb → symbols-20.pb} +0 -0
  356. /package/.scannerwork/scanner-report/{syntax-highlightings-8.pb → syntax-highlightings-14.pb} +0 -0
  357. /package/.scannerwork/scanner-report/{syntax-highlightings-50.pb → syntax-highlightings-20.pb} +0 -0
@@ -12,123 +12,18 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- /* global describe it beforeEach */
15
+ /* global describe it */
16
16
  'use strict';
17
17
 
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;
18
+ const u = require('./citestutils.js');
28
19
 
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
- );
20
+ [{ useApi: true }, { useApi: false }].forEach(function(params) {
21
+ describe(u.scenario('#slowest End to end backup and restore', params), function() {
22
+ // 10 GB is about the largest the CI can handle before getting very upset
23
+ // about how long things are taking
24
+ it('should backup and restore largedb10g', async function() {
25
+ u.setTimeout(this, 350 * 60);
26
+ return u.testDirectBackupAndRestore(params, 'largedb10g', this.dbName);
27
+ });
133
28
  });
134
29
  });
@@ -15,27 +15,23 @@
15
15
  /* global describe it */
16
16
  'use strict';
17
17
 
18
- const assert = require('assert');
19
- const logfilegetbatches = require('../includes/logfilegetbatches.js');
18
+ const u = require('./citestutils.js');
20
19
 
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
- });
20
+ describe('Event tests', function() {
21
+ it('should get a finished event when using stdout', async function() {
22
+ u.setTimeout(this, 40);
23
+ // Use the API so we can get events, pass eventEmitter so we get the emitter back
24
+ const params = { useApi: true, useStdOut: true };
25
+ // All API backups now set an event listener for finished and it is part of the backup
26
+ // promise, so if the backup passes the finished event fired.
27
+ return u.testBackup(params, 'animaldb', process.stdout);
28
+ });
29
+
30
+ it('should get a finished event when using file output', async function() {
31
+ u.setTimeout(this, 40);
32
+ // Use the API so we can get events, pass eventEmitter so we get the emitter back
33
+ const params = { useApi: true };
34
+ const actualBackup = `./${this.fileName}`;
35
+ return u.testBackupToFile(params, 'animaldb', actualBackup);
40
36
  });
41
37
  });
@@ -1,4 +1,4 @@
1
- // Copyright © 2023 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,140 +12,318 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- /* global */
15
+ /* global describe afterEach before after it */
16
16
  'use strict';
17
17
 
18
- const { fork, spawn } = require('node:child_process');
19
- const { once } = require('node:events');
20
- const { Duplex } = require('node:stream');
21
- const debug = require('debug');
22
- const logProcess = debug('couchbackup:test:process');
23
-
24
- class TestProcess {
25
- constructor(cmd, args, mode) {
26
- this.cmd = cmd;
27
- // Child process stdio [stdin, stdout, stderr, ...extra channels]
28
- const childProcessOptions = { stdio: [] };
29
- switch (mode) {
30
- case 'readable':
31
- // Readable only, no writing to stdin so ignore it
32
- childProcessOptions.stdio = ['ignore', 'pipe', 'inherit'];
33
- break;
34
- case 'writable':
35
- // Writable only, no reading from stdout so ignore it
36
- childProcessOptions.stdio = ['pipe', 'ignore', 'inherit'];
37
- break;
38
- default:
39
- // Default Duplex mode pipe both stdin and stdout
40
- childProcessOptions.stdio = ['pipe', 'pipe', 'inherit'];
41
- break;
42
- }
43
- if (cmd.endsWith('.js')) {
44
- // Add Node fork ipc channel
45
- childProcessOptions.stdio.push('ipc');
46
- logProcess(`Forking Node process for ${cmd} with stdio:[${childProcessOptions.stdio}]`);
47
- this.childProcess = fork(cmd, args, childProcessOptions);
48
- } else {
49
- logProcess(`Spawning process for ${cmd} with stdio:[${childProcessOptions.stdio}]`);
50
- this.childProcess = spawn(cmd, args, childProcessOptions);
51
- }
52
-
53
- this.childProcessPromise = once(this.childProcess, 'close').then(() => {
54
- const code = this.childProcess.exitCode;
55
- const signal = this.childProcess.signalCode;
56
- logProcess(`Test process ${cmd} closed with code ${code} and signal ${signal}`);
57
- if (code === 0) {
58
- logProcess(`Resolving process promise for ${cmd}`);
59
- return Promise.resolve(code);
60
- } else {
61
- const e = new Error(`Test child process ${cmd} exited with code ${code} and ${signal}. This may be normal for error case testing.`);
62
- e.code = code;
63
- e.signal = signal;
64
- logProcess(`Will reject process promise for ${cmd} with ${e}`);
65
- return Promise.reject(e);
66
- }
67
- });
68
-
69
- switch (mode) {
70
- case 'readable':
71
- this.duplexFrom = this.childProcess.stdout;
72
- break;
73
- case 'writable':
74
- this.duplexFrom = this.childProcess.stdin;
75
- break;
76
- default:
77
- // Default is duplex
78
- this.duplexFrom = { writable: this.childProcess.stdin, readable: this.childProcess.stdout };
79
- }
80
-
81
- this.stream = Duplex.from(this.duplexFrom);
82
- }
83
- }
84
-
85
- module.exports = {
86
- TestProcess,
87
- cliBackup: function(databaseName, params = {}) {
88
- const args = ['--db', databaseName];
89
- if (params.opts) {
90
- if (params.opts.mode) {
91
- args.push('--mode');
92
- args.push(params.opts.mode);
93
- }
94
- if (params.opts.output) {
95
- args.push('--output');
96
- args.push(params.opts.output);
97
- }
98
- if (params.opts.log) {
99
- args.push('--log');
100
- args.push(params.opts.log);
101
- }
102
- if (params.opts.resume) {
103
- args.push('--resume');
104
- args.push(params.opts.resume);
105
- }
106
- if (params.opts.bufferSize) {
107
- args.push('--buffer-size');
108
- args.push(params.opts.bufferSize);
109
- }
110
- if (params.opts.iamApiKey) {
111
- args.push('--iam-api-key');
112
- args.push(params.opts.iamApiKey);
113
- }
114
- }
115
- return new TestProcess('./bin/couchbackup.bin.js', args, 'readable');
116
- },
117
- cliRestore: function(databaseName, params) {
118
- const args = ['--db', databaseName];
119
- if (params.opts) {
120
- if (params.opts.bufferSize) {
121
- args.push('--buffer-size');
122
- args.push(params.opts.bufferSize);
123
- }
124
- if (params.opts.parallelism) {
125
- args.push('--parallelism');
126
- args.push(params.opts.parallelism);
127
- }
128
- if (params.opts.requestTimeout) {
129
- args.push('--request-timeout');
130
- args.push(params.opts.requestTimeout);
131
- }
132
- if (params.opts.iamApiKey) {
133
- args.push('--iam-api-key');
134
- args.push(params.opts.iamApiKey);
135
- }
136
- }
137
- return new TestProcess('./bin/couchrestore.bin.js', args, 'writable');
138
- },
139
- cliGzip: function() {
140
- return new TestProcess('gzip', []);
141
- },
142
- cliGunzip: function() {
143
- return new TestProcess('gunzip', []);
144
- },
145
- cliEncrypt: function() {
146
- return new TestProcess('openssl', ['aes-128-cbc', '-pass', 'pass:12345']);
147
- },
148
- cliDecrypt: function() {
149
- return new TestProcess('openssl', ['aes-128-cbc', '-d', '-pass', 'pass:12345']);
150
- }
151
- };
18
+ const assert = require('assert');
19
+ const parser = require('../includes/parser.js');
20
+
21
+ describe('#unit Default parameters', function() {
22
+ let processEnvCopy;
23
+ let processArgvCopy;
24
+
25
+ before('Set process data for test', function() {
26
+ // Copy env and argv so we can reset them after the tests
27
+ processEnvCopy = JSON.parse(JSON.stringify(process.env));
28
+ processArgvCopy = JSON.parse(JSON.stringify(process.argv));
29
+
30
+ // setup environment variables
31
+ process.env.COUCH_URL = 'http://user:pass@myurl.com';
32
+ process.env.COUCH_DATABASE = 'mydb';
33
+ process.env.COUCH_BUFFER_SIZE = '1000';
34
+ process.env.COUCH_PARALLELISM = '20';
35
+ process.env.COUCH_REQUEST_TIMEOUT = '20000';
36
+ process.env.COUCH_LOG = 'my.log';
37
+ process.env.COUCH_RESUME = 'true';
38
+ process.env.COUCH_OUTPUT = 'myfile.txt';
39
+ process.env.COUCH_MODE = 'shallow';
40
+ process.env.CLOUDANT_IAM_API_KEY = 'ABC123-ZYX987_cba789-xyz321';
41
+ process.env.COUCH_QUIET = 'true';
42
+ });
43
+
44
+ after('Reset process data', function() {
45
+ process.env = processEnvCopy;
46
+ process.argv = processArgvCopy;
47
+ });
48
+
49
+ afterEach(function() {
50
+ delete require.cache[require.resolve('commander')];
51
+ });
52
+
53
+ describe('Backup command-line', function() {
54
+ it('respects the COUCH_URL env variable if the --url backup command-line parameter is missing', function() {
55
+ process.argv = ['node', 'test'];
56
+ const program = parser.parseBackupArgs();
57
+ assert.strictEqual(typeof program.url, 'string');
58
+ assert.strictEqual(program.url, process.env.COUCH_URL);
59
+ });
60
+
61
+ it('respects the COUCH_DATABASE env variable if the --db backup command-line parameter is missing', function() {
62
+ process.argv = ['node', 'test'];
63
+ const program = parser.parseBackupArgs();
64
+ assert.strictEqual(typeof program.db, 'string');
65
+ assert.strictEqual(program.db, process.env.COUCH_DATABASE);
66
+ });
67
+
68
+ it('respects the COUCH_BUFFER_SIZE env variable if the --buffer-size backup command-line parameter is missing', function() {
69
+ process.argv = ['node', 'test'];
70
+ const program = parser.parseBackupArgs();
71
+ assert.strictEqual(typeof program.bufferSize, 'number');
72
+ assert.strictEqual(program.bufferSize, parseInt(process.env.COUCH_BUFFER_SIZE, 10));
73
+ });
74
+
75
+ it('respects the COUCH_PARALLELISM env variable if the --parallelism backup command-line parameter is missing', function() {
76
+ process.argv = ['node', 'test'];
77
+ const program = parser.parseBackupArgs();
78
+ assert.strictEqual(typeof program.parallelism, 'number');
79
+ assert.strictEqual(program.parallelism, parseInt(process.env.COUCH_PARALLELISM, 10));
80
+ });
81
+
82
+ it('respects the COUCH_REQUEST_TIMEOUT env variable if the --request-timeout backup command-line parameter is missing', function() {
83
+ process.argv = ['node', 'test'];
84
+ const program = parser.parseBackupArgs();
85
+ assert.strictEqual(typeof program.requestTimeout, 'number');
86
+ assert.strictEqual(program.requestTimeout, parseInt(process.env.COUCH_REQUEST_TIMEOUT, 10));
87
+ });
88
+
89
+ it('respects the CLOUDANT_IAM_API_KEY env variable if the --iam-api-key backup command-line parameter is missing', function() {
90
+ process.argv = ['node', 'test'];
91
+ const program = parser.parseBackupArgs();
92
+ assert.strictEqual(typeof program.iamApiKey, 'string');
93
+ assert.strictEqual(program.iamApiKey, process.env.CLOUDANT_IAM_API_KEY);
94
+ });
95
+
96
+ it('respects the COUCH_LOG env variable if the --log backup command-line parameter is missing', function() {
97
+ process.argv = ['node', 'test'];
98
+ const program = parser.parseBackupArgs();
99
+ assert.strictEqual(typeof program.log, 'string');
100
+ assert.strictEqual(program.log, process.env.COUCH_LOG);
101
+ });
102
+
103
+ it('respects the COUCH_RESUME env variable if the --resume backup command-line parameter is missing', function() {
104
+ process.argv = ['node', 'test'];
105
+ const program = parser.parseBackupArgs();
106
+ assert.strictEqual(typeof program.resume, 'boolean');
107
+ assert.strictEqual(program.resume, true);
108
+ });
109
+
110
+ it('respects the COUCH_OUTPUT env variable if the --output backup command-line parameter is missing', function() {
111
+ process.argv = ['node', 'test'];
112
+ const program = parser.parseBackupArgs();
113
+ assert.strictEqual(typeof program.output, 'string');
114
+ assert.strictEqual(program.output, process.env.COUCH_OUTPUT);
115
+ });
116
+
117
+ it('respects the COUCH_MODE env variable if the --mode backup command-line parameter is missing', function() {
118
+ process.argv = ['node', 'test'];
119
+ const program = parser.parseBackupArgs();
120
+ assert.strictEqual(typeof program.mode, 'string');
121
+ assert.strictEqual(program.mode, process.env.COUCH_MODE);
122
+ });
123
+
124
+ it('respects the COUCH_QUIET env variable if the --quiet backup command-line parameter is missing', function() {
125
+ process.argv = ['node', 'test'];
126
+ const program = parser.parseBackupArgs();
127
+ assert.strictEqual(typeof program.quiet, 'boolean');
128
+ assert.strictEqual(program.quiet, true);
129
+ });
130
+
131
+ it('respects the backup --url command-line parameter', function() {
132
+ const url = 'http://user:pass@myurl2.com';
133
+ process.argv = ['node', 'test', '--url', url];
134
+ const program = parser.parseBackupArgs();
135
+ assert.strictEqual(typeof program.url, 'string');
136
+ assert.strictEqual(program.url, url);
137
+ });
138
+
139
+ it('respects the backup --db command-line parameter', function() {
140
+ const db = 'mydb2';
141
+ process.argv = ['node', 'test', '--db', db];
142
+ const program = parser.parseBackupArgs();
143
+ assert.strictEqual(typeof program.db, 'string');
144
+ assert.strictEqual(program.db, db);
145
+ });
146
+
147
+ it('respects the backup --buffer-size command-line parameter', function() {
148
+ const bufferSize = 500;
149
+ process.argv = ['node', 'test', '--buffer-size', bufferSize];
150
+ const program = parser.parseBackupArgs();
151
+ assert.strictEqual(typeof program.bufferSize, 'number');
152
+ assert.strictEqual(program.bufferSize, bufferSize);
153
+ });
154
+
155
+ it('respects the backup --parallelism command-line parameter', function() {
156
+ const parallelism = 10;
157
+ process.argv = ['node', 'test', '--parallelism', parallelism];
158
+ const program = parser.parseBackupArgs();
159
+ assert.strictEqual(typeof program.parallelism, 'number');
160
+ assert.strictEqual(program.parallelism, parallelism);
161
+ });
162
+
163
+ it('respects the backup --request-timeout command-line parameter', function() {
164
+ const requestTimeout = 10000;
165
+ process.argv = ['node', 'test', '--request-timeout', requestTimeout];
166
+ const program = parser.parseBackupArgs();
167
+ assert.strictEqual(typeof program.requestTimeout, 'number');
168
+ assert.strictEqual(program.requestTimeout, requestTimeout);
169
+ });
170
+
171
+ it('respects the backup --iam-api-key command-line parameter', function() {
172
+ const key = '123abc-789zyx_CBA987-XYZ321';
173
+ process.argv = ['node', 'test', '--iam-api-key', key];
174
+ const program = parser.parseBackupArgs();
175
+ assert.strictEqual(typeof program.iamApiKey, 'string');
176
+ assert.strictEqual(program.iamApiKey, key);
177
+ });
178
+
179
+ it('respects the backup --log command-line parameter', function() {
180
+ const filename = 'my2.log';
181
+ process.argv = ['node', 'test', '--log', filename];
182
+ const program = parser.parseBackupArgs();
183
+ assert.strictEqual(typeof program.log, 'string');
184
+ assert.strictEqual(program.log, filename);
185
+ });
186
+
187
+ it('respects the backup --resume command-line parameter', function() {
188
+ process.argv = ['node', 'test', '--resume'];
189
+ const program = parser.parseBackupArgs();
190
+ assert.strictEqual(typeof program.resume, 'boolean');
191
+ assert.strictEqual(program.resume, true);
192
+ });
193
+
194
+ it('respects the backup --output command-line parameter', function() {
195
+ const filename = 'myfile2.txt';
196
+ process.argv = ['node', 'test', '--output', filename];
197
+ const program = parser.parseBackupArgs();
198
+ assert.strictEqual(typeof program.output, 'string');
199
+ assert.strictEqual(program.output, filename);
200
+ });
201
+
202
+ it('respects the backup --mode full command-line parameter', function() {
203
+ process.argv = ['node', 'test', '--mode', 'full'];
204
+ const program = parser.parseBackupArgs();
205
+ assert.strictEqual(typeof program.mode, 'string');
206
+ assert.strictEqual(program.mode, 'full');
207
+ });
208
+
209
+ it('respects the backup --mode shallow command-line parameter', function() {
210
+ process.argv = ['node', 'test', '--mode', 'shallow'];
211
+ const program = parser.parseBackupArgs();
212
+ assert.strictEqual(typeof program.mode, 'string');
213
+ assert.strictEqual(program.mode, 'shallow');
214
+ });
215
+
216
+ it('respects the backup --quiet command-line parameter', function() {
217
+ process.argv = ['node', 'test', '--quiet'];
218
+ const program = parser.parseBackupArgs();
219
+ assert.strictEqual(typeof program.quiet, 'boolean');
220
+ assert.strictEqual(program.quiet, true);
221
+ });
222
+ });
223
+
224
+ describe('Restore command-line', function() {
225
+ it('respects the COUCH_URL env variable if the --url restore command-line parameter is missing', function() {
226
+ process.argv = ['node', 'test'];
227
+ const program = parser.parseRestoreArgs();
228
+ assert.strictEqual(typeof program.url, 'string');
229
+ assert.strictEqual(program.url, process.env.COUCH_URL);
230
+ });
231
+
232
+ it('respects the COUCH_DATABASE env variable if the --db restore command-line parameter is missing', function() {
233
+ process.argv = ['node', 'test'];
234
+ const program = parser.parseRestoreArgs();
235
+ assert.strictEqual(typeof program.db, 'string');
236
+ assert.strictEqual(program.db, process.env.COUCH_DATABASE);
237
+ });
238
+
239
+ it('respects the COUCH_BUFFER_SIZE env variable if the --buffer-size restore command-line parameter is missing', function() {
240
+ process.argv = ['node', 'test'];
241
+ const program = parser.parseRestoreArgs();
242
+ assert.strictEqual(typeof program.bufferSize, 'number');
243
+ assert.strictEqual(program.bufferSize, parseInt(process.env.COUCH_BUFFER_SIZE, 10));
244
+ });
245
+
246
+ it('respects the COUCH_PARALLELISM env variable if the --parallelism restore command-line parameter is missing', function() {
247
+ process.argv = ['node', 'test'];
248
+ const program = parser.parseRestoreArgs();
249
+ assert.strictEqual(typeof program.parallelism, 'number');
250
+ assert.strictEqual(program.parallelism, parseInt(process.env.COUCH_PARALLELISM, 10));
251
+ });
252
+
253
+ it('respects the COUCH_REQUEST_TIMEOUT env variable if the --request-timeout restore command-line parameter is missing', function() {
254
+ process.argv = ['node', 'test'];
255
+ const program = parser.parseRestoreArgs();
256
+ assert.strictEqual(typeof program.requestTimeout, 'number');
257
+ assert.strictEqual(program.requestTimeout, parseInt(process.env.COUCH_REQUEST_TIMEOUT, 10));
258
+ });
259
+
260
+ it('respects the CLOUDANT_IAM_API_KEY env variable if the --iam-api-key restore command-line parameter is missing', function() {
261
+ process.argv = ['node', 'test'];
262
+ const program = parser.parseRestoreArgs();
263
+ assert.strictEqual(typeof program.iamApiKey, 'string');
264
+ assert.strictEqual(program.iamApiKey, process.env.CLOUDANT_IAM_API_KEY);
265
+ });
266
+
267
+ it('respects the COUCH_QUIET env variable if the --quiet restorer command-line parameter is missing', function() {
268
+ process.argv = ['node', 'test'];
269
+ const program = parser.parseBackupArgs();
270
+ assert.strictEqual(typeof program.quiet, 'boolean');
271
+ assert.strictEqual(program.quiet, true);
272
+ });
273
+
274
+ it('respects the restore --url command-line parameter', function() {
275
+ const url = 'https://a:b@myurl3.com';
276
+ process.argv = ['node', 'test', '--url', url];
277
+ const program = parser.parseRestoreArgs();
278
+ assert.strictEqual(typeof program.url, 'string');
279
+ assert.strictEqual(program.url, url);
280
+ });
281
+
282
+ it('respects the restore --db command-line parameter', function() {
283
+ const db = 'mydb3';
284
+ process.argv = ['node', 'test', '--db', db];
285
+ const program = parser.parseRestoreArgs();
286
+ assert.strictEqual(typeof program.db, 'string');
287
+ assert.strictEqual(program.db, db);
288
+ });
289
+
290
+ it('respects the restore --buffer-size command-line parameter', function() {
291
+ const bufferSize = 250;
292
+ process.argv = ['node', 'test', '--buffer-size', bufferSize];
293
+ const program = parser.parseRestoreArgs();
294
+ assert.strictEqual(typeof program.bufferSize, 'number');
295
+ assert.strictEqual(program.bufferSize, bufferSize);
296
+ });
297
+
298
+ it('respects the restore --parallelism command-line parameter', function() {
299
+ const parallelism = 5;
300
+ process.argv = ['node', 'test', '--parallelism', parallelism];
301
+ const program = parser.parseRestoreArgs();
302
+ assert.strictEqual(typeof program.parallelism, 'number');
303
+ assert.strictEqual(program.parallelism, parallelism);
304
+ });
305
+
306
+ it('respects the restore --request-timeout command-line parameter', function() {
307
+ const requestTimeout = 10000;
308
+ process.argv = ['node', 'test', '--request-timeout', requestTimeout];
309
+ const program = parser.parseRestoreArgs();
310
+ assert.strictEqual(typeof program.requestTimeout, 'number');
311
+ assert.strictEqual(program.requestTimeout, requestTimeout);
312
+ });
313
+
314
+ it('respects the restore --iam-api-key command-line parameter', function() {
315
+ const key = '123abc-789zyx_CBA987-XYZ321';
316
+ process.argv = ['node', 'test', '--iam-api-key', key];
317
+ const program = parser.parseRestoreArgs();
318
+ assert.strictEqual(typeof program.iamApiKey, 'string');
319
+ assert.strictEqual(program.iamApiKey, key);
320
+ });
321
+
322
+ it('respects the restore --quiet command-line parameter', function() {
323
+ process.argv = ['node', 'test', '--quiet'];
324
+ const program = parser.parseRestoreArgs();
325
+ assert.strictEqual(typeof program.quiet, 'boolean');
326
+ assert.strictEqual(program.quiet, true);
327
+ });
328
+ });
329
+ });