docs: updated documentation

This commit is contained in:
arthurfiorette 2022-01-17 16:53:50 -03:00
parent 99226504f4
commit 668ce0c2a5
No known key found for this signature in database
GPG Key ID: 9D190CD53C53C555
16 changed files with 532 additions and 29 deletions

3
docs/.gitignore vendored
View File

@ -1 +1,2 @@
/.yarn
/.yarn
!pages/_comparison-benchmark.log

View File

@ -17,6 +17,7 @@
- [Typescript Users](pages/typescript-users.md 'Typescript users')
- [Compiled code](pages/compiled-code.md 'Compiled code')
- [Comparison](pages/comparison.md 'Comparison')
- Other

View File

@ -24,6 +24,22 @@
content="https://axios-cache-interceptor.js.org/static/preview.png"
/>
<script type="application/ld+json">
{
"@context": "http://www.schema.org",
"@type": "Organization",
"name": "Axios Cache Interceptor",
"url": "https://axios-cache-interceptor.js.org/",
"sameAs": ["https://github.com/ArthurFiorette/axios-cache-interceptor"],
"datePublished": "2022-01-17",
"dateModified": "2022-01-17",
"logo": "https://axios-cache-interceptor.js.org/static/preview.png",
"image": "https://axios-cache-interceptor.js.org/static/preview.png",
"description": "Axios Cache Interceptor is a small and efficient cache interceptor for axios.",
"headline": "A small and efficient cache interceptor for axios."
}
</script>
<!-- Favicon -->
<link rel="apple-touch-icon" sizes="57x57" href="/static/apple-icon-57x57.png" />
<link rel="apple-touch-icon" sizes="60x60" href="/static/apple-icon-60x60.png" />
@ -57,7 +73,7 @@
theme="light"
/>
<link rel="stylesheet" href="static/index.css" />
<link rel="stylesheet" href="css/index.css" />
</head>
<body>
@ -82,8 +98,8 @@
<div id="app">Please wait...</div>
<script src="static/runkit.js"></script>
<script src="static/index.js"></script>
<script src="js/runkit.js"></script>
<script src="js/index.js"></script>
<!-- Docsify -->
<script

78
docs/js/benchmark.js Normal file
View File

@ -0,0 +1,78 @@
const Axios = require('axios').default;
const express = require('express');
const { execSync } = require('child_process');
const interceptor = require('../../cjs');
const adapter = require('axios-cache-adapter');
const TIMES = 1_000_000;
const port = 8734;
const host = '0.0.0.0';
async function bench(axios) {
const init = Date.now();
let times = TIMES;
while (times--) {
await axios.get(`http://${host}:${port}/`);
}
return Date.now() - init;
}
function printResult(name, milliseconds, networkRequests, axiosTime) {
const seconds = milliseconds / 1000;
const axiosSeconds = axiosTime ? axiosTime / 1000 : seconds;
console.log();
console.log(`# ${name}`);
console.log(`Time: ${seconds}s`);
console.log(`Requests per second: ${(TIMES / seconds).toFixed(3)}/s`);
console.log(`Network requests: ${networkRequests} of ${TIMES}`);
console.log(
`Increase from pure axios: ${((100 * axiosSeconds) / seconds).toFixed(3)}%`
);
console.log();
}
(async () => {
const counter = { name: 'none' };
const app = express();
app.get('/', (_, res) => {
counter[counter.name] = counter[counter.name] + 1;
return res.json({ rnd: Math.random(), text: 'Hello World' });
});
const server = app.listen(port, host);
console.log(`Simulating ${TIMES} requests...`);
console.log(`Run at ${new Date().toUTCString()}`);
console.log(`Commit: ${execSync('git rev-parse HEAD').toString()}`);
counter.name = 'axios';
counter.axios = 0;
const withAxios = Axios.create();
const axiosTime = await bench(withAxios);
printResult('Raw axios', axiosTime, counter.axios);
counter.name = 'interceptor';
counter.interceptor = 0;
const withInterceptor = interceptor.setupCache(Axios.create(), { ttl: 1000 });
const interceptorTime = await bench(withInterceptor);
printResult('Axios Cache Interceptor', interceptorTime, counter.interceptor, axiosTime);
counter.name = 'adapter';
counter.adapter = 0;
const withAdapter = adapter.setup({
cache: { maxAge: 1000 }
});
const adapterTime = await bench(withAdapter);
printResult('Axios Cache Adapter', adapterTime, counter.adapter, axiosTime);
server.close();
})().catch(console.error);

