From ae0b01e544a91a21917477b930dde637b28c9155 Mon Sep 17 00:00:00 2001 From: Taku Amano Date: Sun, 3 Dec 2023 22:03:55 +0900 Subject: [PATCH] chore(benchmarks/jsx): Update benchmark (#1768) * chore(benchmarks/jsx): Update benchmark * chore: Delete files that have been added by mistake --- benchmarks/jsx/index.tsx | 72 ---- benchmarks/jsx/package.json | 25 +- benchmarks/jsx/src/benchmark.ts | 38 ++ benchmarks/jsx/src/hono.ts | 4 + benchmarks/jsx/src/nano.ts | 4 + benchmarks/jsx/src/page-react.tsx | 37 ++ benchmarks/jsx/src/page.tsx | 37 ++ benchmarks/jsx/src/preact.ts | 5 + benchmarks/jsx/src/react-jsx/benchmark.ts | 38 ++ benchmarks/jsx/src/react-jsx/hono.ts | 3 + benchmarks/jsx/src/react-jsx/nano.ts | 4 + benchmarks/jsx/src/react-jsx/page-hono.tsx | 36 ++ benchmarks/jsx/src/react-jsx/page-nano.tsx | 36 ++ benchmarks/jsx/src/react-jsx/page-preact.tsx | 36 ++ benchmarks/jsx/src/react-jsx/page-react.tsx | 36 ++ benchmarks/jsx/src/react-jsx/preact.ts | 4 + benchmarks/jsx/src/react-jsx/react.ts | 4 + benchmarks/jsx/src/react-jsx/tsconfig.json | 5 + benchmarks/jsx/src/react.ts | 5 + benchmarks/jsx/tsconfig.json | 6 +- benchmarks/jsx/yarn.lock | 402 +++++++++++++------ 21 files changed, 638 insertions(+), 199 deletions(-) delete mode 100644 benchmarks/jsx/index.tsx create mode 100644 benchmarks/jsx/src/benchmark.ts create mode 100644 benchmarks/jsx/src/hono.ts create mode 100644 benchmarks/jsx/src/nano.ts create mode 100644 benchmarks/jsx/src/page-react.tsx create mode 100644 benchmarks/jsx/src/page.tsx create mode 100644 benchmarks/jsx/src/preact.ts create mode 100644 benchmarks/jsx/src/react-jsx/benchmark.ts create mode 100644 benchmarks/jsx/src/react-jsx/hono.ts create mode 100644 benchmarks/jsx/src/react-jsx/nano.ts create mode 100644 benchmarks/jsx/src/react-jsx/page-hono.tsx create mode 100644 benchmarks/jsx/src/react-jsx/page-nano.tsx create mode 100644 benchmarks/jsx/src/react-jsx/page-preact.tsx create mode 100644 benchmarks/jsx/src/react-jsx/page-react.tsx create mode 100644 benchmarks/jsx/src/react-jsx/preact.ts create mode 100644 benchmarks/jsx/src/react-jsx/react.ts create mode 100644 benchmarks/jsx/src/react-jsx/tsconfig.json create mode 100644 benchmarks/jsx/src/react.ts diff --git a/benchmarks/jsx/index.tsx b/benchmarks/jsx/index.tsx deleted file mode 100644 index e5036ee6..00000000 --- a/benchmarks/jsx/index.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import Benchmark from 'benchmark' - -import Nano, { Fragment as NanoFragment } from 'nano-jsx' -import * as Preact from 'preact' -import { render as renderByPreact } from 'preact-render-to-string' -import React from 'react' -import { renderToString as renderByReact } from 'react-dom/server' - -import * as HonoJSX from '../../src/middleware/jsx' - -const buildPage = ({ jsx, Fragment }: { jsx: any; Fragment: any }) => { - const Content = () => ( - <> -

- 1
a -

-

- 2
b -

-
3
c

' }} /> - {null} - {undefined} - - ) - - const Form = () => ( -
- - - - - -
- ) - - return () => ( - - - -
- - - ) -} - -const PageByHonoJSX = buildPage(HonoJSX) -const PageByReact = buildPage({ jsx: React.createElement, Fragment: React.Fragment }) -const PageByNano = buildPage({ jsx: Nano.h, Fragment: NanoFragment }) -const PageByPreact = buildPage({ jsx: Preact.h, Fragment: Preact.Fragment }) - -const suite = new Benchmark.Suite() - -suite - .add('Hono', () => { - PageByHonoJSX().toString() - }) - .add('React', () => { - renderByReact(PageByReact()) - }) - .add('Preact', () => { - renderByPreact(PageByPreact()) - }) - .add('Nano', () => { - Nano.renderSSR(PageByNano) - }) - .on('cycle', (ev: any) => { - console.log(String(ev.target)) - }) - .on('complete', (ev: any) => { - console.log(`Fastest is ${ev.currentTarget.filter('fastest').map('name')}`) - }) - .run({ async: true }) diff --git a/benchmarks/jsx/package.json b/benchmarks/jsx/package.json index 12f1269f..d4d99afa 100644 --- a/benchmarks/jsx/package.json +++ b/benchmarks/jsx/package.json @@ -3,20 +3,27 @@ "version": "1.0.0", "main": "index.js", "scripts": { - "start": "NODE_ENV=production ts-node index.tsx" + "bench:node": "esbuild --bundle src/benchmark.ts | node", + "bench:bun": "bun run src/benchmark.ts", + "bench:react-jsx:node": "esbuild --bundle src/react-jsx/benchmark.ts | node", + "compare-bundle-size": "esbuild --minify --minify-syntax --tree-shaking=true --bundle src/{hono,react,preact,nano}.ts --outdir=dist" }, "license": "MIT", + "devDependencies": { + "esbuild": "^0.19.8", + "node-html-parser": "^6.1.11" + }, "dependencies": { - "@types/benchmark": "^2.1.1", - "@types/react": "^18.0.15", - "@types/react-dom": "^18.0.6", + "@types/benchmark": "^2.1.5", + "@types/react": "^18.2.40", + "@types/react-dom": "^18.2.17", "benchmark": "^2.1.4", - "nano-jsx": "^0.0.32", - "preact": "^10.10.0", - "preact-render-to-string": "^5.2.1", + "hono": "^3.10.4", + "nano-jsx": "^0.1.0", + "preact": "^10.19.2", + "preact-render-to-string": "^6.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", - "ts-node": "^10.9.1", - "typescript": "^4.7.4" + "typescript": "^5.3.2" } } diff --git a/benchmarks/jsx/src/benchmark.ts b/benchmarks/jsx/src/benchmark.ts new file mode 100644 index 00000000..5f392673 --- /dev/null +++ b/benchmarks/jsx/src/benchmark.ts @@ -0,0 +1,38 @@ +import { Suite } from 'benchmark' +import { parse } from 'node-html-parser' + +import { render as renderHono } from './hono' +import { render as renderNano } from './nano' +import { render as renderPreact } from './preact' +import { render as renderReact } from './react' + +const suite = new Suite() + +;[renderHono, renderReact, renderPreact, renderNano].forEach((render) => { + const html = render() + const doc = parse(html) + if (doc.querySelector('p#c').textContent !== '3\nc') { + throw new Error('Invalid output') + } +}) + +suite + .add('Hono', () => { + renderHono() + }) + .add('React', () => { + renderReact() + }) + .add('Preact', () => { + renderPreact() + }) + .add('Nano', () => { + renderNano() + }) + .on('cycle', (ev) => { + console.log(String(ev.target)) + }) + .on('complete', (ev) => { + console.log(`Fastest is ${ev.currentTarget.filter('fastest').map('name')}`) + }) + .run({ async: true }) diff --git a/benchmarks/jsx/src/hono.ts b/benchmarks/jsx/src/hono.ts new file mode 100644 index 00000000..4322b14a --- /dev/null +++ b/benchmarks/jsx/src/hono.ts @@ -0,0 +1,4 @@ +import { jsx, Fragment} from '../../../src/jsx' +import { buildPage } from './page' + +export const render = () => buildPage({ jsx, Fragment })().toString() \ No newline at end of file diff --git a/benchmarks/jsx/src/nano.ts b/benchmarks/jsx/src/nano.ts new file mode 100644 index 00000000..f7ca649e --- /dev/null +++ b/benchmarks/jsx/src/nano.ts @@ -0,0 +1,4 @@ +import { h, Fragment, renderSSR } from 'nano-jsx' +import { buildPage } from './page' + +export const render = () => renderSSR(buildPage({ jsx: h, Fragment })) \ No newline at end of file diff --git a/benchmarks/jsx/src/page-react.tsx b/benchmarks/jsx/src/page-react.tsx new file mode 100644 index 00000000..ca9a4c18 --- /dev/null +++ b/benchmarks/jsx/src/page-react.tsx @@ -0,0 +1,37 @@ +/** @jsx jsx */ +/** @jsxFrag Fragment */ + +export const buildPage = ({ jsx, Fragment }: { jsx: any; Fragment: any }) => { + const Content = () => ( + <> +

+ 1
a +

+

+ 2
b +

+
3
c

' }} /> + {null} + {undefined} + + ) + + const Form = () => ( + + + + + + + + ) + + return () => ( + + + +
+ + + ) +} diff --git a/benchmarks/jsx/src/page.tsx b/benchmarks/jsx/src/page.tsx new file mode 100644 index 00000000..7ff3469c --- /dev/null +++ b/benchmarks/jsx/src/page.tsx @@ -0,0 +1,37 @@ +/** @jsx jsx */ +/** @jsxFrag Fragment */ + +export const buildPage = ({ jsx, Fragment }: { jsx: any; Fragment: any }) => { + const Content = () => ( + <> +

+ 1
a +

+

+ 2
b +

+
3
c

' }} /> + {null} + {undefined} + + ) + + const Form = () => ( + + + + + + + + ) + + return () => ( + + + +
+ + + ) +} diff --git a/benchmarks/jsx/src/preact.ts b/benchmarks/jsx/src/preact.ts new file mode 100644 index 00000000..81cdefe4 --- /dev/null +++ b/benchmarks/jsx/src/preact.ts @@ -0,0 +1,5 @@ +import { h, Fragment} from 'preact' +import { renderToString } from 'preact-render-to-string' +import { buildPage } from './page' + +export const render = () => renderToString(buildPage({ jsx: h, Fragment })() as any) \ No newline at end of file diff --git a/benchmarks/jsx/src/react-jsx/benchmark.ts b/benchmarks/jsx/src/react-jsx/benchmark.ts new file mode 100644 index 00000000..5f392673 --- /dev/null +++ b/benchmarks/jsx/src/react-jsx/benchmark.ts @@ -0,0 +1,38 @@ +import { Suite } from 'benchmark' +import { parse } from 'node-html-parser' + +import { render as renderHono } from './hono' +import { render as renderNano } from './nano' +import { render as renderPreact } from './preact' +import { render as renderReact } from './react' + +const suite = new Suite() + +;[renderHono, renderReact, renderPreact, renderNano].forEach((render) => { + const html = render() + const doc = parse(html) + if (doc.querySelector('p#c').textContent !== '3\nc') { + throw new Error('Invalid output') + } +}) + +suite + .add('Hono', () => { + renderHono() + }) + .add('React', () => { + renderReact() + }) + .add('Preact', () => { + renderPreact() + }) + .add('Nano', () => { + renderNano() + }) + .on('cycle', (ev) => { + console.log(String(ev.target)) + }) + .on('complete', (ev) => { + console.log(`Fastest is ${ev.currentTarget.filter('fastest').map('name')}`) + }) + .run({ async: true }) diff --git a/benchmarks/jsx/src/react-jsx/hono.ts b/benchmarks/jsx/src/react-jsx/hono.ts new file mode 100644 index 00000000..60821821 --- /dev/null +++ b/benchmarks/jsx/src/react-jsx/hono.ts @@ -0,0 +1,3 @@ +import { buildPage } from './page-hono' + +export const render = () => buildPage()().toString() \ No newline at end of file diff --git a/benchmarks/jsx/src/react-jsx/nano.ts b/benchmarks/jsx/src/react-jsx/nano.ts new file mode 100644 index 00000000..a0e45d63 --- /dev/null +++ b/benchmarks/jsx/src/react-jsx/nano.ts @@ -0,0 +1,4 @@ +import { renderSSR } from 'nano-jsx' +import { buildPage } from './page-nano.tsx' + +export const render = () => renderSSR(buildPage()) \ No newline at end of file diff --git a/benchmarks/jsx/src/react-jsx/page-hono.tsx b/benchmarks/jsx/src/react-jsx/page-hono.tsx new file mode 100644 index 00000000..16173fcf --- /dev/null +++ b/benchmarks/jsx/src/react-jsx/page-hono.tsx @@ -0,0 +1,36 @@ +/** @jsxImportSource ../../../../src/jsx **/ + +export const buildPage = () => { + const Content = () => ( + <> +

+ 1
a +

+

+ 2
b +

+
3
c

' }} /> + {null} + {undefined} + + ) + + const Form = () => ( + + + + + + + + ) + + return () => ( + + + +
+ + + ) +} diff --git a/benchmarks/jsx/src/react-jsx/page-nano.tsx b/benchmarks/jsx/src/react-jsx/page-nano.tsx new file mode 100644 index 00000000..4d1e8b7e --- /dev/null +++ b/benchmarks/jsx/src/react-jsx/page-nano.tsx @@ -0,0 +1,36 @@ +/** @jsxImportSource nano-jsx/lib **/ + +export const buildPage = () => { + const Content = () => ( + <> +

+ 1
a +

+

+ 2
b +

+
3
c

' }} /> + {null} + {undefined} + + ) + + const Form = () => ( + + + + + + + + ) + + return () => ( + + + +
+ + + ) +} diff --git a/benchmarks/jsx/src/react-jsx/page-preact.tsx b/benchmarks/jsx/src/react-jsx/page-preact.tsx new file mode 100644 index 00000000..782f0ed7 --- /dev/null +++ b/benchmarks/jsx/src/react-jsx/page-preact.tsx @@ -0,0 +1,36 @@ +/** @jsxImportSource preact **/ + +export const buildPage = () => { + const Content = () => ( + <> +

+ 1
a +

+

+ 2
b +

+
3
c

' }} /> + {null} + {undefined} + + ) + + const Form = () => ( + + + + + + + + ) + + return () => ( + + + +
+ + + ) +} diff --git a/benchmarks/jsx/src/react-jsx/page-react.tsx b/benchmarks/jsx/src/react-jsx/page-react.tsx new file mode 100644 index 00000000..80bf43b0 --- /dev/null +++ b/benchmarks/jsx/src/react-jsx/page-react.tsx @@ -0,0 +1,36 @@ +/** @jsxImportSource react **/ + +export const buildPage = () => { + const Content = () => ( + <> +

+ 1
a +

+

+ 2
b +

+
3
c

' }} /> + {null} + {undefined} + + ) + + const Form = () => ( + + + + + + + + ) + + return () => ( + + + +
+ + + ) +} diff --git a/benchmarks/jsx/src/react-jsx/preact.ts b/benchmarks/jsx/src/react-jsx/preact.ts new file mode 100644 index 00000000..6df93ace --- /dev/null +++ b/benchmarks/jsx/src/react-jsx/preact.ts @@ -0,0 +1,4 @@ +import { renderToString } from 'preact-render-to-string' +import { buildPage } from './page-preact' + +export const render = () => renderToString(buildPage()() as any) \ No newline at end of file diff --git a/benchmarks/jsx/src/react-jsx/react.ts b/benchmarks/jsx/src/react-jsx/react.ts new file mode 100644 index 00000000..1f41f64c --- /dev/null +++ b/benchmarks/jsx/src/react-jsx/react.ts @@ -0,0 +1,4 @@ +import { renderToString } from 'react-dom/server' +import { buildPage } from './page-react.tsx' + +export const render = () => renderToString(buildPage()() as any) diff --git a/benchmarks/jsx/src/react-jsx/tsconfig.json b/benchmarks/jsx/src/react-jsx/tsconfig.json new file mode 100644 index 00000000..cffa18e5 --- /dev/null +++ b/benchmarks/jsx/src/react-jsx/tsconfig.json @@ -0,0 +1,5 @@ +{ + "compilerOptions": { + "jsx": "react-jsx", + } +} \ No newline at end of file diff --git a/benchmarks/jsx/src/react.ts b/benchmarks/jsx/src/react.ts new file mode 100644 index 00000000..65fa3bb8 --- /dev/null +++ b/benchmarks/jsx/src/react.ts @@ -0,0 +1,5 @@ +import { createElement, Fragment } from 'react' +import { renderToString } from 'react-dom/server' +import { buildPage } from './page-react' + +export const render = () => renderToString(buildPage({ jsx: createElement, Fragment })() as any) diff --git a/benchmarks/jsx/tsconfig.json b/benchmarks/jsx/tsconfig.json index 6f83eb66..385d3d79 100644 --- a/benchmarks/jsx/tsconfig.json +++ b/benchmarks/jsx/tsconfig.json @@ -1,3 +1,5 @@ { - "extends": "../../tsconfig.json", -} + "compilerOptions": { + "jsx": "react", + } +} \ No newline at end of file diff --git a/benchmarks/jsx/yarn.lock b/benchmarks/jsx/yarn.lock index fad95571..799770ba 100644 --- a/benchmarks/jsx/yarn.lock +++ b/benchmarks/jsx/yarn.lock @@ -2,69 +2,134 @@ # yarn lockfile v1 -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" +"@esbuild/android-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.8.tgz#fb7130103835b6d43ea499c3f30cfb2b2ed58456" + integrity sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA== -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== +"@esbuild/android-arm@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.8.tgz#b46e4d9e984e6d6db6c4224d72c86b7757e35bcb" + integrity sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA== -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== +"@esbuild/android-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.8.tgz#a13db9441b5a4f4e4fec4a6f8ffacfea07888db7" + integrity sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A== -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" +"@esbuild/darwin-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.8.tgz#49f5718d36541f40dd62bfdf84da9c65168a0fc2" + integrity sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw== -"@tsconfig/node10@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== +"@esbuild/darwin-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.8.tgz#75c5c88371eea4bfc1f9ecfd0e75104c74a481ac" + integrity sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q== -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== +"@esbuild/freebsd-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.8.tgz#9d7259fea4fd2b5f7437b52b542816e89d7c8575" + integrity sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw== -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== +"@esbuild/freebsd-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.8.tgz#abac03e1c4c7c75ee8add6d76ec592f46dbb39e3" + integrity sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg== -"@tsconfig/node16@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" - integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== +"@esbuild/linux-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.8.tgz#c577932cf4feeaa43cb9cec27b89cbe0df7d9098" + integrity sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ== -"@types/benchmark@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@types/benchmark/-/benchmark-2.1.1.tgz#d763df29717d93aa333eb11f421ef383a5df5673" - integrity sha512-XmdNOarpSSxnb3DE2rRFOFsEyoqXLUL+7H8nSGS25vs+JS0018bd+cW5Ma9vdlkPmoTHSQ6e8EUFMFMxeE4l+g== +"@esbuild/linux-arm@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.8.tgz#d6014d8b98b5cbc96b95dad3d14d75bb364fdc0f" + integrity sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ== + +"@esbuild/linux-ia32@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.8.tgz#2379a0554307d19ac4a6cdc15b08f0ea28e7a40d" + integrity sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ== + +"@esbuild/linux-loong64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.8.tgz#e2a5bbffe15748b49356a6cd7b2d5bf60c5a7123" + integrity sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ== + +"@esbuild/linux-mips64el@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.8.tgz#1359331e6f6214f26f4b08db9b9df661c57cfa24" + integrity sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q== + +"@esbuild/linux-ppc64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.8.tgz#9ba436addc1646dc89dae48c62d3e951ffe70951" + integrity sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg== + +"@esbuild/linux-riscv64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.8.tgz#fbcf0c3a0b20f40b5fc31c3b7695f0769f9de66b" + integrity sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg== + +"@esbuild/linux-s390x@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.8.tgz#989e8a05f7792d139d5564ffa7ff898ac6f20a4a" + integrity sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg== + +"@esbuild/linux-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.8.tgz#b187295393a59323397fe5ff51e769ec4e72212b" + integrity sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg== + +"@esbuild/netbsd-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.8.tgz#c1ec0e24ea82313cb1c7bae176bd5acd5bde7137" + integrity sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw== + +"@esbuild/openbsd-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.8.tgz#0c5b696ac66c6d70cf9ee17073a581a28af9e18d" + integrity sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ== + +"@esbuild/sunos-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.8.tgz#2a697e1f77926ff09fcc457d8f29916d6cd48fb1" + integrity sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w== + +"@esbuild/win32-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.8.tgz#ec029e62a2fca8c071842ecb1bc5c2dd20b066f1" + integrity sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg== + +"@esbuild/win32-ia32@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.8.tgz#cbb9a3146bde64dc15543e48afe418c7a3214851" + integrity sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw== + +"@esbuild/win32-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.8.tgz#c8285183dbdb17008578dbacb6e22748709b4822" + integrity sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA== + +"@types/benchmark@^2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@types/benchmark/-/benchmark-2.1.5.tgz#940c1850c18fdfdaee3fd6ed29cd92ae0d445b45" + integrity sha512-cKio2eFB3v7qmKcvIHLUMw/dIx/8bhWPuzpzRT4unCPRTD8VdA9Zb0afxpcxOqR4PixRS7yT42FqGS8BYL8g1w== "@types/prop-types@*": version "15.7.5" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== -"@types/react-dom@^18.0.6": - version "18.0.6" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.6.tgz#36652900024842b74607a17786b6662dd1e103a1" - integrity sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA== +"@types/react-dom@^18.2.17": + version "18.2.17" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.17.tgz#375c55fab4ae671bd98448dcfa153268d01d6f64" + integrity sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg== dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.0.15": +"@types/react@*": version "18.0.15" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.15.tgz#d355644c26832dc27f3e6cbf0c4f4603fc4ab7fe" integrity sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow== @@ -73,26 +138,20 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/react@^18.2.40": + version "18.2.40" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.40.tgz#b1cc2bafdc81da3c9bb105cfe8b91211bbce2e0d" + integrity sha512-H+BUhb9C1zBtogDLAk+KCNRKiHDrqSwQT/0z0PVTwMFBxqg3011ByLomADtgkgMkfwj4AMOiXBReyLTUBg681g== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/scheduler@*": version "0.16.2" resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== -acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - -acorn@^8.4.1: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - benchmark@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/benchmark/-/benchmark-2.1.4.tgz#09f3de31c916425d498cc2ee565a0ebf3c2a5629" @@ -101,20 +160,128 @@ benchmark@^2.1.4: lodash "^4.17.4" platform "^1.3.3" -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +css.escape@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== csstype@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2" integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA== -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +entities@^4.2.0, entities@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +esbuild@^0.19.8: + version "0.19.8" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.8.tgz#ad05b72281d84483fa6b5345bd246c27a207b8f1" + integrity sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w== + optionalDependencies: + "@esbuild/android-arm" "0.19.8" + "@esbuild/android-arm64" "0.19.8" + "@esbuild/android-x64" "0.19.8" + "@esbuild/darwin-arm64" "0.19.8" + "@esbuild/darwin-x64" "0.19.8" + "@esbuild/freebsd-arm64" "0.19.8" + "@esbuild/freebsd-x64" "0.19.8" + "@esbuild/linux-arm" "0.19.8" + "@esbuild/linux-arm64" "0.19.8" + "@esbuild/linux-ia32" "0.19.8" + "@esbuild/linux-loong64" "0.19.8" + "@esbuild/linux-mips64el" "0.19.8" + "@esbuild/linux-ppc64" "0.19.8" + "@esbuild/linux-riscv64" "0.19.8" + "@esbuild/linux-s390x" "0.19.8" + "@esbuild/linux-x64" "0.19.8" + "@esbuild/netbsd-x64" "0.19.8" + "@esbuild/openbsd-x64" "0.19.8" + "@esbuild/sunos-x64" "0.19.8" + "@esbuild/win32-arm64" "0.19.8" + "@esbuild/win32-ia32" "0.19.8" + "@esbuild/win32-x64" "0.19.8" + +happy-dom@^12.10.3: + version "12.10.3" + resolved "https://registry.yarnpkg.com/happy-dom/-/happy-dom-12.10.3.tgz#e61985eff163b822c110458be7f81aa4f94ad588" + integrity sha512-JzUXOh0wdNGY54oKng5hliuBkq/+aT1V3YpTM+lrN/GoLQTANZsMaIvmHiHe612rauHvPJnDZkZ+5GZR++1Abg== + dependencies: + css.escape "^1.5.1" + entities "^4.5.0" + iconv-lite "^0.6.3" + webidl-conversions "^7.0.0" + whatwg-encoding "^2.0.0" + whatwg-mimetype "^3.0.0" + +he@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hono@^3.10.4: + version "3.10.4" + resolved "https://registry.yarnpkg.com/hono/-/hono-3.10.4.tgz#b34fe995ebbd35d24dfab6306cbd2e64e7a7f9e2" + integrity sha512-2LJd+a3qyvSuyFlyJSRN1CeH5wg6/Rjua/5L5gdT1W+4U7EUZtnHph74klbyysGg69sfZNXsIrR7PJWSjf2Vww== + +iconv-lite@0.6.3, iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" "js-tokens@^3.0.0 || ^4.0.0": version "4.0.0" @@ -133,32 +300,42 @@ loose-envify@^1.1.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== +nano-jsx@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/nano-jsx/-/nano-jsx-0.1.0.tgz#c3e04ed1e7f3d560f37c9c693ec1580f8a74e9fb" + integrity sha512-S4qJM9ayruMdDnn3hiHNK6kq0ZvCaNrDL3RD5jc4AVhmsW1Ufk3xE64Q6xrjAzq1Gff+6VZ5+Au8For4FT/6LA== -nano-jsx@^0.0.32: - version "0.0.32" - resolved "https://registry.yarnpkg.com/nano-jsx/-/nano-jsx-0.0.32.tgz#241cefd0507513d3739e4e4302301aa149171aea" - integrity sha512-3wLq0BCT/xMRu0UJG/bPd6j8KYi0MfubjOflCDBhHk0P0shE7KfHRJSfCKsvyCF23WshIy12SoMF05aOf7N2pQ== +node-html-parser@^6.1.11: + version "6.1.11" + resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-6.1.11.tgz#387378111348c001a5c5fbebb7f478fdf65610aa" + integrity sha512-FAgwwZ6h0DSDWxfD0Iq1tsDcBCxdJB1nXpLPPxX8YyVWzbfCjKWEzaynF4gZZ/8hziUmp7ZSaKylcn0iKhufUQ== + dependencies: + css-select "^5.1.0" + he "1.2.0" + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" platform@^1.3.3: version "1.3.6" resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== -preact-render-to-string@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/preact-render-to-string/-/preact-render-to-string-5.2.1.tgz#71f3e8cda65f33dbc8ad8d904ff58e3f532e59f3" - integrity sha512-Wp3ner1aIVBpKg02C4AoLdBiw4kNaiFSYHr4wUF+fR7FWKAQzNri+iPfPp31sEhAtBfWoJrSxiEFzd5wp5zCgQ== +preact-render-to-string@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/preact-render-to-string/-/preact-render-to-string-6.3.1.tgz#2479ebca8e6721cacfcecaa79bd861005a3d9b8f" + integrity sha512-NQ28WrjLtWY6lKDlTxnFpKHZdpjfF+oE6V4tZ0rTrunHrtZp6Dm0oFrcJalt/5PNeqJz4j1DuZDS0Y6rCBoqDA== dependencies: pretty-format "^3.8.0" -preact@^10.10.0: - version "10.10.0" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.10.0.tgz#7434750a24b59dae1957d95dc0aa47a4a8e9a180" - integrity sha512-fszkg1iJJjq68I4lI8ZsmBiaoQiQHbxf1lNq+72EmC/mZOsFF5zn3k1yv9QGoFgIXzgsdSKtYymLJsrJPoamjQ== +preact@^10.19.2: + version "10.19.2" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.19.2.tgz#841797620dba649aaac1f8be42d37c3202dcea8b" + integrity sha512-UA9DX/OJwv6YwP9Vn7Ti/vF80XL+YA5H2l7BpCtUr3ya8LWHFzpiO5R+N7dN16ujpIxhekRFuOOF82bXX7K/lg== pretty-format@^3.8.0: version "3.8.0" @@ -180,6 +357,11 @@ react@^18.2.0: dependencies: loose-envify "^1.1.0" +"safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + scheduler@^0.23.0: version "0.23.0" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" @@ -187,36 +369,24 @@ scheduler@^0.23.0: dependencies: loose-envify "^1.1.0" -ts-node@^10.9.1: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== +typescript@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.2.tgz#00d1c7c1c46928c5845c1ee8d0cc2791031d4c43" + integrity sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ== + +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + +whatwg-encoding@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" + integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" + iconv-lite "0.6.3" -typescript@^4.7.4: - version "4.7.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" - integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== +whatwg-mimetype@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" + integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==