pack.js.html 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <title>Code coverage report for tar/lib/pack.js</title>
  5. <meta charset="utf-8" />
  6. <link rel="stylesheet" href="../../prettify.css" />
  7. <link rel="stylesheet" href="../../base.css" />
  8. <meta name="viewport" content="width=device-width, initial-scale=1">
  9. <style type='text/css'>
  10. .coverage-summary .sorter {
  11. background-image: url(../../sort-arrow-sprite.png);
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <div class='wrapper'>
  17. <div class='pad1'>
  18. <h1>
  19. <a href="../../index.html">All files</a> / <a href="index.html">tar/lib</a> pack.js
  20. </h1>
  21. <div class='clearfix'>
  22. <div class='fl pad1y space-right2'>
  23. <span class="strong">100% </span>
  24. <span class="quiet">Statements</span>
  25. <span class='fraction'>228/228</span>
  26. </div>
  27. <div class='fl pad1y space-right2'>
  28. <span class="strong">100% </span>
  29. <span class="quiet">Branches</span>
  30. <span class='fraction'>123/123</span>
  31. </div>
  32. <div class='fl pad1y space-right2'>
  33. <span class="strong">100% </span>
  34. <span class="quiet">Functions</span>
  35. <span class='fraction'>44/44</span>
  36. </div>
  37. <div class='fl pad1y space-right2'>
  38. <span class="strong">100% </span>
  39. <span class="quiet">Lines</span>
  40. <span class='fraction'>222/222</span>
  41. </div>
  42. </div>
  43. </div>
  44. <div class='status-line high'></div>
  45. <pre><table class="coverage">
  46. <tr><td class="line-count quiet">1
  47. 2
  48. 3
  49. 4
  50. 5
  51. 6
  52. 7
  53. 8
  54. 9
  55. 10
  56. 11
  57. 12
  58. 13
  59. 14
  60. 15
  61. 16
  62. 17
  63. 18
  64. 19
  65. 20
  66. 21
  67. 22
  68. 23
  69. 24
  70. 25
  71. 26
  72. 27
  73. 28
  74. 29
  75. 30
  76. 31
  77. 32
  78. 33
  79. 34
  80. 35
  81. 36
  82. 37
  83. 38
  84. 39
  85. 40
  86. 41
  87. 42
  88. 43
  89. 44
  90. 45
  91. 46
  92. 47
  93. 48
  94. 49
  95. 50
  96. 51
  97. 52
  98. 53
  99. 54
  100. 55
  101. 56
  102. 57
  103. 58
  104. 59
  105. 60
  106. 61
  107. 62
  108. 63
  109. 64
  110. 65
  111. 66
  112. 67
  113. 68
  114. 69
  115. 70
  116. 71
  117. 72
  118. 73
  119. 74
  120. 75
  121. 76
  122. 77
  123. 78
  124. 79
  125. 80
  126. 81
  127. 82
  128. 83
  129. 84
  130. 85
  131. 86
  132. 87
  133. 88
  134. 89
  135. 90
  136. 91
  137. 92
  138. 93
  139. 94
  140. 95
  141. 96
  142. 97
  143. 98
  144. 99
  145. 100
  146. 101
  147. 102
  148. 103
  149. 104
  150. 105
  151. 106
  152. 107
  153. 108
  154. 109
  155. 110
  156. 111
  157. 112
  158. 113
  159. 114
  160. 115
  161. 116
  162. 117
  163. 118
  164. 119
  165. 120
  166. 121
  167. 122
  168. 123
  169. 124
  170. 125
  171. 126
  172. 127
  173. 128
  174. 129
  175. 130
  176. 131
  177. 132
  178. 133
  179. 134
  180. 135
  181. 136
  182. 137
  183. 138
  184. 139
  185. 140
  186. 141
  187. 142
  188. 143
  189. 144
  190. 145
  191. 146
  192. 147
  193. 148
  194. 149
  195. 150
  196. 151
  197. 152
  198. 153
  199. 154
  200. 155
  201. 156
  202. 157
  203. 158
  204. 159
  205. 160
  206. 161
  207. 162
  208. 163
  209. 164
  210. 165
  211. 166
  212. 167
  213. 168
  214. 169
  215. 170
  216. 171
  217. 172
  218. 173
  219. 174
  220. 175
  221. 176
  222. 177
  223. 178
  224. 179
  225. 180
  226. 181
  227. 182
  228. 183
  229. 184
  230. 185
  231. 186
  232. 187
  233. 188
  234. 189
  235. 190
  236. 191
  237. 192
  238. 193
  239. 194
  240. 195
  241. 196
  242. 197
  243. 198
  244. 199
  245. 200
  246. 201
  247. 202
  248. 203
  249. 204
  250. 205
  251. 206
  252. 207
  253. 208
  254. 209
  255. 210
  256. 211
  257. 212
  258. 213
  259. 214
  260. 215
  261. 216
  262. 217
  263. 218
  264. 219
  265. 220
  266. 221
  267. 222
  268. 223
  269. 224
  270. 225
  271. 226
  272. 227
  273. 228
  274. 229
  275. 230
  276. 231
  277. 232
  278. 233
  279. 234
  280. 235
  281. 236
  282. 237
  283. 238
  284. 239
  285. 240
  286. 241
  287. 242
  288. 243
  289. 244
  290. 245
  291. 246
  292. 247
  293. 248
  294. 249
  295. 250
  296. 251
  297. 252
  298. 253
  299. 254
  300. 255
  301. 256
  302. 257
  303. 258
  304. 259
  305. 260
  306. 261
  307. 262
  308. 263
  309. 264
  310. 265
  311. 266
  312. 267
  313. 268
  314. 269
  315. 270
  316. 271
  317. 272
  318. 273
  319. 274
  320. 275
  321. 276
  322. 277
  323. 278
  324. 279
  325. 280
  326. 281
  327. 282
  328. 283
  329. 284
  330. 285
  331. 286
  332. 287
  333. 288
  334. 289
  335. 290
  336. 291
  337. 292
  338. 293
  339. 294
  340. 295
  341. 296
  342. 297
  343. 298
  344. 299
  345. 300
  346. 301
  347. 302
  348. 303
  349. 304
  350. 305
  351. 306
  352. 307
  353. 308
  354. 309
  355. 310
  356. 311
  357. 312
  358. 313
  359. 314
  360. 315
  361. 316
  362. 317
  363. 318
  364. 319
  365. 320
  366. 321
  367. 322
  368. 323
  369. 324
  370. 325
  371. 326
  372. 327
  373. 328
  374. 329
  375. 330
  376. 331
  377. 332
  378. 333
  379. 334
  380. 335
  381. 336
  382. 337
  383. 338
  384. 339
  385. 340
  386. 341
  387. 342
  388. 343
  389. 344
  390. 345
  391. 346
  392. 347
  393. 348
  394. 349
  395. 350
  396. 351
  397. 352
  398. 353
  399. 354
  400. 355
  401. 356
  402. 357
  403. 358
  404. 359
  405. 360
  406. 361
  407. 362
  408. 363
  409. 364
  410. 365
  411. 366
  412. 367
  413. 368
  414. 369
  415. 370
  416. 371
  417. 372
  418. 373
  419. 374
  420. 375
  421. 376
  422. 377
  423. 378
  424. 379
  425. 380
  426. 381
  427. 382
  428. 383
  429. 384
  430. 385
  431. 386
  432. 387
  433. 388
  434. 389
  435. 390
  436. 391
  437. 392
  438. 393
  439. 394
  440. 395
  441. 396
  442. 397
  443. 398
  444. 399
  445. 400
  446. 401
  447. 402</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
  448. <span class="cline-any cline-neutral">&nbsp;</span>
  449. <span class="cline-any cline-neutral">&nbsp;</span>
  450. <span class="cline-any cline-neutral">&nbsp;</span>
  451. <span class="cline-any cline-neutral">&nbsp;</span>
  452. <span class="cline-any cline-neutral">&nbsp;</span>
  453. <span class="cline-any cline-neutral">&nbsp;</span>
  454. <span class="cline-any cline-neutral">&nbsp;</span>
  455. <span class="cline-any cline-neutral">&nbsp;</span>
  456. <span class="cline-any cline-neutral">&nbsp;</span>
  457. <span class="cline-any cline-neutral">&nbsp;</span>
  458. <span class="cline-any cline-neutral">&nbsp;</span>
  459. <span class="cline-any cline-neutral">&nbsp;</span>
  460. <span class="cline-any cline-yes">6566x</span>
  461. <span class="cline-any cline-yes">6566x</span>
  462. <span class="cline-any cline-yes">6566x</span>
  463. <span class="cline-any cline-yes">6566x</span>
  464. <span class="cline-any cline-yes">6566x</span>
  465. <span class="cline-any cline-yes">6566x</span>
  466. <span class="cline-any cline-yes">6566x</span>
  467. <span class="cline-any cline-yes">6566x</span>
  468. <span class="cline-any cline-neutral">&nbsp;</span>
  469. <span class="cline-any cline-neutral">&nbsp;</span>
  470. <span class="cline-any cline-neutral">&nbsp;</span>
  471. <span class="cline-any cline-yes">5x</span>
  472. <span class="cline-any cline-yes">5x</span>
  473. <span class="cline-any cline-yes">5x</span>
  474. <span class="cline-any cline-yes">5x</span>
  475. <span class="cline-any cline-yes">5x</span>
  476. <span class="cline-any cline-yes">5x</span>
  477. <span class="cline-any cline-yes">5x</span>
  478. <span class="cline-any cline-yes">5x</span>
  479. <span class="cline-any cline-yes">5x</span>
  480. <span class="cline-any cline-yes">5x</span>
  481. <span class="cline-any cline-yes">5x</span>
  482. <span class="cline-any cline-yes">5x</span>
  483. <span class="cline-any cline-yes">5x</span>
  484. <span class="cline-any cline-yes">5x</span>
  485. <span class="cline-any cline-yes">5x</span>
  486. <span class="cline-any cline-yes">5x</span>
  487. <span class="cline-any cline-yes">5x</span>
  488. <span class="cline-any cline-yes">5x</span>
  489. <span class="cline-any cline-yes">5x</span>
  490. <span class="cline-any cline-yes">5x</span>
  491. <span class="cline-any cline-yes">5x</span>
  492. <span class="cline-any cline-yes">5x</span>
  493. <span class="cline-any cline-yes">5x</span>
  494. <span class="cline-any cline-yes">5x</span>
  495. <span class="cline-any cline-yes">5x</span>
  496. <span class="cline-any cline-yes">5x</span>
  497. <span class="cline-any cline-yes">5x</span>
  498. <span class="cline-any cline-yes">5x</span>
  499. <span class="cline-any cline-neutral">&nbsp;</span>
  500. <span class="cline-any cline-yes">5x</span>
  501. <span class="cline-any cline-yes">5x</span>
  502. <span class="cline-any cline-yes">5x</span>
  503. <span class="cline-any cline-neutral">&nbsp;</span>
  504. <span class="cline-any cline-yes">5x</span>
  505. <span class="cline-any cline-neutral">&nbsp;</span>
  506. <span class="cline-any cline-yes">122x</span>
  507. <span class="cline-any cline-yes">122x</span>
  508. <span class="cline-any cline-yes">122x</span>
  509. <span class="cline-any cline-yes">122x</span>
  510. <span class="cline-any cline-yes">122x</span>
  511. <span class="cline-any cline-yes">122x</span>
  512. <span class="cline-any cline-yes">122x</span>
  513. <span class="cline-any cline-yes">122x</span>
  514. <span class="cline-any cline-yes">122x</span>
  515. <span class="cline-any cline-yes">122x</span>
  516. <span class="cline-any cline-yes">122x</span>
  517. <span class="cline-any cline-yes">122x</span>
  518. <span class="cline-any cline-yes">122x</span>
  519. <span class="cline-any cline-yes">122x</span>
  520. <span class="cline-any cline-yes">3x</span>
  521. <span class="cline-any cline-neutral">&nbsp;</span>
  522. <span class="cline-any cline-yes">122x</span>
  523. <span class="cline-any cline-yes">122x</span>
  524. <span class="cline-any cline-yes">5x</span>
  525. <span class="cline-any cline-yes">4x</span>
  526. <span class="cline-any cline-yes">5x</span>
  527. <span class="cline-any cline-yes">503x</span>
  528. <span class="cline-any cline-yes">5x</span>
  529. <span class="cline-any cline-yes">146x</span>
  530. <span class="cline-any cline-yes">219x</span>
  531. <span class="cline-any cline-neutral">&nbsp;</span>
  532. <span class="cline-any cline-yes">117x</span>
  533. <span class="cline-any cline-neutral">&nbsp;</span>
  534. <span class="cline-any cline-yes">122x</span>
  535. <span class="cline-any cline-yes">122x</span>
  536. <span class="cline-any cline-yes">122x</span>
  537. <span class="cline-any cline-yes">122x</span>
  538. <span class="cline-any cline-neutral">&nbsp;</span>
  539. <span class="cline-any cline-neutral">&nbsp;</span>
  540. <span class="cline-any cline-yes">6507x</span>
  541. <span class="cline-any cline-neutral">&nbsp;</span>
  542. <span class="cline-any cline-yes">122x</span>
  543. <span class="cline-any cline-yes">122x</span>
  544. <span class="cline-any cline-yes">122x</span>
  545. <span class="cline-any cline-yes">122x</span>
  546. <span class="cline-any cline-yes">122x</span>
  547. <span class="cline-any cline-neutral">&nbsp;</span>
  548. <span class="cline-any cline-neutral">&nbsp;</span>
  549. <span class="cline-any cline-neutral">&nbsp;</span>
  550. <span class="cline-any cline-yes">106x</span>
  551. <span class="cline-any cline-neutral">&nbsp;</span>
  552. <span class="cline-any cline-neutral">&nbsp;</span>
  553. <span class="cline-any cline-neutral">&nbsp;</span>
  554. <span class="cline-any cline-yes">107x</span>
  555. <span class="cline-any cline-yes">103x</span>
  556. <span class="cline-any cline-neutral">&nbsp;</span>
  557. <span class="cline-any cline-neutral">&nbsp;</span>
  558. <span class="cline-any cline-neutral">&nbsp;</span>
  559. <span class="cline-any cline-yes">100x</span>
  560. <span class="cline-any cline-yes">21x</span>
  561. <span class="cline-any cline-yes">99x</span>
  562. <span class="cline-any cline-yes">99x</span>
  563. <span class="cline-any cline-yes">99x</span>
  564. <span class="cline-any cline-neutral">&nbsp;</span>
  565. <span class="cline-any cline-neutral">&nbsp;</span>
  566. <span class="cline-any cline-neutral">&nbsp;</span>
  567. <span class="cline-any cline-yes">128x</span>
  568. <span class="cline-any cline-yes">1x</span>
  569. <span class="cline-any cline-neutral">&nbsp;</span>
  570. <span class="cline-any cline-yes">127x</span>
  571. <span class="cline-any cline-yes">27x</span>
  572. <span class="cline-any cline-neutral">&nbsp;</span>
  573. <span class="cline-any cline-yes">100x</span>
  574. <span class="cline-any cline-yes">123x</span>
  575. <span class="cline-any cline-neutral">&nbsp;</span>
  576. <span class="cline-any cline-neutral">&nbsp;</span>
  577. <span class="cline-any cline-neutral">&nbsp;</span>
  578. <span class="cline-any cline-yes">27x</span>
  579. <span class="cline-any cline-yes">27x</span>
  580. <span class="cline-any cline-yes">1x</span>
  581. <span class="cline-any cline-neutral">&nbsp;</span>
  582. <span class="cline-any cline-neutral">&nbsp;</span>
  583. <span class="cline-any cline-yes">27x</span>
  584. <span class="cline-any cline-yes">2x</span>
  585. <span class="cline-any cline-neutral">&nbsp;</span>
  586. <span class="cline-any cline-yes">25x</span>
  587. <span class="cline-any cline-yes">25x</span>
  588. <span class="cline-any cline-yes">25x</span>
  589. <span class="cline-any cline-yes">25x</span>
  590. <span class="cline-any cline-yes">25x</span>
  591. <span class="cline-any cline-neutral">&nbsp;</span>
  592. <span class="cline-any cline-neutral">&nbsp;</span>
  593. <span class="cline-any cline-yes">27x</span>
  594. <span class="cline-any cline-neutral">&nbsp;</span>
  595. <span class="cline-any cline-neutral">&nbsp;</span>
  596. <span class="cline-any cline-neutral">&nbsp;</span>
  597. <span class="cline-any cline-yes">6541x</span>
  598. <span class="cline-any cline-yes">6541x</span>
  599. <span class="cline-any cline-yes">34x</span>
  600. <span class="cline-any cline-neutral">&nbsp;</span>
  601. <span class="cline-any cline-yes">6541x</span>
  602. <span class="cline-any cline-yes">6541x</span>
  603. <span class="cline-any cline-neutral">&nbsp;</span>
  604. <span class="cline-any cline-neutral">&nbsp;</span>
  605. <span class="cline-any cline-neutral">&nbsp;</span>
  606. <span class="cline-any cline-yes">6453x</span>
  607. <span class="cline-any cline-yes">6453x</span>
  608. <span class="cline-any cline-yes">6453x</span>
  609. <span class="cline-any cline-yes">6453x</span>
  610. <span class="cline-any cline-yes">6453x</span>
  611. <span class="cline-any cline-yes">6453x</span>
  612. <span class="cline-any cline-yes">6453x</span>
  613. <span class="cline-any cline-yes">1x</span>
  614. <span class="cline-any cline-neutral">&nbsp;</span>
  615. <span class="cline-any cline-yes">6452x</span>
  616. <span class="cline-any cline-neutral">&nbsp;</span>
  617. <span class="cline-any cline-neutral">&nbsp;</span>
  618. <span class="cline-any cline-neutral">&nbsp;</span>
  619. <span class="cline-any cline-neutral">&nbsp;</span>
  620. <span class="cline-any cline-yes">6538x</span>
  621. <span class="cline-any cline-yes">6538x</span>
  622. <span class="cline-any cline-neutral">&nbsp;</span>
  623. <span class="cline-any cline-neutral">&nbsp;</span>
  624. <span class="cline-any cline-yes">6538x</span>
  625. <span class="cline-any cline-yes">24x</span>
  626. <span class="cline-any cline-neutral">&nbsp;</span>
  627. <span class="cline-any cline-yes">6538x</span>
  628. <span class="cline-any cline-neutral">&nbsp;</span>
  629. <span class="cline-any cline-neutral">&nbsp;</span>
  630. <span class="cline-any cline-neutral">&nbsp;</span>
  631. <span class="cline-any cline-yes">821x</span>
  632. <span class="cline-any cline-yes">821x</span>
  633. <span class="cline-any cline-yes">821x</span>
  634. <span class="cline-any cline-yes">821x</span>
  635. <span class="cline-any cline-yes">821x</span>
  636. <span class="cline-any cline-yes">821x</span>
  637. <span class="cline-any cline-yes">1x</span>
  638. <span class="cline-any cline-yes">820x</span>
  639. <span class="cline-any cline-neutral">&nbsp;</span>
  640. <span class="cline-any cline-neutral">&nbsp;</span>
  641. <span class="cline-any cline-neutral">&nbsp;</span>
  642. <span class="cline-any cline-neutral">&nbsp;</span>
  643. <span class="cline-any cline-yes">858x</span>
  644. <span class="cline-any cline-yes">858x</span>
  645. <span class="cline-any cline-yes">858x</span>
  646. <span class="cline-any cline-neutral">&nbsp;</span>
  647. <span class="cline-any cline-neutral">&nbsp;</span>
  648. <span class="cline-any cline-neutral">&nbsp;</span>
  649. <span class="cline-any cline-yes">20596x</span>
  650. <span class="cline-any cline-yes">9093x</span>
  651. <span class="cline-any cline-neutral">&nbsp;</span>
  652. <span class="cline-any cline-yes">11503x</span>
  653. <span class="cline-any cline-yes">11503x</span>
  654. <span class="cline-any cline-neutral">&nbsp;</span>
  655. <span class="cline-any cline-neutral">&nbsp;</span>
  656. <span class="cline-any cline-yes">38739x</span>
  657. <span class="cline-any cline-yes">38735x</span>
  658. <span class="cline-any cline-yes">25x</span>
  659. <span class="cline-any cline-yes">25x</span>
  660. <span class="cline-any cline-yes">25x</span>
  661. <span class="cline-any cline-neutral">&nbsp;</span>
  662. <span class="cline-any cline-neutral">&nbsp;</span>
  663. <span class="cline-any cline-neutral">&nbsp;</span>
  664. <span class="cline-any cline-yes">11499x</span>
  665. <span class="cline-any cline-neutral">&nbsp;</span>
  666. <span class="cline-any cline-yes">11499x</span>
  667. <span class="cline-any cline-yes">96x</span>
  668. <span class="cline-any cline-yes">4x</span>
  669. <span class="cline-any cline-neutral">&nbsp;</span>
  670. <span class="cline-any cline-yes">92x</span>
  671. <span class="cline-any cline-yes">92x</span>
  672. <span class="cline-any cline-neutral">&nbsp;</span>
  673. <span class="cline-any cline-neutral">&nbsp;</span>
  674. <span class="cline-any cline-neutral">&nbsp;</span>
  675. <span class="cline-any cline-neutral">&nbsp;</span>
  676. <span class="cline-any cline-neutral">&nbsp;</span>
  677. <span class="cline-any cline-yes">25863x</span>
  678. <span class="cline-any cline-neutral">&nbsp;</span>
  679. <span class="cline-any cline-neutral">&nbsp;</span>
  680. <span class="cline-any cline-neutral">&nbsp;</span>
  681. <span class="cline-any cline-yes">6533x</span>
  682. <span class="cline-any cline-yes">6533x</span>
  683. <span class="cline-any cline-yes">6533x</span>
  684. <span class="cline-any cline-neutral">&nbsp;</span>
  685. <span class="cline-any cline-neutral">&nbsp;</span>
  686. <span class="cline-any cline-neutral">&nbsp;</span>
  687. <span class="cline-any cline-yes">38739x</span>
  688. <span class="cline-any cline-yes">6156x</span>
  689. <span class="cline-any cline-neutral">&nbsp;</span>
  690. <span class="cline-any cline-yes">32583x</span>
  691. <span class="cline-any cline-yes">18770x</span>
  692. <span class="cline-any cline-yes">4954x</span>
  693. <span class="cline-any cline-yes">18770x</span>
  694. <span class="cline-any cline-neutral">&nbsp;</span>
  695. <span class="cline-any cline-neutral">&nbsp;</span>
  696. <span class="cline-any cline-yes">13813x</span>
  697. <span class="cline-any cline-yes">6541x</span>
  698. <span class="cline-any cline-yes">4x</span>
  699. <span class="cline-any cline-neutral">&nbsp;</span>
  700. <span class="cline-any cline-yes">6537x</span>
  701. <span class="cline-any cline-neutral">&nbsp;</span>
  702. <span class="cline-any cline-yes">13811x</span>
  703. <span class="cline-any cline-yes">6453x</span>
  704. <span class="cline-any cline-neutral">&nbsp;</span>
  705. <span class="cline-any cline-neutral">&nbsp;</span>
  706. <span class="cline-any cline-yes">7358x</span>
  707. <span class="cline-any cline-yes">24x</span>
  708. <span class="cline-any cline-neutral">&nbsp;</span>
  709. <span class="cline-any cline-yes">7334x</span>
  710. <span class="cline-any cline-yes">860x</span>
  711. <span class="cline-any cline-yes">2x</span>
  712. <span class="cline-any cline-neutral">&nbsp;</span>
  713. <span class="cline-any cline-yes">858x</span>
  714. <span class="cline-any cline-yes">859x</span>
  715. <span class="cline-any cline-yes">821x</span>
  716. <span class="cline-any cline-neutral">&nbsp;</span>
  717. <span class="cline-any cline-neutral">&nbsp;</span>
  718. <span class="cline-any cline-neutral">&nbsp;</span>
  719. <span class="cline-any cline-yes">6512x</span>
  720. <span class="cline-any cline-yes">6511x</span>
  721. <span class="cline-any cline-yes">1x</span>
  722. <span class="cline-any cline-yes">1x</span>
  723. <span class="cline-any cline-neutral">&nbsp;</span>
  724. <span class="cline-any cline-neutral">&nbsp;</span>
  725. <span class="cline-any cline-yes">6510x</span>
  726. <span class="cline-any cline-yes">1581x</span>
  727. <span class="cline-any cline-neutral">&nbsp;</span>
  728. <span class="cline-any cline-neutral">&nbsp;</span>
  729. <span class="cline-any cline-neutral">&nbsp;</span>
  730. <span class="cline-any cline-yes">6537x</span>
  731. <span class="cline-any cline-neutral">&nbsp;</span>
  732. <span class="cline-any cline-yes">1x</span>
  733. <span class="cline-any cline-neutral">&nbsp;</span>
  734. <span class="cline-any cline-neutral">&nbsp;</span>
  735. <span class="cline-any cline-neutral">&nbsp;</span>
  736. <span class="cline-any cline-neutral">&nbsp;</span>
  737. <span class="cline-any cline-neutral">&nbsp;</span>
  738. <span class="cline-any cline-neutral">&nbsp;</span>
  739. <span class="cline-any cline-neutral">&nbsp;</span>
  740. <span class="cline-any cline-neutral">&nbsp;</span>
  741. <span class="cline-any cline-neutral">&nbsp;</span>
  742. <span class="cline-any cline-neutral">&nbsp;</span>
  743. <span class="cline-any cline-neutral">&nbsp;</span>
  744. <span class="cline-any cline-neutral">&nbsp;</span>
  745. <span class="cline-any cline-neutral">&nbsp;</span>
  746. <span class="cline-any cline-neutral">&nbsp;</span>
  747. <span class="cline-any cline-neutral">&nbsp;</span>
  748. <span class="cline-any cline-yes">6512x</span>
  749. <span class="cline-any cline-yes">6512x</span>
  750. <span class="cline-any cline-yes">6512x</span>
  751. <span class="cline-any cline-yes">6508x</span>
  752. <span class="cline-any cline-yes">1x</span>
  753. <span class="cline-any cline-neutral">&nbsp;</span>
  754. <span class="cline-any cline-yes">2x</span>
  755. <span class="cline-any cline-neutral">&nbsp;</span>
  756. <span class="cline-any cline-neutral">&nbsp;</span>
  757. <span class="cline-any cline-neutral">&nbsp;</span>
  758. <span class="cline-any cline-neutral">&nbsp;</span>
  759. <span class="cline-any cline-yes">248x</span>
  760. <span class="cline-any cline-yes">158x</span>
  761. <span class="cline-any cline-neutral">&nbsp;</span>
  762. <span class="cline-any cline-neutral">&nbsp;</span>
  763. <span class="cline-any cline-neutral">&nbsp;</span>
  764. <span class="cline-any cline-neutral">&nbsp;</span>
  765. <span class="cline-any cline-yes">6448x</span>
  766. <span class="cline-any cline-neutral">&nbsp;</span>
  767. <span class="cline-any cline-yes">6448x</span>
  768. <span class="cline-any cline-yes">820x</span>
  769. <span class="cline-any cline-yes">6393x</span>
  770. <span class="cline-any cline-neutral">&nbsp;</span>
  771. <span class="cline-any cline-neutral">&nbsp;</span>
  772. <span class="cline-any cline-neutral">&nbsp;</span>
  773. <span class="cline-any cline-yes">6393x</span>
  774. <span class="cline-any cline-yes">6393x</span>
  775. <span class="cline-any cline-neutral">&nbsp;</span>
  776. <span class="cline-any cline-neutral">&nbsp;</span>
  777. <span class="cline-any cline-yes">6448x</span>
  778. <span class="cline-any cline-yes">6448x</span>
  779. <span class="cline-any cline-neutral">&nbsp;</span>
  780. <span class="cline-any cline-yes">6448x</span>
  781. <span class="cline-any cline-yes">6336x</span>
  782. <span class="cline-any cline-yes">11830x</span>
  783. <span class="cline-any cline-yes">156x</span>
  784. <span class="cline-any cline-neutral">&nbsp;</span>
  785. <span class="cline-any cline-neutral">&nbsp;</span>
  786. <span class="cline-any cline-yes">112x</span>
  787. <span class="cline-any cline-yes">199x</span>
  788. <span class="cline-any cline-yes">53x</span>
  789. <span class="cline-any cline-neutral">&nbsp;</span>
  790. <span class="cline-any cline-neutral">&nbsp;</span>
  791. <span class="cline-any cline-neutral">&nbsp;</span>
  792. <span class="cline-any cline-neutral">&nbsp;</span>
  793. <span class="cline-any cline-yes">265x</span>
  794. <span class="cline-any cline-yes">214x</span>
  795. <span class="cline-any cline-yes">265x</span>
  796. <span class="cline-any cline-neutral">&nbsp;</span>
  797. <span class="cline-any cline-neutral">&nbsp;</span>
  798. <span class="cline-any cline-neutral">&nbsp;</span>
  799. <span class="cline-any cline-neutral">&nbsp;</span>
  800. <span class="cline-any cline-neutral">&nbsp;</span>
  801. <span class="cline-any cline-yes">47x</span>
  802. <span class="cline-any cline-yes">47x</span>
  803. <span class="cline-any cline-neutral">&nbsp;</span>
  804. <span class="cline-any cline-neutral">&nbsp;</span>
  805. <span class="cline-any cline-neutral">&nbsp;</span>
  806. <span class="cline-any cline-neutral">&nbsp;</span>
  807. <span class="cline-any cline-neutral">&nbsp;</span>
  808. <span class="cline-any cline-neutral">&nbsp;</span>
  809. <span class="cline-any cline-neutral">&nbsp;</span>
  810. <span class="cline-any cline-yes">84x</span>
  811. <span class="cline-any cline-yes">84x</span>
  812. <span class="cline-any cline-neutral">&nbsp;</span>
  813. <span class="cline-any cline-neutral">&nbsp;</span>
  814. <span class="cline-any cline-neutral">&nbsp;</span>
  815. <span class="cline-any cline-yes">37x</span>
  816. <span class="cline-any cline-neutral">&nbsp;</span>
  817. <span class="cline-any cline-neutral">&nbsp;</span>
  818. <span class="cline-any cline-neutral">&nbsp;</span>
  819. <span class="cline-any cline-neutral">&nbsp;</span>
  820. <span class="cline-any cline-yes">87x</span>
  821. <span class="cline-any cline-yes">87x</span>
  822. <span class="cline-any cline-neutral">&nbsp;</span>
  823. <span class="cline-any cline-yes">87x</span>
  824. <span class="cline-any cline-yes">38x</span>
  825. <span class="cline-any cline-yes">48x</span>
  826. <span class="cline-any cline-neutral">&nbsp;</span>
  827. <span class="cline-any cline-neutral">&nbsp;</span>
  828. <span class="cline-any cline-neutral">&nbsp;</span>
  829. <span class="cline-any cline-neutral">&nbsp;</span>
  830. <span class="cline-any cline-yes">48x</span>
  831. <span class="cline-any cline-yes">48x</span>
  832. <span class="cline-any cline-neutral">&nbsp;</span>
  833. <span class="cline-any cline-neutral">&nbsp;</span>
  834. <span class="cline-any cline-yes">87x</span>
  835. <span class="cline-any cline-yes">31x</span>
  836. <span class="cline-any cline-yes">39x</span>
  837. <span class="cline-any cline-neutral">&nbsp;</span>
  838. <span class="cline-any cline-neutral">&nbsp;</span>
  839. <span class="cline-any cline-yes">56x</span>
  840. <span class="cline-any cline-yes">106x</span>
  841. <span class="cline-any cline-neutral">&nbsp;</span>
  842. <span class="cline-any cline-neutral">&nbsp;</span>
  843. <span class="cline-any cline-neutral">&nbsp;</span>
  844. <span class="cline-any cline-neutral">&nbsp;</span>
  845. <span class="cline-any cline-yes">5x</span>
  846. <span class="cline-any cline-neutral">&nbsp;</span>
  847. <span class="cline-any cline-yes">5x</span>
  848. <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict'
  849. &nbsp;
  850. // A readable tar stream creator
  851. // Technically, this is a transform stream that you write paths into,
  852. // and tar format comes out of.
  853. // The `add()` method is like `write()` but returns this,
  854. // and end() return `this` as well, so you can
  855. // do `new Pack(opt).add('files').add('dir').end().pipe(output)
  856. // You could also do something like:
  857. // streamOfPaths().pipe(new Pack()).pipe(new fs.WriteStream('out.tar'))
  858. &nbsp;
  859. class PackJob {
  860. constructor (path, absolute) {
  861. this.path = path || './'
  862. this.absolute = absolute
  863. this.entry = null
  864. this.stat = null
  865. this.readdir = null
  866. this.pending = false
  867. this.ignore = false
  868. this.piped = false
  869. }
  870. }
  871. &nbsp;
  872. const MiniPass = require('minipass')
  873. const zlib = require('minizlib')
  874. const ReadEntry = require('./read-entry.js')
  875. const WriteEntry = require('./write-entry.js')
  876. const WriteEntrySync = WriteEntry.Sync
  877. const WriteEntryTar = WriteEntry.Tar
  878. const Yallist = require('yallist')
  879. const EOF = Buffer.alloc(1024)
  880. const ONSTAT = Symbol('onStat')
  881. const ENDED = Symbol('ended')
  882. const QUEUE = Symbol('queue')
  883. const CURRENT = Symbol('current')
  884. const PROCESS = Symbol('process')
  885. const PROCESSING = Symbol('processing')
  886. const PROCESSJOB = Symbol('processJob')
  887. const JOBS = Symbol('jobs')
  888. const JOBDONE = Symbol('jobDone')
  889. const ADDFSENTRY = Symbol('addFSEntry')
  890. const ADDTARENTRY = Symbol('addTarEntry')
  891. const STAT = Symbol('stat')
  892. const READDIR = Symbol('readdir')
  893. const ONREADDIR = Symbol('onreaddir')
  894. const PIPE = Symbol('pipe')
  895. const ENTRY = Symbol('entry')
  896. const ENTRYOPT = Symbol('entryOpt')
  897. const WRITEENTRYCLASS = Symbol('writeEntryClass')
  898. const WRITE = Symbol('write')
  899. const ONDRAIN = Symbol('ondrain')
  900. &nbsp;
  901. const fs = require('fs')
  902. const path = require('path')
  903. const warner = require('./warn-mixin.js')
  904. &nbsp;
  905. const Pack = warner(class Pack extends MiniPass {
  906. constructor (opt) {
  907. super(opt)
  908. opt = opt || Object.create(null)
  909. this.opt = opt
  910. this.cwd = opt.cwd || process.cwd()
  911. this.maxReadSize = opt.maxReadSize
  912. this.preservePaths = !!opt.preservePaths
  913. this.strict = !!opt.strict
  914. this.noPax = !!opt.noPax
  915. this.prefix = (opt.prefix || '').replace(/(\\|\/)+$/, '')
  916. this.linkCache = opt.linkCache || new Map()
  917. this.statCache = opt.statCache || new Map()
  918. this.readdirCache = opt.readdirCache || new Map()
  919. this[WRITEENTRYCLASS] = WriteEntry
  920. if (typeof opt.onwarn === 'function')
  921. this.on('warn', opt.onwarn)
  922. &nbsp;
  923. this.zip = null
  924. if (opt.gzip) {
  925. if (typeof opt.gzip !== 'object')
  926. opt.gzip = {}
  927. this.zip = new zlib.Gzip(opt.gzip)
  928. this.zip.on('data', chunk =&gt; super.write(chunk))
  929. this.zip.on('end', _ =&gt; super.end())
  930. this.zip.on('drain', _ =&gt; this[ONDRAIN]())
  931. this.on('resume', _ =&gt; this.zip.resume())
  932. } else
  933. this.on('drain', this[ONDRAIN])
  934. &nbsp;
  935. this.portable = !!opt.portable
  936. this.noDirRecurse = !!opt.noDirRecurse
  937. this.follow = !!opt.follow
  938. this.noMtime = !!opt.noMtime
  939. &nbsp;
  940. &nbsp;
  941. this.filter = typeof opt.filter === 'function' ? opt.filter : _ =&gt; true
  942. &nbsp;
  943. this[QUEUE] = new Yallist
  944. this[JOBS] = 0
  945. this.jobs = +opt.jobs || 4
  946. this[PROCESSING] = false
  947. this[ENDED] = false
  948. }
  949. &nbsp;
  950. [WRITE] (chunk) {
  951. return super.write(chunk)
  952. }
  953. &nbsp;
  954. add (path) {
  955. this.write(path)
  956. return this
  957. }
  958. &nbsp;
  959. end (path) {
  960. if (path)
  961. this.write(path)
  962. this[ENDED] = true
  963. this[PROCESS]()
  964. return this
  965. }
  966. &nbsp;
  967. write (path) {
  968. if (this[ENDED])
  969. throw new Error('write after end')
  970. &nbsp;
  971. if (path instanceof ReadEntry)
  972. this[ADDTARENTRY](path)
  973. else
  974. this[ADDFSENTRY](path)
  975. return this.flowing
  976. }
  977. &nbsp;
  978. [ADDTARENTRY] (p) {
  979. const absolute = path.resolve(this.cwd, p.path)
  980. if (this.prefix)
  981. p.path = this.prefix + '/' + p.path.replace(/^\.(\/+|$)/, '')
  982. &nbsp;
  983. // in this case, we don't have to wait for the stat
  984. if (!this.filter(p.path, p))
  985. p.resume()
  986. else {
  987. const job = new PackJob(p.path, absolute, false)
  988. job.entry = new WriteEntryTar(p, this[ENTRYOPT](job))
  989. job.entry.on('end', _ =&gt; this[JOBDONE](job))
  990. this[JOBS] += 1
  991. this[QUEUE].push(job)
  992. }
  993. &nbsp;
  994. this[PROCESS]()
  995. }
  996. &nbsp;
  997. [ADDFSENTRY] (p) {
  998. const absolute = path.resolve(this.cwd, p)
  999. if (this.prefix)
  1000. p = this.prefix + '/' + p.replace(/^\.(\/+|$)/, '')
  1001. &nbsp;
  1002. this[QUEUE].push(new PackJob(p, absolute))
  1003. this[PROCESS]()
  1004. }
  1005. &nbsp;
  1006. [STAT] (job) {
  1007. job.pending = true
  1008. this[JOBS] += 1
  1009. const stat = this.follow ? 'stat' : 'lstat'
  1010. fs[stat](job.absolute, (er, stat) =&gt; {
  1011. job.pending = false
  1012. this[JOBS] -= 1
  1013. if (er)
  1014. this.emit('error', er)
  1015. else
  1016. this[ONSTAT](job, stat)
  1017. })
  1018. }
  1019. &nbsp;
  1020. [ONSTAT] (job, stat) {
  1021. this.statCache.set(job.absolute, stat)
  1022. job.stat = stat
  1023. &nbsp;
  1024. // now we have the stat, we can filter it.
  1025. if (!this.filter(job.path, stat))
  1026. job.ignore = true
  1027. &nbsp;
  1028. this[PROCESS]()
  1029. }
  1030. &nbsp;
  1031. [READDIR] (job) {
  1032. job.pending = true
  1033. this[JOBS] += 1
  1034. fs.readdir(job.absolute, (er, entries) =&gt; {
  1035. job.pending = false
  1036. this[JOBS] -= 1
  1037. if (er)
  1038. return this.emit('error', er)
  1039. this[ONREADDIR](job, entries)
  1040. })
  1041. }
  1042. &nbsp;
  1043. [ONREADDIR] (job, entries) {
  1044. this.readdirCache.set(job.absolute, entries)
  1045. job.readdir = entries
  1046. this[PROCESS]()
  1047. }
  1048. &nbsp;
  1049. [PROCESS] () {
  1050. if (this[PROCESSING])
  1051. return
  1052. &nbsp;
  1053. this[PROCESSING] = true
  1054. for (let w = this[QUEUE].head;
  1055. w !== null &amp;&amp; this[JOBS] &lt; this.jobs;
  1056. w = w.next) {
  1057. this[PROCESSJOB](w.value)
  1058. if (w.value.ignore) {
  1059. const p = w.next
  1060. this[QUEUE].removeNode(w)
  1061. w.next = p
  1062. }
  1063. }
  1064. &nbsp;
  1065. this[PROCESSING] = false
  1066. &nbsp;
  1067. if (this[ENDED] &amp;&amp; !this[QUEUE].length &amp;&amp; this[JOBS] === 0) {
  1068. if (this.zip)
  1069. this.zip.end(EOF)
  1070. else {
  1071. super.write(EOF)
  1072. super.end()
  1073. }
  1074. }
  1075. }
  1076. &nbsp;
  1077. get [CURRENT] () {
  1078. return this[QUEUE] &amp;&amp; this[QUEUE].head &amp;&amp; this[QUEUE].head.value
  1079. }
  1080. &nbsp;
  1081. [JOBDONE] (job) {
  1082. this[QUEUE].shift()
  1083. this[JOBS] -= 1
  1084. this[PROCESS]()
  1085. }
  1086. &nbsp;
  1087. [PROCESSJOB] (job) {
  1088. if (job.pending)
  1089. return
  1090. &nbsp;
  1091. if (job.entry) {
  1092. if (job === this[CURRENT] &amp;&amp; !job.piped)
  1093. this[PIPE](job)
  1094. return
  1095. }
  1096. &nbsp;
  1097. if (!job.stat) {
  1098. if (this.statCache.has(job.absolute))
  1099. this[ONSTAT](job, this.statCache.get(job.absolute))
  1100. else
  1101. this[STAT](job)
  1102. }
  1103. if (!job.stat)
  1104. return
  1105. &nbsp;
  1106. // filtered out!
  1107. if (job.ignore)
  1108. return
  1109. &nbsp;
  1110. if (!this.noDirRecurse &amp;&amp; job.stat.isDirectory() &amp;&amp; !job.readdir) {
  1111. if (this.readdirCache.has(job.absolute))
  1112. this[ONREADDIR](job, this.readdirCache.get(job.absolute))
  1113. else
  1114. this[READDIR](job)
  1115. if (!job.readdir)
  1116. return
  1117. }
  1118. &nbsp;
  1119. // we know it doesn't have an entry, because that got checked above
  1120. job.entry = this[ENTRY](job)
  1121. if (!job.entry) {
  1122. job.ignore = true
  1123. return
  1124. }
  1125. &nbsp;
  1126. if (job === this[CURRENT] &amp;&amp; !job.piped)
  1127. this[PIPE](job)
  1128. }
  1129. &nbsp;
  1130. [ENTRYOPT] (job) {
  1131. return {
  1132. onwarn: (msg, data) =&gt; {
  1133. this.warn(msg, data)
  1134. },
  1135. noPax: this.noPax,
  1136. cwd: this.cwd,
  1137. absolute: job.absolute,
  1138. preservePaths: this.preservePaths,
  1139. maxReadSize: this.maxReadSize,
  1140. strict: this.strict,
  1141. portable: this.portable,
  1142. linkCache: this.linkCache,
  1143. statCache: this.statCache,
  1144. noMtime: this.noMtime
  1145. }
  1146. }
  1147. &nbsp;
  1148. [ENTRY] (job) {
  1149. this[JOBS] += 1
  1150. try {
  1151. return new this[WRITEENTRYCLASS](job.path, this[ENTRYOPT](job))
  1152. .on('end', () =&gt; this[JOBDONE](job))
  1153. .on('error', er =&gt; this.emit('error', er))
  1154. } catch (er) {
  1155. this.emit('error', er)
  1156. }
  1157. }
  1158. &nbsp;
  1159. [ONDRAIN] () {
  1160. if (this[CURRENT] &amp;&amp; this[CURRENT].entry)
  1161. this[CURRENT].entry.resume()
  1162. }
  1163. &nbsp;
  1164. // like .pipe() but using super, because our write() is special
  1165. [PIPE] (job) {
  1166. job.piped = true
  1167. &nbsp;
  1168. if (job.readdir)
  1169. job.readdir.forEach(entry =&gt; {
  1170. const p = this.prefix ?
  1171. job.path.slice(this.prefix.length + 1) || './'
  1172. : job.path
  1173. &nbsp;
  1174. const base = p === './' ? '' : p.replace(/\/*$/, '/')
  1175. this[ADDFSENTRY](base + entry)
  1176. })
  1177. &nbsp;
  1178. const source = job.entry
  1179. const zip = this.zip
  1180. &nbsp;
  1181. if (zip)
  1182. source.on('data', chunk =&gt; {
  1183. if (!zip.write(chunk))
  1184. source.pause()
  1185. })
  1186. else
  1187. source.on('data', chunk =&gt; {
  1188. if (!super.write(chunk))
  1189. source.pause()
  1190. })
  1191. }
  1192. &nbsp;
  1193. pause () {
  1194. if (this.zip)
  1195. this.zip.pause()
  1196. return super.pause()
  1197. }
  1198. })
  1199. &nbsp;
  1200. class PackSync extends Pack {
  1201. constructor (opt) {
  1202. super(opt)
  1203. this[WRITEENTRYCLASS] = WriteEntrySync
  1204. }
  1205. &nbsp;
  1206. // pause/resume are no-ops in sync streams.
  1207. pause () {}
  1208. resume () {}
  1209. &nbsp;
  1210. [STAT] (job) {
  1211. const stat = this.follow ? 'statSync' : 'lstatSync'
  1212. this[ONSTAT](job, fs[stat](job.absolute))
  1213. }
  1214. &nbsp;
  1215. [READDIR] (job, stat) {
  1216. this[ONREADDIR](job, fs.readdirSync(job.absolute))
  1217. }
  1218. &nbsp;
  1219. // gotta get it all in this tick
  1220. [PIPE] (job) {
  1221. const source = job.entry
  1222. const zip = this.zip
  1223. &nbsp;
  1224. if (job.readdir)
  1225. job.readdir.forEach(entry =&gt; {
  1226. const p = this.prefix ?
  1227. job.path.slice(this.prefix.length + 1) || './'
  1228. : job.path
  1229. &nbsp;
  1230. &nbsp;
  1231. const base = p === './' ? '' : p.replace(/\/*$/, '/')
  1232. this[ADDFSENTRY](base + entry)
  1233. })
  1234. &nbsp;
  1235. if (zip)
  1236. source.on('data', chunk =&gt; {
  1237. zip.write(chunk)
  1238. })
  1239. else
  1240. source.on('data', chunk =&gt; {
  1241. super[WRITE](chunk)
  1242. })
  1243. }
  1244. }
  1245. &nbsp;
  1246. Pack.Sync = PackSync
  1247. &nbsp;
  1248. module.exports = Pack
  1249. &nbsp;</pre></td></tr>
  1250. </table></pre>
  1251. <div class='push'></div><!-- for sticky footer -->
  1252. </div><!-- /wrapper -->
  1253. <div class='footer quiet pad2 space-top1 center small'>
  1254. Code coverage
  1255. generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Nov 20 2017 16:00:38 GMT-0800 (PST)
  1256. </div>
  1257. </div>
  1258. <script src="../../prettify.js"></script>
  1259. <script>
  1260. window.onload = function () {
  1261. if (typeof prettyPrint === 'function') {
  1262. prettyPrint();
  1263. }
  1264. };
  1265. </script>
  1266. <script src="../../sorter.js"></script>
  1267. </body>
  1268. </html>