View File

@ -23,9 +23,12 @@
const tempCodePlaceholder = document.createElement('pre');
tempCodePlaceholder.textContent = source;
console.log(this.getAttributeNames());
window.RunKit.createNotebook({
element: wrapper,
source,
mode: this.getAttribute('endpoint') ? 'endpoint' : 'default',
onLoad: () => tempCodePlaceholder.remove()
});
@ -39,10 +42,12 @@
window.runkitDocsify = function (hook) {
const regex =
/<pre v-pre data-lang="js\s*#runkit\s*"><code class="lang-js\s*#runkit\s*">(.*?)<\/code><\/pre>/gs;
/<pre v-pre data-lang="js\s*#runkit\s*(endpoint)?\s*"><code class="lang-js\s*#runkit\s*(endpoint)?\s*">(.*?)<\/code><\/pre>/gs;
hook.afterEach((html, next) =>
next(html.replace(regex, '<' + componentName + '>$1</' + componentName + '>'))
next(
html.replace(regex, '<' + componentName + ' $1="$2">$3</' + componentName + '>')
)
);
};
})();

View File

@ -1,9 +1,13 @@
{
"private": true,
"scripts": {
"serve": "docsify serve"
"serve": "docsify serve",
"bench": "node js/benchmark.js > pages/_comparison-benchmark.log"
},
"devDependencies": {
"docsify-cli": "^4.4.3"
"axios": "^0.24.0",
"axios-cache-adapter": "^2.7.3",
"docsify-cli": "^4.4.3",
"express": "^4.17.2"
}
}

View File

@ -0,0 +1,25 @@
Simulating 1000000 requests...
Run at Mon, 17 Jan 2022 19:08:25 GMT
Commit: 99226504f4dc623c76b7543a6cdb9794cfabcb67
# Raw axios
Time: 435.211s
Requests per second: 2297.736/s
Network requests: 1000000 of 1000000
Increase from pure axios: 100.000%
# Axios Cache Interceptor
Time: 21.653s
Requests per second: 46182.977/s
Network requests: 22 of 1000000
Increase from pure axios: 2009.934%
# Axios Cache Adapter
Time: 28.533s
Requests per second: 35047.138/s
Network requests: 29 of 1000000
Increase from pure axios: 1525.290%

View File

