@cloudant/couchbackup 2.9.16-SNAPSHOT.183 → 2.9.16

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 (392) 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-2.pb +1 -0
  6. package/.scannerwork/scanner-report/changesets-34.pb +1 -0
  7. package/.scannerwork/scanner-report/changesets-35.pb +1 -0
  8. package/.scannerwork/scanner-report/changesets-36.pb +1 -0
  9. package/.scannerwork/scanner-report/changesets-37.pb +1 -0
  10. package/.scannerwork/scanner-report/changesets-4.pb +1 -0
  11. package/.scannerwork/scanner-report/changesets-43.pb +1 -0
  12. package/.scannerwork/scanner-report/changesets-44.pb +1 -0
  13. package/.scannerwork/scanner-report/changesets-45.pb +1 -0
  14. package/.scannerwork/scanner-report/changesets-5.pb +1 -0
  15. package/.scannerwork/scanner-report/changesets-60.pb +1 -0
  16. package/.scannerwork/scanner-report/changesets-61.pb +1 -0
  17. package/.scannerwork/scanner-report/changesets-64.pb +1 -0
  18. package/.scannerwork/scanner-report/changesets-66.pb +1 -0
  19. package/.scannerwork/scanner-report/changesets-8.pb +1 -0
  20. package/.scannerwork/scanner-report/component-1.pb +2 -2
  21. package/.scannerwork/scanner-report/component-10.pb +1 -1
  22. package/.scannerwork/scanner-report/component-12.pb +1 -1
  23. package/.scannerwork/scanner-report/component-13.pb +1 -1
  24. package/.scannerwork/scanner-report/component-14.pb +1 -1
  25. package/.scannerwork/scanner-report/component-15.pb +1 -1
  26. package/.scannerwork/scanner-report/component-16.pb +1 -1
  27. package/.scannerwork/scanner-report/component-17.pb +1 -1
  28. package/.scannerwork/scanner-report/component-18.pb +1 -1
  29. package/.scannerwork/scanner-report/component-19.pb +1 -1
  30. package/.scannerwork/scanner-report/component-2.pb +1 -0
  31. package/.scannerwork/scanner-report/component-20.pb +1 -1
  32. package/.scannerwork/scanner-report/component-21.pb +1 -1
  33. package/.scannerwork/scanner-report/component-22.pb +1 -1
  34. package/.scannerwork/scanner-report/component-3.pb +1 -0
  35. package/.scannerwork/scanner-report/component-34.pb +1 -0
  36. package/.scannerwork/scanner-report/component-35.pb +1 -0
  37. package/.scannerwork/scanner-report/component-36.pb +1 -0
  38. package/.scannerwork/scanner-report/component-37.pb +1 -0
  39. package/.scannerwork/scanner-report/component-38.pb +1 -1
  40. package/.scannerwork/scanner-report/component-39.pb +1 -1
  41. package/.scannerwork/scanner-report/component-4.pb +1 -1
  42. package/.scannerwork/scanner-report/component-40.pb +1 -1
  43. package/.scannerwork/scanner-report/component-41.pb +1 -1
  44. package/.scannerwork/scanner-report/component-42.pb +1 -1
  45. package/.scannerwork/scanner-report/component-43.pb +1 -0
  46. package/.scannerwork/scanner-report/component-44.pb +1 -1
  47. package/.scannerwork/scanner-report/component-45.pb +1 -0
  48. package/.scannerwork/scanner-report/component-46.pb +1 -1
  49. package/.scannerwork/scanner-report/component-47.pb +1 -1
  50. package/.scannerwork/scanner-report/component-48.pb +1 -1
  51. package/.scannerwork/scanner-report/component-49.pb +1 -1
  52. package/.scannerwork/scanner-report/component-5.pb +1 -0
  53. package/.scannerwork/scanner-report/component-50.pb +1 -1
  54. package/.scannerwork/scanner-report/component-51.pb +1 -1
  55. package/.scannerwork/scanner-report/component-52.pb +1 -1
  56. package/.scannerwork/scanner-report/component-54.pb +1 -1
  57. package/.scannerwork/scanner-report/component-55.pb +1 -1
  58. package/.scannerwork/scanner-report/component-6.pb +1 -1
  59. package/.scannerwork/scanner-report/component-60.pb +1 -1
  60. package/.scannerwork/scanner-report/component-61.pb +1 -0
  61. package/.scannerwork/scanner-report/component-64.pb +1 -1
  62. package/.scannerwork/scanner-report/component-66.pb +1 -0
  63. package/.scannerwork/scanner-report/component-68.pb +1 -1
  64. package/.scannerwork/scanner-report/component-7.pb +1 -1
  65. package/.scannerwork/scanner-report/component-8.pb +1 -0
  66. package/.scannerwork/scanner-report/component-9.pb +1 -1
  67. package/.scannerwork/scanner-report/coverages-10.pb +0 -0
  68. package/.scannerwork/scanner-report/coverages-12.pb +0 -0
  69. package/.scannerwork/scanner-report/coverages-13.pb +0 -0
  70. package/.scannerwork/scanner-report/coverages-14.pb +0 -0
  71. package/.scannerwork/scanner-report/coverages-15.pb +0 -0
  72. package/.scannerwork/scanner-report/coverages-16.pb +0 -0
  73. package/.scannerwork/scanner-report/coverages-17.pb +0 -0
  74. package/.scannerwork/scanner-report/coverages-18.pb +0 -0
  75. package/.scannerwork/scanner-report/coverages-19.pb +0 -0
  76. package/.scannerwork/scanner-report/coverages-2.pb +0 -0
  77. package/.scannerwork/scanner-report/coverages-20.pb +0 -0
  78. package/.scannerwork/scanner-report/coverages-21.pb +0 -0
  79. package/.scannerwork/scanner-report/coverages-22.pb +0 -0
  80. package/.scannerwork/scanner-report/coverages-34.pb +0 -0
  81. package/.scannerwork/scanner-report/coverages-35.pb +0 -0
  82. package/.scannerwork/scanner-report/coverages-36.pb +0 -0
  83. package/.scannerwork/scanner-report/coverages-39.pb +0 -0
  84. package/.scannerwork/scanner-report/coverages-4.pb +0 -0
  85. package/.scannerwork/scanner-report/coverages-40.pb +0 -0
  86. package/.scannerwork/scanner-report/coverages-41.pb +0 -0
  87. package/.scannerwork/scanner-report/coverages-42.pb +0 -0
  88. package/.scannerwork/scanner-report/coverages-45.pb +0 -0
  89. package/.scannerwork/scanner-report/coverages-46.pb +0 -0
  90. package/.scannerwork/scanner-report/coverages-47.pb +0 -0
  91. package/.scannerwork/scanner-report/coverages-48.pb +0 -0
  92. package/.scannerwork/scanner-report/coverages-49.pb +0 -0
  93. package/.scannerwork/scanner-report/coverages-5.pb +0 -0
  94. package/.scannerwork/scanner-report/coverages-50.pb +0 -0
  95. package/.scannerwork/scanner-report/coverages-51.pb +0 -0
  96. package/.scannerwork/scanner-report/coverages-52.pb +0 -0
  97. package/.scannerwork/scanner-report/coverages-54.pb +0 -0
  98. package/.scannerwork/scanner-report/coverages-6.pb +0 -0
  99. package/.scannerwork/scanner-report/coverages-7.pb +0 -0
  100. package/.scannerwork/scanner-report/coverages-8.pb +0 -0
  101. package/.scannerwork/scanner-report/coverages-9.pb +0 -0
  102. package/.scannerwork/scanner-report/duplications-12.pb +3 -0
  103. package/.scannerwork/scanner-report/duplications-16.pb +0 -2
  104. package/.scannerwork/scanner-report/duplications-17.pb +0 -2
  105. package/.scannerwork/scanner-report/duplications-4.pb +2 -0
  106. package/.scannerwork/scanner-report/duplications-46.pb +0 -2
  107. package/.scannerwork/scanner-report/duplications-50.pb +1 -1
  108. package/.scannerwork/scanner-report/duplications-51.pb +2 -0
  109. package/.scannerwork/scanner-report/duplications-64.pb +2 -0
  110. package/.scannerwork/scanner-report/duplications-66.pb +2 -0
  111. package/.scannerwork/scanner-report/duplications-9.pb +2 -0
  112. package/.scannerwork/scanner-report/issues-12.pb +3 -2
  113. package/.scannerwork/scanner-report/issues-35.pb +3 -0
  114. package/.scannerwork/scanner-report/measures-10.pb +0 -0
  115. package/.scannerwork/scanner-report/measures-12.pb +0 -0
  116. package/.scannerwork/scanner-report/measures-13.pb +0 -0
  117. package/.scannerwork/scanner-report/measures-14.pb +0 -0
  118. package/.scannerwork/scanner-report/measures-15.pb +0 -0
  119. package/.scannerwork/scanner-report/measures-16.pb +0 -0
  120. package/.scannerwork/scanner-report/measures-17.pb +0 -0
  121. package/.scannerwork/scanner-report/measures-18.pb +0 -0
  122. package/.scannerwork/scanner-report/measures-19.pb +0 -0
  123. package/.scannerwork/scanner-report/measures-2.pb +0 -0
  124. package/.scannerwork/scanner-report/measures-20.pb +0 -0
  125. package/.scannerwork/scanner-report/measures-21.pb +0 -0
  126. package/.scannerwork/scanner-report/measures-22.pb +0 -0
  127. package/.scannerwork/scanner-report/measures-3.pb +0 -0
  128. package/.scannerwork/scanner-report/measures-34.pb +0 -0
  129. package/.scannerwork/scanner-report/measures-35.pb +0 -0
  130. package/.scannerwork/scanner-report/measures-36.pb +15 -0
  131. package/.scannerwork/scanner-report/measures-38.pb +0 -0
  132. package/.scannerwork/scanner-report/measures-39.pb +0 -0
  133. package/.scannerwork/scanner-report/measures-4.pb +0 -0
  134. package/.scannerwork/scanner-report/measures-40.pb +0 -0
  135. package/.scannerwork/scanner-report/measures-41.pb +0 -0
  136. package/.scannerwork/scanner-report/measures-42.pb +0 -0
  137. package/.scannerwork/scanner-report/measures-44.pb +0 -0
  138. package/.scannerwork/scanner-report/measures-45.pb +0 -0
  139. package/.scannerwork/scanner-report/measures-46.pb +0 -0
  140. package/.scannerwork/scanner-report/measures-47.pb +0 -0
  141. package/.scannerwork/scanner-report/measures-48.pb +0 -0
  142. package/.scannerwork/scanner-report/measures-49.pb +0 -0
  143. package/.scannerwork/scanner-report/measures-5.pb +0 -0
  144. package/.scannerwork/scanner-report/measures-50.pb +0 -0
  145. package/.scannerwork/scanner-report/measures-51.pb +0 -0
  146. package/.scannerwork/scanner-report/measures-52.pb +0 -0
  147. package/.scannerwork/scanner-report/measures-54.pb +0 -0
  148. package/.scannerwork/scanner-report/measures-55.pb +0 -0
  149. package/.scannerwork/scanner-report/measures-6.pb +0 -0
  150. package/.scannerwork/scanner-report/measures-60.pb +0 -0
  151. package/.scannerwork/scanner-report/measures-64.pb +0 -0
  152. package/.scannerwork/scanner-report/measures-68.pb +0 -0
  153. package/.scannerwork/scanner-report/measures-7.pb +0 -0
  154. package/.scannerwork/scanner-report/measures-8.pb +0 -0
  155. package/.scannerwork/scanner-report/measures-9.pb +0 -0
  156. package/.scannerwork/scanner-report/metadata.pb +0 -0
  157. package/.scannerwork/scanner-report/source-10.txt +16 -19
  158. package/.scannerwork/scanner-report/source-12.txt +193 -22
  159. package/.scannerwork/scanner-report/source-13.txt +78 -6
  160. package/.scannerwork/scanner-report/source-14.txt +112 -44
  161. package/.scannerwork/scanner-report/source-15.txt +428 -16
  162. package/.scannerwork/scanner-report/source-16.txt +259 -153
  163. package/.scannerwork/scanner-report/source-17.txt +84 -167
  164. package/.scannerwork/scanner-report/source-18.txt +83 -42
  165. package/.scannerwork/scanner-report/source-19.txt +114 -86
  166. package/.scannerwork/scanner-report/source-2.txt +414 -0
  167. package/.scannerwork/scanner-report/source-20.txt +41 -77
  168. package/.scannerwork/scanner-report/source-21.txt +9 -10
  169. package/.scannerwork/scanner-report/source-22.txt +22 -115
  170. package/.scannerwork/scanner-report/source-3.txt +424 -0
  171. package/.scannerwork/scanner-report/source-34.txt +37 -0
  172. package/.scannerwork/scanner-report/source-35.txt +42 -0
  173. package/.scannerwork/scanner-report/source-36.txt +151 -0
  174. package/.scannerwork/scanner-report/source-38.txt +424 -213
  175. package/.scannerwork/scanner-report/source-39.txt +115 -23
  176. package/.scannerwork/scanner-report/source-4.txt +187 -424
  177. package/.scannerwork/scanner-report/source-40.txt +88 -426
  178. package/.scannerwork/scanner-report/source-41.txt +32 -315
  179. package/.scannerwork/scanner-report/source-42.txt +60 -131
  180. package/.scannerwork/scanner-report/source-44.txt +178 -424
  181. package/.scannerwork/scanner-report/source-45.txt +118 -0
  182. package/.scannerwork/scanner-report/source-46.txt +14 -65
  183. package/.scannerwork/scanner-report/source-47.txt +91 -24
  184. package/.scannerwork/scanner-report/source-48.txt +140 -17
  185. package/.scannerwork/scanner-report/source-49.txt +256 -55
  186. package/.scannerwork/scanner-report/source-5.txt +29 -0
  187. package/.scannerwork/scanner-report/source-50.txt +29 -12
  188. package/.scannerwork/scanner-report/source-51.txt +50 -139
  189. package/.scannerwork/scanner-report/source-52.txt +16 -266
  190. package/.scannerwork/scanner-report/source-54.txt +32 -104
  191. package/.scannerwork/scanner-report/source-55.txt +424 -111
  192. package/.scannerwork/scanner-report/source-6.txt +305 -22
  193. package/.scannerwork/scanner-report/source-60.txt +60 -424
  194. package/.scannerwork/scanner-report/source-64.txt +190 -102
  195. package/.scannerwork/scanner-report/source-68.txt +102 -190
  196. package/.scannerwork/scanner-report/source-7.txt +159 -382
  197. package/.scannerwork/scanner-report/source-8.txt +62 -0
  198. package/.scannerwork/scanner-report/source-9.txt +167 -84
  199. package/.scannerwork/scanner-report/symbols-10.pb +9 -23
  200. package/.scannerwork/scanner-report/symbols-12.pb +264 -19
  201. package/.scannerwork/scanner-report/symbols-13.pb +58 -8
  202. package/.scannerwork/scanner-report/symbols-14.pb +86 -24
  203. package/.scannerwork/scanner-report/symbols-15.pb +790 -9
  204. package/.scannerwork/scanner-report/symbols-16.pb +417 -216
  205. package/.scannerwork/scanner-report/symbols-17.pb +69 -203
  206. package/.scannerwork/scanner-report/symbols-18.pb +59 -33
  207. package/.scannerwork/scanner-report/symbols-19.pb +71 -59
  208. package/.scannerwork/scanner-report/symbols-2.pb +604 -0
  209. package/.scannerwork/scanner-report/symbols-20.pb +32 -57
  210. package/.scannerwork/scanner-report/symbols-21.pb +13 -21
  211. package/.scannerwork/scanner-report/symbols-22.pb +31 -71
  212. package/.scannerwork/scanner-report/symbols-34.pb +13 -0
  213. package/.scannerwork/scanner-report/symbols-35.pb +19 -0
  214. package/.scannerwork/scanner-report/symbols-36.pb +93 -0
  215. package/.scannerwork/scanner-report/symbols-39.pb +33 -13
  216. package/.scannerwork/scanner-report/symbols-4.pb +227 -0
  217. package/.scannerwork/scanner-report/symbols-40.pb +56 -787
  218. package/.scannerwork/scanner-report/symbols-41.pb +20 -353
  219. package/.scannerwork/scanner-report/symbols-42.pb +45 -92
  220. package/.scannerwork/scanner-report/symbols-45.pb +30 -0
  221. package/.scannerwork/scanner-report/symbols-46.pb +16 -42
  222. package/.scannerwork/scanner-report/symbols-47.pb +44 -18
  223. package/.scannerwork/scanner-report/symbols-48.pb +126 -18
  224. package/.scannerwork/scanner-report/symbols-49.pb +354 -46
  225. package/.scannerwork/scanner-report/symbols-5.pb +8 -0
  226. package/.scannerwork/scanner-report/symbols-50.pb +38 -36
  227. package/.scannerwork/scanner-report/symbols-51.pb +42 -126
  228. package/.scannerwork/scanner-report/symbols-52.pb +14 -354
  229. package/.scannerwork/scanner-report/symbols-54.pb +7 -30
  230. package/.scannerwork/scanner-report/symbols-6.pb +353 -7
  231. package/.scannerwork/scanner-report/symbols-7.pb +203 -598
  232. package/.scannerwork/scanner-report/symbols-8.pb +24 -0
  233. package/.scannerwork/scanner-report/symbols-9.pb +203 -69
  234. package/.scannerwork/scanner-report/syntax-highlightings-10.pb +25 -20
  235. package/.scannerwork/scanner-report/syntax-highlightings-12.pb +257 -26
  236. package/.scannerwork/scanner-report/syntax-highlightings-13.pb +119 -14
  237. package/.scannerwork/scanner-report/syntax-highlightings-14.pb +89 -61
  238. package/.scannerwork/scanner-report/syntax-highlightings-15.pb +592 -26
  239. package/.scannerwork/scanner-report/syntax-highlightings-16.pb +613 -261
  240. package/.scannerwork/scanner-report/syntax-highlightings-17.pb +67 -240
  241. package/.scannerwork/scanner-report/syntax-highlightings-18.pb +140 -72
  242. package/.scannerwork/scanner-report/syntax-highlightings-19.pb +143 -140
  243. package/.scannerwork/scanner-report/syntax-highlightings-2.pb +641 -0
  244. package/.scannerwork/scanner-report/syntax-highlightings-20.pb +68 -112
  245. package/.scannerwork/scanner-report/syntax-highlightings-21.pb +13 -26
  246. package/.scannerwork/scanner-report/syntax-highlightings-22.pb +31 -143
  247. package/.scannerwork/scanner-report/syntax-highlightings-3.pb +3341 -0
  248. package/.scannerwork/scanner-report/syntax-highlightings-34.pb +62 -0
  249. package/.scannerwork/scanner-report/syntax-highlightings-35.pb +66 -0
  250. package/.scannerwork/scanner-report/syntax-highlightings-36.pb +237 -0
  251. package/.scannerwork/scanner-report/syntax-highlightings-38.pb +3257 -215
  252. package/.scannerwork/scanner-report/syntax-highlightings-39.pb +94 -27
  253. package/.scannerwork/scanner-report/syntax-highlightings-4.pb +289 -3261
  254. package/.scannerwork/scanner-report/syntax-highlightings-40.pb +91 -585
  255. package/.scannerwork/scanner-report/syntax-highlightings-41.pb +34 -590
  256. package/.scannerwork/scanner-report/syntax-highlightings-42.pb +62 -204
  257. package/.scannerwork/scanner-report/syntax-highlightings-44.pb +209 -3306
  258. package/.scannerwork/scanner-report/syntax-highlightings-45.pb +113 -0
  259. package/.scannerwork/scanner-report/syntax-highlightings-46.pb +18 -59
  260. package/.scannerwork/scanner-report/syntax-highlightings-47.pb +91 -29
  261. package/.scannerwork/scanner-report/syntax-highlightings-48.pb +180 -19
  262. package/.scannerwork/scanner-report/syntax-highlightings-49.pb +245 -55
  263. package/.scannerwork/scanner-report/syntax-highlightings-5.pb +49 -0
  264. package/.scannerwork/scanner-report/syntax-highlightings-50.pb +48 -36
  265. package/.scannerwork/scanner-report/syntax-highlightings-51.pb +42 -174
  266. package/.scannerwork/scanner-report/syntax-highlightings-52.pb +15 -255
  267. package/.scannerwork/scanner-report/syntax-highlightings-54.pb +33 -84
  268. package/.scannerwork/scanner-report/syntax-highlightings-55.pb +3329 -122
  269. package/.scannerwork/scanner-report/syntax-highlightings-6.pb +587 -29
  270. package/.scannerwork/scanner-report/syntax-highlightings-60.pb +72 -3330
  271. package/.scannerwork/scanner-report/syntax-highlightings-64.pb +218 -685
  272. package/.scannerwork/scanner-report/syntax-highlightings-68.pb +684 -218
  273. package/.scannerwork/scanner-report/syntax-highlightings-7.pb +179 -530
  274. package/.scannerwork/scanner-report/syntax-highlightings-8.pb +97 -0
  275. package/.scannerwork/scanner-report/syntax-highlightings-9.pb +240 -67
  276. package/CHANGES.md +3 -0
  277. package/package.json +1 -1
  278. package/test-18-results.xml +155 -155
  279. package/test-20-results.xml +155 -155
  280. package/test-21-results.xml +147 -147
  281. package/test-iam-20-results.xml +50 -50
  282. package/.scannerwork/scanner-report/changesets-23.pb +0 -1
  283. package/.scannerwork/scanner-report/changesets-24.pb +0 -1
  284. package/.scannerwork/scanner-report/changesets-25.pb +0 -1
  285. package/.scannerwork/scanner-report/changesets-26.pb +0 -1
  286. package/.scannerwork/scanner-report/changesets-38.pb +0 -1
  287. package/.scannerwork/scanner-report/changesets-53.pb +0 -1
  288. package/.scannerwork/scanner-report/changesets-55.pb +0 -1
  289. package/.scannerwork/scanner-report/changesets-56.pb +0 -1
  290. package/.scannerwork/scanner-report/changesets-57.pb +0 -1
  291. package/.scannerwork/scanner-report/changesets-58.pb +0 -1
  292. package/.scannerwork/scanner-report/changesets-59.pb +0 -1
  293. package/.scannerwork/scanner-report/changesets-62.pb +0 -1
  294. package/.scannerwork/scanner-report/changesets-63.pb +0 -1
  295. package/.scannerwork/scanner-report/changesets-68.pb +0 -1
  296. package/.scannerwork/scanner-report/changesets-69.pb +0 -1
  297. package/.scannerwork/scanner-report/component-23.pb +0 -1
  298. package/.scannerwork/scanner-report/component-24.pb +0 -1
  299. package/.scannerwork/scanner-report/component-25.pb +0 -1
  300. package/.scannerwork/scanner-report/component-26.pb +0 -1
  301. package/.scannerwork/scanner-report/component-53.pb +0 -1
  302. package/.scannerwork/scanner-report/component-56.pb +0 -1
  303. package/.scannerwork/scanner-report/component-57.pb +0 -1
  304. package/.scannerwork/scanner-report/component-58.pb +0 -1
  305. package/.scannerwork/scanner-report/component-59.pb +0 -1
  306. package/.scannerwork/scanner-report/component-62.pb +0 -1
  307. package/.scannerwork/scanner-report/component-63.pb +0 -1
  308. package/.scannerwork/scanner-report/component-69.pb +0 -1
  309. package/.scannerwork/scanner-report/coverages-23.pb +0 -0
  310. package/.scannerwork/scanner-report/coverages-24.pb +0 -0
  311. package/.scannerwork/scanner-report/coverages-25.pb +0 -0
  312. package/.scannerwork/scanner-report/coverages-38.pb +0 -0
  313. package/.scannerwork/scanner-report/coverages-53.pb +0 -0
  314. package/.scannerwork/scanner-report/coverages-55.pb +0 -0
  315. package/.scannerwork/scanner-report/coverages-57.pb +0 -0
  316. package/.scannerwork/scanner-report/coverages-59.pb +0 -0
  317. package/.scannerwork/scanner-report/duplications-38.pb +0 -3
  318. package/.scannerwork/scanner-report/duplications-68.pb +0 -2
  319. package/.scannerwork/scanner-report/duplications-69.pb +0 -2
  320. package/.scannerwork/scanner-report/issues-38.pb +0 -4
  321. package/.scannerwork/scanner-report/measures-23.pb +0 -0
  322. package/.scannerwork/scanner-report/measures-24.pb +0 -0
  323. package/.scannerwork/scanner-report/measures-25.pb +0 -16
  324. package/.scannerwork/scanner-report/measures-53.pb +0 -0
  325. package/.scannerwork/scanner-report/measures-56.pb +0 -16
  326. package/.scannerwork/scanner-report/measures-57.pb +0 -0
  327. package/.scannerwork/scanner-report/measures-59.pb +0 -15
  328. package/.scannerwork/scanner-report/measures-62.pb +0 -0
  329. package/.scannerwork/scanner-report/source-23.txt +0 -130
  330. package/.scannerwork/scanner-report/source-24.txt +0 -191
  331. package/.scannerwork/scanner-report/source-25.txt +0 -293
  332. package/.scannerwork/scanner-report/source-53.txt +0 -31
  333. package/.scannerwork/scanner-report/source-56.txt +0 -178
  334. package/.scannerwork/scanner-report/source-57.txt +0 -129
  335. package/.scannerwork/scanner-report/source-59.txt +0 -113
  336. package/.scannerwork/scanner-report/source-62.txt +0 -60
  337. package/.scannerwork/scanner-report/symbols-23.pb +0 -86
  338. package/.scannerwork/scanner-report/symbols-24.pb +0 -209
  339. package/.scannerwork/scanner-report/symbols-25.pb +0 -428
  340. package/.scannerwork/scanner-report/symbols-38.pb +0 -264
  341. package/.scannerwork/scanner-report/symbols-53.pb +0 -14
  342. package/.scannerwork/scanner-report/symbols-55.pb +0 -59
  343. package/.scannerwork/scanner-report/symbols-57.pb +0 -33
  344. package/.scannerwork/scanner-report/symbols-59.pb +0 -46
  345. package/.scannerwork/scanner-report/syntax-highlightings-23.pb +0 -125
  346. package/.scannerwork/scanner-report/syntax-highlightings-24.pb +0 -290
  347. package/.scannerwork/scanner-report/syntax-highlightings-25.pb +0 -720
  348. package/.scannerwork/scanner-report/syntax-highlightings-53.pb +0 -45
  349. package/.scannerwork/scanner-report/syntax-highlightings-56.pb +0 -243
  350. package/.scannerwork/scanner-report/syntax-highlightings-57.pb +0 -129
  351. package/.scannerwork/scanner-report/syntax-highlightings-59.pb +0 -126
  352. package/.scannerwork/scanner-report/syntax-highlightings-62.pb +0 -82
  353. /package/.scannerwork/scanner-report/{coverages-26.pb → coverages-37.pb} +0 -0
  354. /package/.scannerwork/scanner-report/{coverages-58.pb → coverages-43.pb} +0 -0
  355. /package/.scannerwork/scanner-report/{coverages-56.pb → coverages-44.pb} +0 -0
  356. /package/.scannerwork/scanner-report/{coverages-62.pb → coverages-60.pb} +0 -0
  357. /package/.scannerwork/scanner-report/{coverages-63.pb → coverages-61.pb} +0 -0
  358. /package/.scannerwork/scanner-report/{coverages-68.pb → coverages-64.pb} +0 -0
  359. /package/.scannerwork/scanner-report/{coverages-69.pb → coverages-66.pb} +0 -0
  360. /package/.scannerwork/scanner-report/{duplications-23.pb → duplications-13.pb} +0 -0
  361. /package/.scannerwork/scanner-report/{duplications-24.pb → duplications-2.pb} +0 -0
  362. /package/.scannerwork/scanner-report/{duplications-25.pb → duplications-34.pb} +0 -0
  363. /package/.scannerwork/scanner-report/{duplications-26.pb → duplications-35.pb} +0 -0
  364. /package/.scannerwork/scanner-report/{duplications-53.pb → duplications-36.pb} +0 -0
  365. /package/.scannerwork/scanner-report/{duplications-55.pb → duplications-37.pb} +0 -0
  366. /package/.scannerwork/scanner-report/{duplications-56.pb → duplications-43.pb} +0 -0
  367. /package/.scannerwork/scanner-report/{duplications-57.pb → duplications-44.pb} +0 -0
  368. /package/.scannerwork/scanner-report/{duplications-58.pb → duplications-45.pb} +0 -0
  369. /package/.scannerwork/scanner-report/{duplications-59.pb → duplications-60.pb} +0 -0
  370. /package/.scannerwork/scanner-report/{duplications-62.pb → duplications-61.pb} +0 -0
  371. /package/.scannerwork/scanner-report/{duplications-63.pb → duplications-8.pb} +0 -0
  372. /package/.scannerwork/scanner-report/{issues-23.pb → issues-14.pb} +0 -0
  373. /package/.scannerwork/scanner-report/{issues-41.pb → issues-6.pb} +0 -0
  374. /package/.scannerwork/scanner-report/{measures-26.pb → measures-37.pb} +0 -0
  375. /package/.scannerwork/scanner-report/{measures-58.pb → measures-43.pb} +0 -0
  376. /package/.scannerwork/scanner-report/{measures-63.pb → measures-61.pb} +0 -0
  377. /package/.scannerwork/scanner-report/{measures-69.pb → measures-66.pb} +0 -0
  378. /package/.scannerwork/scanner-report/{source-26.txt → source-37.txt} +0 -0
  379. /package/.scannerwork/scanner-report/{source-58.txt → source-43.txt} +0 -0
  380. /package/.scannerwork/scanner-report/{source-63.txt → source-61.txt} +0 -0
  381. /package/.scannerwork/scanner-report/{source-69.txt → source-66.txt} +0 -0
  382. /package/.scannerwork/scanner-report/{symbols-26.pb → symbols-37.pb} +0 -0
  383. /package/.scannerwork/scanner-report/{symbols-58.pb → symbols-43.pb} +0 -0
  384. /package/.scannerwork/scanner-report/{symbols-56.pb → symbols-44.pb} +0 -0
  385. /package/.scannerwork/scanner-report/{symbols-62.pb → symbols-60.pb} +0 -0
  386. /package/.scannerwork/scanner-report/{symbols-63.pb → symbols-61.pb} +0 -0
  387. /package/.scannerwork/scanner-report/{symbols-68.pb → symbols-64.pb} +0 -0
  388. /package/.scannerwork/scanner-report/{symbols-69.pb → symbols-66.pb} +0 -0
  389. /package/.scannerwork/scanner-report/{syntax-highlightings-26.pb → syntax-highlightings-37.pb} +0 -0
  390. /package/.scannerwork/scanner-report/{syntax-highlightings-58.pb → syntax-highlightings-43.pb} +0 -0
  391. /package/.scannerwork/scanner-report/{syntax-highlightings-63.pb → syntax-highlightings-61.pb} +0 -0
  392. /package/.scannerwork/scanner-report/{syntax-highlightings-69.pb → syntax-highlightings-66.pb} +0 -0
