@cloudant/couchbackup 2.9.8 → 2.9.9-SNAPSHOT.101

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 (440) 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/analysis.log +1 -1
  4. package/.scannerwork/scanner-report/changesets-11.pb +1 -0
  5. package/.scannerwork/scanner-report/changesets-12.pb +1 -0
  6. package/.scannerwork/scanner-report/changesets-13.pb +1 -0
  7. package/.scannerwork/scanner-report/changesets-14.pb +1 -0
  8. package/.scannerwork/scanner-report/changesets-15.pb +1 -0
  9. package/.scannerwork/scanner-report/changesets-16.pb +1 -0
  10. package/.scannerwork/scanner-report/changesets-17.pb +1 -0
  11. package/.scannerwork/scanner-report/changesets-18.pb +1 -0
  12. package/.scannerwork/scanner-report/changesets-2.pb +1 -0
  13. package/.scannerwork/scanner-report/changesets-3.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-40.pb +1 -0
  17. package/.scannerwork/scanner-report/changesets-55.pb +1 -0
  18. package/.scannerwork/scanner-report/changesets-56.pb +1 -0
  19. package/.scannerwork/scanner-report/changesets-59.pb +1 -0
  20. package/.scannerwork/scanner-report/changesets-60.pb +1 -0
  21. package/.scannerwork/scanner-report/changesets-61.pb +1 -0
  22. package/.scannerwork/scanner-report/changesets-62.pb +1 -0
  23. package/.scannerwork/scanner-report/changesets-63.pb +1 -0
  24. package/.scannerwork/scanner-report/changesets-64.pb +1 -0
  25. package/.scannerwork/scanner-report/changesets-67.pb +1 -0
  26. package/.scannerwork/scanner-report/changesets-68.pb +1 -0
  27. package/.scannerwork/scanner-report/component-1.pb +2 -1
  28. package/.scannerwork/scanner-report/component-10.pb +2 -0
  29. package/.scannerwork/scanner-report/component-11.pb +1 -0
  30. package/.scannerwork/scanner-report/component-12.pb +1 -0
  31. package/.scannerwork/scanner-report/component-13.pb +1 -0
  32. package/.scannerwork/scanner-report/component-14.pb +1 -0
  33. package/.scannerwork/scanner-report/component-15.pb +1 -0
  34. package/.scannerwork/scanner-report/component-16.pb +1 -0
  35. package/.scannerwork/scanner-report/component-17.pb +1 -0
  36. package/.scannerwork/scanner-report/component-18.pb +1 -0
  37. package/.scannerwork/scanner-report/component-19.pb +1 -1
  38. package/.scannerwork/scanner-report/component-2.pb +1 -0
  39. package/.scannerwork/scanner-report/component-20.pb +1 -1
  40. package/.scannerwork/scanner-report/component-21.pb +1 -1
  41. package/.scannerwork/scanner-report/component-22.pb +1 -1
  42. package/.scannerwork/scanner-report/component-23.pb +1 -1
  43. package/.scannerwork/scanner-report/component-24.pb +1 -1
  44. package/.scannerwork/scanner-report/component-25.pb +1 -1
  45. package/.scannerwork/scanner-report/component-27.pb +1 -1
  46. package/.scannerwork/scanner-report/component-3.pb +1 -0
  47. package/.scannerwork/scanner-report/component-30.pb +1 -1
  48. package/.scannerwork/scanner-report/component-31.pb +1 -1
  49. package/.scannerwork/scanner-report/component-33.pb +1 -1
  50. package/.scannerwork/scanner-report/component-34.pb +1 -1
  51. package/.scannerwork/scanner-report/component-36.pb +1 -1
  52. package/.scannerwork/scanner-report/component-37.pb +1 -1
  53. package/.scannerwork/scanner-report/component-38.pb +1 -1
  54. package/.scannerwork/scanner-report/component-39.pb +1 -0
  55. package/.scannerwork/scanner-report/component-4.pb +1 -1
  56. package/.scannerwork/scanner-report/component-40.pb +1 -1
  57. package/.scannerwork/scanner-report/component-52.pb +1 -1
  58. package/.scannerwork/scanner-report/component-53.pb +1 -1
  59. package/.scannerwork/scanner-report/component-54.pb +1 -1
  60. package/.scannerwork/scanner-report/component-55.pb +1 -1
  61. package/.scannerwork/scanner-report/component-56.pb +1 -0
  62. package/.scannerwork/scanner-report/component-57.pb +1 -1
  63. package/.scannerwork/scanner-report/component-58.pb +1 -1
  64. package/.scannerwork/scanner-report/component-59.pb +1 -1
  65. package/.scannerwork/scanner-report/component-60.pb +1 -0
  66. package/.scannerwork/scanner-report/component-61.pb +1 -1
  67. package/.scannerwork/scanner-report/component-62.pb +1 -0
  68. package/.scannerwork/scanner-report/component-63.pb +1 -0
  69. package/.scannerwork/scanner-report/component-64.pb +1 -0
  70. package/.scannerwork/scanner-report/component-65.pb +1 -1
  71. package/.scannerwork/scanner-report/component-66.pb +1 -1
  72. package/.scannerwork/scanner-report/component-67.pb +1 -0
  73. package/.scannerwork/scanner-report/component-68.pb +1 -0
  74. package/.scannerwork/scanner-report/component-69.pb +1 -1
  75. package/.scannerwork/scanner-report/coverages-12.pb +0 -0
  76. package/.scannerwork/scanner-report/coverages-18.pb +0 -0
  77. package/.scannerwork/scanner-report/coverages-19.pb +0 -0
  78. package/.scannerwork/scanner-report/coverages-2.pb +0 -0
  79. package/.scannerwork/scanner-report/coverages-20.pb +0 -0
  80. package/.scannerwork/scanner-report/coverages-21.pb +0 -0
  81. package/.scannerwork/scanner-report/coverages-22.pb +0 -0
  82. package/.scannerwork/scanner-report/coverages-23.pb +0 -0
  83. package/.scannerwork/scanner-report/coverages-24.pb +0 -0
  84. package/.scannerwork/scanner-report/coverages-3.pb +0 -0
  85. package/.scannerwork/scanner-report/coverages-30.pb +0 -0
  86. package/.scannerwork/scanner-report/coverages-33.pb +0 -0
  87. package/.scannerwork/scanner-report/coverages-34.pb +0 -0
  88. package/.scannerwork/scanner-report/coverages-36.pb +0 -0
  89. package/.scannerwork/scanner-report/coverages-37.pb +0 -0
  90. package/.scannerwork/scanner-report/coverages-38.pb +0 -0
  91. package/.scannerwork/scanner-report/coverages-4.pb +0 -0
  92. package/.scannerwork/scanner-report/coverages-52.pb +0 -0
  93. package/.scannerwork/scanner-report/coverages-53.pb +0 -0
  94. package/.scannerwork/scanner-report/coverages-54.pb +0 -0
  95. package/.scannerwork/scanner-report/coverages-56.pb +0 -0
  96. package/.scannerwork/scanner-report/coverages-57.pb +0 -0
  97. package/.scannerwork/scanner-report/coverages-58.pb +0 -0
  98. package/.scannerwork/scanner-report/coverages-59.pb +0 -0
  99. package/.scannerwork/scanner-report/coverages-60.pb +0 -0
  100. package/.scannerwork/scanner-report/coverages-63.pb +0 -0
  101. package/.scannerwork/scanner-report/coverages-64.pb +0 -0
  102. package/.scannerwork/scanner-report/coverages-65.pb +0 -0
  103. package/.scannerwork/scanner-report/coverages-66.pb +0 -0
  104. package/.scannerwork/scanner-report/duplications-17.pb +2 -0
  105. package/.scannerwork/scanner-report/duplications-19.pb +1 -2
  106. package/.scannerwork/scanner-report/duplications-21.pb +0 -2
  107. package/.scannerwork/scanner-report/duplications-22.pb +0 -3
  108. package/.scannerwork/scanner-report/duplications-3.pb +2 -0
  109. package/.scannerwork/scanner-report/duplications-36.pb +0 -2
  110. package/.scannerwork/scanner-report/duplications-38.pb +3 -0
  111. package/.scannerwork/scanner-report/duplications-4.pb +2 -0
  112. package/.scannerwork/scanner-report/duplications-54.pb +2 -0
  113. package/.scannerwork/scanner-report/duplications-60.pb +2 -0
  114. package/.scannerwork/scanner-report/duplications-63.pb +3 -0
  115. package/.scannerwork/scanner-report/duplications-65.pb +0 -2
  116. package/.scannerwork/scanner-report/duplications-66.pb +0 -2
  117. package/.scannerwork/scanner-report/measures-10.pb +0 -0
  118. package/.scannerwork/scanner-report/measures-12.pb +0 -0
  119. package/.scannerwork/scanner-report/measures-18.pb +0 -0
  120. package/.scannerwork/scanner-report/measures-19.pb +0 -0
  121. package/.scannerwork/scanner-report/measures-2.pb +0 -0
  122. package/.scannerwork/scanner-report/measures-20.pb +0 -0
  123. package/.scannerwork/scanner-report/measures-21.pb +0 -0
  124. package/.scannerwork/scanner-report/measures-22.pb +0 -0
  125. package/.scannerwork/scanner-report/measures-23.pb +0 -0
  126. package/.scannerwork/scanner-report/measures-24.pb +0 -0
  127. package/.scannerwork/scanner-report/measures-25.pb +0 -0
  128. package/.scannerwork/scanner-report/measures-27.pb +0 -0
  129. package/.scannerwork/scanner-report/measures-3.pb +0 -0
  130. package/.scannerwork/scanner-report/measures-30.pb +0 -0
  131. package/.scannerwork/scanner-report/measures-31.pb +0 -0
  132. package/.scannerwork/scanner-report/measures-33.pb +0 -0
  133. package/.scannerwork/scanner-report/measures-34.pb +0 -0
  134. package/.scannerwork/scanner-report/measures-36.pb +0 -0
  135. package/.scannerwork/scanner-report/measures-37.pb +0 -0
  136. package/.scannerwork/scanner-report/measures-38.pb +0 -0
  137. package/.scannerwork/scanner-report/measures-4.pb +0 -0
  138. package/.scannerwork/scanner-report/measures-40.pb +0 -0
  139. package/.scannerwork/scanner-report/measures-52.pb +0 -0
  140. package/.scannerwork/scanner-report/measures-53.pb +0 -0
  141. package/.scannerwork/scanner-report/measures-54.pb +0 -0
  142. package/.scannerwork/scanner-report/measures-55.pb +0 -0
  143. package/.scannerwork/scanner-report/measures-56.pb +0 -0
  144. package/.scannerwork/scanner-report/measures-57.pb +0 -0
  145. package/.scannerwork/scanner-report/measures-58.pb +0 -0
  146. package/.scannerwork/scanner-report/measures-59.pb +0 -0
  147. package/.scannerwork/scanner-report/measures-60.pb +15 -0
  148. package/.scannerwork/scanner-report/measures-61.pb +0 -0
  149. package/.scannerwork/scanner-report/measures-63.pb +0 -0
  150. package/.scannerwork/scanner-report/measures-64.pb +0 -0
  151. package/.scannerwork/scanner-report/measures-65.pb +0 -0
  152. package/.scannerwork/scanner-report/measures-66.pb +0 -0
  153. package/.scannerwork/scanner-report/measures-67.pb +0 -0
  154. package/.scannerwork/scanner-report/measures-68.pb +0 -0
  155. package/.scannerwork/scanner-report/measures-69.pb +0 -0
  156. package/.scannerwork/scanner-report/metadata.pb +0 -0
  157. package/.scannerwork/scanner-report/source-10.txt +167 -0
  158. package/.scannerwork/scanner-report/source-12.txt +164 -0
  159. package/.scannerwork/scanner-report/source-18.txt +111 -0
  160. package/.scannerwork/scanner-report/source-19.txt +71 -110
  161. package/.scannerwork/scanner-report/source-2.txt +114 -0
  162. package/.scannerwork/scanner-report/source-20.txt +25 -19
  163. package/.scannerwork/scanner-report/source-21.txt +105 -269
  164. package/.scannerwork/scanner-report/source-22.txt +57 -96
  165. package/.scannerwork/scanner-report/source-23.txt +40 -78
  166. package/.scannerwork/scanner-report/source-24.txt +19 -598
  167. package/.scannerwork/scanner-report/source-25.txt +509 -29
  168. package/.scannerwork/scanner-report/source-27.txt +509 -36
  169. package/.scannerwork/scanner-report/source-3.txt +190 -0
  170. package/.scannerwork/scanner-report/source-30.txt +399 -17
  171. package/.scannerwork/scanner-report/source-31.txt +509 -100
  172. package/.scannerwork/scanner-report/source-33.txt +52 -131
  173. package/.scannerwork/scanner-report/source-34.txt +36 -48
  174. package/.scannerwork/scanner-report/source-36.txt +25 -203
  175. package/.scannerwork/scanner-report/source-37.txt +121 -93
  176. package/.scannerwork/scanner-report/source-38.txt +119 -167
  177. package/.scannerwork/scanner-report/source-4.txt +158 -17
  178. package/.scannerwork/scanner-report/source-40.txt +244 -509
  179. package/.scannerwork/scanner-report/source-52.txt +599 -85
  180. package/.scannerwork/scanner-report/source-53.txt +47 -30
  181. package/.scannerwork/scanner-report/source-54.txt +202 -141
  182. package/.scannerwork/scanner-report/source-55.txt +68 -509
  183. package/.scannerwork/scanner-report/source-56.txt +36 -0
  184. package/.scannerwork/scanner-report/source-57.txt +20 -62
  185. package/.scannerwork/scanner-report/source-58.txt +140 -40
  186. package/.scannerwork/scanner-report/source-59.txt +34 -509
  187. package/.scannerwork/scanner-report/source-60.txt +293 -0
  188. package/.scannerwork/scanner-report/source-61.txt +366 -509
  189. package/.scannerwork/scanner-report/source-63.txt +131 -0
  190. package/.scannerwork/scanner-report/source-64.txt +92 -0
  191. package/.scannerwork/scanner-report/source-65.txt +80 -170
  192. package/.scannerwork/scanner-report/source-66.txt +46 -153
  193. package/.scannerwork/scanner-report/source-67.txt +36 -0
  194. package/.scannerwork/scanner-report/source-68.txt +29 -0
  195. package/.scannerwork/scanner-report/source-69.txt +509 -418
  196. package/.scannerwork/scanner-report/symbols-12.pb +126 -0
  197. package/.scannerwork/scanner-report/symbols-18.pb +59 -0
  198. package/.scannerwork/scanner-report/symbols-19.pb +44 -97
  199. package/.scannerwork/scanner-report/symbols-2.pb +28 -0
  200. package/.scannerwork/scanner-report/symbols-20.pb +17 -16
  201. package/.scannerwork/scanner-report/symbols-21.pb +33 -486
  202. package/.scannerwork/scanner-report/symbols-22.pb +41 -72
  203. package/.scannerwork/scanner-report/symbols-23.pb +15 -60
  204. package/.scannerwork/scanner-report/symbols-24.pb +19 -1253
  205. package/.scannerwork/scanner-report/symbols-3.pb +180 -0
  206. package/.scannerwork/scanner-report/symbols-30.pb +610 -14
  207. package/.scannerwork/scanner-report/symbols-33.pb +29 -111
  208. package/.scannerwork/scanner-report/symbols-34.pb +18 -35
  209. package/.scannerwork/scanner-report/symbols-36.pb +26 -417
  210. package/.scannerwork/scanner-report/symbols-37.pb +116 -28
  211. package/.scannerwork/scanner-report/symbols-38.pb +77 -0
  212. package/.scannerwork/scanner-report/symbols-4.pb +152 -9
  213. package/.scannerwork/scanner-report/symbols-52.pb +1251 -56
  214. package/.scannerwork/scanner-report/symbols-53.pb +42 -19
  215. package/.scannerwork/scanner-report/symbols-54.pb +417 -125
  216. package/.scannerwork/scanner-report/symbols-56.pb +14 -0
  217. package/.scannerwork/scanner-report/symbols-57.pb +16 -29
  218. package/.scannerwork/scanner-report/symbols-58.pb +111 -18
  219. package/.scannerwork/scanner-report/symbols-59.pb +10 -0
  220. package/.scannerwork/scanner-report/symbols-60.pb +486 -0
  221. package/.scannerwork/scanner-report/symbols-63.pb +97 -0
  222. package/.scannerwork/scanner-report/symbols-64.pb +60 -0
  223. package/.scannerwork/scanner-report/symbols-65.pb +69 -180
  224. package/.scannerwork/scanner-report/symbols-66.pb +35 -152
  225. package/.scannerwork/scanner-report/syntax-highlightings-10.pb +949 -0
  226. package/.scannerwork/scanner-report/syntax-highlightings-12.pb +213 -0
  227. package/.scannerwork/scanner-report/syntax-highlightings-18.pb +133 -0
  228. package/.scannerwork/scanner-report/syntax-highlightings-19.pb +57 -149
  229. package/.scannerwork/scanner-report/syntax-highlightings-2.pb +138 -0
  230. package/.scannerwork/scanner-report/syntax-highlightings-20.pb +20 -33
  231. package/.scannerwork/scanner-report/syntax-highlightings-21.pb +91 -621
  232. package/.scannerwork/scanner-report/syntax-highlightings-22.pb +58 -121
  233. package/.scannerwork/scanner-report/syntax-highlightings-23.pb +22 -78
  234. package/.scannerwork/scanner-report/syntax-highlightings-24.pb +33 -856
  235. package/.scannerwork/scanner-report/syntax-highlightings-25.pb +3731 -31
  236. package/.scannerwork/scanner-report/syntax-highlightings-27.pb +3738 -48
  237. package/.scannerwork/scanner-report/syntax-highlightings-3.pb +225 -0
  238. package/.scannerwork/scanner-report/syntax-highlightings-30.pb +619 -25
  239. package/.scannerwork/scanner-report/syntax-highlightings-31.pb +3737 -94
  240. package/.scannerwork/scanner-report/syntax-highlightings-33.pb +74 -194
  241. package/.scannerwork/scanner-report/syntax-highlightings-34.pb +61 -74
  242. package/.scannerwork/scanner-report/syntax-highlightings-36.pb +28 -291
  243. package/.scannerwork/scanner-report/syntax-highlightings-37.pb +99 -103
  244. package/.scannerwork/scanner-report/syntax-highlightings-38.pb +147 -937
  245. package/.scannerwork/scanner-report/syntax-highlightings-4.pb +185 -21
  246. package/.scannerwork/scanner-report/syntax-highlightings-40.pb +222 -3642
  247. package/.scannerwork/scanner-report/syntax-highlightings-52.pb +845 -91
  248. package/.scannerwork/scanner-report/syntax-highlightings-53.pb +51 -33
  249. package/.scannerwork/scanner-report/syntax-highlightings-54.pb +286 -168
  250. package/.scannerwork/scanner-report/syntax-highlightings-55.pb +99 -3735
  251. package/.scannerwork/scanner-report/syntax-highlightings-56.pb +54 -0
  252. package/.scannerwork/scanner-report/syntax-highlightings-57.pb +42 -82
  253. package/.scannerwork/scanner-report/syntax-highlightings-58.pb +196 -55
  254. package/.scannerwork/scanner-report/syntax-highlightings-59.pb +32 -3729
  255. package/.scannerwork/scanner-report/syntax-highlightings-60.pb +659 -0
  256. package/.scannerwork/scanner-report/syntax-highlightings-61.pb +385 -3503
  257. package/.scannerwork/scanner-report/syntax-highlightings-63.pb +182 -0
  258. package/.scannerwork/scanner-report/syntax-highlightings-64.pb +110 -0
  259. package/.scannerwork/scanner-report/syntax-highlightings-65.pb +67 -187
  260. package/.scannerwork/scanner-report/syntax-highlightings-66.pb +64 -183
  261. package/.scannerwork/scanner-report/syntax-highlightings-67.pb +59 -0
  262. package/.scannerwork/scanner-report/syntax-highlightings-68.pb +48 -0
  263. package/.scannerwork/scanner-report/syntax-highlightings-69.pb +3545 -445
  264. package/package.json +5 -5
  265. package/test-14-results.xml +155 -155
  266. package/test-16-results.xml +147 -147
  267. package/test-18-results.xml +158 -158
  268. package/test-19-results.xml +150 -150
  269. package/test-iam-18-results.xml +50 -50
  270. package/.scannerwork/scanner-report/changesets-25.pb +0 -1
  271. package/.scannerwork/scanner-report/changesets-26.pb +0 -1
  272. package/.scannerwork/scanner-report/changesets-27.pb +0 -1
  273. package/.scannerwork/scanner-report/changesets-28.pb +0 -1
  274. package/.scannerwork/scanner-report/changesets-29.pb +0 -1
  275. package/.scannerwork/scanner-report/changesets-31.pb +0 -1
  276. package/.scannerwork/scanner-report/changesets-32.pb +0 -1
  277. package/.scannerwork/scanner-report/changesets-35.pb +0 -1
  278. package/.scannerwork/scanner-report/changesets-41.pb +0 -1
  279. package/.scannerwork/scanner-report/changesets-42.pb +0 -1
  280. package/.scannerwork/scanner-report/changesets-43.pb +0 -1
  281. package/.scannerwork/scanner-report/changesets-44.pb +0 -1
  282. package/.scannerwork/scanner-report/changesets-45.pb +0 -1
  283. package/.scannerwork/scanner-report/changesets-46.pb +0 -1
  284. package/.scannerwork/scanner-report/changesets-47.pb +0 -1
  285. package/.scannerwork/scanner-report/changesets-48.pb +0 -1
  286. package/.scannerwork/scanner-report/changesets-49.pb +0 -1
  287. package/.scannerwork/scanner-report/changesets-5.pb +0 -1
  288. package/.scannerwork/scanner-report/changesets-50.pb +0 -1
  289. package/.scannerwork/scanner-report/changesets-51.pb +0 -1
  290. package/.scannerwork/scanner-report/changesets-6.pb +0 -1
  291. package/.scannerwork/scanner-report/changesets-69.pb +0 -1
  292. package/.scannerwork/scanner-report/changesets-7.pb +0 -1
  293. package/.scannerwork/scanner-report/component-26.pb +0 -1
  294. package/.scannerwork/scanner-report/component-28.pb +0 -1
  295. package/.scannerwork/scanner-report/component-29.pb +0 -1
  296. package/.scannerwork/scanner-report/component-32.pb +0 -1
  297. package/.scannerwork/scanner-report/component-35.pb +0 -1
  298. package/.scannerwork/scanner-report/component-41.pb +0 -1
  299. package/.scannerwork/scanner-report/component-42.pb +0 -1
  300. package/.scannerwork/scanner-report/component-43.pb +0 -1
  301. package/.scannerwork/scanner-report/component-44.pb +0 -1
  302. package/.scannerwork/scanner-report/component-45.pb +0 -1
  303. package/.scannerwork/scanner-report/component-46.pb +0 -1
  304. package/.scannerwork/scanner-report/component-47.pb +0 -1
  305. package/.scannerwork/scanner-report/component-48.pb +0 -1
  306. package/.scannerwork/scanner-report/component-49.pb +0 -1
  307. package/.scannerwork/scanner-report/component-5.pb +0 -1
  308. package/.scannerwork/scanner-report/component-50.pb +0 -1
  309. package/.scannerwork/scanner-report/component-51.pb +0 -1
  310. package/.scannerwork/scanner-report/component-6.pb +0 -1
  311. package/.scannerwork/scanner-report/component-7.pb +0 -1
  312. package/.scannerwork/scanner-report/coverages-26.pb +0 -0
  313. package/.scannerwork/scanner-report/coverages-28.pb +0 -0
  314. package/.scannerwork/scanner-report/coverages-31.pb +0 -0
  315. package/.scannerwork/scanner-report/coverages-43.pb +0 -0
  316. package/.scannerwork/scanner-report/coverages-46.pb +0 -0
  317. package/.scannerwork/scanner-report/coverages-47.pb +0 -0
  318. package/.scannerwork/scanner-report/coverages-49.pb +0 -0
  319. package/.scannerwork/scanner-report/coverages-51.pb +0 -0
  320. package/.scannerwork/scanner-report/coverages-69.pb +0 -0
  321. package/.scannerwork/scanner-report/coverages-7.pb +0 -0
  322. package/.scannerwork/scanner-report/duplications-43.pb +0 -2
  323. package/.scannerwork/scanner-report/duplications-45.pb +0 -2
  324. package/.scannerwork/scanner-report/duplications-6.pb +0 -0
  325. package/.scannerwork/scanner-report/duplications-69.pb +0 -0
  326. package/.scannerwork/scanner-report/duplications-7.pb +0 -0
  327. package/.scannerwork/scanner-report/measures-26.pb +0 -0
  328. package/.scannerwork/scanner-report/measures-28.pb +0 -0
  329. package/.scannerwork/scanner-report/measures-29.pb +0 -0
  330. package/.scannerwork/scanner-report/measures-43.pb +0 -0
  331. package/.scannerwork/scanner-report/measures-46.pb +0 -0
  332. package/.scannerwork/scanner-report/measures-47.pb +0 -0
  333. package/.scannerwork/scanner-report/measures-49.pb +0 -0
  334. package/.scannerwork/scanner-report/measures-5.pb +0 -0
  335. package/.scannerwork/scanner-report/measures-51.pb +0 -0
  336. package/.scannerwork/scanner-report/measures-6.pb +0 -0
  337. package/.scannerwork/scanner-report/measures-7.pb +0 -0
  338. package/.scannerwork/scanner-report/source-26.txt +0 -63
  339. package/.scannerwork/scanner-report/source-28.txt +0 -142
  340. package/.scannerwork/scanner-report/source-29.txt +0 -366
  341. package/.scannerwork/scanner-report/source-43.txt +0 -92
  342. package/.scannerwork/scanner-report/source-46.txt +0 -54
  343. package/.scannerwork/scanner-report/source-47.txt +0 -41
  344. package/.scannerwork/scanner-report/source-49.txt +0 -129
  345. package/.scannerwork/scanner-report/source-5.txt +0 -244
  346. package/.scannerwork/scanner-report/source-51.txt +0 -80
  347. package/.scannerwork/scanner-report/source-6.txt +0 -68
  348. package/.scannerwork/scanner-report/source-7.txt +0 -47
  349. package/.scannerwork/scanner-report/symbols-26.pb +0 -43
  350. package/.scannerwork/scanner-report/symbols-28.pb +0 -116
  351. package/.scannerwork/scanner-report/symbols-31.pb +0 -69
  352. package/.scannerwork/scanner-report/symbols-43.pb +0 -44
  353. package/.scannerwork/scanner-report/symbols-46.pb +0 -15
  354. package/.scannerwork/scanner-report/symbols-47.pb +0 -18
  355. package/.scannerwork/scanner-report/symbols-49.pb +0 -33
  356. package/.scannerwork/scanner-report/symbols-51.pb +0 -46
  357. package/.scannerwork/scanner-report/symbols-69.pb +0 -610
  358. package/.scannerwork/scanner-report/symbols-7.pb +0 -27
  359. package/.scannerwork/scanner-report/syntax-highlightings-26.pb +0 -82
  360. package/.scannerwork/scanner-report/syntax-highlightings-28.pb +0 -134
  361. package/.scannerwork/scanner-report/syntax-highlightings-29.pb +0 -630
  362. package/.scannerwork/scanner-report/syntax-highlightings-43.pb +0 -90
  363. package/.scannerwork/scanner-report/syntax-highlightings-46.pb +0 -54
  364. package/.scannerwork/scanner-report/syntax-highlightings-47.pb +0 -50
  365. package/.scannerwork/scanner-report/syntax-highlightings-49.pb +0 -129
  366. package/.scannerwork/scanner-report/syntax-highlightings-5.pb +0 -329
  367. package/.scannerwork/scanner-report/syntax-highlightings-51.pb +0 -95
  368. package/.scannerwork/scanner-report/syntax-highlightings-6.pb +0 -110
  369. package/.scannerwork/scanner-report/syntax-highlightings-7.pb +0 -68
  370. /package/.scannerwork/scanner-report/{coverages-48.pb → coverages-11.pb} +0 -0
  371. /package/.scannerwork/scanner-report/{coverages-42.pb → coverages-13.pb} +0 -0
  372. /package/.scannerwork/scanner-report/{coverages-44.pb → coverages-14.pb} +0 -0
  373. /package/.scannerwork/scanner-report/{coverages-50.pb → coverages-15.pb} +0 -0
  374. /package/.scannerwork/scanner-report/{coverages-41.pb → coverages-16.pb} +0 -0
  375. /package/.scannerwork/scanner-report/{coverages-45.pb → coverages-17.pb} +0 -0
  376. /package/.scannerwork/scanner-report/{coverages-35.pb → coverages-39.pb} +0 -0
  377. /package/.scannerwork/scanner-report/{coverages-5.pb → coverages-40.pb} +0 -0
  378. /package/.scannerwork/scanner-report/{coverages-6.pb → coverages-55.pb} +0 -0
  379. /package/.scannerwork/scanner-report/{coverages-29.pb → coverages-61.pb} +0 -0
  380. /package/.scannerwork/scanner-report/{coverages-32.pb → coverages-62.pb} +0 -0
  381. /package/.scannerwork/scanner-report/{coverages-27.pb → coverages-67.pb} +0 -0
  382. /package/.scannerwork/scanner-report/{coverages-25.pb → coverages-68.pb} +0 -0
  383. /package/.scannerwork/scanner-report/{duplications-26.pb → duplications-11.pb} +0 -0
  384. /package/.scannerwork/scanner-report/{duplications-27.pb → duplications-12.pb} +0 -0
  385. /package/.scannerwork/scanner-report/{duplications-28.pb → duplications-13.pb} +0 -0
  386. /package/.scannerwork/scanner-report/{duplications-29.pb → duplications-14.pb} +0 -0
  387. /package/.scannerwork/scanner-report/{duplications-31.pb → duplications-15.pb} +0 -0
  388. /package/.scannerwork/scanner-report/{duplications-35.pb → duplications-16.pb} +0 -0
  389. /package/.scannerwork/scanner-report/{duplications-41.pb → duplications-18.pb} +0 -0
  390. /package/.scannerwork/scanner-report/{duplications-42.pb → duplications-2.pb} +0 -0
  391. /package/.scannerwork/scanner-report/{duplications-44.pb → duplications-39.pb} +0 -0
  392. /package/.scannerwork/scanner-report/{duplications-5.pb → duplications-40.pb} +0 -0
  393. /package/.scannerwork/scanner-report/{duplications-46.pb → duplications-55.pb} +0 -0
  394. /package/.scannerwork/scanner-report/{duplications-47.pb → duplications-56.pb} +0 -0
  395. /package/.scannerwork/scanner-report/{duplications-48.pb → duplications-59.pb} +0 -0
  396. /package/.scannerwork/scanner-report/{duplications-49.pb → duplications-61.pb} +0 -0
  397. /package/.scannerwork/scanner-report/{duplications-32.pb → duplications-62.pb} +0 -0
  398. /package/.scannerwork/scanner-report/{duplications-50.pb → duplications-64.pb} +0 -0
  399. /package/.scannerwork/scanner-report/{duplications-51.pb → duplications-67.pb} +0 -0
  400. /package/.scannerwork/scanner-report/{issues-7.pb → issues-36.pb} +0 -0
  401. /package/.scannerwork/scanner-report/{issues-28.pb → issues-37.pb} +0 -0
  402. /package/.scannerwork/scanner-report/{issues-5.pb → issues-40.pb} +0 -0
  403. /package/.scannerwork/scanner-report/{issues-29.pb → issues-61.pb} +0 -0
  404. /package/.scannerwork/scanner-report/{measures-48.pb → measures-11.pb} +0 -0
  405. /package/.scannerwork/scanner-report/{measures-42.pb → measures-13.pb} +0 -0
  406. /package/.scannerwork/scanner-report/{measures-44.pb → measures-14.pb} +0 -0
  407. /package/.scannerwork/scanner-report/{measures-50.pb → measures-15.pb} +0 -0
  408. /package/.scannerwork/scanner-report/{measures-41.pb → measures-16.pb} +0 -0
  409. /package/.scannerwork/scanner-report/{measures-45.pb → measures-17.pb} +0 -0
  410. /package/.scannerwork/scanner-report/{measures-35.pb → measures-39.pb} +0 -0
  411. /package/.scannerwork/scanner-report/{measures-32.pb → measures-62.pb} +0 -0
  412. /package/.scannerwork/scanner-report/{source-48.txt → source-11.txt} +0 -0
  413. /package/.scannerwork/scanner-report/{source-42.txt → source-13.txt} +0 -0
  414. /package/.scannerwork/scanner-report/{source-44.txt → source-14.txt} +0 -0
  415. /package/.scannerwork/scanner-report/{source-50.txt → source-15.txt} +0 -0
  416. /package/.scannerwork/scanner-report/{source-41.txt → source-16.txt} +0 -0
  417. /package/.scannerwork/scanner-report/{source-45.txt → source-17.txt} +0 -0
  418. /package/.scannerwork/scanner-report/{source-35.txt → source-39.txt} +0 -0
  419. /package/.scannerwork/scanner-report/{source-32.txt → source-62.txt} +0 -0
  420. /package/.scannerwork/scanner-report/{symbols-48.pb → symbols-11.pb} +0 -0
  421. /package/.scannerwork/scanner-report/{symbols-42.pb → symbols-13.pb} +0 -0
  422. /package/.scannerwork/scanner-report/{symbols-44.pb → symbols-14.pb} +0 -0
  423. /package/.scannerwork/scanner-report/{symbols-50.pb → symbols-15.pb} +0 -0
  424. /package/.scannerwork/scanner-report/{symbols-41.pb → symbols-16.pb} +0 -0
  425. /package/.scannerwork/scanner-report/{symbols-45.pb → symbols-17.pb} +0 -0
  426. /package/.scannerwork/scanner-report/{symbols-35.pb → symbols-39.pb} +0 -0
  427. /package/.scannerwork/scanner-report/{symbols-5.pb → symbols-40.pb} +0 -0
  428. /package/.scannerwork/scanner-report/{symbols-6.pb → symbols-55.pb} +0 -0
  429. /package/.scannerwork/scanner-report/{symbols-29.pb → symbols-61.pb} +0 -0
  430. /package/.scannerwork/scanner-report/{symbols-32.pb → symbols-62.pb} +0 -0
  431. /package/.scannerwork/scanner-report/{symbols-27.pb → symbols-67.pb} +0 -0
  432. /package/.scannerwork/scanner-report/{symbols-25.pb → symbols-68.pb} +0 -0
  433. /package/.scannerwork/scanner-report/{syntax-highlightings-48.pb → syntax-highlightings-11.pb} +0 -0
  434. /package/.scannerwork/scanner-report/{syntax-highlightings-42.pb → syntax-highlightings-13.pb} +0 -0
  435. /package/.scannerwork/scanner-report/{syntax-highlightings-44.pb → syntax-highlightings-14.pb} +0 -0
  436. /package/.scannerwork/scanner-report/{syntax-highlightings-50.pb → syntax-highlightings-15.pb} +0 -0
  437. /package/.scannerwork/scanner-report/{syntax-highlightings-41.pb → syntax-highlightings-16.pb} +0 -0
  438. /package/.scannerwork/scanner-report/{syntax-highlightings-45.pb → syntax-highlightings-17.pb} +0 -0
  439. /package/.scannerwork/scanner-report/{syntax-highlightings-35.pb → syntax-highlightings-39.pb} +0 -0
  440. /package/.scannerwork/scanner-report/{syntax-highlightings-32.pb → syntax-highlightings-62.pb} +0 -0