@ -0,0 +1,21 @@
| | Axios Cache Interceptor | Axios Cache Adapter | Cachios |
| :--------------------------------------------------------------------------: | :---------------------: | :--------------------------------------------------------------------: | :------------------: |
| Expiration with [TTL](https://developer.mozilla.org/en-US/docs/Glossary/TTL) | ✅ | ✅ | ✅ |
| Per-request configuration | ✅ | ✅ | ✅ |
| Global and custom instance | ✅ | ✅ | ✅ |
| Cache-Control header | ✅ | ✅ | 🛑 |
| Expires & Age header | ✅ | 🟡 | 🛑 |
| ETag and If-None-Match header | ✅ | 🛑 | 🛑 |
| If-Modified-Size header | ✅ | 🛑 | 🛑 |
| Bundle Size | **3.6Kb** (gzip) | 18.9Kb (gzip) | 19.5Kb (gzip) |
| Typescript declaration | ✅ (Custom interface) | ✅ (Applied globally) | ✅(Applied globally) |
| Custom cache keys | ✅ | ✅ | ✅ |
| Multiple storages | ✅ | 🔶 (Only localForage) | ✅ |
| Built-in redis storage | 🟡 (Documented) | ✅ | 🟡 |
| Storage size limit | 🔶 | ✅ | ✅ |
| Node & Web compatible | ✅ | ✅ | 🛑 |
| Invalidade cache based on response | ✅ | ✅ | 🛑 |
| Update cache based on response | ✅ | 🟡 | 🟡 |
| Predicate to test if request should be cached | ✅ | ✅ | 🛑 |
| Concurrent requests | ✅ | 🔶[#231](https://github.com/RasCarlito/axios-cache-adapter/issues/231) | 🛑 |
| Cache fallback on network errors | 🛑 | ✅ | ✅ |

18
docs/pages/comparison.md Normal file
View File

@ -0,0 +1,18 @@
# Comparison
> This comparison page aims to be detailed, unbiased, and up-to-date. <br/>If you see any
> information that may be inaccurate or could be improved otherwise, please feel free to
> suggest changes.
## Cache Features
[Comparison table](_comparison-table.md ':include')
## Benchmark
There's an simple
[benchmark](https://github.com/arthurfiorette/axios-cache-interceptor/blob/main/docs/js/benchmark.js)
in form of a stress test to compare the performance of this library, `axios-cache-adapter`
and raw axios (without cache).
[Comparison benchmark](_comparison-benchmark.log ':include :type=code')

View File

@ -61,11 +61,11 @@ const { setupCache } = window.AxiosCacheInterceptor;
You can import any [CDN Url](#with-cdns) and use it in your code. **UMD Compatible**
```js
// UMD bundled code
import { setupCache } from 'https://cdn.jsdelivr.net/npm/axios-cache-interceptor@0.8.2/umd/es6.js';
// ESM with Skypack CDN
import { setupCache } from 'https://cdn.skypack.dev/axios-cache-interceptor@0.8.2';
import { setupCache } from 'https://cdn.skypack.dev/axios-cache-interceptor@0.8.3';
// UMD with JSDeliver CDN
import { setupCache } from 'https://cdn.jsdelivr.net/npm/axios-cache-interceptor@0.8.3/umd/index.js';
```
## Support List

View File

@ -8,14 +8,13 @@ capabilities to it. It is a simple, easy to use and powerful library.
You can use it to optimize requests and not have to worry about duplicated requests or
even needing one of those fat javascript libraries for state management.
## Features
Axios Cache Interceptor can be understood as an intermediary that will analyze each
request made, check if no similar request has been made before, if so, return it, if not,
wait for the response, warn other requests if they are waiting and return the response.
- [x] Concurrent requests
- [x] Typescript support
- [x] Unit tests
- [x] Header interpretation
- [x] ETag and If-Modified-Since cache support
- [x] Infinity storage options
- [x] Cache revalidation from responses
- [x] Support for external storages
- [x] ESM, CJS and UMD support
## Where to start?
- ##### [Installing](pages/installing.md) choose the right bundle to compose in your application.
- ##### [Comparison](pages/comparison.md) see if this package suits all your needs.
- ##### [Usage & Examples](pages/usage-examples.md) check out some examples.
- ##### [Request Configuration](pages/per-request-configuration.md) to make every request unique!

View File

@ -12,7 +12,7 @@ import { setupCache } from 'axios-cache-interceptor';
setupCache(axios);
```
### How to get the axios instance
#### How to get the axios instance
There are two types of axios instances, the `AxiosStatic` and the `AxiosInstance`. The
`AxiosStatic` is the default instance of axios. The `AxiosInstance` is the instance you
@ -59,3 +59,40 @@ const result = await instance.get('https://jsonplaceholder.typicode.com/posts/1'
console.log('Result:', result.data);
```
## Real world example
An **NodeJS** with **ExpressJS** example to return data from another api.
```js #runkit endpoint
const express = require('express');
const app = express();
const Axios = require('axios');
const { setupCache } = require('axios-cache-interceptor');
const api = setupCache(Axios.create(), {
baseUrl: 'https://jsonplaceholder.typicode.com/',
cache: {
interpretHeader: true, // Cache-Control, Expires, etc.
ttl: 5 * 60 * 1000, // 5 seconds
etag: true, // Enables ETag caching
ifModifiedSince: true // Enables If-Modified-Since caching
}
});
// Every time an api call reaches here, it will
// make another internal request and forward the response.
app.get('/', (req, res) => {
api.get('https://jsonplaceholder.typicode.com/users').then(
({ data, cached }) => {
res.json({ cached, data });
},
(error) => {
res.json({error});
}
);
});
app.listen(3000);
```

2
docs/robots.txt Normal file
View File

@ -0,0 +1,2 @@
User-agent: *
Allow: /

View File

@ -87,6 +87,16 @@ __metadata:
languageName: node
linkType: hard
"accepts@npm:~1.3.7":
version: 1.3.7
resolution: "accepts@npm:1.3.7"
dependencies:
mime-types: ~2.1.24
negotiator: 0.6.2
checksum: 27fc8060ffc69481ff6719cd3ee06387d2b88381cb0ce626f087781bbd02201a645a9febc8e7e7333558354b33b1d2f922ad13560be4ec1b7ba9e76fc1c1241d
languageName: node
linkType: hard
"agent-base@npm:6, agent-base@npm:^6.0.2":
version: 6.0.2
resolution: "agent-base@npm:6.0.2"
@ -206,6 +216,34 @@ __metadata:
languageName: node
linkType: hard
"array-flatten@npm:1.1.1":
version: 1.1.1
resolution: "array-flatten@npm:1.1.1"
checksum: a9925bf3512d9dce202112965de90c222cd59a4fbfce68a0951d25d965cf44642931f40aac72309c41f12df19afa010ecadceb07cfff9ccc1621e99d89ab5f3b
languageName: node
linkType: hard
"axios-cache-adapter@npm:^2.7.3":
version: 2.7.3
resolution: "axios-cache-adapter@npm:2.7.3"
dependencies:
cache-control-esm: 1.0.0
md5: ^2.2.1
peerDependencies:
axios: ~0.21.1
checksum: ff44bee6a2e0b8ed85e20bcd6db566a228ca94bf1c542538e3e5b901d02f01a16f11f146068f768bc6c212ebf0bd356f304edc81920cf5a3bbc10d3c29702f2d
languageName: node
linkType: hard
"axios@npm:^0.24.0":
version: 0.24.0
resolution: "axios@npm:0.24.0"
dependencies:
follow-redirects: ^1.14.4
checksum: 468cf496c08a6aadfb7e699bebdac02851e3043d4e7d282350804ea8900e30d368daa6e3cd4ab83b8ddb5a3b1e17a5a21ada13fc9cebd27b74828f47a4236316
languageName: node
linkType: hard
"balanced-match@npm:^1.0.0":
version: 1.0.2
resolution: "balanced-match@npm:1.0.2"
@ -220,6 +258,24 @@ __metadata:
languageName: node
linkType: hard
"body-parser@npm:1.19.1":
version: 1.19.1
resolution: "body-parser@npm:1.19.1"
dependencies:
bytes: 3.1.1
content-type: ~1.0.4
debug: 2.6.9
depd: ~1.1.2
http-errors: 1.8.1
iconv-lite: 0.4.24
on-finished: ~2.3.0
qs: 6.9.6
raw-body: 2.4.2
type-is: ~1.6.18
checksum: 9197a300a6580b8723c7b6b1e22cebd5ba47cd4a6fd45c153350efcde79293869ddee8d17d95fb52724812d649d89d62775faab072608d3243a0cbb00582234e
languageName: node
linkType: hard
"boxen@npm:^4.2.0":
version: 4.2.0
resolution: "boxen@npm:4.2.0"
@ -255,6 +311,13 @@ __metadata:
languageName: node
linkType: hard
"bytes@npm:3.1.1":
version: 3.1.1
resolution: "bytes@npm:3.1.1"
checksum: 949ab99a385d6acf4d2c69f1afc618615dc905936e0b0b9aa94a9e94d722baaba44d6a0851536585a0892ae4d462b5a270ccb1b04c774640742cbde5538ca328
languageName: node
linkType: hard
"cacache@npm:^15.2.0":
version: 15.3.0
resolution: "cacache@npm:15.3.0"
@ -281,6 +344,13 @@ __metadata:
languageName: node
linkType: hard
"cache-control-esm@npm:1.0.0":
version: 1.0.0
resolution: "cache-control-esm@npm:1.0.0"
checksum: 4f8c8399f2b15ad43c635d14b80aadd9de039f09fa56c4686aca828f82e57c1fc479026db1786dea1ba1026415dab0fe463938be4a6110874d3bf3aa7a60d0f3
languageName: node
linkType: hard
"cacheable-request@npm:^6.0.0":
version: 6.1.0
resolution: "cacheable-request@npm:6.1.0"
@ -337,6 +407,13 @@ __metadata:
languageName: node
linkType: hard
"charenc@npm:0.0.2":
version: 0.0.2
resolution: "charenc@npm:0.0.2"
checksum: 81dcadbe57e861d527faf6dd3855dc857395a1c4d6781f4847288ab23cffb7b3ee80d57c15bba7252ffe3e5e8019db767757ee7975663ad2ca0939bb8fcaf2e5
languageName: node
linkType: hard
"chokidar@npm:^3.5.0":
version: 3.5.2
resolution: "chokidar@npm:3.5.2"
@ -492,6 +569,36 @@ __metadata:
languageName: node
linkType: hard
"content-disposition@npm:0.5.4":
version: 0.5.4
resolution: "content-disposition@npm:0.5.4"
dependencies:
safe-buffer: 5.2.1
checksum: afb9d545e296a5171d7574fcad634b2fdf698875f4006a9dd04a3e1333880c5c0c98d47b560d01216fb6505a54a2ba6a843ee3a02ec86d7e911e8315255f56c3
languageName: node
linkType: hard
"content-type@npm:~1.0.4":
version: 1.0.4
resolution: "content-type@npm:1.0.4"
checksum: 3d93585fda985d1554eca5ebd251994327608d2e200978fdbfba21c0c679914d5faf266d17027de44b34a72c7b0745b18584ecccaa7e1fdfb6a68ac7114f12e0
languageName: node
linkType: hard
"cookie-signature@npm:1.0.6":
version: 1.0.6
resolution: "cookie-signature@npm:1.0.6"
checksum: f4e1b0a98a27a0e6e66fd7ea4e4e9d8e038f624058371bf4499cfcd8f3980be9a121486995202ba3fca74fbed93a407d6d54d43a43f96fd28d0bd7a06761591a
languageName: node
linkType: hard
"cookie@npm:0.4.1":
version: 0.4.1
resolution: "cookie@npm:0.4.1"
checksum: bd7c47f5d94ab70ccdfe8210cde7d725880d2fcda06d8e375afbdd82de0c8d3b73541996e9ce57d35f67f672c4ee6d60208adec06b3c5fc94cebb85196084cf8
languageName: node
linkType: hard
"cp-file@npm:^7.0.0":
version: 7.0.0
resolution: "cp-file@npm:7.0.0"
@ -504,6 +611,13 @@ __metadata:
languageName: node
linkType: hard
"crypt@npm:0.0.2":
version: 0.0.2
resolution: "crypt@npm:0.0.2"
checksum: baf4c7bbe05df656ec230018af8cf7dbe8c14b36b98726939cef008d473f6fe7a4fad906cfea4062c93af516f1550a3f43ceb4d6615329612c6511378ed9fe34
languageName: node
linkType: hard
"crypto-random-string@npm:^2.0.0":
version: 2.0.0
resolution: "crypto-random-string@npm:2.0.0"
@ -758,6 +872,44 @@ __metadata:
languageName: node
linkType: hard
"express@npm:^4.17.2":
version: 4.17.2
resolution: "express@npm:4.17.2"
dependencies:
accepts: ~1.3.7
array-flatten: 1.1.1
body-parser: 1.19.1
content-disposition: 0.5.4
content-type: ~1.0.4
cookie: 0.4.1
cookie-signature: 1.0.6
debug: 2.6.9
depd: ~1.1.2
encodeurl: ~1.0.2
escape-html: ~1.0.3
etag: ~1.8.1
finalhandler: ~1.1.2
fresh: 0.5.2
merge-descriptors: 1.0.1
methods: ~1.1.2
on-finished: ~2.3.0
parseurl: ~1.3.3
path-to-regexp: 0.1.7
proxy-addr: ~2.0.7
qs: 6.9.6
range-parser: ~1.2.1
safe-buffer: 5.2.1
send: 0.17.2
serve-static: 1.14.2
setprototypeof: 1.2.0
statuses: ~1.5.0
type-is: ~1.6.18
utils-merge: 1.0.1
vary: ~1.1.2
checksum: 1535d56d20e65a1a39b5f056c025dd635290a744478ac69cc47633aeb4b2ce51458f8eb4080cfb7ba47c853ba5cfd794d404cff822a25127f1556b726ec3914a
languageName: node
linkType: hard
"figlet@npm:^1.1.1":
version: 1.5.2
resolution: "figlet@npm:1.5.2"
@ -774,7 +926,7 @@ __metadata:
languageName: node
linkType: hard
"finalhandler@npm:1.1.2":
"finalhandler@npm:1.1.2, finalhandler@npm:~1.1.2":
version: 1.1.2
resolution: "finalhandler@npm:1.1.2"
dependencies:
@ -798,6 +950,23 @@ __metadata:
languageName: node
linkType: hard
"follow-redirects@npm:^1.14.4":
version: 1.14.7
resolution: "follow-redirects@npm:1.14.7"
peerDependenciesMeta:
debug:
optional: true
checksum: f6d03e5e30877431065bca0d1b2e3db93949eb799d368a5c07ea8a4b71205f0349a3f8f0191bf13a07c93885522834dca1dc8e527dc99a772c6911fba24edc5f
languageName: node
linkType: hard
"forwarded@npm:0.2.0":
version: 0.2.0
resolution: "forwarded@npm:0.2.0"
checksum: fd27e2394d8887ebd16a66ffc889dc983fbbd797d5d3f01087c020283c0f019a7d05ee85669383d8e0d216b116d720fc0cef2f6e9b7eb9f4c90c6e0bc7fd28e6
languageName: node
linkType: hard
"fresh@npm:0.5.2":
version: 0.5.2
resolution: "fresh@npm:0.5.2"
@ -1045,6 +1214,15 @@ __metadata:
languageName: node
linkType: hard
"iconv-lite@npm:0.4.24":
version: 0.4.24
resolution: "iconv-lite@npm:0.4.24"
dependencies:
safer-buffer: ">= 2.1.2 < 3"
checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6
languageName: node
linkType: hard
"iconv-lite@npm:^0.6.2":
version: 0.6.3
resolution: "iconv-lite@npm:0.6.3"
@ -1120,6 +1298,13 @@ __metadata:
languageName: node
linkType: hard
"ipaddr.js@npm:1.9.1":
version: 1.9.1
resolution: "ipaddr.js@npm:1.9.1"
checksum: f88d3825981486f5a1942414c8d77dd6674dd71c065adcfa46f578d677edcb99fda25af42675cb59db492fdf427b34a5abfcde3982da11a8fd83a500b41cfe77
languageName: node
linkType: hard
"is-binary-path@npm:~2.1.0":
version: 2.1.0
resolution: "is-binary-path@npm:2.1.0"
@ -1129,6 +1314,13 @@ __metadata:
languageName: node
linkType: hard
"is-buffer@npm:~1.1.6":
version: 1.1.6
resolution: "is-buffer@npm:1.1.6"
checksum: 4a186d995d8bbf9153b4bd9ff9fd04ae75068fe695d29025d25e592d9488911eeece84eefbd8fa41b8ddcc0711058a71d4c466dcf6f1f6e1d83830052d8ca707
languageName: node
linkType: hard
"is-ci@npm:^2.0.0":
version: 2.0.0
resolution: "is-ci@npm:2.0.0"
@ -1385,6 +1577,24 @@ __metadata:
languageName: node
linkType: hard
"md5@npm:^2.2.1":
version: 2.3.0
resolution: "md5@npm:2.3.0"
dependencies:
charenc: 0.0.2
crypt: 0.0.2
is-buffer: ~1.1.6
checksum: a63cacf4018dc9dee08c36e6f924a64ced735b37826116c905717c41cebeb41a522f7a526ba6ad578f9c80f02cb365033ccd67fe186ffbcc1a1faeb75daa9b6e
languageName: node
linkType: hard
"media-typer@npm:0.3.0":
version: 0.3.0
resolution: "media-typer@npm:0.3.0"
checksum: af1b38516c28ec95d6b0826f6c8f276c58aec391f76be42aa07646b4e39d317723e869700933ca6995b056db4b09a78c92d5440dc23657e6764be5d28874bba1
languageName: node
linkType: hard
"medium-zoom@npm:^1.0.6":
version: 1.0.6
resolution: "medium-zoom@npm:1.0.6"
@ -1392,6 +1602,36 @@ __metadata:
languageName: node
linkType: hard
"merge-descriptors@npm:1.0.1":
version: 1.0.1
resolution: "merge-descriptors@npm:1.0.1"
checksum: 5abc259d2ae25bb06d19ce2b94a21632583c74e2a9109ee1ba7fd147aa7362b380d971e0251069f8b3eb7d48c21ac839e21fa177b335e82c76ec172e30c31a26
languageName: node
linkType: hard
"methods@npm:~1.1.2":
version: 1.1.2
resolution: "methods@npm:1.1.2"
checksum: 0917ff4041fa8e2f2fda5425a955fe16ca411591fbd123c0d722fcf02b73971ed6f764d85f0a6f547ce49ee0221ce2c19a5fa692157931cecb422984f1dcd13a
languageName: node
linkType: hard
"mime-db@npm:1.51.0":
version: 1.51.0
resolution: "mime-db@npm:1.51.0"
checksum: 613b1ac9d6e725cc24444600b124a7f1ce6c60b1baa654f39a3e260d0995a6dffc5693190217e271af7e2a5612dae19f2a73f3e316707d797a7391165f7ef423
languageName: node
linkType: hard
"mime-types@npm:~2.1.24":
version: 2.1.34
resolution: "mime-types@npm:2.1.34"
dependencies:
mime-db: 1.51.0
checksum: 67013de9e9d6799bde6d669d18785b7e18bcd212e710d3e04a4727f92f67a8ad4e74aee24be28b685adb794944814bde649119b58ee3282ffdbee58f9278d9f3
languageName: node
linkType: hard
"mime@npm:1.6.0":
version: 1.6.0
resolution: "mime@npm:1.6.0"
@ -1531,7 +1771,7 @@ __metadata:
languageName: node
linkType: hard
"negotiator@npm:^0.6.2":
"negotiator@npm:0.6.2, negotiator@npm:^0.6.2":
version: 0.6.2
resolution: "negotiator@npm:0.6.2"
checksum: dfddaff6c06792f1c4c3809e29a427b8daef8cd437c83b08dd51d7ee11bbd1c29d9512d66b801144d6c98e910ffd8723f2432e0cbf8b18d41d2a09599c975ab3
@ -1760,6 +2000,13 @@ __metadata:
languageName: node
linkType: hard
"path-to-regexp@npm:0.1.7":
version: 0.1.7
resolution: "path-to-regexp@npm:0.1.7"
checksum: 69a14ea24db543e8b0f4353305c5eac6907917031340e5a8b37df688e52accd09e3cebfe1660b70d76b6bd89152f52183f28c74813dbf454ba1a01c82a38abce
languageName: node
linkType: hard
"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1":
version: 2.3.1
resolution: "picomatch@npm:2.3.1"
@ -1798,6 +2045,16 @@ __metadata:
languageName: node
linkType: hard
"proxy-addr@npm:~2.0.7":
version: 2.0.7
resolution: "proxy-addr@npm:2.0.7"
dependencies:
forwarded: 0.2.0
ipaddr.js: 1.9.1
checksum: 29c6990ce9364648255454842f06f8c46fcd124d3e6d7c5066df44662de63cdc0bad032e9bf5a3d653ff72141cc7b6019873d685708ac8210c30458ad99f2b74
languageName: node
linkType: hard
"pump@npm:^3.0.0":
version: 3.0.0
resolution: "pump@npm:3.0.0"
@ -1817,6 +2074,13 @@ __metadata:
languageName: node
linkType: hard
"qs@npm:6.9.6":
version: 6.9.6
resolution: "qs@npm:6.9.6"
checksum: cb6df402bb8a3dbefa4bd46eba0dfca427079baca923e6b8d28a03e6bfb16a5c1dcdb96e69388f9c5813ac8ff17bb8bbca22f2ecd31fe1e344a55cb531b5fabf
languageName: node
linkType: hard
"range-parser@npm:~1.2.1":
version: 1.2.1
resolution: "range-parser@npm:1.2.1"
@ -1824,6 +2088,18 @@ __metadata:
languageName: node
linkType: hard
"raw-body@npm:2.4.2":
version: 2.4.2
resolution: "raw-body@npm:2.4.2"
dependencies:
bytes: 3.1.1
http-errors: 1.8.1
iconv-lite: 0.4.24
unpipe: 1.0.0
checksum: c6f8d6a75c65c0a047f888cb29efc97f60fb36e950ba2cb31fefce694f98186e844a03367920faa7dc5bffaf33df08aee0b9dd935280e366439fa6492a5b163e
languageName: node
linkType: hard
"rc@npm:^1.2.8":
version: 1.2.8
resolution: "rc@npm:1.2.8"
@ -1928,18 +2204,21 @@ __metadata:
version: 0.0.0-use.local
resolution: "root-workspace-0b6124@workspace:."
dependencies:
axios: ^0.24.0
axios-cache-adapter: ^2.7.3
docsify-cli: ^4.4.3
express: ^4.17.2
languageName: unknown
linkType: soft
"safe-buffer@npm:~5.2.0":
"safe-buffer@npm:5.2.1, safe-buffer@npm:~5.2.0":
version: 5.2.1
resolution: "safe-buffer@npm:5.2.1"
checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491
languageName: node
linkType: hard
"safer-buffer@npm:>= 2.1.2 < 3.0.0":
"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0":
version: 2.1.2
resolution: "safer-buffer@npm:2.1.2"
checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0
@ -1996,7 +2275,7 @@ __metadata:
languageName: node
linkType: hard
"serve-static@npm:^1.12.1":
"serve-static@npm:1.14.2, serve-static@npm:^1.12.1":
version: 1.14.2
resolution: "serve-static@npm:1.14.2"
dependencies:
@ -2244,6 +2523,16 @@ __metadata:
languageName: node
linkType: hard
"type-is@npm:~1.6.18":
version: 1.6.18
resolution: "type-is@npm:1.6.18"
dependencies:
media-typer: 0.3.0
mime-types: ~2.1.24
checksum: 2c8e47675d55f8b4e404bcf529abdf5036c537a04c2b20177bcf78c9e3c1da69da3942b1346e6edb09e823228c0ee656ef0e033765ec39a70d496ef601a0c657
languageName: node
linkType: hard
"typedarray-to-buffer@npm:^3.1.5":
version: 3.1.5
resolution: "typedarray-to-buffer@npm:3.1.5"
@ -2287,7 +2576,7 @@ __metadata:
languageName: node
linkType: hard
"unpipe@npm:~1.0.0":
"unpipe@npm:1.0.0, unpipe@npm:~1.0.0":
version: 1.0.0
resolution: "unpipe@npm:1.0.0"
checksum: 4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2
@ -2338,6 +2627,13 @@ __metadata:
languageName: node
linkType: hard
"vary@npm:~1.1.2":
version: 1.1.2
resolution: "vary@npm:1.1.2"
checksum: ae0123222c6df65b437669d63dfa8c36cee20a504101b2fcd97b8bf76f91259c17f9f2b4d70a1e3c6bbcee7f51b28392833adb6b2770b23b01abec84e369660b
languageName: node
linkType: hard
"webidl-conversions@npm:^3.0.0":
version: 3.0.1
resolution: "webidl-conversions@npm:3.0.1"