Projekt

Obecné

Profil

Stáhnout (22.4 KB) Statistiky
| Větev: | Revize:
1 3a515b92 cagy
# Changelog
2
3
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
5
### [12.0.4](https://github.com/npm/cacache/compare/v12.0.3...v12.0.4) (2020-03-24)
6
7
8
9
### [12.0.3](https://github.com/npm/cacache/compare/v12.0.2...v12.0.3) (2019-08-19)
10
11
12
### Bug Fixes
13
14
* do not chown if not running as root ([2d80af9](https://github.com/npm/cacache/commit/2d80af9))
15
16
17
18
### [12.0.2](https://github.com/npm/cacache/compare/v12.0.1...v12.0.2) (2019-07-19)
19
20
21
22
### [12.0.1](https://github.com/npm/cacache/compare/v12.0.0...v12.0.1) (2019-07-19)
23
24
* **deps** Abstracted out `lib/util/infer-owner.js` to
25
  [@npmcli/infer-owner](https://www.npmjs.com/package/@npmcli/infer-owner)
26
  so that it could be more easily used in other parts of the npm CLI.
27
28
29
## [12.0.0](https://github.com/npm/cacache/compare/v11.3.3...v12.0.0) (2019-07-15)
30
31
32
### Features
33
34
* infer uid/gid instead of accepting as options ([ac84d14](https://github.com/npm/cacache/commit/ac84d14))
35
* **i18n:** add another error message ([676cb32](https://github.com/npm/cacache/commit/676cb32))
36
37
38
### BREAKING CHANGES
39
40
* the uid gid options are no longer respected or
41
necessary.  As of this change, cacache will always match the cache
42
contents to the ownership of the cache directory (or its parent
43
directory), regardless of what the caller passes in.
44
45
Reasoning:
46
47
The number one reason to use a uid or gid option was to keep root-owned
48
files from causing problems in the cache.  In npm's case, this meant
49
that CLI's ./lib/command.js had to work out the appropriate uid and gid,
50
then pass it to the libnpmcommand module, which had to in turn pass the
51
uid and gid to npm-registry-fetch, which then passed it to
52
make-fetch-happen, which passed it to cacache.  (For package fetching,
53
pacote would be in that mix as well.)
54
55
Added to that, `cacache.rm()` will actually _write_ a file into the
56
cache index, but has no way to accept an option so that its call to
57
entry-index.js will write the index with the appropriate uid/gid.
58
Little ownership bugs were all over the place, and tricky to trace
59
through.  (Why should make-fetch-happen even care about accepting or
60
passing uids and gids?  It's an http library.)
61
62
This change allows us to keep the cache from having mixed ownership in
63
any situation.
64
65
Of course, this _does_ mean that if you have a root-owned but
66
user-writable folder (for example, `/tmp`), then the cache will try to
67
chown everything to root.
68
69
The solution is for the user to create a folder, make it user-owned, and
70
use that, rather than relying on cacache to create the root cache folder.
71
72
If we decide to restore the uid/gid opts, and use ownership inferrence
73
only when uid/gid are unset, then take care to also make rm take an
74
option object, and pass it through to entry-index.js.
75
76
77
78
### [11.3.3](https://github.com/npm/cacache/compare/v11.3.2...v11.3.3) (2019-06-17)
79
80
81
### Bug Fixes
82
83
* **audit:** npm audit fix ([200a6d5](https://github.com/npm/cacache/commit/200a6d5))
84
* **config:** Add ssri config 'error' option ([#146](https://github.com/npm/cacache/issues/146)) ([47de8f5](https://github.com/npm/cacache/commit/47de8f5))
85
* **deps:** npm audit fix ([481a7dc](https://github.com/npm/cacache/commit/481a7dc))
86
* **standard:** standard --fix ([7799149](https://github.com/npm/cacache/commit/7799149))
87
* **write:** avoid another cb never called situation ([5156561](https://github.com/npm/cacache/commit/5156561))
88
89
90
91
<a name="11.3.2"></a>
92
## [11.3.2](https://github.com/npm/cacache/compare/v11.3.1...v11.3.2) (2018-12-21)
93
94
95
### Bug Fixes
96
97
* **get:** make sure to handle errors in the .then ([b10bcd0](https://github.com/npm/cacache/commit/b10bcd0))
98
99
100
101
<a name="11.3.1"></a>
102
## [11.3.1](https://github.com/npm/cacache/compare/v11.3.0...v11.3.1) (2018-11-05)
103
104
105
### Bug Fixes
106
107
* **get:** export hasContent.sync properly ([d76c920](https://github.com/npm/cacache/commit/d76c920))
108
109
110
111
<a name="11.3.0"></a>
112
# [11.3.0](https://github.com/npm/cacache/compare/v11.2.0...v11.3.0) (2018-11-05)
113
114
115
### Features
116
117
* **get:** add sync API for reading ([db1e094](https://github.com/npm/cacache/commit/db1e094))
118
119
120
121
<a name="11.2.0"></a>
122
# [11.2.0](https://github.com/npm/cacache/compare/v11.1.0...v11.2.0) (2018-08-08)
123
124
125
### Features
126
127
* **read:** add sync support to other internal read.js fns ([fe638b6](https://github.com/npm/cacache/commit/fe638b6))
128
129
130
131
<a name="11.1.0"></a>
132
# [11.1.0](https://github.com/npm/cacache/compare/v11.0.3...v11.1.0) (2018-08-01)
133
134
135
### Features
136
137
* **read:** add sync support for low-level content read ([b43af83](https://github.com/npm/cacache/commit/b43af83))
138
139
140
141
<a name="11.0.3"></a>
142
## [11.0.3](https://github.com/npm/cacache/compare/v11.0.2...v11.0.3) (2018-08-01)
143
144
145
### Bug Fixes
146
147
* **config:** add ssri config options ([#136](https://github.com/npm/cacache/issues/136)) ([10d5d9a](https://github.com/npm/cacache/commit/10d5d9a))
148
* **perf:** refactor content.read to avoid lstats ([c5ac10e](https://github.com/npm/cacache/commit/c5ac10e))
149
* **test:** oops when removing safe-buffer ([1950490](https://github.com/npm/cacache/commit/1950490))
150
151
152
153
<a name="11.0.2"></a>
154
## [11.0.2](https://github.com/npm/cacache/compare/v11.0.1...v11.0.2) (2018-05-07)
155
156
157
### Bug Fixes
158
159
* **verify:** size param no longer lost in a verify ([#131](https://github.com/npm/cacache/issues/131)) ([c614a19](https://github.com/npm/cacache/commit/c614a19)), closes [#130](https://github.com/npm/cacache/issues/130)
160
161
162
163
<a name="11.0.1"></a>
164
## [11.0.1](https://github.com/npm/cacache/compare/v11.0.0...v11.0.1) (2018-04-10)
165
166
167
168
<a name="11.0.0"></a>
169
# [11.0.0](https://github.com/npm/cacache/compare/v10.0.4...v11.0.0) (2018-04-09)
170
171
172
### Features
173
174
* **opts:** use figgy-pudding for opts ([#128](https://github.com/npm/cacache/issues/128)) ([33d4eed](https://github.com/npm/cacache/commit/33d4eed))
175
176
177
### meta
178
179
* drop support for node@4 ([529f347](https://github.com/npm/cacache/commit/529f347))
180
181
182
### BREAKING CHANGES
183
184
* node@4 is no longer supported
185
186
187
188
<a name="10.0.4"></a>
189
## [10.0.4](https://github.com/npm/cacache/compare/v10.0.3...v10.0.4) (2018-02-16)
190
191
192
193
<a name="10.0.3"></a>
194
## [10.0.3](https://github.com/npm/cacache/compare/v10.0.2...v10.0.3) (2018-02-16)
195
196
197
### Bug Fixes
198
199
* **content:** rethrow aggregate errors as ENOENT ([fa918f5](https://github.com/npm/cacache/commit/fa918f5))
200
201
202
203
<a name="10.0.2"></a>
204
## [10.0.2](https://github.com/npm/cacache/compare/v10.0.1...v10.0.2) (2018-01-07)
205
206
207
### Bug Fixes
208
209
* **ls:** deleted entries could cause a premature stream EOF ([347dc36](https://github.com/npm/cacache/commit/347dc36))
210
211
212
213
<a name="10.0.1"></a>
214
## [10.0.1](https://github.com/npm/cacache/compare/v10.0.0...v10.0.1) (2017-11-15)
215
216
217
### Bug Fixes
218
219
* **move-file:** actually use the fallback to `move-concurrently` (#110) ([073fbe1](https://github.com/npm/cacache/commit/073fbe1))
220
221
222
223
<a name="10.0.0"></a>
224
# [10.0.0](https://github.com/npm/cacache/compare/v9.3.0...v10.0.0) (2017-10-23)
225
226
227
### Features
228
229
* **license:** relicense to ISC (#111) ([fdbb4e5](https://github.com/npm/cacache/commit/fdbb4e5))
230
231
232
### Performance Improvements
233
234
* more copyFile benchmarks ([63787bb](https://github.com/npm/cacache/commit/63787bb))
235
236
237
### BREAKING CHANGES
238
239
* **license:** the license has been changed from CC0-1.0 to ISC.
240
241
242
243
<a name="9.3.0"></a>
244
# [9.3.0](https://github.com/npm/cacache/compare/v9.2.9...v9.3.0) (2017-10-07)
245
246
247
### Features
248
249
* **copy:** added cacache.get.copy api for fast copies (#107) ([067b5f6](https://github.com/npm/cacache/commit/067b5f6))
250
251
252
253
<a name="9.2.9"></a>
254
## [9.2.9](https://github.com/npm/cacache/compare/v9.2.8...v9.2.9) (2017-06-17)
255
256
257
258
<a name="9.2.8"></a>
259
## [9.2.8](https://github.com/npm/cacache/compare/v9.2.7...v9.2.8) (2017-06-05)
260
261
262
### Bug Fixes
263
264
* **ssri:** bump ssri for bugfix ([c3232ea](https://github.com/npm/cacache/commit/c3232ea))
265
266
267
268
<a name="9.2.7"></a>
269
## [9.2.7](https://github.com/npm/cacache/compare/v9.2.6...v9.2.7) (2017-06-05)
270
271
272
### Bug Fixes
273
274
* **content:** make verified content completely read-only (#96) ([4131196](https://github.com/npm/cacache/commit/4131196))
275
276
277
278
<a name="9.2.6"></a>
279
## [9.2.6](https://github.com/npm/cacache/compare/v9.2.5...v9.2.6) (2017-05-31)
280
281
282
### Bug Fixes
283
284
* **node:** update ssri to prevent old node 4 crash ([5209ffe](https://github.com/npm/cacache/commit/5209ffe))
285
286
287
288
<a name="9.2.5"></a>
289
## [9.2.5](https://github.com/npm/cacache/compare/v9.2.4...v9.2.5) (2017-05-25)
290
291
292
### Bug Fixes
293
294
* **deps:** fix lockfile issues and bump ssri ([84e1d7e](https://github.com/npm/cacache/commit/84e1d7e))
295
296
297
298
<a name="9.2.4"></a>
299
## [9.2.4](https://github.com/npm/cacache/compare/v9.2.3...v9.2.4) (2017-05-24)
300
301
302
### Bug Fixes
303
304
* **deps:** bumping deps ([bbccb12](https://github.com/npm/cacache/commit/bbccb12))
305
306
307
308
<a name="9.2.3"></a>
309
## [9.2.3](https://github.com/npm/cacache/compare/v9.2.2...v9.2.3) (2017-05-24)
310
311
312
### Bug Fixes
313
314
* **rm:** stop crashing if content is missing on rm ([ac90bc0](https://github.com/npm/cacache/commit/ac90bc0))
315
316
317
318
<a name="9.2.2"></a>
319
## [9.2.2](https://github.com/npm/cacache/compare/v9.2.1...v9.2.2) (2017-05-14)
320
321
322
### Bug Fixes
323
324
* **i18n:** lets pretend this didn't happen ([519b4ee](https://github.com/npm/cacache/commit/519b4ee))
325
326
327
328
<a name="9.2.1"></a>
329
## [9.2.1](https://github.com/npm/cacache/compare/v9.2.0...v9.2.1) (2017-05-14)
330
331
332
### Bug Fixes
333
334
* **docs:** fixing translation messup ([bb9e4f9](https://github.com/npm/cacache/commit/bb9e4f9))
335
336
337
338
<a name="9.2.0"></a>
339
# [9.2.0](https://github.com/npm/cacache/compare/v9.1.0...v9.2.0) (2017-05-14)
340
341
342
### Features
343
344
* **i18n:** add Spanish translation for API ([531f9a4](https://github.com/npm/cacache/commit/531f9a4))
345
346
347
348
<a name="9.1.0"></a>
349
# [9.1.0](https://github.com/npm/cacache/compare/v9.0.0...v9.1.0) (2017-05-14)
350
351
352
### Features
353
354
* **i18n:** Add Spanish translation and i18n setup (#91) ([323b90c](https://github.com/npm/cacache/commit/323b90c))
355
356
357
358
<a name="9.0.0"></a>
359
# [9.0.0](https://github.com/npm/cacache/compare/v8.0.0...v9.0.0) (2017-04-28)
360
361
362
### Bug Fixes
363
364
* **memoization:** actually use the LRU ([0e55dc9](https://github.com/npm/cacache/commit/0e55dc9))
365
366
367
### Features
368
369
* **memoization:** memoizers can be injected through opts.memoize (#90) ([e5614c7](https://github.com/npm/cacache/commit/e5614c7))
370
371
372
### BREAKING CHANGES
373
374
* **memoization:** If you were passing an object to opts.memoize, it will now be used as an injected memoization object. If you were only passing booleans and other non-objects through that option, no changes are needed.
375
376
377
378
<a name="8.0.0"></a>
379
# [8.0.0](https://github.com/npm/cacache/compare/v7.1.0...v8.0.0) (2017-04-22)
380
381
382
### Features
383
384
* **read:** change hasContent to return {sri, size} (#88) ([bad6c49](https://github.com/npm/cacache/commit/bad6c49)), closes [#87](https://github.com/npm/cacache/issues/87)
385
386
387
### BREAKING CHANGES
388
389
* **read:** hasContent now returns an object with `{sri, size}` instead of `sri`. Use `result.sri` anywhere that needed the old return value.
390
391
392
393
<a name="7.1.0"></a>
394
# [7.1.0](https://github.com/npm/cacache/compare/v7.0.5...v7.1.0) (2017-04-20)
395
396
397
### Features
398
399
* **size:** handle content size info (#49) ([91230af](https://github.com/npm/cacache/commit/91230af))
400
401
402
403
<a name="7.0.5"></a>
404
## [7.0.5](https://github.com/npm/cacache/compare/v7.0.4...v7.0.5) (2017-04-18)
405
406
407
### Bug Fixes
408
409
* **integrity:** new ssri with fixed integrity stream ([6d13e8e](https://github.com/npm/cacache/commit/6d13e8e))
410
* **write:** wrap stuff in promises to improve errors ([3624fc5](https://github.com/npm/cacache/commit/3624fc5))
411
412
413
414
<a name="7.0.4"></a>
415
## [7.0.4](https://github.com/npm/cacache/compare/v7.0.3...v7.0.4) (2017-04-15)
416
417
418
### Bug Fixes
419
420
* **fix-owner:** throw away ENOENTs on chownr ([d49bbcd](https://github.com/npm/cacache/commit/d49bbcd))
421
422
423
424
<a name="7.0.3"></a>
425
## [7.0.3](https://github.com/npm/cacache/compare/v7.0.2...v7.0.3) (2017-04-05)
426
427
428
### Bug Fixes
429
430
* **read:** fixing error message for integrity verification failures ([9d4f0a5](https://github.com/npm/cacache/commit/9d4f0a5))
431
432
433
434
<a name="7.0.2"></a>
435
## [7.0.2](https://github.com/npm/cacache/compare/v7.0.1...v7.0.2) (2017-04-03)
436
437
438
### Bug Fixes
439
440
* **integrity:** use EINTEGRITY error code and update ssri ([8dc2e62](https://github.com/npm/cacache/commit/8dc2e62))
441
442
443
444
<a name="7.0.1"></a>
445
## [7.0.1](https://github.com/npm/cacache/compare/v7.0.0...v7.0.1) (2017-04-03)
446
447
448
### Bug Fixes
449
450
* **docs:** fix header name conflict in readme ([afcd456](https://github.com/npm/cacache/commit/afcd456))
451
452
453
454
<a name="7.0.0"></a>
455
# [7.0.0](https://github.com/npm/cacache/compare/v6.3.0...v7.0.0) (2017-04-03)
456
457
458
### Bug Fixes
459
460
* **test:** fix content.write tests when running in docker ([d2e9b6a](https://github.com/npm/cacache/commit/d2e9b6a))
461
462
463
### Features
464
465
* **integrity:** subresource integrity support (#78) ([b1e731f](https://github.com/npm/cacache/commit/b1e731f))
466
467
468
### BREAKING CHANGES
469
470
* **integrity:** The entire API has been overhauled to use SRI hashes instead of digest/hashAlgorithm pairs. SRI hashes follow the Subresource Integrity standard and support strings and objects compatible with [`ssri`](https://npm.im/ssri).
471
472
* This change bumps the index version, which will invalidate all previous index entries. Content entries will remain intact, and existing caches will automatically reuse any content from before this breaking change.
473
474
* `cacache.get.info()`, `cacache.ls()`, and `cacache.ls.stream()` will now return objects that looks like this:
475
476
```
477
{
478
  key: String,
479
  integrity: '<algorithm>-<base64hash>',
480
  path: ContentPath,
481
  time: Date<ms>,
482
  metadata: Any
483
}
484
```
485
486
* `opts.digest` and `opts.hashAlgorithm` are obsolete for any API calls that used them.
487
488
* Anywhere `opts.digest` was accepted, `opts.integrity` is now an option. Any valid SRI hash is accepted here -- multiple hash entries will be resolved according to the standard: first, the "strongest" hash algorithm will be picked, and then each of the entries for that algorithm will be matched against the content. Content will be validated if *any* of the entries match (so, a single integrity string can be used for multiple "versions" of the same document/data).
489
490
* `put.byDigest()`, `put.stream.byDigest`, `get.byDigest()` and `get.stream.byDigest()` now expect an SRI instead of a `digest` + `opts.hashAlgorithm` pairing.
491
492
* `get.hasContent()` now expects an integrity hash instead of a digest. If content exists, it will return the specific single integrity hash that was found in the cache.
493
494
* `verify()` has learned to handle integrity-based caches, and forgotten how to handle old-style cache indices due to the format change.
495
496
* `cacache.rm.content()` now expects an integrity hash instead of a hex digest.
497
498
499
500
<a name="6.3.0"></a>
501
# [6.3.0](https://github.com/npm/cacache/compare/v6.2.0...v6.3.0) (2017-04-01)
502
503
504
### Bug Fixes
505
506
* **fixOwner:** ignore EEXIST race condition from mkdirp ([4670e9b](https://github.com/npm/cacache/commit/4670e9b))
507
* **index:** ignore index removal races when inserting ([b9d2fa2](https://github.com/npm/cacache/commit/b9d2fa2))
508
* **memo:** use lru-cache for better mem management (#75) ([d8ac5aa](https://github.com/npm/cacache/commit/d8ac5aa))
509
510
511
### Features
512
513
* **dependencies:** Switch to move-concurrently (#77) ([dc6482d](https://github.com/npm/cacache/commit/dc6482d))
514
515
516
517
<a name="6.2.0"></a>
518
# [6.2.0](https://github.com/npm/cacache/compare/v6.1.2...v6.2.0) (2017-03-15)
519
520
521
### Bug Fixes
522
523
* **index:** additional bucket entry verification with checksum (#72) ([f8e0f25](https://github.com/npm/cacache/commit/f8e0f25))
524
* **verify:** return fixOwner.chownr promise ([6818521](https://github.com/npm/cacache/commit/6818521))
525
526
527
### Features
528
529
* **tmp:** safe tmp dir creation/management util (#73) ([c42da71](https://github.com/npm/cacache/commit/c42da71))
530
531
532
533
<a name="6.1.2"></a>
534
## [6.1.2](https://github.com/npm/cacache/compare/v6.1.1...v6.1.2) (2017-03-13)
535
536
537
### Bug Fixes
538
539
* **index:** set default hashAlgorithm ([d6eb2f0](https://github.com/npm/cacache/commit/d6eb2f0))
540
541
542
543
<a name="6.1.1"></a>
544
## [6.1.1](https://github.com/npm/cacache/compare/v6.1.0...v6.1.1) (2017-03-13)
545
546
547
### Bug Fixes
548
549
* **coverage:** bumping coverage for verify (#71) ([0b7faf6](https://github.com/npm/cacache/commit/0b7faf6))
550
* **deps:** glob should have been a regular dep :< ([0640bc4](https://github.com/npm/cacache/commit/0640bc4))
551
552
553
554
<a name="6.1.0"></a>
555
# [6.1.0](https://github.com/npm/cacache/compare/v6.0.2...v6.1.0) (2017-03-12)
556
557
558
### Bug Fixes
559
560
* **coverage:** more coverage for content reads (#70) ([ef4f70a](https://github.com/npm/cacache/commit/ef4f70a))
561
* **tests:** use safe-buffer because omfg (#69) ([6ab8132](https://github.com/npm/cacache/commit/6ab8132))
562
563
564
### Features
565
566
* **rm:** limited rm.all and fixed bugs (#66) ([d5d25ba](https://github.com/npm/cacache/commit/d5d25ba)), closes [#66](https://github.com/npm/cacache/issues/66)
567
* **verify:** tested, working cache verifier/gc (#68) ([45ad77a](https://github.com/npm/cacache/commit/45ad77a))
568
569
570
571
<a name="6.0.2"></a>
572
## [6.0.2](https://github.com/npm/cacache/compare/v6.0.1...v6.0.2) (2017-03-11)
573
574
575
### Bug Fixes
576
577
* **index:** segment cache items with another subbucket (#64) ([c3644e5](https://github.com/npm/cacache/commit/c3644e5))
578
579
580
581
<a name="6.0.1"></a>
582
## [6.0.1](https://github.com/npm/cacache/compare/v6.0.0...v6.0.1) (2017-03-05)
583
584
585
### Bug Fixes
586
587
* **docs:** Missed spots in README ([8ffb7fa](https://github.com/npm/cacache/commit/8ffb7fa))
588
589
590
591
<a name="6.0.0"></a>
592
# [6.0.0](https://github.com/npm/cacache/compare/v5.0.3...v6.0.0) (2017-03-05)
593
594
595
### Bug Fixes
596
597
* **api:** keep memo cache mostly-internal ([2f72d0a](https://github.com/npm/cacache/commit/2f72d0a))
598
* **content:** use the rest of the string, not the whole string ([fa8f3c3](https://github.com/npm/cacache/commit/fa8f3c3))
599
* **deps:** removed `format-number@2.0.2` ([1187791](https://github.com/npm/cacache/commit/1187791))
600
* **deps:** removed inflight@1.0.6 ([0d1819c](https://github.com/npm/cacache/commit/0d1819c))
601
* **deps:** rimraf@2.6.1 ([9efab6b](https://github.com/npm/cacache/commit/9efab6b))
602
* **deps:** standard@9.0.0 ([4202cba](https://github.com/npm/cacache/commit/4202cba))
603
* **deps:** tap@10.3.0 ([aa03088](https://github.com/npm/cacache/commit/aa03088))
604
* **deps:** weallcontribute@1.0.8 ([ad4f4dc](https://github.com/npm/cacache/commit/ad4f4dc))
605
* **docs:** add security note to hashKey ([03f81ba](https://github.com/npm/cacache/commit/03f81ba))
606
* **hashes:** change default hashAlgorithm to sha512 ([ea00ba6](https://github.com/npm/cacache/commit/ea00ba6))
607
* **hashes:** missed a spot for hashAlgorithm defaults ([45997d8](https://github.com/npm/cacache/commit/45997d8))
608
* **index:** add length header before JSON for verification ([fb8cb4d](https://github.com/npm/cacache/commit/fb8cb4d))
609
* **index:** change index filenames to sha1s of keys ([bbc5fca](https://github.com/npm/cacache/commit/bbc5fca))
610
* **index:** who cares about race conditions anyway ([b1d3888](https://github.com/npm/cacache/commit/b1d3888))
611
* **perf:** bulk-read get+read for massive speed ([d26cdf9](https://github.com/npm/cacache/commit/d26cdf9))
612
* **perf:** use bulk file reads for index reads ([79a8891](https://github.com/npm/cacache/commit/79a8891))
613
* **put-stream:** remove tmp file on stream insert error ([65f6632](https://github.com/npm/cacache/commit/65f6632))
614
* **put-stream:** robustified and predictibilized ([daf9e08](https://github.com/npm/cacache/commit/daf9e08))
615
* **put-stream:** use new promise API for moves ([1d36013](https://github.com/npm/cacache/commit/1d36013))
616
* **readme:** updated to reflect new default hashAlgo ([c60a2fa](https://github.com/npm/cacache/commit/c60a2fa))
617
* **verify:** tiny typo fix ([db22d05](https://github.com/npm/cacache/commit/db22d05))
618
619
620
### Features
621
622
* **api:** converted external api ([7bf032f](https://github.com/npm/cacache/commit/7bf032f))
623
* **cacache:** exported clearMemoized() utility ([8d2c5b6](https://github.com/npm/cacache/commit/8d2c5b6))
624
* **cache:** add versioning to content and index ([31bc549](https://github.com/npm/cacache/commit/31bc549))
625
* **content:** collate content files into subdirs ([c094d9f](https://github.com/npm/cacache/commit/c094d9f))
626
* **deps:** `@npmcorp/move@1.0.0` ([bdd00bf](https://github.com/npm/cacache/commit/bdd00bf))
627
* **deps:** `bluebird@3.4.7` ([3a17aff](https://github.com/npm/cacache/commit/3a17aff))
628
* **deps:** `promise-inflight@1.0.1` ([a004fe6](https://github.com/npm/cacache/commit/a004fe6))
629
* **get:** added memoization support for get ([c77d794](https://github.com/npm/cacache/commit/c77d794))
630
* **get:** export hasContent ([2956ec3](https://github.com/npm/cacache/commit/2956ec3))
631
* **index:** add hashAlgorithm and format insert ret val ([b639746](https://github.com/npm/cacache/commit/b639746))
632
* **index:** collate index files into subdirs ([e8402a5](https://github.com/npm/cacache/commit/e8402a5))
633
* **index:** promisify entry index ([cda3335](https://github.com/npm/cacache/commit/cda3335))
634
* **memo:** added memoization lib ([da07b92](https://github.com/npm/cacache/commit/da07b92))
635
* **memo:** export memoization api ([954b1b3](https://github.com/npm/cacache/commit/954b1b3))
636
* **move-file:** add move fallback for weird errors ([5cf4616](https://github.com/npm/cacache/commit/5cf4616))
637
* **perf:** bulk content write api ([51b536e](https://github.com/npm/cacache/commit/51b536e))
638
* **put:** added memoization support to put ([b613a70](https://github.com/npm/cacache/commit/b613a70))
639
* **read:** switched to promises ([a869362](https://github.com/npm/cacache/commit/a869362))
640
* **rm:** added memoization support to rm ([4205cf0](https://github.com/npm/cacache/commit/4205cf0))
641
* **rm:** switched to promises ([a000d24](https://github.com/npm/cacache/commit/a000d24))
642
* **util:** promise-inflight ownership fix requests ([9517cd7](https://github.com/npm/cacache/commit/9517cd7))
643
* **util:** use promises for api ([ae204bb](https://github.com/npm/cacache/commit/ae204bb))
644
* **verify:** converted to Promises ([f0b3974](https://github.com/npm/cacache/commit/f0b3974))
645
646
647
### BREAKING CHANGES
648
649
* cache: index/content directories are now versioned. Previous caches are no longer compatible and cannot be migrated.
650
* util: fix-owner now uses Promises instead of callbacks
651
* index: Previously-generated index entries are no longer compatible and the index must be regenerated.
652
* index: The index format has changed and previous caches are no longer compatible. Existing caches will need to be regenerated.
653
* hashes: Default hashAlgorithm changed from sha1 to sha512. If you
654
rely on the prior setting, pass `opts.hashAlgorithm` in explicitly.
655
* content: Previously-generated content directories are no longer compatible
656
and must be regenerated.
657
* verify: API is now promise-based
658
* read: Switches to a Promise-based API and removes callback stuff
659
* rm: Switches to a Promise-based API and removes callback stuff
660
* index: this changes the API to work off promises instead of callbacks
661
* api: this means we are going all in on promises now