@@ -11,36 +11,53 @@
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
- // stolen from http://strongloop.com/strongblog/practical-examples-of-the-new-node-js-streams-api/
17
- const stream = require('stream');
18
-
19
- module.exports = function() {
20
- const liner = new stream.Transform({ objectMode: true });
21
14
 
22
- liner._transform = function(chunk, encoding, done) {
23
- let data = chunk.toString();
24
- if (this._lastLineData) {
25
- data = this._lastLineData + data;
26
- }
27
-
28
- const lines = data.split('\n');
29
- this._lastLineData = lines.splice(lines.length - 1, 1)[0];
30
-
31
- for (const i in lines) {
32
- this.push(lines[i]);
33
- }
34
- done();
35
- };
15
+ /* global describe it */
16
+ 'use strict';
36
17
 
37
- liner._flush = function(done) {
38
- if (this._lastLineData) {
39
- this.push(this._lastLineData);
40
- }
41
- this._lastLineData = null;
42
- done();
43
- };
18
+ const fs = require('fs');
19
+ const u = require('./citestutils.js');
44
20
 
45
- return liner;
46
- };
21
+ describe('Event tests', function() {
22
+ it('should get a finished event when using stdout', function(done) {
23
+ u.setTimeout(this, 40);
24
+ // Use the API so we can get events
25
+ const params = { useApi: true };
26
+ const backup = u.testBackup(params, 'animaldb', process.stdout, function(err) {
27
+ if (err) {
28
+ done(err);
29
+ }
30
+ });
31
+ backup.on('finished', function() {
32
+ try {
33
+ // Test will time out if the finished event is not emitted
34
+ done();
35
+ } catch (err) {
36
+ done(err);
37
+ }
38
+ });
39
+ });
40
+ it('should get a finished event when using file output', function(done) {
41
+ u.setTimeout(this, 40);
42
+ // Use the API so we can get events
43
+ const params = { useApi: true };
44
+ const actualBackup = `./${this.fileName}`;
45
+ // Create a file and backup to it
46
+ const output = fs.createWriteStream(actualBackup);
47
+ output.on('open', function() {
48
+ const backup = u.testBackup(params, 'animaldb', output, function(err) {
49
+ if (err) {
50
+ done(err);
51
+ }
52
+ });
53
+ backup.on('finished', function() {
54
+ try {
55
+ // Test will time out if the finished event is not emitted
56
+ done();
57
+ } catch (err) {
58
+ done(err);
59
+ }
60
+ });
61
+ });
62
+ });
63
+ });
@@ -1,4 +1,4 @@
1
- // Copyright © 2017, 2021 IBM Corp. All rights reserved.
1
+ // Copyright © 2017, 2018 IBM Corp. All rights reserved.
2
2
  //