@@ -1,4 +1,4 @@
1
- // Copyright © 2017, 2023 IBM Corp. All rights reserved.
1
+ // Copyright © 2017 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,319 +11,36 @@
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
-
15
- /* global describe afterEach before after it */
16
14
  'use strict';
17
15
 
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
- });
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
+
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
+ };
36
+
37
+ liner._flush = function(done) {
38
+ if (this._lastLineData) {
39
+ this.push(this._lastLineData);
40
+ }
41
+ this._lastLineData = null;
42
+ done();
43
+ };
44
+
45
+ return liner;
46
+ };
@@ -1,4 +1,4 @@
1
- // Copyright © 2023 IBM Corp. All rights reserved.
1
+ // Copyright © 2017, 2022 IBM Corp. All rights reserved.
2
2
  //
3
3
  // Licensed under the Apache License, Version 2.0 (the "License");
4
4
  // you may not use this file except in compliance with the License.
@@ -11,141 +11,70 @@
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
-
15
- /* global */
16
14
  'use strict';
17
15
 
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');
16
+ const async = require('async');
17
+ const error = require('./error.js');
18
+ const events = require('events');
19
+
20
+ module.exports = function(db, options) {
21
+ const ee = new events.EventEmitter();
22
+ const start = new Date().getTime();
23
+ let batch = 0;
24
+ let hasErrored = false;
25
+ let startKey = null;
26
+ let total = 0;
23
27
 
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
- }
28
+ async.doUntil(
29
+ function(callback) {
30
+ // Note, include_docs: true is set automatically when using the
31
+ // fetch function.
32
+ const opts = { db: db.db, limit: options.bufferSize, includeDocs: true };
52
33
 
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
- });
34
+ // To avoid double fetching a document solely for the purposes of getting
35
+ // the next ID to use as a startKey for the next page we instead use the
36
+ // last ID of the current page and append the lowest unicode sort
37
+ // character.
38
+ if (startKey) opts.startKey = `${startKey}\0`;
39
+ db.service.postAllDocs(opts).then(response => {
40
+ const body = response.result;
41
+ if (!body.rows) {
42
+ ee.emit('error', new error.BackupError(
43
+ 'AllDocsError', 'ERROR: Invalid all docs response'));
44
+ callback();
45
+ } else {
46
+ if (body.rows.length < opts.limit) {
47
+ startKey = null; // last batch
48
+ } else {
49
+ startKey = body.rows[opts.limit - 1].id;
50
+ }
68
51
 
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
- }
52
+ const docs = [];
53
+ body.rows.forEach(function(doc) {
54
+ docs.push(doc.doc);
55
+ });
80
56
 
81
- this.stream = Duplex.from(this.duplexFrom);
82
- }
83
- }
57
+ if (docs.length > 0) {
58
+ ee.emit('received', {
59
+ batch: batch++,
60
+ data: docs,
61
+ length: docs.length,
62
+ time: (new Date().getTime() - start) / 1000,
63
+ total: total += docs.length
64
+ });
65
+ }
66
+ callback();
67
+ }
68
+ }).catch(err => {
69
+ err = error.convertResponseError(err);
70
+ ee.emit('error', err);
71
+ hasErrored = true;
72
+ callback();
73
+ });
74
+ },
75
+ function(callback) { callback(null, hasErrored || startKey == null); },
76
+ function() { ee.emit('finished', { total: total }); }
77
+ );
84
78
 
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
- }
79
+ return ee;
151
80
  };