├── .github
└── workflows
│ └── node.js.yml
├── .gitignore
├── .npmignore
├── .npmrc
├── LICENSE
├── README.md
├── cjs
└── package.json
├── es.js
├── esm
└── index.js
├── package-lock.json
├── package.json
├── rollup
└── es.config.js
├── test
├── index.html
├── index.js
└── package.json
├── tsconfig.json
└── types
└── index.d.ts
/.github/workflows/node.js.yml:
--------------------------------------------------------------------------------
1 | # This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node
2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
3 |
4 | name: build
5 |
6 | on: [push, pull_request]
7 |
8 | jobs:
9 | build:
10 |
11 | runs-on: ubuntu-latest
12 |
13 | strategy:
14 | matrix:
15 | node-version: [20]
16 |
17 | steps:
18 | - uses: actions/checkout@v2
19 | - name: Use Node.js ${{ matrix.node-version }}
20 | uses: actions/setup-node@v2
21 | with:
22 | node-version: ${{ matrix.node-version }}
23 | cache: 'npm'
24 | - run: npm ci
25 | - run: npm run build --if-present
26 | - run: npm test
27 | - run: npm run coverage --if-present
28 | - name: Coveralls
29 | uses: coverallsapp/github-action@master
30 | with:
31 | github-token: ${{ secrets.GITHUB_TOKEN }}
32 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .nyc_output
3 | v8.log
4 | coverage/
5 | node_modules/
6 | cjs/*
7 | !cjs/package.json
8 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .nyc_output
3 | .eslintrc.json
4 | .github/
5 | .travis.yml
6 | v8.log
7 | coverage/
8 | node_modules/
9 | rollup/
10 | test/
11 | tsconfig.json
12 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | package-lock=false
2 | package-lock=true
3 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright © 2024, Andrea Giammarchi, @WebReflection
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the “Software”), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software
10 | is furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included
13 | in all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21 | IN THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # fetch
2 |
3 | **Social Media Photo by [Anthony Duran](https://unsplash.com/@dogflirt) on [Unsplash](https://unsplash.com/)**
4 |
5 | [](https://github.com/WebReflection/fetch/actions/workflows/node.js.yml) [](https://coveralls.io/github/WebReflection/fetch?branch=main)
6 |
7 | A fetch with Response abilities.
8 |
9 | (... see what I did there?)
10 |
11 | ```js
12 | import fetch from '@webreflection/fetch';
13 |
14 | // await directly Response methods or accessors
15 | console.log(await fetch('https://google.com').text());
16 | console.log(await fetch('https://google.com').ok);
17 |
18 | // all other Promise methods just work
19 | console.log(await fetch('https://google.com').then(r => r.ok));
20 | ```
21 |
22 | The export is simply a Proxy that forwards to the Response any explicit intent, meaning:
23 |
24 | * a `fetch(url, ...init)` returns exactly a `fetch(url, ...init)` reference
25 | * you can do everything you could do already with `fetch` ... **this is fetch** indeed!
26 | * you can use this module as drop-in replacement in your current code though
27 | * you can eventually incrementally use its features *if* and/or *when* needed
28 | * if any `Response.prototype` known *key* is directly accessed, such property or method is forwarded directly to the *response* once the *fetch* is resolved
29 | * as the goal is to shortcut the *response* boilerplate, `Response.prototype` keys prevail over `Promise.prototype` so if your argument is that `Symbol.toStringTag` returned the response one, I am afraid that's meant by design so that unless *Promise* API introduces a conflicting entry name with *Response* API, this module actually requires zero maintainability and it's future-friendly with API changes and whatnot
30 | * if you want to deal with `status` or `ok` or `headers` you still can do that:
31 | * reference `const req = fetch(url, ...init)`
32 | * use `try/catch` around `req.json()` or `req.text()` or any other forwarded method
33 | * use `const { status, headers } = await req` or `const status = await req.status` or any other way you like to introspect the failure
34 |
35 | ```js
36 | // alternatively ...
37 | const { ok, text } = await fetch(URL);
38 | if (ok) console.log(await text());
39 | ```
40 |
41 | If none of this is interesting to you though, we're good! You can move on happily ever after 👋
42 |
--------------------------------------------------------------------------------
/cjs/package.json:
--------------------------------------------------------------------------------
1 | {"type":"commonjs"}
--------------------------------------------------------------------------------
/es.js:
--------------------------------------------------------------------------------
1 | const e=Object.getOwnPropertyDescriptors(Response.prototype),t=e=>"function"==typeof e,o={get:(o,n)=>e.hasOwnProperty(n)?((e,o,{get:n,value:r})=>n||!t(r)?e.then((e=>e[o])):(...t)=>e.then((e=>e[o](...t))))(o,n,e[n]):((e,o)=>t(o)?o.bind(e):o)(o,o[n])};var n=(e,...t)=>new Proxy(fetch(e,...t),o);export{n as default};
2 |
--------------------------------------------------------------------------------
/esm/index.js:
--------------------------------------------------------------------------------
1 | // a bit terser code than I usually write but it's 10 LOC within 80 cols
2 | // if you are struggling to follow the code you can replace 1-char
3 | // references around with the following one, hoping that helps :-)
4 |
5 | // d => descriptors
6 | // k => key
7 | // p => promise
8 | // r => response
9 |
10 | const d = Object.getOwnPropertyDescriptors(Response.prototype);
11 |
12 | const isFunction = value => typeof value === 'function';
13 |
14 | const bypass = (p, k, { get, value }) => get || !isFunction(value) ?
15 | p.then(r => r[k]) :
16 | (...args) => p.then(r => r[k](...args));
17 |
18 | const direct = (p, value) => isFunction(value) ? value.bind(p) : value;
19 |
20 | const handler = {
21 | get: (p, k) => d.hasOwnProperty(k) ? bypass(p, k, d[k]) : direct(p, p[k])
22 | };
23 |
24 | /**
25 | * @param {RequestInfo | URL} input
26 | * @param {...RequestInit} init
27 | * @returns {Promise & Response}
28 | */
29 | export default (input, ...init) => new Proxy(fetch(input, ...init), handler);
30 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@webreflection/fetch",
3 | "version": "0.1.5",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "@webreflection/fetch",
9 | "version": "0.1.5",
10 | "license": "MIT",
11 | "devDependencies": {
12 | "@rollup/plugin-node-resolve": "^15.2.3",
13 | "@rollup/plugin-terser": "^0.4.4",
14 | "ascjs": "^6.0.3",
15 | "c8": "^9.1.0",
16 | "rollup": "^4.10.0",
17 | "typescript": "^5.3.3"
18 | }
19 | },
20 | "node_modules/@babel/parser": {
21 | "version": "7.23.9",
22 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
23 | "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
24 | "dev": true,
25 | "bin": {
26 | "parser": "bin/babel-parser.js"
27 | },
28 | "engines": {
29 | "node": ">=6.0.0"
30 | }
31 | },
32 | "node_modules/@bcoe/v8-coverage": {
33 | "version": "0.2.3",
34 | "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
35 | "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
36 | "dev": true
37 | },
38 | "node_modules/@istanbuljs/schema": {
39 | "version": "0.1.3",
40 | "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
41 | "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
42 | "dev": true,
43 | "engines": {
44 | "node": ">=8"
45 | }
46 | },
47 | "node_modules/@jridgewell/gen-mapping": {
48 | "version": "0.3.3",
49 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
50 | "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
51 | "dev": true,
52 | "dependencies": {
53 | "@jridgewell/set-array": "^1.0.1",
54 | "@jridgewell/sourcemap-codec": "^1.4.10",
55 | "@jridgewell/trace-mapping": "^0.3.9"
56 | },
57 | "engines": {
58 | "node": ">=6.0.0"
59 | }
60 | },
61 | "node_modules/@jridgewell/resolve-uri": {
62 | "version": "3.1.1",
63 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
64 | "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
65 | "dev": true,
66 | "engines": {
67 | "node": ">=6.0.0"
68 | }
69 | },
70 | "node_modules/@jridgewell/set-array": {
71 | "version": "1.1.2",
72 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
73 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
74 | "dev": true,
75 | "engines": {
76 | "node": ">=6.0.0"
77 | }
78 | },
79 | "node_modules/@jridgewell/source-map": {
80 | "version": "0.3.5",
81 | "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
82 | "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
83 | "dev": true,
84 | "dependencies": {
85 | "@jridgewell/gen-mapping": "^0.3.0",
86 | "@jridgewell/trace-mapping": "^0.3.9"
87 | }
88 | },
89 | "node_modules/@jridgewell/sourcemap-codec": {
90 | "version": "1.4.15",
91 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
92 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
93 | "dev": true
94 | },
95 | "node_modules/@jridgewell/trace-mapping": {
96 | "version": "0.3.22",
97 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
98 | "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
99 | "dev": true,
100 | "dependencies": {
101 | "@jridgewell/resolve-uri": "^3.1.0",
102 | "@jridgewell/sourcemap-codec": "^1.4.14"
103 | }
104 | },
105 | "node_modules/@rollup/plugin-node-resolve": {
106 | "version": "15.2.3",
107 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz",
108 | "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==",
109 | "dev": true,
110 | "dependencies": {
111 | "@rollup/pluginutils": "^5.0.1",
112 | "@types/resolve": "1.20.2",
113 | "deepmerge": "^4.2.2",
114 | "is-builtin-module": "^3.2.1",
115 | "is-module": "^1.0.0",
116 | "resolve": "^1.22.1"
117 | },
118 | "engines": {
119 | "node": ">=14.0.0"
120 | },
121 | "peerDependencies": {
122 | "rollup": "^2.78.0||^3.0.0||^4.0.0"
123 | },
124 | "peerDependenciesMeta": {
125 | "rollup": {
126 | "optional": true
127 | }
128 | }
129 | },
130 | "node_modules/@rollup/plugin-terser": {
131 | "version": "0.4.4",
132 | "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz",
133 | "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==",
134 | "dev": true,
135 | "dependencies": {
136 | "serialize-javascript": "^6.0.1",
137 | "smob": "^1.0.0",
138 | "terser": "^5.17.4"
139 | },
140 | "engines": {
141 | "node": ">=14.0.0"
142 | },
143 | "peerDependencies": {
144 | "rollup": "^2.0.0||^3.0.0||^4.0.0"
145 | },
146 | "peerDependenciesMeta": {
147 | "rollup": {
148 | "optional": true
149 | }
150 | }
151 | },
152 | "node_modules/@rollup/pluginutils": {
153 | "version": "5.1.0",
154 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
155 | "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
156 | "dev": true,
157 | "dependencies": {
158 | "@types/estree": "^1.0.0",
159 | "estree-walker": "^2.0.2",
160 | "picomatch": "^2.3.1"
161 | },
162 | "engines": {
163 | "node": ">=14.0.0"
164 | },
165 | "peerDependencies": {
166 | "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
167 | },
168 | "peerDependenciesMeta": {
169 | "rollup": {
170 | "optional": true
171 | }
172 | }
173 | },
174 | "node_modules/@rollup/rollup-android-arm-eabi": {
175 | "version": "4.10.0",
176 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.10.0.tgz",
177 | "integrity": "sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==",
178 | "cpu": [
179 | "arm"
180 | ],
181 | "dev": true,
182 | "optional": true,
183 | "os": [
184 | "android"
185 | ]
186 | },
187 | "node_modules/@rollup/rollup-android-arm64": {
188 | "version": "4.10.0",
189 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.10.0.tgz",
190 | "integrity": "sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==",
191 | "cpu": [
192 | "arm64"
193 | ],
194 | "dev": true,
195 | "optional": true,
196 | "os": [
197 | "android"
198 | ]
199 | },
200 | "node_modules/@rollup/rollup-darwin-arm64": {
201 | "version": "4.10.0",
202 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.10.0.tgz",
203 | "integrity": "sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==",
204 | "cpu": [
205 | "arm64"
206 | ],
207 | "dev": true,
208 | "optional": true,
209 | "os": [
210 | "darwin"
211 | ]
212 | },
213 | "node_modules/@rollup/rollup-darwin-x64": {
214 | "version": "4.10.0",
215 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.10.0.tgz",
216 | "integrity": "sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==",
217 | "cpu": [
218 | "x64"
219 | ],
220 | "dev": true,
221 | "optional": true,
222 | "os": [
223 | "darwin"
224 | ]
225 | },
226 | "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
227 | "version": "4.10.0",
228 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.10.0.tgz",
229 | "integrity": "sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==",
230 | "cpu": [
231 | "arm"
232 | ],
233 | "dev": true,
234 | "optional": true,
235 | "os": [
236 | "linux"
237 | ]
238 | },
239 | "node_modules/@rollup/rollup-linux-arm64-gnu": {
240 | "version": "4.10.0",
241 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.10.0.tgz",
242 | "integrity": "sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==",
243 | "cpu": [
244 | "arm64"
245 | ],
246 | "dev": true,
247 | "optional": true,
248 | "os": [
249 | "linux"
250 | ]
251 | },
252 | "node_modules/@rollup/rollup-linux-arm64-musl": {
253 | "version": "4.10.0",
254 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.10.0.tgz",
255 | "integrity": "sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==",
256 | "cpu": [
257 | "arm64"
258 | ],
259 | "dev": true,
260 | "optional": true,
261 | "os": [
262 | "linux"
263 | ]
264 | },
265 | "node_modules/@rollup/rollup-linux-riscv64-gnu": {
266 | "version": "4.10.0",
267 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.10.0.tgz",
268 | "integrity": "sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==",
269 | "cpu": [
270 | "riscv64"
271 | ],
272 | "dev": true,
273 | "optional": true,
274 | "os": [
275 | "linux"
276 | ]
277 | },
278 | "node_modules/@rollup/rollup-linux-x64-gnu": {
279 | "version": "4.10.0",
280 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.10.0.tgz",
281 | "integrity": "sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==",
282 | "cpu": [
283 | "x64"
284 | ],
285 | "dev": true,
286 | "optional": true,
287 | "os": [
288 | "linux"
289 | ]
290 | },
291 | "node_modules/@rollup/rollup-linux-x64-musl": {
292 | "version": "4.10.0",
293 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.10.0.tgz",
294 | "integrity": "sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==",
295 | "cpu": [
296 | "x64"
297 | ],
298 | "dev": true,
299 | "optional": true,
300 | "os": [
301 | "linux"
302 | ]
303 | },
304 | "node_modules/@rollup/rollup-win32-arm64-msvc": {
305 | "version": "4.10.0",
306 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.10.0.tgz",
307 | "integrity": "sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==",
308 | "cpu": [
309 | "arm64"
310 | ],
311 | "dev": true,
312 | "optional": true,
313 | "os": [
314 | "win32"
315 | ]
316 | },
317 | "node_modules/@rollup/rollup-win32-ia32-msvc": {
318 | "version": "4.10.0",
319 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.10.0.tgz",
320 | "integrity": "sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==",
321 | "cpu": [
322 | "ia32"
323 | ],
324 | "dev": true,
325 | "optional": true,
326 | "os": [
327 | "win32"
328 | ]
329 | },
330 | "node_modules/@rollup/rollup-win32-x64-msvc": {
331 | "version": "4.10.0",
332 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.10.0.tgz",
333 | "integrity": "sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==",
334 | "cpu": [
335 | "x64"
336 | ],
337 | "dev": true,
338 | "optional": true,
339 | "os": [
340 | "win32"
341 | ]
342 | },
343 | "node_modules/@types/estree": {
344 | "version": "1.0.5",
345 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
346 | "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
347 | "dev": true
348 | },
349 | "node_modules/@types/istanbul-lib-coverage": {
350 | "version": "2.0.6",
351 | "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
352 | "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
353 | "dev": true
354 | },
355 | "node_modules/@types/resolve": {
356 | "version": "1.20.2",
357 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
358 | "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
359 | "dev": true
360 | },
361 | "node_modules/acorn": {
362 | "version": "8.11.3",
363 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
364 | "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
365 | "dev": true,
366 | "bin": {
367 | "acorn": "bin/acorn"
368 | },
369 | "engines": {
370 | "node": ">=0.4.0"
371 | }
372 | },
373 | "node_modules/ansi-regex": {
374 | "version": "5.0.1",
375 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
376 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
377 | "dev": true,
378 | "engines": {
379 | "node": ">=8"
380 | }
381 | },
382 | "node_modules/ansi-styles": {
383 | "version": "4.3.0",
384 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
385 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
386 | "dev": true,
387 | "dependencies": {
388 | "color-convert": "^2.0.1"
389 | },
390 | "engines": {
391 | "node": ">=8"
392 | },
393 | "funding": {
394 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
395 | }
396 | },
397 | "node_modules/ascjs": {
398 | "version": "6.0.3",
399 | "resolved": "https://registry.npmjs.org/ascjs/-/ascjs-6.0.3.tgz",
400 | "integrity": "sha512-lAIyi1j7oT0OtF9yFLiRf93LEcK7xTb/gPFwmfdi2T/BQmxJi1YcIES+VnP/kgGJkxq9Oh2DEK6GrZ6l2OVhVQ==",
401 | "dev": true,
402 | "dependencies": {
403 | "@babel/parser": "^7.12.5"
404 | },
405 | "bin": {
406 | "ascjs": "bin.js"
407 | }
408 | },
409 | "node_modules/balanced-match": {
410 | "version": "1.0.2",
411 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
412 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
413 | "dev": true
414 | },
415 | "node_modules/brace-expansion": {
416 | "version": "1.1.11",
417 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
418 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
419 | "dev": true,
420 | "dependencies": {
421 | "balanced-match": "^1.0.0",
422 | "concat-map": "0.0.1"
423 | }
424 | },
425 | "node_modules/buffer-from": {
426 | "version": "1.1.2",
427 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
428 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
429 | "dev": true
430 | },
431 | "node_modules/builtin-modules": {
432 | "version": "3.3.0",
433 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
434 | "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
435 | "dev": true,
436 | "engines": {
437 | "node": ">=6"
438 | },
439 | "funding": {
440 | "url": "https://github.com/sponsors/sindresorhus"
441 | }
442 | },
443 | "node_modules/c8": {
444 | "version": "9.1.0",
445 | "resolved": "https://registry.npmjs.org/c8/-/c8-9.1.0.tgz",
446 | "integrity": "sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==",
447 | "dev": true,
448 | "dependencies": {
449 | "@bcoe/v8-coverage": "^0.2.3",
450 | "@istanbuljs/schema": "^0.1.3",
451 | "find-up": "^5.0.0",
452 | "foreground-child": "^3.1.1",
453 | "istanbul-lib-coverage": "^3.2.0",
454 | "istanbul-lib-report": "^3.0.1",
455 | "istanbul-reports": "^3.1.6",
456 | "test-exclude": "^6.0.0",
457 | "v8-to-istanbul": "^9.0.0",
458 | "yargs": "^17.7.2",
459 | "yargs-parser": "^21.1.1"
460 | },
461 | "bin": {
462 | "c8": "bin/c8.js"
463 | },
464 | "engines": {
465 | "node": ">=14.14.0"
466 | }
467 | },
468 | "node_modules/cliui": {
469 | "version": "8.0.1",
470 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
471 | "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
472 | "dev": true,
473 | "dependencies": {
474 | "string-width": "^4.2.0",
475 | "strip-ansi": "^6.0.1",
476 | "wrap-ansi": "^7.0.0"
477 | },
478 | "engines": {
479 | "node": ">=12"
480 | }
481 | },
482 | "node_modules/color-convert": {
483 | "version": "2.0.1",
484 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
485 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
486 | "dev": true,
487 | "dependencies": {
488 | "color-name": "~1.1.4"
489 | },
490 | "engines": {
491 | "node": ">=7.0.0"
492 | }
493 | },
494 | "node_modules/color-name": {
495 | "version": "1.1.4",
496 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
497 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
498 | "dev": true
499 | },
500 | "node_modules/commander": {
501 | "version": "2.20.3",
502 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
503 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
504 | "dev": true
505 | },
506 | "node_modules/concat-map": {
507 | "version": "0.0.1",
508 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
509 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
510 | "dev": true
511 | },
512 | "node_modules/convert-source-map": {
513 | "version": "2.0.0",
514 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
515 | "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
516 | "dev": true
517 | },
518 | "node_modules/cross-spawn": {
519 | "version": "7.0.3",
520 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
521 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
522 | "dev": true,
523 | "dependencies": {
524 | "path-key": "^3.1.0",
525 | "shebang-command": "^2.0.0",
526 | "which": "^2.0.1"
527 | },
528 | "engines": {
529 | "node": ">= 8"
530 | }
531 | },
532 | "node_modules/deepmerge": {
533 | "version": "4.3.1",
534 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
535 | "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
536 | "dev": true,
537 | "engines": {
538 | "node": ">=0.10.0"
539 | }
540 | },
541 | "node_modules/emoji-regex": {
542 | "version": "8.0.0",
543 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
544 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
545 | "dev": true
546 | },
547 | "node_modules/escalade": {
548 | "version": "3.1.2",
549 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
550 | "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
551 | "dev": true,
552 | "engines": {
553 | "node": ">=6"
554 | }
555 | },
556 | "node_modules/estree-walker": {
557 | "version": "2.0.2",
558 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
559 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
560 | "dev": true
561 | },
562 | "node_modules/find-up": {
563 | "version": "5.0.0",
564 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
565 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
566 | "dev": true,
567 | "dependencies": {
568 | "locate-path": "^6.0.0",
569 | "path-exists": "^4.0.0"
570 | },
571 | "engines": {
572 | "node": ">=10"
573 | },
574 | "funding": {
575 | "url": "https://github.com/sponsors/sindresorhus"
576 | }
577 | },
578 | "node_modules/foreground-child": {
579 | "version": "3.1.1",
580 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
581 | "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
582 | "dev": true,
583 | "dependencies": {
584 | "cross-spawn": "^7.0.0",
585 | "signal-exit": "^4.0.1"
586 | },
587 | "engines": {
588 | "node": ">=14"
589 | },
590 | "funding": {
591 | "url": "https://github.com/sponsors/isaacs"
592 | }
593 | },
594 | "node_modules/fs.realpath": {
595 | "version": "1.0.0",
596 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
597 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
598 | "dev": true
599 | },
600 | "node_modules/fsevents": {
601 | "version": "2.3.3",
602 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
603 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
604 | "dev": true,
605 | "hasInstallScript": true,
606 | "optional": true,
607 | "os": [
608 | "darwin"
609 | ],
610 | "engines": {
611 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
612 | }
613 | },
614 | "node_modules/function-bind": {
615 | "version": "1.1.2",
616 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
617 | "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
618 | "dev": true,
619 | "funding": {
620 | "url": "https://github.com/sponsors/ljharb"
621 | }
622 | },
623 | "node_modules/get-caller-file": {
624 | "version": "2.0.5",
625 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
626 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
627 | "dev": true,
628 | "engines": {
629 | "node": "6.* || 8.* || >= 10.*"
630 | }
631 | },
632 | "node_modules/glob": {
633 | "version": "7.2.3",
634 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
635 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
636 | "dev": true,
637 | "dependencies": {
638 | "fs.realpath": "^1.0.0",
639 | "inflight": "^1.0.4",
640 | "inherits": "2",
641 | "minimatch": "^3.1.1",
642 | "once": "^1.3.0",
643 | "path-is-absolute": "^1.0.0"
644 | },
645 | "engines": {
646 | "node": "*"
647 | },
648 | "funding": {
649 | "url": "https://github.com/sponsors/isaacs"
650 | }
651 | },
652 | "node_modules/has-flag": {
653 | "version": "4.0.0",
654 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
655 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
656 | "dev": true,
657 | "engines": {
658 | "node": ">=8"
659 | }
660 | },
661 | "node_modules/hasown": {
662 | "version": "2.0.1",
663 | "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz",
664 | "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==",
665 | "dev": true,
666 | "dependencies": {
667 | "function-bind": "^1.1.2"
668 | },
669 | "engines": {
670 | "node": ">= 0.4"
671 | }
672 | },
673 | "node_modules/html-escaper": {
674 | "version": "2.0.2",
675 | "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
676 | "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
677 | "dev": true
678 | },
679 | "node_modules/inflight": {
680 | "version": "1.0.6",
681 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
682 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
683 | "dev": true,
684 | "dependencies": {
685 | "once": "^1.3.0",
686 | "wrappy": "1"
687 | }
688 | },
689 | "node_modules/inherits": {
690 | "version": "2.0.4",
691 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
692 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
693 | "dev": true
694 | },
695 | "node_modules/is-builtin-module": {
696 | "version": "3.2.1",
697 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
698 | "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==",
699 | "dev": true,
700 | "dependencies": {
701 | "builtin-modules": "^3.3.0"
702 | },
703 | "engines": {
704 | "node": ">=6"
705 | },
706 | "funding": {
707 | "url": "https://github.com/sponsors/sindresorhus"
708 | }
709 | },
710 | "node_modules/is-core-module": {
711 | "version": "2.13.1",
712 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
713 | "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
714 | "dev": true,
715 | "dependencies": {
716 | "hasown": "^2.0.0"
717 | },
718 | "funding": {
719 | "url": "https://github.com/sponsors/ljharb"
720 | }
721 | },
722 | "node_modules/is-fullwidth-code-point": {
723 | "version": "3.0.0",
724 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
725 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
726 | "dev": true,
727 | "engines": {
728 | "node": ">=8"
729 | }
730 | },
731 | "node_modules/is-module": {
732 | "version": "1.0.0",
733 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
734 | "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
735 | "dev": true
736 | },
737 | "node_modules/isexe": {
738 | "version": "2.0.0",
739 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
740 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
741 | "dev": true
742 | },
743 | "node_modules/istanbul-lib-coverage": {
744 | "version": "3.2.2",
745 | "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
746 | "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
747 | "dev": true,
748 | "engines": {
749 | "node": ">=8"
750 | }
751 | },
752 | "node_modules/istanbul-lib-report": {
753 | "version": "3.0.1",
754 | "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
755 | "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
756 | "dev": true,
757 | "dependencies": {
758 | "istanbul-lib-coverage": "^3.0.0",
759 | "make-dir": "^4.0.0",
760 | "supports-color": "^7.1.0"
761 | },
762 | "engines": {
763 | "node": ">=10"
764 | }
765 | },
766 | "node_modules/istanbul-reports": {
767 | "version": "3.1.6",
768 | "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz",
769 | "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==",
770 | "dev": true,
771 | "dependencies": {
772 | "html-escaper": "^2.0.0",
773 | "istanbul-lib-report": "^3.0.0"
774 | },
775 | "engines": {
776 | "node": ">=8"
777 | }
778 | },
779 | "node_modules/locate-path": {
780 | "version": "6.0.0",
781 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
782 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
783 | "dev": true,
784 | "dependencies": {
785 | "p-locate": "^5.0.0"
786 | },
787 | "engines": {
788 | "node": ">=10"
789 | },
790 | "funding": {
791 | "url": "https://github.com/sponsors/sindresorhus"
792 | }
793 | },
794 | "node_modules/lru-cache": {
795 | "version": "6.0.0",
796 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
797 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
798 | "dev": true,
799 | "dependencies": {
800 | "yallist": "^4.0.0"
801 | },
802 | "engines": {
803 | "node": ">=10"
804 | }
805 | },
806 | "node_modules/make-dir": {
807 | "version": "4.0.0",
808 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
809 | "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
810 | "dev": true,
811 | "dependencies": {
812 | "semver": "^7.5.3"
813 | },
814 | "engines": {
815 | "node": ">=10"
816 | },
817 | "funding": {
818 | "url": "https://github.com/sponsors/sindresorhus"
819 | }
820 | },
821 | "node_modules/minimatch": {
822 | "version": "3.1.2",
823 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
824 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
825 | "dev": true,
826 | "dependencies": {
827 | "brace-expansion": "^1.1.7"
828 | },
829 | "engines": {
830 | "node": "*"
831 | }
832 | },
833 | "node_modules/once": {
834 | "version": "1.4.0",
835 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
836 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
837 | "dev": true,
838 | "dependencies": {
839 | "wrappy": "1"
840 | }
841 | },
842 | "node_modules/p-limit": {
843 | "version": "3.1.0",
844 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
845 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
846 | "dev": true,
847 | "dependencies": {
848 | "yocto-queue": "^0.1.0"
849 | },
850 | "engines": {
851 | "node": ">=10"
852 | },
853 | "funding": {
854 | "url": "https://github.com/sponsors/sindresorhus"
855 | }
856 | },
857 | "node_modules/p-locate": {
858 | "version": "5.0.0",
859 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
860 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
861 | "dev": true,
862 | "dependencies": {
863 | "p-limit": "^3.0.2"
864 | },
865 | "engines": {
866 | "node": ">=10"
867 | },
868 | "funding": {
869 | "url": "https://github.com/sponsors/sindresorhus"
870 | }
871 | },
872 | "node_modules/path-exists": {
873 | "version": "4.0.0",
874 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
875 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
876 | "dev": true,
877 | "engines": {
878 | "node": ">=8"
879 | }
880 | },
881 | "node_modules/path-is-absolute": {
882 | "version": "1.0.1",
883 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
884 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
885 | "dev": true,
886 | "engines": {
887 | "node": ">=0.10.0"
888 | }
889 | },
890 | "node_modules/path-key": {
891 | "version": "3.1.1",
892 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
893 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
894 | "dev": true,
895 | "engines": {
896 | "node": ">=8"
897 | }
898 | },
899 | "node_modules/path-parse": {
900 | "version": "1.0.7",
901 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
902 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
903 | "dev": true
904 | },
905 | "node_modules/picomatch": {
906 | "version": "2.3.1",
907 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
908 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
909 | "dev": true,
910 | "engines": {
911 | "node": ">=8.6"
912 | },
913 | "funding": {
914 | "url": "https://github.com/sponsors/jonschlinkert"
915 | }
916 | },
917 | "node_modules/randombytes": {
918 | "version": "2.1.0",
919 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
920 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
921 | "dev": true,
922 | "dependencies": {
923 | "safe-buffer": "^5.1.0"
924 | }
925 | },
926 | "node_modules/require-directory": {
927 | "version": "2.1.1",
928 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
929 | "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
930 | "dev": true,
931 | "engines": {
932 | "node": ">=0.10.0"
933 | }
934 | },
935 | "node_modules/resolve": {
936 | "version": "1.22.8",
937 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
938 | "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
939 | "dev": true,
940 | "dependencies": {
941 | "is-core-module": "^2.13.0",
942 | "path-parse": "^1.0.7",
943 | "supports-preserve-symlinks-flag": "^1.0.0"
944 | },
945 | "bin": {
946 | "resolve": "bin/resolve"
947 | },
948 | "funding": {
949 | "url": "https://github.com/sponsors/ljharb"
950 | }
951 | },
952 | "node_modules/rollup": {
953 | "version": "4.10.0",
954 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.10.0.tgz",
955 | "integrity": "sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==",
956 | "dev": true,
957 | "dependencies": {
958 | "@types/estree": "1.0.5"
959 | },
960 | "bin": {
961 | "rollup": "dist/bin/rollup"
962 | },
963 | "engines": {
964 | "node": ">=18.0.0",
965 | "npm": ">=8.0.0"
966 | },
967 | "optionalDependencies": {
968 | "@rollup/rollup-android-arm-eabi": "4.10.0",
969 | "@rollup/rollup-android-arm64": "4.10.0",
970 | "@rollup/rollup-darwin-arm64": "4.10.0",
971 | "@rollup/rollup-darwin-x64": "4.10.0",
972 | "@rollup/rollup-linux-arm-gnueabihf": "4.10.0",
973 | "@rollup/rollup-linux-arm64-gnu": "4.10.0",
974 | "@rollup/rollup-linux-arm64-musl": "4.10.0",
975 | "@rollup/rollup-linux-riscv64-gnu": "4.10.0",
976 | "@rollup/rollup-linux-x64-gnu": "4.10.0",
977 | "@rollup/rollup-linux-x64-musl": "4.10.0",
978 | "@rollup/rollup-win32-arm64-msvc": "4.10.0",
979 | "@rollup/rollup-win32-ia32-msvc": "4.10.0",
980 | "@rollup/rollup-win32-x64-msvc": "4.10.0",
981 | "fsevents": "~2.3.2"
982 | }
983 | },
984 | "node_modules/safe-buffer": {
985 | "version": "5.2.1",
986 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
987 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
988 | "dev": true,
989 | "funding": [
990 | {
991 | "type": "github",
992 | "url": "https://github.com/sponsors/feross"
993 | },
994 | {
995 | "type": "patreon",
996 | "url": "https://www.patreon.com/feross"
997 | },
998 | {
999 | "type": "consulting",
1000 | "url": "https://feross.org/support"
1001 | }
1002 | ]
1003 | },
1004 | "node_modules/semver": {
1005 | "version": "7.6.0",
1006 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
1007 | "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
1008 | "dev": true,
1009 | "dependencies": {
1010 | "lru-cache": "^6.0.0"
1011 | },
1012 | "bin": {
1013 | "semver": "bin/semver.js"
1014 | },
1015 | "engines": {
1016 | "node": ">=10"
1017 | }
1018 | },
1019 | "node_modules/serialize-javascript": {
1020 | "version": "6.0.2",
1021 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
1022 | "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
1023 | "dev": true,
1024 | "dependencies": {
1025 | "randombytes": "^2.1.0"
1026 | }
1027 | },
1028 | "node_modules/shebang-command": {
1029 | "version": "2.0.0",
1030 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
1031 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
1032 | "dev": true,
1033 | "dependencies": {
1034 | "shebang-regex": "^3.0.0"
1035 | },
1036 | "engines": {
1037 | "node": ">=8"
1038 | }
1039 | },
1040 | "node_modules/shebang-regex": {
1041 | "version": "3.0.0",
1042 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
1043 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
1044 | "dev": true,
1045 | "engines": {
1046 | "node": ">=8"
1047 | }
1048 | },
1049 | "node_modules/signal-exit": {
1050 | "version": "4.1.0",
1051 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
1052 | "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
1053 | "dev": true,
1054 | "engines": {
1055 | "node": ">=14"
1056 | },
1057 | "funding": {
1058 | "url": "https://github.com/sponsors/isaacs"
1059 | }
1060 | },
1061 | "node_modules/smob": {
1062 | "version": "1.4.1",
1063 | "resolved": "https://registry.npmjs.org/smob/-/smob-1.4.1.tgz",
1064 | "integrity": "sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==",
1065 | "dev": true
1066 | },
1067 | "node_modules/source-map": {
1068 | "version": "0.6.1",
1069 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1070 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1071 | "dev": true,
1072 | "engines": {
1073 | "node": ">=0.10.0"
1074 | }
1075 | },
1076 | "node_modules/source-map-support": {
1077 | "version": "0.5.21",
1078 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
1079 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
1080 | "dev": true,
1081 | "dependencies": {
1082 | "buffer-from": "^1.0.0",
1083 | "source-map": "^0.6.0"
1084 | }
1085 | },
1086 | "node_modules/string-width": {
1087 | "version": "4.2.3",
1088 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
1089 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
1090 | "dev": true,
1091 | "dependencies": {
1092 | "emoji-regex": "^8.0.0",
1093 | "is-fullwidth-code-point": "^3.0.0",
1094 | "strip-ansi": "^6.0.1"
1095 | },
1096 | "engines": {
1097 | "node": ">=8"
1098 | }
1099 | },
1100 | "node_modules/strip-ansi": {
1101 | "version": "6.0.1",
1102 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1103 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1104 | "dev": true,
1105 | "dependencies": {
1106 | "ansi-regex": "^5.0.1"
1107 | },
1108 | "engines": {
1109 | "node": ">=8"
1110 | }
1111 | },
1112 | "node_modules/supports-color": {
1113 | "version": "7.2.0",
1114 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
1115 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
1116 | "dev": true,
1117 | "dependencies": {
1118 | "has-flag": "^4.0.0"
1119 | },
1120 | "engines": {
1121 | "node": ">=8"
1122 | }
1123 | },
1124 | "node_modules/supports-preserve-symlinks-flag": {
1125 | "version": "1.0.0",
1126 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
1127 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
1128 | "dev": true,
1129 | "engines": {
1130 | "node": ">= 0.4"
1131 | },
1132 | "funding": {
1133 | "url": "https://github.com/sponsors/ljharb"
1134 | }
1135 | },
1136 | "node_modules/terser": {
1137 | "version": "5.27.0",
1138 | "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz",
1139 | "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==",
1140 | "dev": true,
1141 | "dependencies": {
1142 | "@jridgewell/source-map": "^0.3.3",
1143 | "acorn": "^8.8.2",
1144 | "commander": "^2.20.0",
1145 | "source-map-support": "~0.5.20"
1146 | },
1147 | "bin": {
1148 | "terser": "bin/terser"
1149 | },
1150 | "engines": {
1151 | "node": ">=10"
1152 | }
1153 | },
1154 | "node_modules/test-exclude": {
1155 | "version": "6.0.0",
1156 | "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
1157 | "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
1158 | "dev": true,
1159 | "dependencies": {
1160 | "@istanbuljs/schema": "^0.1.2",
1161 | "glob": "^7.1.4",
1162 | "minimatch": "^3.0.4"
1163 | },
1164 | "engines": {
1165 | "node": ">=8"
1166 | }
1167 | },
1168 | "node_modules/typescript": {
1169 | "version": "5.3.3",
1170 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
1171 | "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
1172 | "dev": true,
1173 | "bin": {
1174 | "tsc": "bin/tsc",
1175 | "tsserver": "bin/tsserver"
1176 | },
1177 | "engines": {
1178 | "node": ">=14.17"
1179 | }
1180 | },
1181 | "node_modules/v8-to-istanbul": {
1182 | "version": "9.2.0",
1183 | "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz",
1184 | "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==",
1185 | "dev": true,
1186 | "dependencies": {
1187 | "@jridgewell/trace-mapping": "^0.3.12",
1188 | "@types/istanbul-lib-coverage": "^2.0.1",
1189 | "convert-source-map": "^2.0.0"
1190 | },
1191 | "engines": {
1192 | "node": ">=10.12.0"
1193 | }
1194 | },
1195 | "node_modules/which": {
1196 | "version": "2.0.2",
1197 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
1198 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
1199 | "dev": true,
1200 | "dependencies": {
1201 | "isexe": "^2.0.0"
1202 | },
1203 | "bin": {
1204 | "node-which": "bin/node-which"
1205 | },
1206 | "engines": {
1207 | "node": ">= 8"
1208 | }
1209 | },
1210 | "node_modules/wrap-ansi": {
1211 | "version": "7.0.0",
1212 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
1213 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
1214 | "dev": true,
1215 | "dependencies": {
1216 | "ansi-styles": "^4.0.0",
1217 | "string-width": "^4.1.0",
1218 | "strip-ansi": "^6.0.0"
1219 | },
1220 | "engines": {
1221 | "node": ">=10"
1222 | },
1223 | "funding": {
1224 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
1225 | }
1226 | },
1227 | "node_modules/wrappy": {
1228 | "version": "1.0.2",
1229 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1230 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
1231 | "dev": true
1232 | },
1233 | "node_modules/y18n": {
1234 | "version": "5.0.8",
1235 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
1236 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
1237 | "dev": true,
1238 | "engines": {
1239 | "node": ">=10"
1240 | }
1241 | },
1242 | "node_modules/yallist": {
1243 | "version": "4.0.0",
1244 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
1245 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
1246 | "dev": true
1247 | },
1248 | "node_modules/yargs": {
1249 | "version": "17.7.2",
1250 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
1251 | "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
1252 | "dev": true,
1253 | "dependencies": {
1254 | "cliui": "^8.0.1",
1255 | "escalade": "^3.1.1",
1256 | "get-caller-file": "^2.0.5",
1257 | "require-directory": "^2.1.1",
1258 | "string-width": "^4.2.3",
1259 | "y18n": "^5.0.5",
1260 | "yargs-parser": "^21.1.1"
1261 | },
1262 | "engines": {
1263 | "node": ">=12"
1264 | }
1265 | },
1266 | "node_modules/yargs-parser": {
1267 | "version": "21.1.1",
1268 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
1269 | "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
1270 | "dev": true,
1271 | "engines": {
1272 | "node": ">=12"
1273 | }
1274 | },
1275 | "node_modules/yocto-queue": {
1276 | "version": "0.1.0",
1277 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
1278 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
1279 | "dev": true,
1280 | "engines": {
1281 | "node": ">=10"
1282 | },
1283 | "funding": {
1284 | "url": "https://github.com/sponsors/sindresorhus"
1285 | }
1286 | }
1287 | }
1288 | }
1289 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@webreflection/fetch",
3 | "version": "0.1.5",
4 | "description": "A fetch with Response abilities.",
5 | "main": "./cjs/index.js",
6 | "scripts": {
7 | "build": "npm run cjs && npm run rollup:es && npm run ts && npm run test",
8 | "cjs": "ascjs --no-default esm cjs",
9 | "rollup:es": "rollup --config rollup/es.config.js",
10 | "test": "c8 node test/index.js",
11 | "ts": "tsc -p .",
12 | "coverage": "mkdir -p ./coverage; c8 report --reporter=text-lcov > ./coverage/lcov.info"
13 | },
14 | "keywords": [
15 | "fetch",
16 | "response",
17 | "merged"
18 | ],
19 | "author": "Andrea Giammarchi",
20 | "license": "MIT",
21 | "devDependencies": {
22 | "@rollup/plugin-node-resolve": "^15.2.3",
23 | "@rollup/plugin-terser": "^0.4.4",
24 | "ascjs": "^6.0.3",
25 | "c8": "^9.1.0",
26 | "rollup": "^4.10.0",
27 | "typescript": "^5.3.3"
28 | },
29 | "module": "./esm/index.js",
30 | "type": "module",
31 | "exports": {
32 | ".": {
33 | "types": "./types/index.d.ts",
34 | "import": "./esm/index.js",
35 | "default": "./cjs/index.js"
36 | },
37 | "./package.json": "./package.json"
38 | },
39 | "unpkg": "es.js",
40 | "repository": {
41 | "type": "git",
42 | "url": "git+https://github.com/WebReflection/fetch.git"
43 | },
44 | "bugs": {
45 | "url": "https://github.com/WebReflection/fetch/issues"
46 | },
47 | "homepage": "https://github.com/WebReflection/fetch#readme"
48 | }
49 |
--------------------------------------------------------------------------------
/rollup/es.config.js:
--------------------------------------------------------------------------------
1 | import {nodeResolve} from '@rollup/plugin-node-resolve';
2 | import terser from '@rollup/plugin-terser';
3 |
4 | export default {
5 | input: './esm/index.js',
6 | plugins: [
7 | nodeResolve(),
8 | terser()
9 | ],
10 | output: {
11 | esModule: true,
12 | file: './es.js',
13 | }
14 | };
15 |
--------------------------------------------------------------------------------
/test/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | fetch
7 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/test/index.js:
--------------------------------------------------------------------------------
1 | const fetch = require('../cjs');
2 |
3 | const PORT = 7357;
4 | const URL = `http://0.0.0.0:${PORT}/`;
5 |
6 | const server = require('http').createServer((_, res) => {
7 | res.end('OK');
8 | }).listen(PORT);
9 |
10 | (async () => {
11 | console.assert(await fetch(URL).ok);
12 | console.assert(await fetch(URL).text() === 'OK');
13 |
14 | Promise.prototype.OK = 'OK';
15 | const local = fetch(URL);
16 | local.then(() => {
17 | console.log(local.OK);
18 | });
19 | console.assert(await local.ok);
20 |
21 | server.close();
22 | })();
23 |
--------------------------------------------------------------------------------
/test/package.json:
--------------------------------------------------------------------------------
1 | {"type":"commonjs"}
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "NodeNext",
4 | "target": "esnext",
5 | "moduleResolution": "nodenext",
6 | "allowJs": true,
7 | "declaration": true,
8 | "emitDeclarationOnly": true,
9 | "declarationDir": "types"
10 | },
11 | "include": [
12 | "esm/index.js",
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/types/index.d.ts:
--------------------------------------------------------------------------------
1 | declare function _default(input: RequestInfo | URL, ...init: RequestInit[]): Promise & Response;
2 | export default _default;
3 |
--------------------------------------------------------------------------------