3
3
  // Licensed under the Apache License, Version 2.0 (the "License");
4
4
  // you may not use this file except in compliance with the License.
@@ -11,154 +11,215 @@
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 async = require('async');
17
- const stream = require('stream');
18
- const error = require('./error.js');
19
- const debug = require('debug')('couchbackup:writer');
20
-
21
- module.exports = function(db, bufferSize, parallelism, ee) {
22
- const writer = new stream.Transform({ objectMode: true });
23
- let buffer = [];
24
- let written = 0;
25
- let linenumber = 0;
26
-
27
- // this is the queue of chunks that are written to the database
28
- // the queue's payload will be an array of documents to be written,
29
- // the size of the array will be bufferSize. The variable parallelism
30
- // determines how many HTTP requests will occur at any one time.
31
- const q = async.queue(function(payload, cb) {
32
- // if we are restoring known revisions, we need to supply new_edits=false
33
- if (payload.docs && payload.docs[0] && payload.docs[0]._rev) {
34
- payload.new_edits = false;
35
- debug('Using new_edits false mode.');
36
- }
37
-
38
- if (!didError) {
39
- db.service.postBulkDocs({
40
- db: db.db,
41
- bulkDocs: payload
42
- }).then(response => {
43
- if (!response.result || (payload.new_edits === false && response.result.length > 0)) {
44
- throw new Error(`Error writing batch with new_edits:${payload.new_edits !== false}` +
45
- ` and ${response.result ? response.result.length : 'unavailable'} items`);
46
- }
47
- written += payload.docs.length;
48
- writer.emit('restored', { documents: payload.docs.length, total: written });
49
- cb();
50
- }).catch(err => {
51
- err = error.convertResponseError(err);
52
- debug(`Error writing docs ${err.name} ${err.message}`);
53
- cb(err, payload);
54
- });
55
- }
56
- }, parallelism);
57
-
58
- let didError = false;
59
14
 
60
- // write the contents of the buffer to CouchDB in blocks of bufferSize
61
- function processBuffer(flush, callback) {
62
- function taskCallback(err, payload) {
63
- if (err && !didError) {
64
- debug(`Queue task failed with error ${err.name}`);
65
- didError = true;
66
- q.kill();
67
- writer.emit('error', err);
68
- }
69
- }
70
-
71
- if (flush || buffer.length >= bufferSize) {
72
- // work through the buffer to break off bufferSize chunks
73
- // and feed the chunks to the queue
74
- do {
75
- // split the buffer into bufferSize chunks
76
- const toSend = buffer.splice(0, bufferSize);
77
-
78
- // and add the chunk to the queue
79
- debug(`Adding ${toSend.length} to the write queue.`);
80
- q.push({ docs: toSend }, taskCallback);
81
- } while (buffer.length >= bufferSize);
15
+ /* global describe it */
16
+ 'use strict';
82
17
 
83
- // send any leftover documents to the queue
84
- if (flush && buffer.length > 0) {
85
- debug(`Adding remaining ${buffer.length} to the write queue.`);
86
- q.push({ docs: buffer }, taskCallback);
18
+ const assert = require('assert');
19
+ const backup = require('../app.js').backup;
20
+ const fs = require('fs');
21
+ const nock = require('nock');
22
+
23
+ const goodUrl = 'http://localhost:5984/db';
24
+ // The real validateArgs function of app.js isn't
25
+ // exported - so we call the exported backup method
26
+ // instead. We don't get as far as a real backup when
27
+ // testing error cases. For success cases we nock the
28
+ // goodUrl and
29
+ const validateArgs = function(url, opts, callback) {
30
+ const nullStream = fs.createWriteStream('/dev/null');
31
+ let cb = callback;
32
+ if (url === goodUrl) {
33
+ // Nock the goodUrl
34
+ nock(goodUrl).head('').reply(404, { error: 'not_found', reason: 'missing' });
35
+ // replace the callback to handle the nock response
36
+ // to avoid attempting a real backup
37
+ cb = function(err) {
38
+ nullStream.end();
39
+ if (err.name === 'DatabaseNotFound') {
40
+ // This is what we expect if we reached the backup
41
+ // This is success for valid args cases.
42
+ err = null;
87
43
  }
88
-
89
- // wait until the queue size falls to a reasonable level
90
- async.until(
91
- // wait until the queue length drops to twice the paralellism
92
- // or until empty on the last write
93
- function(callback) {
94
- // if we encountered an error, stop this until loop
95
- if (didError) {
96
- return callback(null, true);
97
- }
98
- if (flush) {
99
- callback(null, q.idle() && q.length() === 0);
100
- } else {
101
- callback(null, q.length() <= parallelism * 2);
102
- }
103
- },
104
- function(cb) {
105
- setTimeout(cb, 20);
106
- },
107
-
108
- function() {
109
- if (flush && !didError) {
110
- writer.emit('finished', { total: written });
111
- }
112
- // callback when we're happy with the queue size
113
- callback();
114
- });
115
- } else {
116
- callback();
117
- }
44
+ callback(err);
45
+ };
118
46
  }
47
+ backup(url, nullStream, opts, cb);
48
+ return true;
49
+ };
119
50
 
120
- // take an object
121
- writer._transform = function(obj, encoding, done) {
122
- // each obj that arrives here is a line from the backup file
123
- // it should contain an array of objects. The length of the array
124
- // depends on the bufferSize at backup time.
125
- linenumber++;
126
- if (!didError && obj !== '') {
127
- // see if it parses as JSON
128
- try {
129
- const arr = JSON.parse(obj);
130
-
131
- // if it's an array with a length
132
- if (typeof arr === 'object' && arr.length > 0) {
133
- // push each document into a buffer
134
- buffer = buffer.concat(arr);
135
-
136
- // pause the stream
137
- // it's likely that the speed with which data can be read from disk
138
- // may exceed the rate it can be written to CouchDB. To prevent
139
- // the whole file being buffered in memory, we pause the stream here.
140
- // it is resumed, when processBuffer calls back and we call done()
141
- this.pause();
51
+ const stderrWriteFun = process.stderr.write;
52
+ let capturedStderr;
142
53
 
143
- // break the buffer in to bufferSize chunks to be written to the database
144
- processBuffer(false, done);
145
- } else {
146
- ee.emit('error', new error.BackupError('BackupFileJsonError', `Error on line ${linenumber} of backup file - not an array`));
147
- done();
148
- }
149
- } catch (e) {
150
- ee.emit('error', new error.BackupError('BackupFileJsonError', `Error on line ${linenumber} of backup file - cannot parse as JSON`));
151
- // Could be an incomplete write that was subsequently resumed
152
- done();
153
- }
154
- } else {
54
+ function captureStderr() {
55
+ process.stderr.write = function(string, encoding, fd) {
56
+ capturedStderr += string;
57
+ };
58
+ }
59
+
60
+ function releaseStderr() {
61
+ process.stderr.write = stderrWriteFun;
62
+ capturedStderr = null;
63
+ }
64
+
65
+ function assertErrorMessage(msg, done) {
66
+ return function(err, data) {
67
+ try {
68
+ assert(err.message, 'There should be an error message');
69
+ assert(err.message.indexOf(msg) >= 0);
70
+ assert(data === null || data === undefined, 'There should only be an error.');
155
71
  done();
72
+ } catch (e) {
73
+ done(e);
156
74
  }
157
75
  };
76
+ }
158
77
 
159
- // called when we need to flush everything
160
- writer._flush = function(done) {
161
- processBuffer(true, done);
78
+ function assertNoError(done) {
79
+ return function(err, data) {
80
+ try {
81
+ assert(err === null, 'There should be no error message.');
82
+ done();
83
+ } catch (e) {
84
+ done(e);
85
+ }
162
86
  };
163
- return writer;
164
- };
87
+ }
88
+
89
+ describe('#unit Validate arguments', function() {
90
+ it('returns error for invalid URL type', function(done) {
91
+ validateArgs(true, {}, assertErrorMessage('Invalid URL, must be type string', done));
92
+ });
93
+ it('returns no error for valid URL type', function(done) {
94
+ validateArgs(goodUrl, {}, assertNoError(done));
95
+ });
96
+ it('returns error for invalid (no host) URL', function(done) {
97
+ validateArgs('http://', {}, assertErrorMessage('Invalid URL', done));
98
+ });
99
+ it('returns error for invalid (no protocol) URL', function(done) {
100
+ validateArgs('invalid', {}, assertErrorMessage('Invalid URL', done));
101
+ });
102
+ it('returns error for invalid (wrong protocol) URL', function(done) {
103
+ validateArgs('ftp://invalid.example.com', {}, assertErrorMessage('Invalid URL protocol.', done));
104
+ });
105
+ it('returns error for invalid (no path) URL', function(done) {
106
+ validateArgs('https://invalid.example.com', {}, assertErrorMessage('Invalid URL, missing path element (no database).', done));
107
+ });
108
+ it('returns error for invalid (no protocol, no host) URL', function(done) {
109
+ validateArgs('invalid', {}, assertErrorMessage('Invalid URL', done));
110
+ });
111
+ it('returns error for invalid buffer size type', function(done) {
112
+ validateArgs(goodUrl, { bufferSize: '123' }, assertErrorMessage('Invalid buffer size option, must be a positive integer in the range (0, MAX_SAFE_INTEGER]', done));
113
+ });
114
+ it('returns error for zero buffer size', function(done) {
115
+ validateArgs(goodUrl, { bufferSize: 0 }, assertErrorMessage('Invalid buffer size option, must be a positive integer in the range (0, MAX_SAFE_INTEGER]', done));
116
+ });
117
+ it('returns error for float buffer size', function(done) {
118
+ validateArgs(goodUrl, { bufferSize: 1.23 }, assertErrorMessage('Invalid buffer size option, must be a positive integer in the range (0, MAX_SAFE_INTEGER]', done));
119
+ });
120
+ it('returns no error for valid buffer size type', function(done) {
121
+ validateArgs(goodUrl, { bufferSize: 123 }, assertNoError(done));
122
+ });
123
+ it('returns error for invalid log type', function(done) {
124
+ validateArgs(goodUrl, { log: true }, assertErrorMessage('Invalid log option, must be type string', done));
125
+ });
126
+ it('returns no error for valid log type', function(done) {
127
+ validateArgs(goodUrl, { log: 'log.txt' }, assertNoError(done));
128
+ });
129
+ it('returns error for invalid mode type', function(done) {
130
+ validateArgs(goodUrl, { mode: true }, assertErrorMessage('Invalid mode option, must be either "full" or "shallow"', done));
131
+ });
132
+ it('returns error for invalid mode string', function(done) {
133
+ validateArgs(goodUrl, { mode: 'foobar' }, assertErrorMessage('Invalid mode option, must be either "full" or "shallow"', done));
134
+ });
135
+ it('returns no error for valid mode type', function(done) {
136
+ validateArgs(goodUrl, { mode: 'full' }, assertNoError(done));
137
+ });
138
+ it('returns error for invalid output type', function(done) {
139
+ validateArgs(goodUrl, { output: true }, assertErrorMessage('Invalid output option, must be type string', done));
140
+ });
141
+ it('returns no error for valid output type', function(done) {
142
+ validateArgs(goodUrl, { output: 'output.txt' }, assertNoError(done));
143
+ });
144
+ it('returns error for invalid parallelism type', function(done) {
145
+ validateArgs(goodUrl, { parallelism: '123' }, assertErrorMessage('Invalid parallelism option, must be a positive integer in the range (0, MAX_SAFE_INTEGER]', done));
146
+ });
147
+ it('returns error for zero parallelism', function(done) {
148
+ validateArgs(goodUrl, { parallelism: 0 }, assertErrorMessage('Invalid parallelism option, must be a positive integer in the range (0, MAX_SAFE_INTEGER]', done));
149
+ });
150
+ it('returns error for float parallelism', function(done) {
151
+ validateArgs(goodUrl, { parallelism: 1.23 }, assertErrorMessage('Invalid parallelism option, must be a positive integer in the range (0, MAX_SAFE_INTEGER]', done));
152
+ });
153
+ it('returns no error for valid parallelism type', function(done) {
154
+ validateArgs(goodUrl, { parallelism: 123 }, assertNoError(done));
155
+ });
156
+ it('returns error for invalid request timeout type', function(done) {
157
+ validateArgs(goodUrl, { requestTimeout: '123' }, assertErrorMessage('Invalid request timeout option, must be a positive integer in the range (0, MAX_SAFE_INTEGER]', done));
158
+ });
159
+ it('returns error for zero request timeout', function(done) {
160
+ validateArgs(goodUrl, { requestTimeout: 0 }, assertErrorMessage('Invalid request timeout option, must be a positive integer in the range (0, MAX_SAFE_INTEGER]', done));
161
+ });
162
+ it('returns error for float request timout', function(done) {
163
+ validateArgs(goodUrl, { requestTimeout: 1.23 }, assertErrorMessage('Invalid request timeout option, must be a positive integer in the range (0, MAX_SAFE_INTEGER]', done));
164
+ });
165
+ it('returns no error for valid request timeout type', function(done) {
166
+ validateArgs(goodUrl, { requestTimeout: 123 }, assertNoError(done));
167
+ });
168
+ it('returns error for invalid resume type', function(done) {
169
+ validateArgs(goodUrl, { resume: 'true' }, assertErrorMessage('Invalid resume option, must be type boolean', done));
170
+ });
171
+ it('returns no error for valid resume type', function(done) {
172
+ validateArgs(goodUrl, { resume: false }, assertNoError(done));
173
+ });
174
+ it('returns error for invalid key type', function(done) {
175
+ validateArgs(goodUrl, { iamApiKey: true }, assertErrorMessage('Invalid iamApiKey option, must be type string', done));
176
+ });
177
+ it('returns error for key and URL credentials supplied', function(done) {
178
+ validateArgs('https://a:b@example.com/db', { iamApiKey: 'abc123' }, assertErrorMessage('URL user information must not be supplied when using IAM API key.', done));
179
+ });
180
+ it('warns for log arg in shallow mode', function(done) {
181
+ captureStderr();
182
+ try {
183
+ validateArgs(goodUrl, { mode: 'shallow', log: 'test' }, function(err, data) {
184
+ assert.ok(err);
185
+ assert.ok(!data);
186
+ assert(capturedStderr.indexOf('The options "log" and "resume" are invalid when using shallow mode.') > -1, 'Log warning message was not present');
187
+ });
188
+ done();
189
+ } catch (e) {
190
+ done(e);
191
+ } finally {
192
+ releaseStderr();
193
+ }
194
+ });
195
+ it('warns for resume arg in shallow mode', function(done) {
196
+ captureStderr();
197
+ try {
198
+ validateArgs(goodUrl, { mode: 'shallow', log: 'test', resume: true }, function(err, data) {
199
+ assert.ok(err);
200
+ assert.ok(!data);
201
+ assert(capturedStderr.indexOf('The options "log" and "resume" are invalid when using shallow mode.') > -1, 'Log warning message was not present');
202
+ });
203
+ done();
204
+ } catch (e) {
205
+ done(e);
206
+ } finally {
207
+ releaseStderr();
208
+ }
209
+ });
210
+ it('warns for parallism arg in shallow mode', function(done) {
211
+ captureStderr();
212
+ try {
213
+ validateArgs(goodUrl, { mode: 'shallow', parallelsim: 10 }, function(err, data) {
214
+ assert.ok(err);
215
+ assert.ok(!data);
216
+ assert(capturedStderr.indexOf('The option "parallelism" has no effect when using shallow mode.') > -1, 'Log warning message was not present');
217
+ });
218
+ done();
219
+ } catch (e) {
220
+ done(e);
221
+ } finally {
222
+ releaseStderr();
223
+ }
224
+ });
225
+ });