mirror of
https://github.com/arthurfiorette/axios-cache-interceptor.git
synced 2025-12-08 17:36:16 +00:00
docs: updated documentation
This commit is contained in:
parent
99226504f4
commit
668ce0c2a5
3
docs/.gitignore
vendored
3
docs/.gitignore
vendored
@ -1 +1,2 @@
|
||||
/.yarn
|
||||
/.yarn
|
||||
!pages/_comparison-benchmark.log
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
78
docs/js/benchmark.js
Normal 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);
|
||||
@ -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 + '>')
|
||||
)
|
||||
);
|
||||
};
|
||||
})();
|
||||
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
25
docs/pages/_comparison-benchmark.log
Normal file
25
docs/pages/_comparison-benchmark.log
Normal 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%
|
||||
|
||||
21
docs/pages/_comparison-table.md
Normal file
21
docs/pages/_comparison-table.md
Normal 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
18
docs/pages/comparison.md
Normal 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')
|
||||
@ -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
|
||||
|
||||
@ -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!
|
||||
|
||||
@ -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
2
docs/robots.txt
Normal file
@ -0,0 +1,2 @@
|
||||
User-agent: *
|
||||
Allow: /
|
||||
308
docs/yarn.lock
308
docs/yarn.lock
@ -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"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user