All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
9.0.4 (2021-07-15)
- fix: retry ERR_SOCKET_TIMEOUT errors
- fix: clean up EINTEGRITY and ENOENT errors when reading from cacache
- fix: store an explicit timestamp instead of relying on cacache's
9.0.3 (2020-06-16)
- corrects the implementation of the
'reload'
cache mode, and implements'no-cache'
per the fetch spec
9.0.2 (2020-06-01)
- correctly supports URI encoded proxy authorization
9.0.0 (2020-06-01)
- the
cacheManager
option used to accept either a path or an instance of a Cache object, this has been removed in favor ofcachePath
which can only be a directory. there is no longer an option to provide a different caching implementation and cacache will always be used.
- exports now match those of
node-fetch
- the cache is now capable of storing multiple requests and responses for the same URL to better account for the
accept
andvary
family of headers - cache indexes will be deduplicated when being read, and deleted entirely when invalidated. this prevents the cache directory from growing unbounded with every request
8.0.3 (2020-03-03)
8.0.1 (2020-02-18)
8.0.0 (2020-02-18)
-
this module now only supports taking a plain JavaScript options object, not a figgy pudding config object.
-
update cacache and ssri (09e4f97)
7.1.1 (2020-01-28)
7.1.0 (2019-12-17)
7.0.0 (2019-12-17)
- drops support for node v8, since it's EOL as of 2020-01-01
- github: added github actions with coveralls integration (1913c1b)
- updated fetch module; linting mostly; based on testing (063f28e)
- utils: fixed configure-options based on testing (9dd4f6f)
- fixed test dep requires; added mockRequire function to mock tests properly (95de7a1)
- refactored functions into utilities (74620dd)
- updated dev deps; update tap; updated standard (dce6eec)
- updated fetch tests; linting, logic, added tests (d50aeaf)
-
format cache key with new URL object shape (21cb6cc)
-
polish out an unnecessary URL object creation (67a01d4), closes #14
-
support user without password in proxy auth (e24bbf9)
-
updated 'files' property in package file (945e40c)
-
Use WhatWG URL objects over deprecated legacy url API (28aca97)
-
drop node 8 (9fa7944)
6.1.0 (2019-11-14)
- streams: change condition/logic of fitInMemory used when defining memoize (c173723)
6.0.1 (2019-10-23)
6.0.0 (2019-10-01)
- preserve rfc7234 5.5.4 warnings (001b91e)
- properly detect thrown HTTP "error" objects (d7cbeb4)
- safely create synthetic response body for 304 (bc70f88)
- promises: refactor bluebird with native promises (7482d54)
- streams: refactor node streams with minipass (1d7f5a3)
5.0.0 (2019-07-15)
- cacache@12, no need for uid/gid opts (fdb956f)
- cache uid and gid are inferred from the cache folder itself, not passed in as options.
4.0.2 (2019-07-02)
4.0.1 (2018-04-12)
- integrity: use new sri.match() for verification (4f371a0)
4.0.0 (2018-04-09)
- drop node@4, add node@9 (7b0191a)
- node@4 is no longer supported
3.0.0 (2018-03-12)
- license: license changed from CC0 to ISC.
2.6.0 (2017-11-14)
- integrity: disable node-fetch compress when checking integrity (#42) (a7cc74c)
- onretry: Add
options.onRetry
(#48) (f90ccff)
2.5.0 (2017-08-24)
- cache: export cache deletion functionality (#40) (3da4250)
2.4.13 (2017-06-29)
- deps: bump other deps for bugfixes (eab8297)
- proxy: bump proxy deps with bugfixes (#32) (632f860), closes #32
2.4.12 (2017-06-06)
- cache: encode x-local-cache-etc headers to be header-safe (dc9fb1b)
2.4.11 (2017-06-05)
- deps: bump deps with ssri fix (bef1994)
2.4.10 (2017-05-31)
- deps: bump dep versions with bugfixes (0af4003)
- proxy: use auth parameter for proxy authentication (#30) (c687306)
2.4.9 (2017-05-25)
- cache: use the passed-in promise for resolving cache stuff (4c46257)
2.4.8 (2017-05-25)
- cache: pass uid/gid/Promise through to cache (a847c92)
2.4.7 (2017-05-24)
- deps: pull in various fixes from deps (fc2a587)
2.4.6 (2017-05-24)
- proxy: choose agent for http(s)-proxy by protocol of destUrl (ea4832a)
- proxy: make socks proxy working (1de810a)
- proxy: revert previous proxy solution (563b0d8)
2.4.5 (2017-05-24)
- proxy: use the destination url when determining agent (1a714e7)
2.4.4 (2017-05-23)
- redirect: handle redirects explicitly (#27) (4c4af54)
2.4.3 (2017-05-06)
- redirect: redirects now delete authorization if hosts fail to match (c071805)
2.4.2 (2017-05-04)
- cache: reduce race condition window by checking for content (24544b1)
- match: Rewrite the conditional stream logic (#25) (66bba4b)
2.4.1 (2017-04-28)
- memoization: missed spots + allow passthrough of memo objs (ac0cd12)
2.4.0 (2017-04-28)
- memoize: cacache had a broken memoizer (8a9ed4c)
- memoization: only slurp stuff into memory if opts.memoize is not false (0744adc)
2.3.0 (2017-04-27)
- agent: added opts.strictSSL and opts.localAddress (c35015a)
- proxy: Added opts.noProxy and NO_PROXY support (f45c915)
2.2.6 (2017-04-26)
- agent: check uppercase & lowercase proxy env (#24) (acf2326), closes #22
- deps: switch to node-fetch-npm and stop bundling (3db603b)
2.2.5 (2017-04-23)
- deps: bump cacache and use its size feature (926c1d3)
2.2.4 (2017-04-18)
- integrity: hash verification issues fixed (07f9402)
2.2.3 (2017-04-18)
- staleness: responses older than 8h were never stale :< (b54dd75)
- warning: remove spurious warning, make format more spec-compliant (2e4f6bb)
2.2.2 (2017-04-12)
- retry: stop retrying 404s (6fafd53)
2.2.1 (2017-04-10)
- deps: move test-only deps to devDeps (2daaf80)
2.2.0 (2017-04-09)
- cache: treat caches as private (57b7dc2)
- retry: accept shorthand retry settings (dfed69d)
2.1.0 (2017-04-09)
- cache: cache now obeys Age and a variety of other things (#13) (7b9652d)
2.0.4 (2017-04-09)
- agent: accept Request as fetch input, not just strings (b71669a)
2.0.3 (2017-04-09)
- deps: seriously (c29e7e7)
2.0.2 (2017-04-09)
- deps: use bundleDeps instead (c36ebf0)
2.0.1 (2017-04-09)
- deps: make sure node-fetch tarball included in release (3bf49d1)
2.0.0 (2017-04-09)
- deps: manually pull in newer node-fetch to avoid babel prod dep (66e5e87)
- retry: be more specific about when we retry (a47b782)
- agent: add ca/cert/key support to auto-agent (#15) (57585a7)
-
agent: pac proxies are no longer supported.
-
retry: Retry logic has changes.
-
404s, 420s, and 429s all retry now.
-
ENOTFOUND no longer retries.
-
Only ECONNRESET, ECONNREFUSED, EADDRINUSE, ETIMEDOUT, and
request-timeout
errors are retried.
1.7.0 (2017-04-08)
- cache: add useful headers to inform users about cached data (9bd7b00)
1.6.0 (2017-04-06)
- agent: better, keepalive-supporting, default http agents (16277f6)
1.5.1 (2017-04-05)
- cache: bump cacache for its fixed error messages (2f2b916)
- cache: fix handling of errors in cache reads (5729222)
1.5.0 (2017-04-04)
- retry: retry requests on 408 timeouts, too (8d8b5bd)
1.4.0 (2017-04-04)
- cache: stop relying on BB.catch (2b04494)
- retry: report retry attempt number as extra header (fd50927)
1.3.1 (2017-04-04)
- cache: pretend cache entry is missing on ENOENT (9c2bb26)
1.3.0 (2017-04-04)
- cache: if metadata is missing for some odd reason, ignore the entry (a021a6b)
- cache: add special headers when request was loaded straight from cache (8a7dbd1)
- cache: allow configuring algorithms to be calculated on insertion (bf4a0f2)
1.2.1 (2017-04-03)
- integrity: update cacache and ssri and change EBADCHECKSUM -> EINTEGRITY (b6cf6f6)
1.2.0 (2017-04-03)
- integrity: full Subresource Integrity support (#10) (a590159)
1.1.0 (2017-04-01)
- opts: fetch.defaults() for default options (522a65e)
1.0.1 (2017-04-01)
- cache: default on cache-control header (b872a2c)
- standard stuff and cache matching (753f2c2)
- agent: nudge around things with opts.agent (ed62b57)
- agent: {agent: false} has special behavior (b8cc923)
- cache: invalidation on non-GET (fe78fac)
- cache: make force-cache and only-if-cached work as expected (f50e9df)
- cache: more spec compliance (d5a56db)
- cache: only cache 200 gets (0abb25a)
- cache: only load cache code if cache opt is a string (250fcd5)
- cache: oops (e3fa15a)
- cache: refactored warning removal into main file (5b0a9f9)
- cache: req constructor no longer needed in Cache (5b74cbc)
- cache: standard fetch api calls cacheMode "cache" (6fba805)
- cache: was using wrong method for non-GET/HEAD cache invalidation (810763a)
- caching: a bunch of cache-related fixes (8ebda1d)
- deps:
cacache[@6](https://github.com/6).3.0
- race condition fixes (9528442) - freshness: fix regex for cacheControl matching (070db86)
- freshness: fixed default freshness heuristic value (5d29e88)
- logging: remove console.log calls (a1d0a47)
- method: node-fetch guarantees uppercase (a1d68d6)
- opts: simplified opts handling (516fd6e)
- proxy: pass proxy option directly to ProxyAgent (3398460)
- retry: false -> {retries: 0} (297fbb6)
- retry: only retry put if body is not a stream (a24e599)
- retry: skip retries if body is a stream for ANY method (780c0f8)
- api: initial implementation -- can make and cache requests (7d55b49)
- fetch: injectable cache, and retry support (87b84bf)
- cache: opts.cache -> opts.cacheManager; opts.cacheMode -> opts.cache
- fetch: opts.cache accepts a Cache-like obj or a path. Requests are now retried.
- api: actual api implemented