Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ModelZoo
GLM-4_pytorch
Commits
9eb7f37f
Commit
9eb7f37f
authored
Jun 06, 2024
by
Rayyyyy
Browse files
First add
parents
Changes
69
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
6411 additions
and
0 deletions
+6411
-0
composite_demo/README_en.md
composite_demo/README_en.md
+155
-0
composite_demo/assets/cogview.png
composite_demo/assets/cogview.png
+0
-0
composite_demo/assets/demo.png
composite_demo/assets/demo.png
+0
-0
composite_demo/assets/doc_reader.png
composite_demo/assets/doc_reader.png
+0
-0
composite_demo/assets/tool.png
composite_demo/assets/tool.png
+0
-0
composite_demo/assets/vlm.png
composite_demo/assets/vlm.png
+0
-0
composite_demo/assets/weather.png
composite_demo/assets/weather.png
+0
-0
composite_demo/assets/web_plot_1.png
composite_demo/assets/web_plot_1.png
+0
-0
composite_demo/assets/web_plot_2.png
composite_demo/assets/web_plot_2.png
+0
-0
composite_demo/browser/.gitignore
composite_demo/browser/.gitignore
+145
-0
composite_demo/browser/package-lock.json
composite_demo/browser/package-lock.json
+3575
-0
composite_demo/browser/package.json
composite_demo/browser/package.json
+26
-0
composite_demo/browser/pnpm-lock.yaml
composite_demo/browser/pnpm-lock.yaml
+1580
-0
composite_demo/browser/src/browser.ts
composite_demo/browser/src/browser.ts
+745
-0
composite_demo/browser/src/config.ts
composite_demo/browser/src/config.ts
+11
-0
composite_demo/browser/src/server.ts
composite_demo/browser/src/server.ts
+55
-0
composite_demo/browser/src/types.ts
composite_demo/browser/src/types.ts
+25
-0
composite_demo/browser/src/utils.ts
composite_demo/browser/src/utils.ts
+57
-0
composite_demo/browser/tsconfig.json
composite_demo/browser/tsconfig.json
+15
-0
composite_demo/requirements.txt
composite_demo/requirements.txt
+22
-0
No files found.
composite_demo/README_en.md
0 → 100644
View file @
9eb7f37f
# GLM-4-9B Web Demo

## Installation
We recommend using
[
Conda
](
https://docs.conda.io/en/latest/
)
for environment management.
Execute the following commands to create a conda environment and install the required dependencies:
```
bash
conda create
-n
glm-4-demo
python
=
3.12
conda activate glm-4-demo
pip
install
-r
requirements.txt
```
Please note that this project requires Python 3.10 or higher.
In addition, you need to install the Jupyter kernel to use the Code Interpreter:
```
bash
ipython kernel
install
--name
glm-4-demo
--user
```
You can modify
`~/.local/share/jupyter/kernels/glm-4-demo/kernel.json`
to change the configuration of the Jupyter
kernel, including the kernel startup parameters. For example, if you want to use Matplotlib to draw when using the
Python code execution capability of All Tools, you can add
`"--matplotlib=inline"`
to the
`argv`
array.
To use the browser and search functions, you also need to start the browser backend. First, install Node.js according to
the instructions on the
[
Node.js
](
https://nodejs.org/en/download/package-manager
)
official website, then install the package manager
[
PNPM
](
https://pnpm.io
)
and then install the browser service
dependencies:
```
bash
cd
browser
npm
install
-g
pnpm
pnpm
install
```
## Run
1.
Modify
`BING_SEARCH_API_KEY`
in
`browser/src/config.ts`
to configure the Bing Search API Key that the browser service
needs to use:
```
diff
--- a/browser/src/config.ts
+++ b/browser/src/config.ts
@@ -3,7 +3,7 @@
export default {
BROWSER_TIMEOUT: 10000,
BING_SEARCH_API_URL: 'https://api.bing.microsoft.com/v7.0',
- BING_SEARCH_API_KEY: '',
+ BING_SEARCH_API_KEY: '<PUT_YOUR_BING_SEARCH_KEY_HERE>',
HOST: 'localhost',
PORT: 3000,
```
2.
The Wenshengtu function needs to call the CogView API. Modify
`src/tools/config.py`
, provide the
[
Zhipu AI Open Platform
](
https://open.bigmodel.cn
)
API Key required for the Wenshengtu function:
```
diff
--- a/src/tools/config.py
+++ b/src/tools/config.py
@@ -2,5 +2,5 @@
BROWSER_SERVER_URL = 'http://localhost:3000'
IPYKERNEL = 'glm4-demo'
-ZHIPU_AI_KEY = ''
+ZHIPU_AI_KEY = '<PUT_YOUR_ZHIPU_AI_KEY_HERE>'
COGVIEW_MODEL = 'cogview-3'
```
3.
Start the browser backend in a separate shell:
```
bash
cd
browser
pnpm start
```
4.
Run the following commands to load the model locally and start the demo:
```
bash
streamlit run src/main.py
```
Then you can see the demo address from the command line and click it to access it. The first access requires downloading
and loading the model, which may take some time.
If you have downloaded the model locally, you can specify to load the model from the local
by
`export *_MODEL_PATH=/path/to/model`
. The models that can be specified include:
-
`CHAT_MODEL_PATH`
: used for All Tools mode and document interpretation mode, the default is
`THUDM/glm-4-9b-chat`
.
-
`VLM_MODEL_PATH`
: used for VLM mode, the default is
`THUDM/glm-4v-9b`
.
The Chat model supports reasoning using
[
vLLM
](
https://github.com/vllm-project/vllm
)
. To use it, please install vLLM and
set the environment variable
`USE_VLLM=1`
.
If you need to customize the Jupyter kernel, you can specify it by
`export IPYKERNEL=<kernel_name>`
.
## Usage
GLM4 Demo has three modes:
-
All Tools mode
-
VLM mode
-
Text interpretation mode
### All Tools mode
You can enhance the model's capabilities by registering new tools in
`tool_registry.py`
. Just use
`@register_tool`
decorated function to complete the registration. For tool declarations, the function name is the name of the tool, and
the function docstring
is the description of the tool; for tool parameters, use
`Annotated[typ: type, description: str, required: bool]`
to
annotate the parameter type, description, and whether it is required.
For example, the registration of the
`get_weather`
tool is as follows:
```
python
@
register_tool
def
get_weather
(
city_name
:
Annotated
[
str
,
'The name of the city to be queried'
,
True
],
)
->
str
:
"""
Get the weather for `city_name` in the following week
"""
...
```
This mode is compatible with the tool registration process of ChatGLM3-6B.
+
Code capability, drawing capability, and networking capability have been automatically integrated. Users only need to
configure the corresponding Key as required.
+
System prompt words are not supported in this mode. The model will automatically build prompt words.
## Text interpretation mode
Users can upload documents and use the long text capability of GLM-4-9B to understand the text. It can parse pptx, docx,
pdf and other files.
+
Tool calls and system prompt words are not supported in this mode.
+
If the text is very long, the model may require a high amount of video memory. Please confirm your hardware
configuration.
## Image Understanding Mode
Users can upload images and use the image understanding capabilities of GLM-4-9B to understand the images.
+
This mode must use the glm-4v-9b model.
+
Tool calls and system prompts are not supported in this mode.
+
The model can only understand and communicate with one image. If you need to change the image, you need to open a new
conversation.
+
The supported image resolution is 1120 x 1120
composite_demo/assets/cogview.png
0 → 100644
View file @
9eb7f37f
1.87 MB
composite_demo/assets/demo.png
0 → 100644
View file @
9eb7f37f
615 KB
composite_demo/assets/doc_reader.png
0 → 100644
View file @
9eb7f37f
1.1 MB
composite_demo/assets/tool.png
0 → 100644
View file @
9eb7f37f
603 KB
composite_demo/assets/vlm.png
0 → 100644
View file @
9eb7f37f
684 KB
composite_demo/assets/weather.png
0 → 100644
View file @
9eb7f37f
1010 KB
composite_demo/assets/web_plot_1.png
0 → 100644
View file @
9eb7f37f
936 KB
composite_demo/assets/web_plot_2.png
0 → 100644
View file @
9eb7f37f
851 KB
composite_demo/browser/.gitignore
0 → 100644
View file @
9eb7f37f
# Created by https://www.toptal.com/developers/gitignore/api/node
# Edit at https://www.toptal.com/developers/gitignore?templates=node
### Node ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp
# Docusaurus cache and generated files
.docusaurus
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
### Node Patch ###
# Serverless Webpack directories
.webpack/
# Optional stylelint cache
# SvelteKit build / generate output
.svelte-kit
# End of https://www.toptal.com/developers/gitignore/api/node
\ No newline at end of file
composite_demo/browser/package-lock.json
0 → 100644
View file @
9eb7f37f
{
"name"
:
"glm4-browser"
,
"version"
:
"1.0.0"
,
"lockfileVersion"
:
2
,
"requires"
:
true
,
"packages"
:
{
""
:
{
"name"
:
"glm4-browser"
,
"version"
:
"1.0.0"
,
"license"
:
"MIT"
,
"dependencies"
:
{
"express"
:
"^4.18.3"
,
"jsdom"
:
"^24.0.0"
,
"pnpm"
:
"^9.1.2"
,
"turndown"
:
"^7.1.2"
,
"winston"
:
"^3.11.0"
},
"devDependencies"
:
{
"@types/express"
:
"^4.17.21"
,
"@types/jsdom"
:
"^21.1.6"
,
"@types/node"
:
"^20.11.20"
,
"@types/turndown"
:
"^5.0.4"
,
"nodemon"
:
"^3.1.0"
,
"ts-node"
:
"^10.9.2"
}
},
"node_modules/@colors/colors"
:
{
"version"
:
"1.6.0"
,
"resolved"
:
"https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz"
,
"integrity"
:
"sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA=="
,
"engines"
:
{
"node"
:
">=0.1.90"
}
},
"node_modules/@cspotcode/source-map-support"
:
{
"version"
:
"0.8.1"
,
"resolved"
:
"https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz"
,
"integrity"
:
"sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw=="
,
"dev"
:
true
,
"dependencies"
:
{
"@jridgewell/trace-mapping"
:
"0.3.9"
},
"engines"
:
{
"node"
:
">=12"
}
},
"node_modules/@dabh/diagnostics"
:
{
"version"
:
"2.0.3"
,
"resolved"
:
"https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz"
,
"integrity"
:
"sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA=="
,
"dependencies"
:
{
"colorspace"
:
"1.1.x"
,
"enabled"
:
"2.0.x"
,
"kuler"
:
"^2.0.0"
}
},
"node_modules/@jridgewell/resolve-uri"
:
{
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz"
,
"integrity"
:
"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="
,
"dev"
:
true
,
"engines"
:
{
"node"
:
">=6.0.0"
}
},
"node_modules/@jridgewell/sourcemap-codec"
:
{
"version"
:
"1.4.15"
,
"resolved"
:
"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz"
,
"integrity"
:
"sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
,
"dev"
:
true
},
"node_modules/@jridgewell/trace-mapping"
:
{
"version"
:
"0.3.9"
,
"resolved"
:
"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz"
,
"integrity"
:
"sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ=="
,
"dev"
:
true
,
"dependencies"
:
{
"@jridgewell/resolve-uri"
:
"^3.0.3"
,
"@jridgewell/sourcemap-codec"
:
"^1.4.10"
}
},
"node_modules/@mixmark-io/domino"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/@mixmark-io/domino/-/domino-2.2.0.tgz"
,
"integrity"
:
"sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw=="
},
"node_modules/@tsconfig/node10"
:
{
"version"
:
"1.0.11"
,
"resolved"
:
"https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz"
,
"integrity"
:
"sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw=="
,
"dev"
:
true
},
"node_modules/@tsconfig/node12"
:
{
"version"
:
"1.0.11"
,
"resolved"
:
"https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz"
,
"integrity"
:
"sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag=="
,
"dev"
:
true
},
"node_modules/@tsconfig/node14"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz"
,
"integrity"
:
"sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow=="
,
"dev"
:
true
},
"node_modules/@tsconfig/node16"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz"
,
"integrity"
:
"sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA=="
,
"dev"
:
true
},
"node_modules/@types/body-parser"
:
{
"version"
:
"1.19.5"
,
"resolved"
:
"https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz"
,
"integrity"
:
"sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg=="
,
"dev"
:
true
,
"dependencies"
:
{
"@types/connect"
:
"*"
,
"@types/node"
:
"*"
}
},
"node_modules/@types/connect"
:
{
"version"
:
"3.4.38"
,
"resolved"
:
"https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz"
,
"integrity"
:
"sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug=="
,
"dev"
:
true
,
"dependencies"
:
{
"@types/node"
:
"*"
}
},
"node_modules/@types/express"
:
{
"version"
:
"4.17.21"
,
"resolved"
:
"https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz"
,
"integrity"
:
"sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ=="
,
"dev"
:
true
,
"dependencies"
:
{
"@types/body-parser"
:
"*"
,
"@types/express-serve-static-core"
:
"^4.17.33"
,
"@types/qs"
:
"*"
,
"@types/serve-static"
:
"*"
}
},
"node_modules/@types/express-serve-static-core"
:
{
"version"
:
"4.19.1"
,
"resolved"
:
"https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.1.tgz"
,
"integrity"
:
"sha512-ej0phymbFLoCB26dbbq5PGScsf2JAJ4IJHjG10LalgUV36XKTmA4GdA+PVllKvRk0sEKt64X8975qFnkSi0hqA=="
,
"dev"
:
true
,
"dependencies"
:
{
"@types/node"
:
"*"
,
"@types/qs"
:
"*"
,
"@types/range-parser"
:
"*"
,
"@types/send"
:
"*"
}
},
"node_modules/@types/http-errors"
:
{
"version"
:
"2.0.4"
,
"resolved"
:
"https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz"
,
"integrity"
:
"sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA=="
,
"dev"
:
true
},
"node_modules/@types/jsdom"
:
{
"version"
:
"21.1.6"
,
"resolved"
:
"https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.6.tgz"
,
"integrity"
:
"sha512-/7kkMsC+/kMs7gAYmmBR9P0vGTnOoLhQhyhQJSlXGI5bzTHp6xdo0TtKWQAsz6pmSAeVqKSbqeyP6hytqr9FDw=="
,
"dev"
:
true
,
"dependencies"
:
{
"@types/node"
:
"*"
,
"@types/tough-cookie"
:
"*"
,
"parse5"
:
"^7.0.0"
}
},
"node_modules/@types/mime"
:
{
"version"
:
"1.3.5"
,
"resolved"
:
"https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz"
,
"integrity"
:
"sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
,
"dev"
:
true
},
"node_modules/@types/node"
:
{
"version"
:
"20.12.12"
,
"resolved"
:
"https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz"
,
"integrity"
:
"sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw=="
,
"dev"
:
true
,
"dependencies"
:
{
"undici-types"
:
"~5.26.4"
}
},
"node_modules/@types/qs"
:
{
"version"
:
"6.9.15"
,
"resolved"
:
"https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz"
,
"integrity"
:
"sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg=="
,
"dev"
:
true
},
"node_modules/@types/range-parser"
:
{
"version"
:
"1.2.7"
,
"resolved"
:
"https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz"
,
"integrity"
:
"sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="
,
"dev"
:
true
},
"node_modules/@types/send"
:
{
"version"
:
"0.17.4"
,
"resolved"
:
"https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz"
,
"integrity"
:
"sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA=="
,
"dev"
:
true
,
"dependencies"
:
{
"@types/mime"
:
"^1"
,
"@types/node"
:
"*"
}
},
"node_modules/@types/serve-static"
:
{
"version"
:
"1.15.7"
,
"resolved"
:
"https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz"
,
"integrity"
:
"sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw=="
,
"dev"
:
true
,
"dependencies"
:
{
"@types/http-errors"
:
"*"
,
"@types/node"
:
"*"
,
"@types/send"
:
"*"
}
},
"node_modules/@types/tough-cookie"
:
{
"version"
:
"4.0.5"
,
"resolved"
:
"https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz"
,
"integrity"
:
"sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA=="
,
"dev"
:
true
},
"node_modules/@types/triple-beam"
:
{
"version"
:
"1.3.5"
,
"resolved"
:
"https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz"
,
"integrity"
:
"sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw=="
},
"node_modules/@types/turndown"
:
{
"version"
:
"5.0.4"
,
"resolved"
:
"https://registry.npmjs.org/@types/turndown/-/turndown-5.0.4.tgz"
,
"integrity"
:
"sha512-28GI33lCCkU4SGH1GvjDhFgOVr+Tym4PXGBIU1buJUa6xQolniPArtUT+kv42RR2N9MsMLInkr904Aq+ESHBJg=="
,
"dev"
:
true
},
"node_modules/accepts"
:
{
"version"
:
"1.3.8"
,
"resolved"
:
"https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz"
,
"integrity"
:
"sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw=="
,
"dependencies"
:
{
"mime-types"
:
"~2.1.34"
,
"negotiator"
:
"0.6.3"
},
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/acorn"
:
{
"version"
:
"8.11.3"
,
"resolved"
:
"https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz"
,
"integrity"
:
"sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg=="
,
"dev"
:
true
,
"bin"
:
{
"acorn"
:
"bin/acorn"
},
"engines"
:
{
"node"
:
">=0.4.0"
}
},
"node_modules/acorn-walk"
:
{
"version"
:
"8.3.2"
,
"resolved"
:
"https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz"
,
"integrity"
:
"sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A=="
,
"dev"
:
true
,
"engines"
:
{
"node"
:
">=0.4.0"
}
},
"node_modules/agent-base"
:
{
"version"
:
"7.1.1"
,
"resolved"
:
"https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz"
,
"integrity"
:
"sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA=="
,
"dependencies"
:
{
"debug"
:
"^4.3.4"
},
"engines"
:
{
"node"
:
">= 14"
}
},
"node_modules/agent-base/node_modules/debug"
:
{
"version"
:
"4.3.4"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
,
"integrity"
:
"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
,
"dependencies"
:
{
"ms"
:
"2.1.2"
},
"engines"
:
{
"node"
:
">=6.0"
},
"peerDependenciesMeta"
:
{
"supports-color"
:
{
"optional"
:
true
}
}
},
"node_modules/agent-base/node_modules/ms"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
,
"integrity"
:
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/anymatch"
:
{
"version"
:
"3.1.3"
,
"resolved"
:
"https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz"
,
"integrity"
:
"sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="
,
"dev"
:
true
,
"dependencies"
:
{
"normalize-path"
:
"^3.0.0"
,
"picomatch"
:
"^2.0.4"
},
"engines"
:
{
"node"
:
">= 8"
}
},
"node_modules/arg"
:
{
"version"
:
"4.1.3"
,
"resolved"
:
"https://registry.npmjs.org/arg/-/arg-4.1.3.tgz"
,
"integrity"
:
"sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
,
"dev"
:
true
},
"node_modules/array-flatten"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"
,
"integrity"
:
"sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
},
"node_modules/async"
:
{
"version"
:
"3.2.5"
,
"resolved"
:
"https://registry.npmjs.org/async/-/async-3.2.5.tgz"
,
"integrity"
:
"sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg=="
},
"node_modules/asynckit"
:
{
"version"
:
"0.4.0"
,
"resolved"
:
"https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
,
"integrity"
:
"sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"node_modules/balanced-match"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
,
"integrity"
:
"sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
,
"dev"
:
true
},
"node_modules/binary-extensions"
:
{
"version"
:
"2.3.0"
,
"resolved"
:
"https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz"
,
"integrity"
:
"sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="
,
"dev"
:
true
,
"engines"
:
{
"node"
:
">=8"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/sindresorhus"
}
},
"node_modules/body-parser"
:
{
"version"
:
"1.20.2"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz"
,
"integrity"
:
"sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA=="
,
"dependencies"
:
{
"bytes"
:
"3.1.2"
,
"content-type"
:
"~1.0.5"
,
"debug"
:
"2.6.9"
,
"depd"
:
"2.0.0"
,
"destroy"
:
"1.2.0"
,
"http-errors"
:
"2.0.0"
,
"iconv-lite"
:
"0.4.24"
,
"on-finished"
:
"2.4.1"
,
"qs"
:
"6.11.0"
,
"raw-body"
:
"2.5.2"
,
"type-is"
:
"~1.6.18"
,
"unpipe"
:
"1.0.0"
},
"engines"
:
{
"node"
:
">= 0.8"
,
"npm"
:
"1.2.8000 || >= 1.4.16"
}
},
"node_modules/brace-expansion"
:
{
"version"
:
"1.1.11"
,
"resolved"
:
"https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
,
"integrity"
:
"sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="
,
"dev"
:
true
,
"dependencies"
:
{
"balanced-match"
:
"^1.0.0"
,
"concat-map"
:
"0.0.1"
}
},
"node_modules/braces"
:
{
"version"
:
"3.0.3"
,
"resolved"
:
"https://registry.npmjs.org/braces/-/braces-3.0.3.tgz"
,
"integrity"
:
"sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="
,
"dev"
:
true
,
"dependencies"
:
{
"fill-range"
:
"^7.1.1"
},
"engines"
:
{
"node"
:
">=8"
}
},
"node_modules/bytes"
:
{
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
,
"integrity"
:
"sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
,
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/call-bind"
:
{
"version"
:
"1.0.7"
,
"resolved"
:
"https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz"
,
"integrity"
:
"sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w=="
,
"dependencies"
:
{
"es-define-property"
:
"^1.0.0"
,
"es-errors"
:
"^1.3.0"
,
"function-bind"
:
"^1.1.2"
,
"get-intrinsic"
:
"^1.2.4"
,
"set-function-length"
:
"^1.2.1"
},
"engines"
:
{
"node"
:
">= 0.4"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/chokidar"
:
{
"version"
:
"3.6.0"
,
"resolved"
:
"https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz"
,
"integrity"
:
"sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="
,
"dev"
:
true
,
"dependencies"
:
{
"anymatch"
:
"~3.1.2"
,
"braces"
:
"~3.0.2"
,
"glob-parent"
:
"~5.1.2"
,
"is-binary-path"
:
"~2.1.0"
,
"is-glob"
:
"~4.0.1"
,
"normalize-path"
:
"~3.0.0"
,
"readdirp"
:
"~3.6.0"
},
"engines"
:
{
"node"
:
">= 8.10.0"
},
"funding"
:
{
"url"
:
"https://paulmillr.com/funding/"
},
"optionalDependencies"
:
{
"fsevents"
:
"~2.3.2"
}
},
"node_modules/color"
:
{
"version"
:
"3.2.1"
,
"resolved"
:
"https://registry.npmjs.org/color/-/color-3.2.1.tgz"
,
"integrity"
:
"sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA=="
,
"dependencies"
:
{
"color-convert"
:
"^1.9.3"
,
"color-string"
:
"^1.6.0"
}
},
"node_modules/color-convert"
:
{
"version"
:
"1.9.3"
,
"resolved"
:
"https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
,
"integrity"
:
"sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="
,
"dependencies"
:
{
"color-name"
:
"1.1.3"
}
},
"node_modules/color-name"
:
{
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
,
"integrity"
:
"sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
},
"node_modules/color-string"
:
{
"version"
:
"1.9.1"
,
"resolved"
:
"https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz"
,
"integrity"
:
"sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg=="
,
"dependencies"
:
{
"color-name"
:
"^1.0.0"
,
"simple-swizzle"
:
"^0.2.2"
}
},
"node_modules/colorspace"
:
{
"version"
:
"1.1.4"
,
"resolved"
:
"https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz"
,
"integrity"
:
"sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w=="
,
"dependencies"
:
{
"color"
:
"^3.1.3"
,
"text-hex"
:
"1.0.x"
}
},
"node_modules/combined-stream"
:
{
"version"
:
"1.0.8"
,
"resolved"
:
"https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
,
"integrity"
:
"sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="
,
"dependencies"
:
{
"delayed-stream"
:
"~1.0.0"
},
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/concat-map"
:
{
"version"
:
"0.0.1"
,
"resolved"
:
"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
,
"integrity"
:
"sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
,
"dev"
:
true
},
"node_modules/content-disposition"
:
{
"version"
:
"0.5.4"
,
"resolved"
:
"https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz"
,
"integrity"
:
"sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ=="
,
"dependencies"
:
{
"safe-buffer"
:
"5.2.1"
},
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/content-type"
:
{
"version"
:
"1.0.5"
,
"resolved"
:
"https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz"
,
"integrity"
:
"sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/cookie"
:
{
"version"
:
"0.6.0"
,
"resolved"
:
"https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz"
,
"integrity"
:
"sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/cookie-signature"
:
{
"version"
:
"1.0.6"
,
"resolved"
:
"https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
,
"integrity"
:
"sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
},
"node_modules/create-require"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz"
,
"integrity"
:
"sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
,
"dev"
:
true
},
"node_modules/cssstyle"
:
{
"version"
:
"4.0.1"
,
"resolved"
:
"https://registry.npmjs.org/cssstyle/-/cssstyle-4.0.1.tgz"
,
"integrity"
:
"sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ=="
,
"dependencies"
:
{
"rrweb-cssom"
:
"^0.6.0"
},
"engines"
:
{
"node"
:
">=18"
}
},
"node_modules/cssstyle/node_modules/rrweb-cssom"
:
{
"version"
:
"0.6.0"
,
"resolved"
:
"https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz"
,
"integrity"
:
"sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw=="
},
"node_modules/data-urls"
:
{
"version"
:
"5.0.0"
,
"resolved"
:
"https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz"
,
"integrity"
:
"sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg=="
,
"dependencies"
:
{
"whatwg-mimetype"
:
"^4.0.0"
,
"whatwg-url"
:
"^14.0.0"
},
"engines"
:
{
"node"
:
">=18"
}
},
"node_modules/debug"
:
{
"version"
:
"2.6.9"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
,
"integrity"
:
"sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="
,
"dependencies"
:
{
"ms"
:
"2.0.0"
}
},
"node_modules/decimal.js"
:
{
"version"
:
"10.4.3"
,
"resolved"
:
"https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz"
,
"integrity"
:
"sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA=="
},
"node_modules/define-data-property"
:
{
"version"
:
"1.1.4"
,
"resolved"
:
"https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz"
,
"integrity"
:
"sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="
,
"dependencies"
:
{
"es-define-property"
:
"^1.0.0"
,
"es-errors"
:
"^1.3.0"
,
"gopd"
:
"^1.0.1"
},
"engines"
:
{
"node"
:
">= 0.4"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/delayed-stream"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
,
"integrity"
:
"sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
,
"engines"
:
{
"node"
:
">=0.4.0"
}
},
"node_modules/depd"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"
,
"integrity"
:
"sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
,
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/destroy"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz"
,
"integrity"
:
"sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
,
"engines"
:
{
"node"
:
">= 0.8"
,
"npm"
:
"1.2.8000 || >= 1.4.16"
}
},
"node_modules/diff"
:
{
"version"
:
"4.0.2"
,
"resolved"
:
"https://registry.npmjs.org/diff/-/diff-4.0.2.tgz"
,
"integrity"
:
"sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="
,
"dev"
:
true
,
"engines"
:
{
"node"
:
">=0.3.1"
}
},
"node_modules/ee-first"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
,
"integrity"
:
"sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"node_modules/enabled"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz"
,
"integrity"
:
"sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="
},
"node_modules/encodeurl"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
,
"integrity"
:
"sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
,
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/entities"
:
{
"version"
:
"4.5.0"
,
"resolved"
:
"https://registry.npmjs.org/entities/-/entities-4.5.0.tgz"
,
"integrity"
:
"sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
,
"engines"
:
{
"node"
:
">=0.12"
},
"funding"
:
{
"url"
:
"https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/es-define-property"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz"
,
"integrity"
:
"sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ=="
,
"dependencies"
:
{
"get-intrinsic"
:
"^1.2.4"
},
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/es-errors"
:
{
"version"
:
"1.3.0"
,
"resolved"
:
"https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz"
,
"integrity"
:
"sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="
,
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/escape-html"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
,
"integrity"
:
"sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"node_modules/etag"
:
{
"version"
:
"1.8.1"
,
"resolved"
:
"https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
,
"integrity"
:
"sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/express"
:
{
"version"
:
"4.19.2"
,
"resolved"
:
"https://registry.npmjs.org/express/-/express-4.19.2.tgz"
,
"integrity"
:
"sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q=="
,
"dependencies"
:
{
"accepts"
:
"~1.3.8"
,
"array-flatten"
:
"1.1.1"
,
"body-parser"
:
"1.20.2"
,
"content-disposition"
:
"0.5.4"
,
"content-type"
:
"~1.0.4"
,
"cookie"
:
"0.6.0"
,
"cookie-signature"
:
"1.0.6"
,
"debug"
:
"2.6.9"
,
"depd"
:
"2.0.0"
,
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"etag"
:
"~1.8.1"
,
"finalhandler"
:
"1.2.0"
,
"fresh"
:
"0.5.2"
,
"http-errors"
:
"2.0.0"
,
"merge-descriptors"
:
"1.0.1"
,
"methods"
:
"~1.1.2"
,
"on-finished"
:
"2.4.1"
,
"parseurl"
:
"~1.3.3"
,
"path-to-regexp"
:
"0.1.7"
,
"proxy-addr"
:
"~2.0.7"
,
"qs"
:
"6.11.0"
,
"range-parser"
:
"~1.2.1"
,
"safe-buffer"
:
"5.2.1"
,
"send"
:
"0.18.0"
,
"serve-static"
:
"1.15.0"
,
"setprototypeof"
:
"1.2.0"
,
"statuses"
:
"2.0.1"
,
"type-is"
:
"~1.6.18"
,
"utils-merge"
:
"1.0.1"
,
"vary"
:
"~1.1.2"
},
"engines"
:
{
"node"
:
">= 0.10.0"
}
},
"node_modules/fecha"
:
{
"version"
:
"4.2.3"
,
"resolved"
:
"https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz"
,
"integrity"
:
"sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw=="
},
"node_modules/fill-range"
:
{
"version"
:
"7.1.1"
,
"resolved"
:
"https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz"
,
"integrity"
:
"sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="
,
"dev"
:
true
,
"dependencies"
:
{
"to-regex-range"
:
"^5.0.1"
},
"engines"
:
{
"node"
:
">=8"
}
},
"node_modules/finalhandler"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz"
,
"integrity"
:
"sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg=="
,
"dependencies"
:
{
"debug"
:
"2.6.9"
,
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"on-finished"
:
"2.4.1"
,
"parseurl"
:
"~1.3.3"
,
"statuses"
:
"2.0.1"
,
"unpipe"
:
"~1.0.0"
},
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/fn.name"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz"
,
"integrity"
:
"sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
},
"node_modules/form-data"
:
{
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz"
,
"integrity"
:
"sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww=="
,
"dependencies"
:
{
"asynckit"
:
"^0.4.0"
,
"combined-stream"
:
"^1.0.8"
,
"mime-types"
:
"^2.1.12"
},
"engines"
:
{
"node"
:
">= 6"
}
},
"node_modules/forwarded"
:
{
"version"
:
"0.2.0"
,
"resolved"
:
"https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz"
,
"integrity"
:
"sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/fresh"
:
{
"version"
:
"0.5.2"
,
"resolved"
:
"https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
,
"integrity"
:
"sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/fsevents"
:
{
"version"
:
"2.3.3"
,
"resolved"
:
"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz"
,
"integrity"
:
"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="
,
"dev"
:
true
,
"hasInstallScript"
:
true
,
"optional"
:
true
,
"os"
:
[
"darwin"
],
"engines"
:
{
"node"
:
"^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/function-bind"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz"
,
"integrity"
:
"sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
,
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/get-intrinsic"
:
{
"version"
:
"1.2.4"
,
"resolved"
:
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz"
,
"integrity"
:
"sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ=="
,
"dependencies"
:
{
"es-errors"
:
"^1.3.0"
,
"function-bind"
:
"^1.1.2"
,
"has-proto"
:
"^1.0.1"
,
"has-symbols"
:
"^1.0.3"
,
"hasown"
:
"^2.0.0"
},
"engines"
:
{
"node"
:
">= 0.4"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/glob-parent"
:
{
"version"
:
"5.1.2"
,
"resolved"
:
"https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
,
"integrity"
:
"sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="
,
"dev"
:
true
,
"dependencies"
:
{
"is-glob"
:
"^4.0.1"
},
"engines"
:
{
"node"
:
">= 6"
}
},
"node_modules/gopd"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz"
,
"integrity"
:
"sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA=="
,
"dependencies"
:
{
"get-intrinsic"
:
"^1.1.3"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/has-flag"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
,
"integrity"
:
"sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
,
"dev"
:
true
,
"engines"
:
{
"node"
:
">=4"
}
},
"node_modules/has-property-descriptors"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz"
,
"integrity"
:
"sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="
,
"dependencies"
:
{
"es-define-property"
:
"^1.0.0"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/has-proto"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz"
,
"integrity"
:
"sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q=="
,
"engines"
:
{
"node"
:
">= 0.4"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/has-symbols"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"
,
"integrity"
:
"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
,
"engines"
:
{
"node"
:
">= 0.4"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/hasown"
:
{
"version"
:
"2.0.2"
,
"resolved"
:
"https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz"
,
"integrity"
:
"sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="
,
"dependencies"
:
{
"function-bind"
:
"^1.1.2"
},
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/html-encoding-sniffer"
:
{
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz"
,
"integrity"
:
"sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ=="
,
"dependencies"
:
{
"whatwg-encoding"
:
"^3.1.1"
},
"engines"
:
{
"node"
:
">=18"
}
},
"node_modules/http-errors"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz"
,
"integrity"
:
"sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="
,
"dependencies"
:
{
"depd"
:
"2.0.0"
,
"inherits"
:
"2.0.4"
,
"setprototypeof"
:
"1.2.0"
,
"statuses"
:
"2.0.1"
,
"toidentifier"
:
"1.0.1"
},
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/http-proxy-agent"
:
{
"version"
:
"7.0.2"
,
"resolved"
:
"https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz"
,
"integrity"
:
"sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig=="
,
"dependencies"
:
{
"agent-base"
:
"^7.1.0"
,
"debug"
:
"^4.3.4"
},
"engines"
:
{
"node"
:
">= 14"
}
},
"node_modules/http-proxy-agent/node_modules/debug"
:
{
"version"
:
"4.3.4"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
,
"integrity"
:
"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
,
"dependencies"
:
{
"ms"
:
"2.1.2"
},
"engines"
:
{
"node"
:
">=6.0"
},
"peerDependenciesMeta"
:
{
"supports-color"
:
{
"optional"
:
true
}
}
},
"node_modules/http-proxy-agent/node_modules/ms"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
,
"integrity"
:
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/https-proxy-agent"
:
{
"version"
:
"7.0.4"
,
"resolved"
:
"https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz"
,
"integrity"
:
"sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg=="
,
"dependencies"
:
{
"agent-base"
:
"^7.0.2"
,
"debug"
:
"4"
},
"engines"
:
{
"node"
:
">= 14"
}
},
"node_modules/https-proxy-agent/node_modules/debug"
:
{
"version"
:
"4.3.4"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
,
"integrity"
:
"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
,
"dependencies"
:
{
"ms"
:
"2.1.2"
},
"engines"
:
{
"node"
:
">=6.0"
},
"peerDependenciesMeta"
:
{
"supports-color"
:
{
"optional"
:
true
}
}
},
"node_modules/https-proxy-agent/node_modules/ms"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
,
"integrity"
:
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/iconv-lite"
:
{
"version"
:
"0.4.24"
,
"resolved"
:
"https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"
,
"integrity"
:
"sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="
,
"dependencies"
:
{
"safer-buffer"
:
">= 2.1.2 < 3"
},
"engines"
:
{
"node"
:
">=0.10.0"
}
},
"node_modules/ignore-by-default"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz"
,
"integrity"
:
"sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA=="
,
"dev"
:
true
},
"node_modules/inherits"
:
{
"version"
:
"2.0.4"
,
"resolved"
:
"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
,
"integrity"
:
"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/ipaddr.js"
:
{
"version"
:
"1.9.1"
,
"resolved"
:
"https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"
,
"integrity"
:
"sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
,
"engines"
:
{
"node"
:
">= 0.10"
}
},
"node_modules/is-arrayish"
:
{
"version"
:
"0.3.2"
,
"resolved"
:
"https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz"
,
"integrity"
:
"sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
},
"node_modules/is-binary-path"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"
,
"integrity"
:
"sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="
,
"dev"
:
true
,
"dependencies"
:
{
"binary-extensions"
:
"^2.0.0"
},
"engines"
:
{
"node"
:
">=8"
}
},
"node_modules/is-extglob"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
,
"integrity"
:
"sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
,
"dev"
:
true
,
"engines"
:
{
"node"
:
">=0.10.0"
}
},
"node_modules/is-glob"
:
{
"version"
:
"4.0.3"
,
"resolved"
:
"https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
,
"integrity"
:
"sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="
,
"dev"
:
true
,
"dependencies"
:
{
"is-extglob"
:
"^2.1.1"
},
"engines"
:
{
"node"
:
">=0.10.0"
}
},
"node_modules/is-number"
:
{
"version"
:
"7.0.0"
,
"resolved"
:
"https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
,
"integrity"
:
"sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
,
"dev"
:
true
,
"engines"
:
{
"node"
:
">=0.12.0"
}
},
"node_modules/is-potential-custom-element-name"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz"
,
"integrity"
:
"sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="
},
"node_modules/is-stream"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz"
,
"integrity"
:
"sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
,
"engines"
:
{
"node"
:
">=8"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/sindresorhus"
}
},
"node_modules/jsdom"
:
{
"version"
:
"24.1.0"
,
"resolved"
:
"https://registry.npmjs.org/jsdom/-/jsdom-24.1.0.tgz"
,
"integrity"
:
"sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA=="
,
"dependencies"
:
{
"cssstyle"
:
"^4.0.1"
,
"data-urls"
:
"^5.0.0"
,
"decimal.js"
:
"^10.4.3"
,
"form-data"
:
"^4.0.0"
,
"html-encoding-sniffer"
:
"^4.0.0"
,
"http-proxy-agent"
:
"^7.0.2"
,
"https-proxy-agent"
:
"^7.0.4"
,
"is-potential-custom-element-name"
:
"^1.0.1"
,
"nwsapi"
:
"^2.2.10"
,
"parse5"
:
"^7.1.2"
,
"rrweb-cssom"
:
"^0.7.0"
,
"saxes"
:
"^6.0.0"
,
"symbol-tree"
:
"^3.2.4"
,
"tough-cookie"
:
"^4.1.4"
,
"w3c-xmlserializer"
:
"^5.0.0"
,
"webidl-conversions"
:
"^7.0.0"
,
"whatwg-encoding"
:
"^3.1.1"
,
"whatwg-mimetype"
:
"^4.0.0"
,
"whatwg-url"
:
"^14.0.0"
,
"ws"
:
"^8.17.0"
,
"xml-name-validator"
:
"^5.0.0"
},
"engines"
:
{
"node"
:
">=18"
},
"peerDependencies"
:
{
"canvas"
:
"^2.11.2"
},
"peerDependenciesMeta"
:
{
"canvas"
:
{
"optional"
:
true
}
}
},
"node_modules/kuler"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz"
,
"integrity"
:
"sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="
},
"node_modules/logform"
:
{
"version"
:
"2.6.0"
,
"resolved"
:
"https://registry.npmjs.org/logform/-/logform-2.6.0.tgz"
,
"integrity"
:
"sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ=="
,
"dependencies"
:
{
"@colors/colors"
:
"1.6.0"
,
"@types/triple-beam"
:
"^1.3.2"
,
"fecha"
:
"^4.2.0"
,
"ms"
:
"^2.1.1"
,
"safe-stable-stringify"
:
"^2.3.1"
,
"triple-beam"
:
"^1.3.0"
},
"engines"
:
{
"node"
:
">= 12.0.0"
}
},
"node_modules/logform/node_modules/ms"
:
{
"version"
:
"2.1.3"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
,
"integrity"
:
"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/make-error"
:
{
"version"
:
"1.3.6"
,
"resolved"
:
"https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz"
,
"integrity"
:
"sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
,
"dev"
:
true
},
"node_modules/media-typer"
:
{
"version"
:
"0.3.0"
,
"resolved"
:
"https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
,
"integrity"
:
"sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/merge-descriptors"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
,
"integrity"
:
"sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
},
"node_modules/methods"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"
,
"integrity"
:
"sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/mime"
:
{
"version"
:
"1.6.0"
,
"resolved"
:
"https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"
,
"integrity"
:
"sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
,
"bin"
:
{
"mime"
:
"cli.js"
},
"engines"
:
{
"node"
:
">=4"
}
},
"node_modules/mime-db"
:
{
"version"
:
"1.52.0"
,
"resolved"
:
"https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
,
"integrity"
:
"sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/mime-types"
:
{
"version"
:
"2.1.35"
,
"resolved"
:
"https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
,
"integrity"
:
"sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="
,
"dependencies"
:
{
"mime-db"
:
"1.52.0"
},
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/minimatch"
:
{
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
,
"integrity"
:
"sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="
,
"dev"
:
true
,
"dependencies"
:
{
"brace-expansion"
:
"^1.1.7"
},
"engines"
:
{
"node"
:
"*"
}
},
"node_modules/ms"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
,
"integrity"
:
"sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/negotiator"
:
{
"version"
:
"0.6.3"
,
"resolved"
:
"https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz"
,
"integrity"
:
"sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/nodemon"
:
{
"version"
:
"3.1.1"
,
"resolved"
:
"https://registry.npmjs.org/nodemon/-/nodemon-3.1.1.tgz"
,
"integrity"
:
"sha512-k43xGaDtaDIcufn0Fc6fTtsdKSkV/hQzoQFigNH//GaKta28yoKVYXCnV+KXRqfT/YzsFaQU9VdeEG+HEyxr6A=="
,
"dev"
:
true
,
"dependencies"
:
{
"chokidar"
:
"^3.5.2"
,
"debug"
:
"^4"
,
"ignore-by-default"
:
"^1.0.1"
,
"minimatch"
:
"^3.1.2"
,
"pstree.remy"
:
"^1.1.8"
,
"semver"
:
"^7.5.3"
,
"simple-update-notifier"
:
"^2.0.0"
,
"supports-color"
:
"^5.5.0"
,
"touch"
:
"^3.1.0"
,
"undefsafe"
:
"^2.0.5"
},
"bin"
:
{
"nodemon"
:
"bin/nodemon.js"
},
"engines"
:
{
"node"
:
">=10"
},
"funding"
:
{
"type"
:
"opencollective"
,
"url"
:
"https://opencollective.com/nodemon"
}
},
"node_modules/nodemon/node_modules/debug"
:
{
"version"
:
"4.3.4"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
,
"integrity"
:
"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
,
"dev"
:
true
,
"dependencies"
:
{
"ms"
:
"2.1.2"
},
"engines"
:
{
"node"
:
">=6.0"
},
"peerDependenciesMeta"
:
{
"supports-color"
:
{
"optional"
:
true
}
}
},
"node_modules/nodemon/node_modules/ms"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
,
"integrity"
:
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
,
"dev"
:
true
},
"node_modules/normalize-path"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
,
"integrity"
:
"sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
,
"dev"
:
true
,
"engines"
:
{
"node"
:
">=0.10.0"
}
},
"node_modules/nwsapi"
:
{
"version"
:
"2.2.10"
,
"resolved"
:
"https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.10.tgz"
,
"integrity"
:
"sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ=="
},
"node_modules/object-inspect"
:
{
"version"
:
"1.13.1"
,
"resolved"
:
"https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz"
,
"integrity"
:
"sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ=="
,
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/on-finished"
:
{
"version"
:
"2.4.1"
,
"resolved"
:
"https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz"
,
"integrity"
:
"sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="
,
"dependencies"
:
{
"ee-first"
:
"1.1.1"
},
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/one-time"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz"
,
"integrity"
:
"sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g=="
,
"dependencies"
:
{
"fn.name"
:
"1.x.x"
}
},
"node_modules/parse5"
:
{
"version"
:
"7.1.2"
,
"resolved"
:
"https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz"
,
"integrity"
:
"sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw=="
,
"dependencies"
:
{
"entities"
:
"^4.4.0"
},
"funding"
:
{
"url"
:
"https://github.com/inikulin/parse5?sponsor=1"
}
},
"node_modules/parseurl"
:
{
"version"
:
"1.3.3"
,
"resolved"
:
"https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
,
"integrity"
:
"sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
,
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/path-to-regexp"
:
{
"version"
:
"0.1.7"
,
"resolved"
:
"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"
,
"integrity"
:
"sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
},
"node_modules/picomatch"
:
{
"version"
:
"2.3.1"
,
"resolved"
:
"https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
,
"integrity"
:
"sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
,
"dev"
:
true
,
"engines"
:
{
"node"
:
">=8.6"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/pnpm"
:
{
"version"
:
"9.1.2"
,
"resolved"
:
"https://registry.npmjs.org/pnpm/-/pnpm-9.1.2.tgz"
,
"integrity"
:
"sha512-En3IO56hDDK+ZdIqjvtKZfuVLo/vvf3tOb3DyX78MtMbSLAEIN8sEYes4oySHJAvDLWhNKTQMri1KVy/osaB4g=="
,
"bin"
:
{
"pnpm"
:
"bin/pnpm.cjs"
,
"pnpx"
:
"bin/pnpx.cjs"
},
"engines"
:
{
"node"
:
">=18.12"
},
"funding"
:
{
"url"
:
"https://opencollective.com/pnpm"
}
},
"node_modules/proxy-addr"
:
{
"version"
:
"2.0.7"
,
"resolved"
:
"https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz"
,
"integrity"
:
"sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="
,
"dependencies"
:
{
"forwarded"
:
"0.2.0"
,
"ipaddr.js"
:
"1.9.1"
},
"engines"
:
{
"node"
:
">= 0.10"
}
},
"node_modules/psl"
:
{
"version"
:
"1.9.0"
,
"resolved"
:
"https://registry.npmjs.org/psl/-/psl-1.9.0.tgz"
,
"integrity"
:
"sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
},
"node_modules/pstree.remy"
:
{
"version"
:
"1.1.8"
,
"resolved"
:
"https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz"
,
"integrity"
:
"sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w=="
,
"dev"
:
true
},
"node_modules/punycode"
:
{
"version"
:
"2.3.1"
,
"resolved"
:
"https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz"
,
"integrity"
:
"sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="
,
"engines"
:
{
"node"
:
">=6"
}
},
"node_modules/qs"
:
{
"version"
:
"6.11.0"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.11.0.tgz"
,
"integrity"
:
"sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q=="
,
"dependencies"
:
{
"side-channel"
:
"^1.0.4"
},
"engines"
:
{
"node"
:
">=0.6"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/querystringify"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz"
,
"integrity"
:
"sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
},
"node_modules/range-parser"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
,
"integrity"
:
"sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/raw-body"
:
{
"version"
:
"2.5.2"
,
"resolved"
:
"https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz"
,
"integrity"
:
"sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA=="
,
"dependencies"
:
{
"bytes"
:
"3.1.2"
,
"http-errors"
:
"2.0.0"
,
"iconv-lite"
:
"0.4.24"
,
"unpipe"
:
"1.0.0"
},
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/readable-stream"
:
{
"version"
:
"3.6.2"
,
"resolved"
:
"https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz"
,
"integrity"
:
"sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="
,
"dependencies"
:
{
"inherits"
:
"^2.0.3"
,
"string_decoder"
:
"^1.1.1"
,
"util-deprecate"
:
"^1.0.1"
},
"engines"
:
{
"node"
:
">= 6"
}
},
"node_modules/readdirp"
:
{
"version"
:
"3.6.0"
,
"resolved"
:
"https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
,
"integrity"
:
"sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="
,
"dev"
:
true
,
"dependencies"
:
{
"picomatch"
:
"^2.2.1"
},
"engines"
:
{
"node"
:
">=8.10.0"
}
},
"node_modules/requires-port"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz"
,
"integrity"
:
"sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
},
"node_modules/rrweb-cssom"
:
{
"version"
:
"0.7.0"
,
"resolved"
:
"https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.0.tgz"
,
"integrity"
:
"sha512-KlSv0pm9kgQSRxXEMgtivPJ4h826YHsuob8pSHcfSZsSXGtvpEAie8S0AnXuObEJ7nhikOb4ahwxDm0H2yW17g=="
},
"node_modules/safe-buffer"
:
{
"version"
:
"5.2.1"
,
"resolved"
:
"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
,
"integrity"
:
"sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
,
"funding"
:
[
{
"type"
:
"github"
,
"url"
:
"https://github.com/sponsors/feross"
},
{
"type"
:
"patreon"
,
"url"
:
"https://www.patreon.com/feross"
},
{
"type"
:
"consulting"
,
"url"
:
"https://feross.org/support"
}
]
},
"node_modules/safe-stable-stringify"
:
{
"version"
:
"2.4.3"
,
"resolved"
:
"https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz"
,
"integrity"
:
"sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g=="
,
"engines"
:
{
"node"
:
">=10"
}
},
"node_modules/safer-buffer"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
,
"integrity"
:
"sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"node_modules/saxes"
:
{
"version"
:
"6.0.0"
,
"resolved"
:
"https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz"
,
"integrity"
:
"sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA=="
,
"dependencies"
:
{
"xmlchars"
:
"^2.2.0"
},
"engines"
:
{
"node"
:
">=v12.22.7"
}
},
"node_modules/semver"
:
{
"version"
:
"7.6.2"
,
"resolved"
:
"https://registry.npmjs.org/semver/-/semver-7.6.2.tgz"
,
"integrity"
:
"sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w=="
,
"dev"
:
true
,
"bin"
:
{
"semver"
:
"bin/semver.js"
},
"engines"
:
{
"node"
:
">=10"
}
},
"node_modules/send"
:
{
"version"
:
"0.18.0"
,
"resolved"
:
"https://registry.npmjs.org/send/-/send-0.18.0.tgz"
,
"integrity"
:
"sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg=="
,
"dependencies"
:
{
"debug"
:
"2.6.9"
,
"depd"
:
"2.0.0"
,
"destroy"
:
"1.2.0"
,
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"etag"
:
"~1.8.1"
,
"fresh"
:
"0.5.2"
,
"http-errors"
:
"2.0.0"
,
"mime"
:
"1.6.0"
,
"ms"
:
"2.1.3"
,
"on-finished"
:
"2.4.1"
,
"range-parser"
:
"~1.2.1"
,
"statuses"
:
"2.0.1"
},
"engines"
:
{
"node"
:
">= 0.8.0"
}
},
"node_modules/send/node_modules/ms"
:
{
"version"
:
"2.1.3"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
,
"integrity"
:
"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/serve-static"
:
{
"version"
:
"1.15.0"
,
"resolved"
:
"https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz"
,
"integrity"
:
"sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g=="
,
"dependencies"
:
{
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"parseurl"
:
"~1.3.3"
,
"send"
:
"0.18.0"
},
"engines"
:
{
"node"
:
">= 0.8.0"
}
},
"node_modules/set-function-length"
:
{
"version"
:
"1.2.2"
,
"resolved"
:
"https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz"
,
"integrity"
:
"sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="
,
"dependencies"
:
{
"define-data-property"
:
"^1.1.4"
,
"es-errors"
:
"^1.3.0"
,
"function-bind"
:
"^1.1.2"
,
"get-intrinsic"
:
"^1.2.4"
,
"gopd"
:
"^1.0.1"
,
"has-property-descriptors"
:
"^1.0.2"
},
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/setprototypeof"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz"
,
"integrity"
:
"sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"node_modules/side-channel"
:
{
"version"
:
"1.0.6"
,
"resolved"
:
"https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz"
,
"integrity"
:
"sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA=="
,
"dependencies"
:
{
"call-bind"
:
"^1.0.7"
,
"es-errors"
:
"^1.3.0"
,
"get-intrinsic"
:
"^1.2.4"
,
"object-inspect"
:
"^1.13.1"
},
"engines"
:
{
"node"
:
">= 0.4"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/simple-swizzle"
:
{
"version"
:
"0.2.2"
,
"resolved"
:
"https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz"
,
"integrity"
:
"sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg=="
,
"dependencies"
:
{
"is-arrayish"
:
"^0.3.1"
}
},
"node_modules/simple-update-notifier"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz"
,
"integrity"
:
"sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w=="
,
"dev"
:
true
,
"dependencies"
:
{
"semver"
:
"^7.5.3"
},
"engines"
:
{
"node"
:
">=10"
}
},
"node_modules/stack-trace"
:
{
"version"
:
"0.0.10"
,
"resolved"
:
"https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz"
,
"integrity"
:
"sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg=="
,
"engines"
:
{
"node"
:
"*"
}
},
"node_modules/statuses"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz"
,
"integrity"
:
"sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
,
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/string_decoder"
:
{
"version"
:
"1.3.0"
,
"resolved"
:
"https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz"
,
"integrity"
:
"sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="
,
"dependencies"
:
{
"safe-buffer"
:
"~5.2.0"
}
},
"node_modules/supports-color"
:
{
"version"
:
"5.5.0"
,
"resolved"
:
"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
,
"integrity"
:
"sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="
,
"dev"
:
true
,
"dependencies"
:
{
"has-flag"
:
"^3.0.0"
},
"engines"
:
{
"node"
:
">=4"
}
},
"node_modules/symbol-tree"
:
{
"version"
:
"3.2.4"
,
"resolved"
:
"https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz"
,
"integrity"
:
"sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
},
"node_modules/text-hex"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz"
,
"integrity"
:
"sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
},
"node_modules/to-regex-range"
:
{
"version"
:
"5.0.1"
,
"resolved"
:
"https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
,
"integrity"
:
"sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="
,
"dev"
:
true
,
"dependencies"
:
{
"is-number"
:
"^7.0.0"
},
"engines"
:
{
"node"
:
">=8.0"
}
},
"node_modules/toidentifier"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz"
,
"integrity"
:
"sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
,
"engines"
:
{
"node"
:
">=0.6"
}
},
"node_modules/touch"
:
{
"version"
:
"3.1.1"
,
"resolved"
:
"https://registry.npmjs.org/touch/-/touch-3.1.1.tgz"
,
"integrity"
:
"sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA=="
,
"dev"
:
true
,
"bin"
:
{
"nodetouch"
:
"bin/nodetouch.js"
}
},
"node_modules/tough-cookie"
:
{
"version"
:
"4.1.4"
,
"resolved"
:
"https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz"
,
"integrity"
:
"sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag=="
,
"dependencies"
:
{
"psl"
:
"^1.1.33"
,
"punycode"
:
"^2.1.1"
,
"universalify"
:
"^0.2.0"
,
"url-parse"
:
"^1.5.3"
},
"engines"
:
{
"node"
:
">=6"
}
},
"node_modules/tr46"
:
{
"version"
:
"5.0.0"
,
"resolved"
:
"https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz"
,
"integrity"
:
"sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g=="
,
"dependencies"
:
{
"punycode"
:
"^2.3.1"
},
"engines"
:
{
"node"
:
">=18"
}
},
"node_modules/triple-beam"
:
{
"version"
:
"1.4.1"
,
"resolved"
:
"https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz"
,
"integrity"
:
"sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg=="
,
"engines"
:
{
"node"
:
">= 14.0.0"
}
},
"node_modules/ts-node"
:
{
"version"
:
"10.9.2"
,
"resolved"
:
"https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz"
,
"integrity"
:
"sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ=="
,
"dev"
:
true
,
"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"
},
"bin"
:
{
"ts-node"
:
"dist/bin.js"
,
"ts-node-cwd"
:
"dist/bin-cwd.js"
,
"ts-node-esm"
:
"dist/bin-esm.js"
,
"ts-node-script"
:
"dist/bin-script.js"
,
"ts-node-transpile-only"
:
"dist/bin-transpile.js"
,
"ts-script"
:
"dist/bin-script-deprecated.js"
},
"peerDependencies"
:
{
"@swc/core"
:
">=1.2.50"
,
"@swc/wasm"
:
">=1.2.50"
,
"@types/node"
:
"*"
,
"typescript"
:
">=2.7"
},
"peerDependenciesMeta"
:
{
"@swc/core"
:
{
"optional"
:
true
},
"@swc/wasm"
:
{
"optional"
:
true
}
}
},
"node_modules/turndown"
:
{
"version"
:
"7.2.0"
,
"resolved"
:
"https://registry.npmjs.org/turndown/-/turndown-7.2.0.tgz"
,
"integrity"
:
"sha512-eCZGBN4nNNqM9Owkv9HAtWRYfLA4h909E/WGAWWBpmB275ehNhZyk87/Tpvjbp0jjNl9XwCsbe6bm6CqFsgD+A=="
,
"dependencies"
:
{
"@mixmark-io/domino"
:
"^2.2.0"
}
},
"node_modules/type-is"
:
{
"version"
:
"1.6.18"
,
"resolved"
:
"https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz"
,
"integrity"
:
"sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="
,
"dependencies"
:
{
"media-typer"
:
"0.3.0"
,
"mime-types"
:
"~2.1.24"
},
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/typescript"
:
{
"version"
:
"5.4.5"
,
"resolved"
:
"https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz"
,
"integrity"
:
"sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ=="
,
"dev"
:
true
,
"peer"
:
true
,
"bin"
:
{
"tsc"
:
"bin/tsc"
,
"tsserver"
:
"bin/tsserver"
},
"engines"
:
{
"node"
:
">=14.17"
}
},
"node_modules/undefsafe"
:
{
"version"
:
"2.0.5"
,
"resolved"
:
"https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz"
,
"integrity"
:
"sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA=="
,
"dev"
:
true
},
"node_modules/undici-types"
:
{
"version"
:
"5.26.5"
,
"resolved"
:
"https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz"
,
"integrity"
:
"sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
,
"dev"
:
true
},
"node_modules/universalify"
:
{
"version"
:
"0.2.0"
,
"resolved"
:
"https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz"
,
"integrity"
:
"sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg=="
,
"engines"
:
{
"node"
:
">= 4.0.0"
}
},
"node_modules/unpipe"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
,
"integrity"
:
"sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
,
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/url-parse"
:
{
"version"
:
"1.5.10"
,
"resolved"
:
"https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz"
,
"integrity"
:
"sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ=="
,
"dependencies"
:
{
"querystringify"
:
"^2.1.1"
,
"requires-port"
:
"^1.0.0"
}
},
"node_modules/util-deprecate"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
,
"integrity"
:
"sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"node_modules/utils-merge"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"
,
"integrity"
:
"sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
,
"engines"
:
{
"node"
:
">= 0.4.0"
}
},
"node_modules/v8-compile-cache-lib"
:
{
"version"
:
"3.0.1"
,
"resolved"
:
"https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz"
,
"integrity"
:
"sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="
,
"dev"
:
true
},
"node_modules/vary"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
,
"integrity"
:
"sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
,
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/w3c-xmlserializer"
:
{
"version"
:
"5.0.0"
,
"resolved"
:
"https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz"
,
"integrity"
:
"sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA=="
,
"dependencies"
:
{
"xml-name-validator"
:
"^5.0.0"
},
"engines"
:
{
"node"
:
">=18"
}
},
"node_modules/webidl-conversions"
:
{
"version"
:
"7.0.0"
,
"resolved"
:
"https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz"
,
"integrity"
:
"sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="
,
"engines"
:
{
"node"
:
">=12"
}
},
"node_modules/whatwg-encoding"
:
{
"version"
:
"3.1.1"
,
"resolved"
:
"https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz"
,
"integrity"
:
"sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ=="
,
"dependencies"
:
{
"iconv-lite"
:
"0.6.3"
},
"engines"
:
{
"node"
:
">=18"
}
},
"node_modules/whatwg-encoding/node_modules/iconv-lite"
:
{
"version"
:
"0.6.3"
,
"resolved"
:
"https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz"
,
"integrity"
:
"sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="
,
"dependencies"
:
{
"safer-buffer"
:
">= 2.1.2 < 3.0.0"
},
"engines"
:
{
"node"
:
">=0.10.0"
}
},
"node_modules/whatwg-mimetype"
:
{
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz"
,
"integrity"
:
"sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg=="
,
"engines"
:
{
"node"
:
">=18"
}
},
"node_modules/whatwg-url"
:
{
"version"
:
"14.0.0"
,
"resolved"
:
"https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz"
,
"integrity"
:
"sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw=="
,
"dependencies"
:
{
"tr46"
:
"^5.0.0"
,
"webidl-conversions"
:
"^7.0.0"
},
"engines"
:
{
"node"
:
">=18"
}
},
"node_modules/winston"
:
{
"version"
:
"3.13.0"
,
"resolved"
:
"https://registry.npmjs.org/winston/-/winston-3.13.0.tgz"
,
"integrity"
:
"sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ=="
,
"dependencies"
:
{
"@colors/colors"
:
"^1.6.0"
,
"@dabh/diagnostics"
:
"^2.0.2"
,
"async"
:
"^3.2.3"
,
"is-stream"
:
"^2.0.0"
,
"logform"
:
"^2.4.0"
,
"one-time"
:
"^1.0.0"
,
"readable-stream"
:
"^3.4.0"
,
"safe-stable-stringify"
:
"^2.3.1"
,
"stack-trace"
:
"0.0.x"
,
"triple-beam"
:
"^1.3.0"
,
"winston-transport"
:
"^4.7.0"
},
"engines"
:
{
"node"
:
">= 12.0.0"
}
},
"node_modules/winston-transport"
:
{
"version"
:
"4.7.0"
,
"resolved"
:
"https://registry.npmjs.org/winston-transport/-/winston-transport-4.7.0.tgz"
,
"integrity"
:
"sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg=="
,
"dependencies"
:
{
"logform"
:
"^2.3.2"
,
"readable-stream"
:
"^3.6.0"
,
"triple-beam"
:
"^1.3.0"
},
"engines"
:
{
"node"
:
">= 12.0.0"
}
},
"node_modules/ws"
:
{
"version"
:
"8.17.0"
,
"resolved"
:
"https://registry.npmjs.org/ws/-/ws-8.17.0.tgz"
,
"integrity"
:
"sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow=="
,
"engines"
:
{
"node"
:
">=10.0.0"
},
"peerDependencies"
:
{
"bufferutil"
:
"^4.0.1"
,
"utf-8-validate"
:
">=5.0.2"
},
"peerDependenciesMeta"
:
{
"bufferutil"
:
{
"optional"
:
true
},
"utf-8-validate"
:
{
"optional"
:
true
}
}
},
"node_modules/xml-name-validator"
:
{
"version"
:
"5.0.0"
,
"resolved"
:
"https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz"
,
"integrity"
:
"sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg=="
,
"engines"
:
{
"node"
:
">=18"
}
},
"node_modules/xmlchars"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz"
,
"integrity"
:
"sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
},
"node_modules/yn"
:
{
"version"
:
"3.1.1"
,
"resolved"
:
"https://registry.npmjs.org/yn/-/yn-3.1.1.tgz"
,
"integrity"
:
"sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="
,
"dev"
:
true
,
"engines"
:
{
"node"
:
">=6"
}
}
},
"dependencies"
:
{
"@colors/colors"
:
{
"version"
:
"1.6.0"
,
"resolved"
:
"https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz"
,
"integrity"
:
"sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA=="
},
"@cspotcode/source-map-support"
:
{
"version"
:
"0.8.1"
,
"resolved"
:
"https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz"
,
"integrity"
:
"sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw=="
,
"dev"
:
true
,
"requires"
:
{
"@jridgewell/trace-mapping"
:
"0.3.9"
}
},
"@dabh/diagnostics"
:
{
"version"
:
"2.0.3"
,
"resolved"
:
"https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz"
,
"integrity"
:
"sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA=="
,
"requires"
:
{
"colorspace"
:
"1.1.x"
,
"enabled"
:
"2.0.x"
,
"kuler"
:
"^2.0.0"
}
},
"@jridgewell/resolve-uri"
:
{
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz"
,
"integrity"
:
"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="
,
"dev"
:
true
},
"@jridgewell/sourcemap-codec"
:
{
"version"
:
"1.4.15"
,
"resolved"
:
"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz"
,
"integrity"
:
"sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
,
"dev"
:
true
},
"@jridgewell/trace-mapping"
:
{
"version"
:
"0.3.9"
,
"resolved"
:
"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz"
,
"integrity"
:
"sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ=="
,
"dev"
:
true
,
"requires"
:
{
"@jridgewell/resolve-uri"
:
"^3.0.3"
,
"@jridgewell/sourcemap-codec"
:
"^1.4.10"
}
},
"@mixmark-io/domino"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/@mixmark-io/domino/-/domino-2.2.0.tgz"
,
"integrity"
:
"sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw=="
},
"@tsconfig/node10"
:
{
"version"
:
"1.0.11"
,
"resolved"
:
"https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz"
,
"integrity"
:
"sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw=="
,
"dev"
:
true
},
"@tsconfig/node12"
:
{
"version"
:
"1.0.11"
,
"resolved"
:
"https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz"
,
"integrity"
:
"sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag=="
,
"dev"
:
true
},
"@tsconfig/node14"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz"
,
"integrity"
:
"sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow=="
,
"dev"
:
true
},
"@tsconfig/node16"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz"
,
"integrity"
:
"sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA=="
,
"dev"
:
true
},
"@types/body-parser"
:
{
"version"
:
"1.19.5"
,
"resolved"
:
"https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz"
,
"integrity"
:
"sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg=="
,
"dev"
:
true
,
"requires"
:
{
"@types/connect"
:
"*"
,
"@types/node"
:
"*"
}
},
"@types/connect"
:
{
"version"
:
"3.4.38"
,
"resolved"
:
"https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz"
,
"integrity"
:
"sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug=="
,
"dev"
:
true
,
"requires"
:
{
"@types/node"
:
"*"
}
},
"@types/express"
:
{
"version"
:
"4.17.21"
,
"resolved"
:
"https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz"
,
"integrity"
:
"sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ=="
,
"dev"
:
true
,
"requires"
:
{
"@types/body-parser"
:
"*"
,
"@types/express-serve-static-core"
:
"^4.17.33"
,
"@types/qs"
:
"*"
,
"@types/serve-static"
:
"*"
}
},
"@types/express-serve-static-core"
:
{
"version"
:
"4.19.1"
,
"resolved"
:
"https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.1.tgz"
,
"integrity"
:
"sha512-ej0phymbFLoCB26dbbq5PGScsf2JAJ4IJHjG10LalgUV36XKTmA4GdA+PVllKvRk0sEKt64X8975qFnkSi0hqA=="
,
"dev"
:
true
,
"requires"
:
{
"@types/node"
:
"*"
,
"@types/qs"
:
"*"
,
"@types/range-parser"
:
"*"
,
"@types/send"
:
"*"
}
},
"@types/http-errors"
:
{
"version"
:
"2.0.4"
,
"resolved"
:
"https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz"
,
"integrity"
:
"sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA=="
,
"dev"
:
true
},
"@types/jsdom"
:
{
"version"
:
"21.1.6"
,
"resolved"
:
"https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.6.tgz"
,
"integrity"
:
"sha512-/7kkMsC+/kMs7gAYmmBR9P0vGTnOoLhQhyhQJSlXGI5bzTHp6xdo0TtKWQAsz6pmSAeVqKSbqeyP6hytqr9FDw=="
,
"dev"
:
true
,
"requires"
:
{
"@types/node"
:
"*"
,
"@types/tough-cookie"
:
"*"
,
"parse5"
:
"^7.0.0"
}
},
"@types/mime"
:
{
"version"
:
"1.3.5"
,
"resolved"
:
"https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz"
,
"integrity"
:
"sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
,
"dev"
:
true
},
"@types/node"
:
{
"version"
:
"20.12.12"
,
"resolved"
:
"https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz"
,
"integrity"
:
"sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw=="
,
"dev"
:
true
,
"requires"
:
{
"undici-types"
:
"~5.26.4"
}
},
"@types/qs"
:
{
"version"
:
"6.9.15"
,
"resolved"
:
"https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz"
,
"integrity"
:
"sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg=="
,
"dev"
:
true
},
"@types/range-parser"
:
{
"version"
:
"1.2.7"
,
"resolved"
:
"https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz"
,
"integrity"
:
"sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="
,
"dev"
:
true
},
"@types/send"
:
{
"version"
:
"0.17.4"
,
"resolved"
:
"https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz"
,
"integrity"
:
"sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA=="
,
"dev"
:
true
,
"requires"
:
{
"@types/mime"
:
"^1"
,
"@types/node"
:
"*"
}
},
"@types/serve-static"
:
{
"version"
:
"1.15.7"
,
"resolved"
:
"https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz"
,
"integrity"
:
"sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw=="
,
"dev"
:
true
,
"requires"
:
{
"@types/http-errors"
:
"*"
,
"@types/node"
:
"*"
,
"@types/send"
:
"*"
}
},
"@types/tough-cookie"
:
{
"version"
:
"4.0.5"
,
"resolved"
:
"https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz"
,
"integrity"
:
"sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA=="
,
"dev"
:
true
},
"@types/triple-beam"
:
{
"version"
:
"1.3.5"
,
"resolved"
:
"https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz"
,
"integrity"
:
"sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw=="
},
"@types/turndown"
:
{
"version"
:
"5.0.4"
,
"resolved"
:
"https://registry.npmjs.org/@types/turndown/-/turndown-5.0.4.tgz"
,
"integrity"
:
"sha512-28GI33lCCkU4SGH1GvjDhFgOVr+Tym4PXGBIU1buJUa6xQolniPArtUT+kv42RR2N9MsMLInkr904Aq+ESHBJg=="
,
"dev"
:
true
},
"accepts"
:
{
"version"
:
"1.3.8"
,
"resolved"
:
"https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz"
,
"integrity"
:
"sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw=="
,
"requires"
:
{
"mime-types"
:
"~2.1.34"
,
"negotiator"
:
"0.6.3"
}
},
"acorn"
:
{
"version"
:
"8.11.3"
,
"resolved"
:
"https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz"
,
"integrity"
:
"sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg=="
,
"dev"
:
true
},
"acorn-walk"
:
{
"version"
:
"8.3.2"
,
"resolved"
:
"https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz"
,
"integrity"
:
"sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A=="
,
"dev"
:
true
},
"agent-base"
:
{
"version"
:
"7.1.1"
,
"resolved"
:
"https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz"
,
"integrity"
:
"sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA=="
,
"requires"
:
{
"debug"
:
"^4.3.4"
},
"dependencies"
:
{
"debug"
:
{
"version"
:
"4.3.4"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
,
"integrity"
:
"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
,
"requires"
:
{
"ms"
:
"2.1.2"
}
},
"ms"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
,
"integrity"
:
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"anymatch"
:
{
"version"
:
"3.1.3"
,
"resolved"
:
"https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz"
,
"integrity"
:
"sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="
,
"dev"
:
true
,
"requires"
:
{
"normalize-path"
:
"^3.0.0"
,
"picomatch"
:
"^2.0.4"
}
},
"arg"
:
{
"version"
:
"4.1.3"
,
"resolved"
:
"https://registry.npmjs.org/arg/-/arg-4.1.3.tgz"
,
"integrity"
:
"sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
,
"dev"
:
true
},
"array-flatten"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"
,
"integrity"
:
"sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
},
"async"
:
{
"version"
:
"3.2.5"
,
"resolved"
:
"https://registry.npmjs.org/async/-/async-3.2.5.tgz"
,
"integrity"
:
"sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg=="
},
"asynckit"
:
{
"version"
:
"0.4.0"
,
"resolved"
:
"https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
,
"integrity"
:
"sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"balanced-match"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
,
"integrity"
:
"sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
,
"dev"
:
true
},
"binary-extensions"
:
{
"version"
:
"2.3.0"
,
"resolved"
:
"https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz"
,
"integrity"
:
"sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="
,
"dev"
:
true
},
"body-parser"
:
{
"version"
:
"1.20.2"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz"
,
"integrity"
:
"sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA=="
,
"requires"
:
{
"bytes"
:
"3.1.2"
,
"content-type"
:
"~1.0.5"
,
"debug"
:
"2.6.9"
,
"depd"
:
"2.0.0"
,
"destroy"
:
"1.2.0"
,
"http-errors"
:
"2.0.0"
,
"iconv-lite"
:
"0.4.24"
,
"on-finished"
:
"2.4.1"
,
"qs"
:
"6.11.0"
,
"raw-body"
:
"2.5.2"
,
"type-is"
:
"~1.6.18"
,
"unpipe"
:
"1.0.0"
}
},
"brace-expansion"
:
{
"version"
:
"1.1.11"
,
"resolved"
:
"https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
,
"integrity"
:
"sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="
,
"dev"
:
true
,
"requires"
:
{
"balanced-match"
:
"^1.0.0"
,
"concat-map"
:
"0.0.1"
}
},
"braces"
:
{
"version"
:
"3.0.3"
,
"resolved"
:
"https://registry.npmjs.org/braces/-/braces-3.0.3.tgz"
,
"integrity"
:
"sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="
,
"dev"
:
true
,
"requires"
:
{
"fill-range"
:
"^7.1.1"
}
},
"bytes"
:
{
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
,
"integrity"
:
"sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
},
"call-bind"
:
{
"version"
:
"1.0.7"
,
"resolved"
:
"https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz"
,
"integrity"
:
"sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w=="
,
"requires"
:
{
"es-define-property"
:
"^1.0.0"
,
"es-errors"
:
"^1.3.0"
,
"function-bind"
:
"^1.1.2"
,
"get-intrinsic"
:
"^1.2.4"
,
"set-function-length"
:
"^1.2.1"
}
},
"chokidar"
:
{
"version"
:
"3.6.0"
,
"resolved"
:
"https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz"
,
"integrity"
:
"sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="
,
"dev"
:
true
,
"requires"
:
{
"anymatch"
:
"~3.1.2"
,
"braces"
:
"~3.0.2"
,
"fsevents"
:
"~2.3.2"
,
"glob-parent"
:
"~5.1.2"
,
"is-binary-path"
:
"~2.1.0"
,
"is-glob"
:
"~4.0.1"
,
"normalize-path"
:
"~3.0.0"
,
"readdirp"
:
"~3.6.0"
}
},
"color"
:
{
"version"
:
"3.2.1"
,
"resolved"
:
"https://registry.npmjs.org/color/-/color-3.2.1.tgz"
,
"integrity"
:
"sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA=="
,
"requires"
:
{
"color-convert"
:
"^1.9.3"
,
"color-string"
:
"^1.6.0"
}
},
"color-convert"
:
{
"version"
:
"1.9.3"
,
"resolved"
:
"https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
,
"integrity"
:
"sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="
,
"requires"
:
{
"color-name"
:
"1.1.3"
}
},
"color-name"
:
{
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
,
"integrity"
:
"sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
},
"color-string"
:
{
"version"
:
"1.9.1"
,
"resolved"
:
"https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz"
,
"integrity"
:
"sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg=="
,
"requires"
:
{
"color-name"
:
"^1.0.0"
,
"simple-swizzle"
:
"^0.2.2"
}
},
"colorspace"
:
{
"version"
:
"1.1.4"
,
"resolved"
:
"https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz"
,
"integrity"
:
"sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w=="
,
"requires"
:
{
"color"
:
"^3.1.3"
,
"text-hex"
:
"1.0.x"
}
},
"combined-stream"
:
{
"version"
:
"1.0.8"
,
"resolved"
:
"https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
,
"integrity"
:
"sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="
,
"requires"
:
{
"delayed-stream"
:
"~1.0.0"
}
},
"concat-map"
:
{
"version"
:
"0.0.1"
,
"resolved"
:
"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
,
"integrity"
:
"sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
,
"dev"
:
true
},
"content-disposition"
:
{
"version"
:
"0.5.4"
,
"resolved"
:
"https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz"
,
"integrity"
:
"sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ=="
,
"requires"
:
{
"safe-buffer"
:
"5.2.1"
}
},
"content-type"
:
{
"version"
:
"1.0.5"
,
"resolved"
:
"https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz"
,
"integrity"
:
"sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="
},
"cookie"
:
{
"version"
:
"0.6.0"
,
"resolved"
:
"https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz"
,
"integrity"
:
"sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="
},
"cookie-signature"
:
{
"version"
:
"1.0.6"
,
"resolved"
:
"https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
,
"integrity"
:
"sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
},
"create-require"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz"
,
"integrity"
:
"sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
,
"dev"
:
true
},
"cssstyle"
:
{
"version"
:
"4.0.1"
,
"resolved"
:
"https://registry.npmjs.org/cssstyle/-/cssstyle-4.0.1.tgz"
,
"integrity"
:
"sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ=="
,
"requires"
:
{
"rrweb-cssom"
:
"^0.6.0"
},
"dependencies"
:
{
"rrweb-cssom"
:
{
"version"
:
"0.6.0"
,
"resolved"
:
"https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz"
,
"integrity"
:
"sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw=="
}
}
},
"data-urls"
:
{
"version"
:
"5.0.0"
,
"resolved"
:
"https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz"
,
"integrity"
:
"sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg=="
,
"requires"
:
{
"whatwg-mimetype"
:
"^4.0.0"
,
"whatwg-url"
:
"^14.0.0"
}
},
"debug"
:
{
"version"
:
"2.6.9"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
,
"integrity"
:
"sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="
,
"requires"
:
{
"ms"
:
"2.0.0"
}
},
"decimal.js"
:
{
"version"
:
"10.4.3"
,
"resolved"
:
"https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz"
,
"integrity"
:
"sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA=="
},
"define-data-property"
:
{
"version"
:
"1.1.4"
,
"resolved"
:
"https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz"
,
"integrity"
:
"sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="
,
"requires"
:
{
"es-define-property"
:
"^1.0.0"
,
"es-errors"
:
"^1.3.0"
,
"gopd"
:
"^1.0.1"
}
},
"delayed-stream"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
,
"integrity"
:
"sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
},
"depd"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"
,
"integrity"
:
"sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
},
"destroy"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz"
,
"integrity"
:
"sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
},
"diff"
:
{
"version"
:
"4.0.2"
,
"resolved"
:
"https://registry.npmjs.org/diff/-/diff-4.0.2.tgz"
,
"integrity"
:
"sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="
,
"dev"
:
true
},
"ee-first"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
,
"integrity"
:
"sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"enabled"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz"
,
"integrity"
:
"sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="
},
"encodeurl"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
,
"integrity"
:
"sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
},
"entities"
:
{
"version"
:
"4.5.0"
,
"resolved"
:
"https://registry.npmjs.org/entities/-/entities-4.5.0.tgz"
,
"integrity"
:
"sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
},
"es-define-property"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz"
,
"integrity"
:
"sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ=="
,
"requires"
:
{
"get-intrinsic"
:
"^1.2.4"
}
},
"es-errors"
:
{
"version"
:
"1.3.0"
,
"resolved"
:
"https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz"
,
"integrity"
:
"sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="
},
"escape-html"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
,
"integrity"
:
"sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"etag"
:
{
"version"
:
"1.8.1"
,
"resolved"
:
"https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
,
"integrity"
:
"sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
},
"express"
:
{
"version"
:
"4.19.2"
,
"resolved"
:
"https://registry.npmjs.org/express/-/express-4.19.2.tgz"
,
"integrity"
:
"sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q=="
,
"requires"
:
{
"accepts"
:
"~1.3.8"
,
"array-flatten"
:
"1.1.1"
,
"body-parser"
:
"1.20.2"
,
"content-disposition"
:
"0.5.4"
,
"content-type"
:
"~1.0.4"
,
"cookie"
:
"0.6.0"
,
"cookie-signature"
:
"1.0.6"
,
"debug"
:
"2.6.9"
,
"depd"
:
"2.0.0"
,
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"etag"
:
"~1.8.1"
,
"finalhandler"
:
"1.2.0"
,
"fresh"
:
"0.5.2"
,
"http-errors"
:
"2.0.0"
,
"merge-descriptors"
:
"1.0.1"
,
"methods"
:
"~1.1.2"
,
"on-finished"
:
"2.4.1"
,
"parseurl"
:
"~1.3.3"
,
"path-to-regexp"
:
"0.1.7"
,
"proxy-addr"
:
"~2.0.7"
,
"qs"
:
"6.11.0"
,
"range-parser"
:
"~1.2.1"
,
"safe-buffer"
:
"5.2.1"
,
"send"
:
"0.18.0"
,
"serve-static"
:
"1.15.0"
,
"setprototypeof"
:
"1.2.0"
,
"statuses"
:
"2.0.1"
,
"type-is"
:
"~1.6.18"
,
"utils-merge"
:
"1.0.1"
,
"vary"
:
"~1.1.2"
}
},
"fecha"
:
{
"version"
:
"4.2.3"
,
"resolved"
:
"https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz"
,
"integrity"
:
"sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw=="
},
"fill-range"
:
{
"version"
:
"7.1.1"
,
"resolved"
:
"https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz"
,
"integrity"
:
"sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="
,
"dev"
:
true
,
"requires"
:
{
"to-regex-range"
:
"^5.0.1"
}
},
"finalhandler"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz"
,
"integrity"
:
"sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg=="
,
"requires"
:
{
"debug"
:
"2.6.9"
,
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"on-finished"
:
"2.4.1"
,
"parseurl"
:
"~1.3.3"
,
"statuses"
:
"2.0.1"
,
"unpipe"
:
"~1.0.0"
}
},
"fn.name"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz"
,
"integrity"
:
"sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
},
"form-data"
:
{
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz"
,
"integrity"
:
"sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww=="
,
"requires"
:
{
"asynckit"
:
"^0.4.0"
,
"combined-stream"
:
"^1.0.8"
,
"mime-types"
:
"^2.1.12"
}
},
"forwarded"
:
{
"version"
:
"0.2.0"
,
"resolved"
:
"https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz"
,
"integrity"
:
"sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
},
"fresh"
:
{
"version"
:
"0.5.2"
,
"resolved"
:
"https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
,
"integrity"
:
"sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
},
"fsevents"
:
{
"version"
:
"2.3.3"
,
"resolved"
:
"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz"
,
"integrity"
:
"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="
,
"dev"
:
true
,
"optional"
:
true
},
"function-bind"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz"
,
"integrity"
:
"sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
},
"get-intrinsic"
:
{
"version"
:
"1.2.4"
,
"resolved"
:
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz"
,
"integrity"
:
"sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ=="
,
"requires"
:
{
"es-errors"
:
"^1.3.0"
,
"function-bind"
:
"^1.1.2"
,
"has-proto"
:
"^1.0.1"
,
"has-symbols"
:
"^1.0.3"
,
"hasown"
:
"^2.0.0"
}
},
"glob-parent"
:
{
"version"
:
"5.1.2"
,
"resolved"
:
"https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
,
"integrity"
:
"sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="
,
"dev"
:
true
,
"requires"
:
{
"is-glob"
:
"^4.0.1"
}
},
"gopd"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz"
,
"integrity"
:
"sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA=="
,
"requires"
:
{
"get-intrinsic"
:
"^1.1.3"
}
},
"has-flag"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
,
"integrity"
:
"sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
,
"dev"
:
true
},
"has-property-descriptors"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz"
,
"integrity"
:
"sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="
,
"requires"
:
{
"es-define-property"
:
"^1.0.0"
}
},
"has-proto"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz"
,
"integrity"
:
"sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q=="
},
"has-symbols"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"
,
"integrity"
:
"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
},
"hasown"
:
{
"version"
:
"2.0.2"
,
"resolved"
:
"https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz"
,
"integrity"
:
"sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="
,
"requires"
:
{
"function-bind"
:
"^1.1.2"
}
},
"html-encoding-sniffer"
:
{
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz"
,
"integrity"
:
"sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ=="
,
"requires"
:
{
"whatwg-encoding"
:
"^3.1.1"
}
},
"http-errors"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz"
,
"integrity"
:
"sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="
,
"requires"
:
{
"depd"
:
"2.0.0"
,
"inherits"
:
"2.0.4"
,
"setprototypeof"
:
"1.2.0"
,
"statuses"
:
"2.0.1"
,
"toidentifier"
:
"1.0.1"
}
},
"http-proxy-agent"
:
{
"version"
:
"7.0.2"
,
"resolved"
:
"https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz"
,
"integrity"
:
"sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig=="
,
"requires"
:
{
"agent-base"
:
"^7.1.0"
,
"debug"
:
"^4.3.4"
},
"dependencies"
:
{
"debug"
:
{
"version"
:
"4.3.4"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
,
"integrity"
:
"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
,
"requires"
:
{
"ms"
:
"2.1.2"
}
},
"ms"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
,
"integrity"
:
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"https-proxy-agent"
:
{
"version"
:
"7.0.4"
,
"resolved"
:
"https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz"
,
"integrity"
:
"sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg=="
,
"requires"
:
{
"agent-base"
:
"^7.0.2"
,
"debug"
:
"4"
},
"dependencies"
:
{
"debug"
:
{
"version"
:
"4.3.4"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
,
"integrity"
:
"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
,
"requires"
:
{
"ms"
:
"2.1.2"
}
},
"ms"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
,
"integrity"
:
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"iconv-lite"
:
{
"version"
:
"0.4.24"
,
"resolved"
:
"https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"
,
"integrity"
:
"sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="
,
"requires"
:
{
"safer-buffer"
:
">= 2.1.2 < 3"
}
},
"ignore-by-default"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz"
,
"integrity"
:
"sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA=="
,
"dev"
:
true
},
"inherits"
:
{
"version"
:
"2.0.4"
,
"resolved"
:
"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
,
"integrity"
:
"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"ipaddr.js"
:
{
"version"
:
"1.9.1"
,
"resolved"
:
"https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"
,
"integrity"
:
"sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
},
"is-arrayish"
:
{
"version"
:
"0.3.2"
,
"resolved"
:
"https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz"
,
"integrity"
:
"sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
},
"is-binary-path"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"
,
"integrity"
:
"sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="
,
"dev"
:
true
,
"requires"
:
{
"binary-extensions"
:
"^2.0.0"
}
},
"is-extglob"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
,
"integrity"
:
"sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
,
"dev"
:
true
},
"is-glob"
:
{
"version"
:
"4.0.3"
,
"resolved"
:
"https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
,
"integrity"
:
"sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="
,
"dev"
:
true
,
"requires"
:
{
"is-extglob"
:
"^2.1.1"
}
},
"is-number"
:
{
"version"
:
"7.0.0"
,
"resolved"
:
"https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
,
"integrity"
:
"sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
,
"dev"
:
true
},
"is-potential-custom-element-name"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz"
,
"integrity"
:
"sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="
},
"is-stream"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz"
,
"integrity"
:
"sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
},
"jsdom"
:
{
"version"
:
"24.1.0"
,
"resolved"
:
"https://registry.npmjs.org/jsdom/-/jsdom-24.1.0.tgz"
,
"integrity"
:
"sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA=="
,
"requires"
:
{
"cssstyle"
:
"^4.0.1"
,
"data-urls"
:
"^5.0.0"
,
"decimal.js"
:
"^10.4.3"
,
"form-data"
:
"^4.0.0"
,
"html-encoding-sniffer"
:
"^4.0.0"
,
"http-proxy-agent"
:
"^7.0.2"
,
"https-proxy-agent"
:
"^7.0.4"
,
"is-potential-custom-element-name"
:
"^1.0.1"
,
"nwsapi"
:
"^2.2.10"
,
"parse5"
:
"^7.1.2"
,
"rrweb-cssom"
:
"^0.7.0"
,
"saxes"
:
"^6.0.0"
,
"symbol-tree"
:
"^3.2.4"
,
"tough-cookie"
:
"^4.1.4"
,
"w3c-xmlserializer"
:
"^5.0.0"
,
"webidl-conversions"
:
"^7.0.0"
,
"whatwg-encoding"
:
"^3.1.1"
,
"whatwg-mimetype"
:
"^4.0.0"
,
"whatwg-url"
:
"^14.0.0"
,
"ws"
:
"^8.17.0"
,
"xml-name-validator"
:
"^5.0.0"
}
},
"kuler"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz"
,
"integrity"
:
"sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="
},
"logform"
:
{
"version"
:
"2.6.0"
,
"resolved"
:
"https://registry.npmjs.org/logform/-/logform-2.6.0.tgz"
,
"integrity"
:
"sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ=="
,
"requires"
:
{
"@colors/colors"
:
"1.6.0"
,
"@types/triple-beam"
:
"^1.3.2"
,
"fecha"
:
"^4.2.0"
,
"ms"
:
"^2.1.1"
,
"safe-stable-stringify"
:
"^2.3.1"
,
"triple-beam"
:
"^1.3.0"
},
"dependencies"
:
{
"ms"
:
{
"version"
:
"2.1.3"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
,
"integrity"
:
"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
}
}
},
"make-error"
:
{
"version"
:
"1.3.6"
,
"resolved"
:
"https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz"
,
"integrity"
:
"sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
,
"dev"
:
true
},
"media-typer"
:
{
"version"
:
"0.3.0"
,
"resolved"
:
"https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
,
"integrity"
:
"sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
},
"merge-descriptors"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
,
"integrity"
:
"sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
},
"methods"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"
,
"integrity"
:
"sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
},
"mime"
:
{
"version"
:
"1.6.0"
,
"resolved"
:
"https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"
,
"integrity"
:
"sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
},
"mime-db"
:
{
"version"
:
"1.52.0"
,
"resolved"
:
"https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
,
"integrity"
:
"sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
},
"mime-types"
:
{
"version"
:
"2.1.35"
,
"resolved"
:
"https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
,
"integrity"
:
"sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="
,
"requires"
:
{
"mime-db"
:
"1.52.0"
}
},
"minimatch"
:
{
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
,
"integrity"
:
"sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="
,
"dev"
:
true
,
"requires"
:
{
"brace-expansion"
:
"^1.1.7"
}
},
"ms"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
,
"integrity"
:
"sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"negotiator"
:
{
"version"
:
"0.6.3"
,
"resolved"
:
"https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz"
,
"integrity"
:
"sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
},
"nodemon"
:
{
"version"
:
"3.1.1"
,
"resolved"
:
"https://registry.npmjs.org/nodemon/-/nodemon-3.1.1.tgz"
,
"integrity"
:
"sha512-k43xGaDtaDIcufn0Fc6fTtsdKSkV/hQzoQFigNH//GaKta28yoKVYXCnV+KXRqfT/YzsFaQU9VdeEG+HEyxr6A=="
,
"dev"
:
true
,
"requires"
:
{
"chokidar"
:
"^3.5.2"
,
"debug"
:
"^4"
,
"ignore-by-default"
:
"^1.0.1"
,
"minimatch"
:
"^3.1.2"
,
"pstree.remy"
:
"^1.1.8"
,
"semver"
:
"^7.5.3"
,
"simple-update-notifier"
:
"^2.0.0"
,
"supports-color"
:
"^5.5.0"
,
"touch"
:
"^3.1.0"
,
"undefsafe"
:
"^2.0.5"
},
"dependencies"
:
{
"debug"
:
{
"version"
:
"4.3.4"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
,
"integrity"
:
"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
,
"dev"
:
true
,
"requires"
:
{
"ms"
:
"2.1.2"
}
},
"ms"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
,
"integrity"
:
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
,
"dev"
:
true
}
}
},
"normalize-path"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
,
"integrity"
:
"sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
,
"dev"
:
true
},
"nwsapi"
:
{
"version"
:
"2.2.10"
,
"resolved"
:
"https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.10.tgz"
,
"integrity"
:
"sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ=="
},
"object-inspect"
:
{
"version"
:
"1.13.1"
,
"resolved"
:
"https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz"
,
"integrity"
:
"sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ=="
},
"on-finished"
:
{
"version"
:
"2.4.1"
,
"resolved"
:
"https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz"
,
"integrity"
:
"sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="
,
"requires"
:
{
"ee-first"
:
"1.1.1"
}
},
"one-time"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz"
,
"integrity"
:
"sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g=="
,
"requires"
:
{
"fn.name"
:
"1.x.x"
}
},
"parse5"
:
{
"version"
:
"7.1.2"
,
"resolved"
:
"https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz"
,
"integrity"
:
"sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw=="
,
"requires"
:
{
"entities"
:
"^4.4.0"
}
},
"parseurl"
:
{
"version"
:
"1.3.3"
,
"resolved"
:
"https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
,
"integrity"
:
"sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
},
"path-to-regexp"
:
{
"version"
:
"0.1.7"
,
"resolved"
:
"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"
,
"integrity"
:
"sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
},
"picomatch"
:
{
"version"
:
"2.3.1"
,
"resolved"
:
"https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
,
"integrity"
:
"sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
,
"dev"
:
true
},
"pnpm"
:
{
"version"
:
"9.1.2"
,
"resolved"
:
"https://registry.npmjs.org/pnpm/-/pnpm-9.1.2.tgz"
,
"integrity"
:
"sha512-En3IO56hDDK+ZdIqjvtKZfuVLo/vvf3tOb3DyX78MtMbSLAEIN8sEYes4oySHJAvDLWhNKTQMri1KVy/osaB4g=="
},
"proxy-addr"
:
{
"version"
:
"2.0.7"
,
"resolved"
:
"https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz"
,
"integrity"
:
"sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="
,
"requires"
:
{
"forwarded"
:
"0.2.0"
,
"ipaddr.js"
:
"1.9.1"
}
},
"psl"
:
{
"version"
:
"1.9.0"
,
"resolved"
:
"https://registry.npmjs.org/psl/-/psl-1.9.0.tgz"
,
"integrity"
:
"sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
},
"pstree.remy"
:
{
"version"
:
"1.1.8"
,
"resolved"
:
"https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz"
,
"integrity"
:
"sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w=="
,
"dev"
:
true
},
"punycode"
:
{
"version"
:
"2.3.1"
,
"resolved"
:
"https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz"
,
"integrity"
:
"sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="
},
"qs"
:
{
"version"
:
"6.11.0"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.11.0.tgz"
,
"integrity"
:
"sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q=="
,
"requires"
:
{
"side-channel"
:
"^1.0.4"
}
},
"querystringify"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz"
,
"integrity"
:
"sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
},
"range-parser"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
,
"integrity"
:
"sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
},
"raw-body"
:
{
"version"
:
"2.5.2"
,
"resolved"
:
"https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz"
,
"integrity"
:
"sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA=="
,
"requires"
:
{
"bytes"
:
"3.1.2"
,
"http-errors"
:
"2.0.0"
,
"iconv-lite"
:
"0.4.24"
,
"unpipe"
:
"1.0.0"
}
},
"readable-stream"
:
{
"version"
:
"3.6.2"
,
"resolved"
:
"https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz"
,
"integrity"
:
"sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="
,
"requires"
:
{
"inherits"
:
"^2.0.3"
,
"string_decoder"
:
"^1.1.1"
,
"util-deprecate"
:
"^1.0.1"
}
},
"readdirp"
:
{
"version"
:
"3.6.0"
,
"resolved"
:
"https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
,
"integrity"
:
"sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="
,
"dev"
:
true
,
"requires"
:
{
"picomatch"
:
"^2.2.1"
}
},
"requires-port"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz"
,
"integrity"
:
"sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
},
"rrweb-cssom"
:
{
"version"
:
"0.7.0"
,
"resolved"
:
"https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.0.tgz"
,
"integrity"
:
"sha512-KlSv0pm9kgQSRxXEMgtivPJ4h826YHsuob8pSHcfSZsSXGtvpEAie8S0AnXuObEJ7nhikOb4ahwxDm0H2yW17g=="
},
"safe-buffer"
:
{
"version"
:
"5.2.1"
,
"resolved"
:
"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
,
"integrity"
:
"sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
"safe-stable-stringify"
:
{
"version"
:
"2.4.3"
,
"resolved"
:
"https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz"
,
"integrity"
:
"sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g=="
},
"safer-buffer"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
,
"integrity"
:
"sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"saxes"
:
{
"version"
:
"6.0.0"
,
"resolved"
:
"https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz"
,
"integrity"
:
"sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA=="
,
"requires"
:
{
"xmlchars"
:
"^2.2.0"
}
},
"semver"
:
{
"version"
:
"7.6.2"
,
"resolved"
:
"https://registry.npmjs.org/semver/-/semver-7.6.2.tgz"
,
"integrity"
:
"sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w=="
,
"dev"
:
true
},
"send"
:
{
"version"
:
"0.18.0"
,
"resolved"
:
"https://registry.npmjs.org/send/-/send-0.18.0.tgz"
,
"integrity"
:
"sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg=="
,
"requires"
:
{
"debug"
:
"2.6.9"
,
"depd"
:
"2.0.0"
,
"destroy"
:
"1.2.0"
,
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"etag"
:
"~1.8.1"
,
"fresh"
:
"0.5.2"
,
"http-errors"
:
"2.0.0"
,
"mime"
:
"1.6.0"
,
"ms"
:
"2.1.3"
,
"on-finished"
:
"2.4.1"
,
"range-parser"
:
"~1.2.1"
,
"statuses"
:
"2.0.1"
},
"dependencies"
:
{
"ms"
:
{
"version"
:
"2.1.3"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
,
"integrity"
:
"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
}
}
},
"serve-static"
:
{
"version"
:
"1.15.0"
,
"resolved"
:
"https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz"
,
"integrity"
:
"sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g=="
,
"requires"
:
{
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"parseurl"
:
"~1.3.3"
,
"send"
:
"0.18.0"
}
},
"set-function-length"
:
{
"version"
:
"1.2.2"
,
"resolved"
:
"https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz"
,
"integrity"
:
"sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="
,
"requires"
:
{
"define-data-property"
:
"^1.1.4"
,
"es-errors"
:
"^1.3.0"
,
"function-bind"
:
"^1.1.2"
,
"get-intrinsic"
:
"^1.2.4"
,
"gopd"
:
"^1.0.1"
,
"has-property-descriptors"
:
"^1.0.2"
}
},
"setprototypeof"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz"
,
"integrity"
:
"sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"side-channel"
:
{
"version"
:
"1.0.6"
,
"resolved"
:
"https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz"
,
"integrity"
:
"sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA=="
,
"requires"
:
{
"call-bind"
:
"^1.0.7"
,
"es-errors"
:
"^1.3.0"
,
"get-intrinsic"
:
"^1.2.4"
,
"object-inspect"
:
"^1.13.1"
}
},
"simple-swizzle"
:
{
"version"
:
"0.2.2"
,
"resolved"
:
"https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz"
,
"integrity"
:
"sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg=="
,
"requires"
:
{
"is-arrayish"
:
"^0.3.1"
}
},
"simple-update-notifier"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz"
,
"integrity"
:
"sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w=="
,
"dev"
:
true
,
"requires"
:
{
"semver"
:
"^7.5.3"
}
},
"stack-trace"
:
{
"version"
:
"0.0.10"
,
"resolved"
:
"https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz"
,
"integrity"
:
"sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg=="
},
"statuses"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz"
,
"integrity"
:
"sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
},
"string_decoder"
:
{
"version"
:
"1.3.0"
,
"resolved"
:
"https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz"
,
"integrity"
:
"sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="
,
"requires"
:
{
"safe-buffer"
:
"~5.2.0"
}
},
"supports-color"
:
{
"version"
:
"5.5.0"
,
"resolved"
:
"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
,
"integrity"
:
"sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="
,
"dev"
:
true
,
"requires"
:
{
"has-flag"
:
"^3.0.0"
}
},
"symbol-tree"
:
{
"version"
:
"3.2.4"
,
"resolved"
:
"https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz"
,
"integrity"
:
"sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
},
"text-hex"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz"
,
"integrity"
:
"sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
},
"to-regex-range"
:
{
"version"
:
"5.0.1"
,
"resolved"
:
"https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
,
"integrity"
:
"sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="
,
"dev"
:
true
,
"requires"
:
{
"is-number"
:
"^7.0.0"
}
},
"toidentifier"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz"
,
"integrity"
:
"sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
},
"touch"
:
{
"version"
:
"3.1.1"
,
"resolved"
:
"https://registry.npmjs.org/touch/-/touch-3.1.1.tgz"
,
"integrity"
:
"sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA=="
,
"dev"
:
true
},
"tough-cookie"
:
{
"version"
:
"4.1.4"
,
"resolved"
:
"https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz"
,
"integrity"
:
"sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag=="
,
"requires"
:
{
"psl"
:
"^1.1.33"
,
"punycode"
:
"^2.1.1"
,
"universalify"
:
"^0.2.0"
,
"url-parse"
:
"^1.5.3"
}
},
"tr46"
:
{
"version"
:
"5.0.0"
,
"resolved"
:
"https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz"
,
"integrity"
:
"sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g=="
,
"requires"
:
{
"punycode"
:
"^2.3.1"
}
},
"triple-beam"
:
{
"version"
:
"1.4.1"
,
"resolved"
:
"https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz"
,
"integrity"
:
"sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg=="
},
"ts-node"
:
{
"version"
:
"10.9.2"
,
"resolved"
:
"https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz"
,
"integrity"
:
"sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ=="
,
"dev"
:
true
,
"requires"
:
{
"@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"
}
},
"turndown"
:
{
"version"
:
"7.2.0"
,
"resolved"
:
"https://registry.npmjs.org/turndown/-/turndown-7.2.0.tgz"
,
"integrity"
:
"sha512-eCZGBN4nNNqM9Owkv9HAtWRYfLA4h909E/WGAWWBpmB275ehNhZyk87/Tpvjbp0jjNl9XwCsbe6bm6CqFsgD+A=="
,
"requires"
:
{
"@mixmark-io/domino"
:
"^2.2.0"
}
},
"type-is"
:
{
"version"
:
"1.6.18"
,
"resolved"
:
"https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz"
,
"integrity"
:
"sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="
,
"requires"
:
{
"media-typer"
:
"0.3.0"
,
"mime-types"
:
"~2.1.24"
}
},
"typescript"
:
{
"version"
:
"5.4.5"
,
"resolved"
:
"https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz"
,
"integrity"
:
"sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ=="
,
"dev"
:
true
,
"peer"
:
true
},
"undefsafe"
:
{
"version"
:
"2.0.5"
,
"resolved"
:
"https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz"
,
"integrity"
:
"sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA=="
,
"dev"
:
true
},
"undici-types"
:
{
"version"
:
"5.26.5"
,
"resolved"
:
"https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz"
,
"integrity"
:
"sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
,
"dev"
:
true
},
"universalify"
:
{
"version"
:
"0.2.0"
,
"resolved"
:
"https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz"
,
"integrity"
:
"sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg=="
},
"unpipe"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
,
"integrity"
:
"sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
},
"url-parse"
:
{
"version"
:
"1.5.10"
,
"resolved"
:
"https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz"
,
"integrity"
:
"sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ=="
,
"requires"
:
{
"querystringify"
:
"^2.1.1"
,
"requires-port"
:
"^1.0.0"
}
},
"util-deprecate"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
,
"integrity"
:
"sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"utils-merge"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"
,
"integrity"
:
"sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
},
"v8-compile-cache-lib"
:
{
"version"
:
"3.0.1"
,
"resolved"
:
"https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz"
,
"integrity"
:
"sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="
,
"dev"
:
true
},
"vary"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
,
"integrity"
:
"sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
},
"w3c-xmlserializer"
:
{
"version"
:
"5.0.0"
,
"resolved"
:
"https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz"
,
"integrity"
:
"sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA=="
,
"requires"
:
{
"xml-name-validator"
:
"^5.0.0"
}
},
"webidl-conversions"
:
{
"version"
:
"7.0.0"
,
"resolved"
:
"https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz"
,
"integrity"
:
"sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="
},
"whatwg-encoding"
:
{
"version"
:
"3.1.1"
,
"resolved"
:
"https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz"
,
"integrity"
:
"sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ=="
,
"requires"
:
{
"iconv-lite"
:
"0.6.3"
},
"dependencies"
:
{
"iconv-lite"
:
{
"version"
:
"0.6.3"
,
"resolved"
:
"https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz"
,
"integrity"
:
"sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="
,
"requires"
:
{
"safer-buffer"
:
">= 2.1.2 < 3.0.0"
}
}
}
},
"whatwg-mimetype"
:
{
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz"
,
"integrity"
:
"sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg=="
},
"whatwg-url"
:
{
"version"
:
"14.0.0"
,
"resolved"
:
"https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz"
,
"integrity"
:
"sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw=="
,
"requires"
:
{
"tr46"
:
"^5.0.0"
,
"webidl-conversions"
:
"^7.0.0"
}
},
"winston"
:
{
"version"
:
"3.13.0"
,
"resolved"
:
"https://registry.npmjs.org/winston/-/winston-3.13.0.tgz"
,
"integrity"
:
"sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ=="
,
"requires"
:
{
"@colors/colors"
:
"^1.6.0"
,
"@dabh/diagnostics"
:
"^2.0.2"
,
"async"
:
"^3.2.3"
,
"is-stream"
:
"^2.0.0"
,
"logform"
:
"^2.4.0"
,
"one-time"
:
"^1.0.0"
,
"readable-stream"
:
"^3.4.0"
,
"safe-stable-stringify"
:
"^2.3.1"
,
"stack-trace"
:
"0.0.x"
,
"triple-beam"
:
"^1.3.0"
,
"winston-transport"
:
"^4.7.0"
}
},
"winston-transport"
:
{
"version"
:
"4.7.0"
,
"resolved"
:
"https://registry.npmjs.org/winston-transport/-/winston-transport-4.7.0.tgz"
,
"integrity"
:
"sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg=="
,
"requires"
:
{
"logform"
:
"^2.3.2"
,
"readable-stream"
:
"^3.6.0"
,
"triple-beam"
:
"^1.3.0"
}
},
"ws"
:
{
"version"
:
"8.17.0"
,
"resolved"
:
"https://registry.npmjs.org/ws/-/ws-8.17.0.tgz"
,
"integrity"
:
"sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow=="
,
"requires"
:
{}
},
"xml-name-validator"
:
{
"version"
:
"5.0.0"
,
"resolved"
:
"https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz"
,
"integrity"
:
"sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg=="
},
"xmlchars"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz"
,
"integrity"
:
"sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
},
"yn"
:
{
"version"
:
"3.1.1"
,
"resolved"
:
"https://registry.npmjs.org/yn/-/yn-3.1.1.tgz"
,
"integrity"
:
"sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="
,
"dev"
:
true
}
}
}
composite_demo/browser/package.json
0 → 100644
View file @
9eb7f37f
{
"name"
:
"glm4-browser"
,
"version"
:
"1.0.0"
,
"description"
:
"Browser system for GLM-4"
,
"main"
:
"src/server.ts"
,
"scripts"
:
{
"dev"
:
"npx nodemon src/server"
,
"start"
:
"npx ts-node src/server.ts"
},
"license"
:
"MIT"
,
"dependencies"
:
{
"express"
:
"^4.18.3"
,
"jsdom"
:
"^24.0.0"
,
"pnpm"
:
"^9.1.2"
,
"turndown"
:
"^7.1.2"
,
"winston"
:
"^3.11.0"
},
"devDependencies"
:
{
"@types/express"
:
"^4.17.21"
,
"@types/jsdom"
:
"^21.1.6"
,
"@types/node"
:
"^20.11.20"
,
"@types/turndown"
:
"^5.0.4"
,
"nodemon"
:
"^3.1.0"
,
"ts-node"
:
"^10.9.2"
}
}
composite_demo/browser/pnpm-lock.yaml
0 → 100644
View file @
9eb7f37f
lockfileVersion
:
'
9.0'
settings
:
autoInstallPeers
:
true
excludeLinksFromLockfile
:
false
importers
:
.
:
dependencies
:
express
:
specifier
:
^4.18.3
version
:
4.18.3
jsdom
:
specifier
:
^24.0.0
version
:
24.0.0
pnpm
:
specifier
:
^9.1.2
version
:
9.1.2
turndown
:
specifier
:
^7.1.2
version
:
7.1.2
winston
:
specifier
:
^3.11.0
version
:
3.11.0
devDependencies
:
'
@types/express'
:
specifier
:
^4.17.21
version
:
4.17.21
'
@types/jsdom'
:
specifier
:
^21.1.6
version
:
21.1.6
'
@types/node'
:
specifier
:
^20.11.20
version
:
20.11.20
'
@types/turndown'
:
specifier
:
^5.0.4
version
:
5.0.4
nodemon
:
specifier
:
^3.1.0
version
:
3.1.0
ts-node
:
specifier
:
^10.9.2
version
:
10.9.2(@types/node@20.11.20)(typescript@5.3.3)
packages
:
'
@colors/colors@1.6.0'
:
resolution
:
{
integrity
:
sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==
}
engines
:
{
node
:
'
>=0.1.90'
}
'
@cspotcode/source-map-support@0.8.1'
:
resolution
:
{
integrity
:
sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==
}
engines
:
{
node
:
'
>=12'
}
'
@dabh/diagnostics@2.0.3'
:
resolution
:
{
integrity
:
sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==
}
'
@jridgewell/resolve-uri@3.1.2'
:
resolution
:
{
integrity
:
sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
}
engines
:
{
node
:
'
>=6.0.0'
}
'
@jridgewell/sourcemap-codec@1.4.15'
:
resolution
:
{
integrity
:
sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
}
'
@jridgewell/trace-mapping@0.3.9'
:
resolution
:
{
integrity
:
sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
}
'
@tsconfig/node10@1.0.9'
:
resolution
:
{
integrity
:
sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==
}
'
@tsconfig/node12@1.0.11'
:
resolution
:
{
integrity
:
sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==
}
'
@tsconfig/node14@1.0.3'
:
resolution
:
{
integrity
:
sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==
}
'
@tsconfig/node16@1.0.4'
:
resolution
:
{
integrity
:
sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
}
'
@types/body-parser@1.19.5'
:
resolution
:
{
integrity
:
sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==
}
'
@types/connect@3.4.38'
:
resolution
:
{
integrity
:
sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==
}
'
@types/express-serve-static-core@4.17.43'
:
resolution
:
{
integrity
:
sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==
}
'
@types/express@4.17.21'
:
resolution
:
{
integrity
:
sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==
}
'
@types/http-errors@2.0.4'
:
resolution
:
{
integrity
:
sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==
}
'
@types/jsdom@21.1.6'
:
resolution
:
{
integrity
:
sha512-/7kkMsC+/kMs7gAYmmBR9P0vGTnOoLhQhyhQJSlXGI5bzTHp6xdo0TtKWQAsz6pmSAeVqKSbqeyP6hytqr9FDw==
}
'
@types/mime@1.3.5'
:
resolution
:
{
integrity
:
sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==
}
'
@types/mime@3.0.4'
:
resolution
:
{
integrity
:
sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==
}
'
@types/node@20.11.20'
:
resolution
:
{
integrity
:
sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==
}
'
@types/qs@6.9.12'
:
resolution
:
{
integrity
:
sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==
}
'
@types/range-parser@1.2.7'
:
resolution
:
{
integrity
:
sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==
}
'
@types/send@0.17.4'
:
resolution
:
{
integrity
:
sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==
}
'
@types/serve-static@1.15.5'
:
resolution
:
{
integrity
:
sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==
}
'
@types/tough-cookie@4.0.5'
:
resolution
:
{
integrity
:
sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==
}
'
@types/triple-beam@1.3.5'
:
resolution
:
{
integrity
:
sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==
}
'
@types/turndown@5.0.4'
:
resolution
:
{
integrity
:
sha512-28GI33lCCkU4SGH1GvjDhFgOVr+Tym4PXGBIU1buJUa6xQolniPArtUT+kv42RR2N9MsMLInkr904Aq+ESHBJg==
}
abbrev@1.1.1
:
resolution
:
{
integrity
:
sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
}
accepts@1.3.8
:
resolution
:
{
integrity
:
sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
}
engines
:
{
node
:
'
>=
0.6'
}
acorn-walk@8.3.2
:
resolution
:
{
integrity
:
sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==
}
engines
:
{
node
:
'
>=0.4.0'
}
acorn@8.11.3
:
resolution
:
{
integrity
:
sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
}
engines
:
{
node
:
'
>=0.4.0'
}
hasBin
:
true
agent-base@7.1.0
:
resolution
:
{
integrity
:
sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==
}
engines
:
{
node
:
'
>=
14'
}
anymatch@3.1.3
:
resolution
:
{
integrity
:
sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
}
engines
:
{
node
:
'
>=
8'
}
arg@4.1.3
:
resolution
:
{
integrity
:
sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
}
array-flatten@1.1.1
:
resolution
:
{
integrity
:
sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
}
async@3.2.5
:
resolution
:
{
integrity
:
sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==
}
asynckit@0.4.0
:
resolution
:
{
integrity
:
sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
}
balanced-match@1.0.2
:
resolution
:
{
integrity
:
sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
}
binary-extensions@2.2.0
:
resolution
:
{
integrity
:
sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
}
engines
:
{
node
:
'
>=8'
}
body-parser@1.20.2
:
resolution
:
{
integrity
:
sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==
}
engines
:
{
node
:
'
>=
0.8'
,
npm
:
1.2.8000 || >= 1.4.16
}
brace-expansion@1.1.11
:
resolution
:
{
integrity
:
sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
}
braces@3.0.2
:
resolution
:
{
integrity
:
sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
}
engines
:
{
node
:
'
>=8'
}
bytes@3.1.2
:
resolution
:
{
integrity
:
sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
}
engines
:
{
node
:
'
>=
0.8'
}
call-bind@1.0.7
:
resolution
:
{
integrity
:
sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==
}
engines
:
{
node
:
'
>=
0.4'
}
chokidar@3.6.0
:
resolution
:
{
integrity
:
sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
}
engines
:
{
node
:
'
>=
8.10.0'
}
color-convert@1.9.3
:
resolution
:
{
integrity
:
sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
}
color-name@1.1.3
:
resolution
:
{
integrity
:
sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
}
color-name@1.1.4
:
resolution
:
{
integrity
:
sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
}
color-string@1.9.1
:
resolution
:
{
integrity
:
sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==
}
color@3.2.1
:
resolution
:
{
integrity
:
sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==
}
colorspace@1.1.4
:
resolution
:
{
integrity
:
sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==
}
combined-stream@1.0.8
:
resolution
:
{
integrity
:
sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
}
engines
:
{
node
:
'
>=
0.8'
}
concat-map@0.0.1
:
resolution
:
{
integrity
:
sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
}
content-disposition@0.5.4
:
resolution
:
{
integrity
:
sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
}
engines
:
{
node
:
'
>=
0.6'
}
content-type@1.0.5
:
resolution
:
{
integrity
:
sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
}
engines
:
{
node
:
'
>=
0.6'
}
cookie-signature@1.0.6
:
resolution
:
{
integrity
:
sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
}
cookie@0.5.0
:
resolution
:
{
integrity
:
sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
}
engines
:
{
node
:
'
>=
0.6'
}
create-require@1.1.1
:
resolution
:
{
integrity
:
sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
}
cssstyle@4.0.1
:
resolution
:
{
integrity
:
sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==
}
engines
:
{
node
:
'
>=18'
}
data-urls@5.0.0
:
resolution
:
{
integrity
:
sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==
}
engines
:
{
node
:
'
>=18'
}
debug@2.6.9
:
resolution
:
{
integrity
:
sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
}
peerDependencies
:
supports-color
:
'
*'
peerDependenciesMeta
:
supports-color
:
optional
:
true
debug@4.3.4
:
resolution
:
{
integrity
:
sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
}
engines
:
{
node
:
'
>=6.0'
}
peerDependencies
:
supports-color
:
'
*'
peerDependenciesMeta
:
supports-color
:
optional
:
true
decimal.js@10.4.3
:
resolution
:
{
integrity
:
sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==
}
define-data-property@1.1.4
:
resolution
:
{
integrity
:
sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
}
engines
:
{
node
:
'
>=
0.4'
}
delayed-stream@1.0.0
:
resolution
:
{
integrity
:
sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
}
engines
:
{
node
:
'
>=0.4.0'
}
depd@2.0.0
:
resolution
:
{
integrity
:
sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
}
engines
:
{
node
:
'
>=
0.8'
}
destroy@1.2.0
:
resolution
:
{
integrity
:
sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
}
engines
:
{
node
:
'
>=
0.8'
,
npm
:
1.2.8000 || >= 1.4.16
}
diff@4.0.2
:
resolution
:
{
integrity
:
sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
}
engines
:
{
node
:
'
>=0.3.1'
}
domino@2.1.6
:
resolution
:
{
integrity
:
sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==
}
ee-first@1.1.1
:
resolution
:
{
integrity
:
sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
}
enabled@2.0.0
:
resolution
:
{
integrity
:
sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==
}
encodeurl@1.0.2
:
resolution
:
{
integrity
:
sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
}
engines
:
{
node
:
'
>=
0.8'
}
entities@4.5.0
:
resolution
:
{
integrity
:
sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
}
engines
:
{
node
:
'
>=0.12'
}
es-define-property@1.0.0
:
resolution
:
{
integrity
:
sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==
}
engines
:
{
node
:
'
>=
0.4'
}
es-errors@1.3.0
:
resolution
:
{
integrity
:
sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
}
engines
:
{
node
:
'
>=
0.4'
}
escape-html@1.0.3
:
resolution
:
{
integrity
:
sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
}
etag@1.8.1
:
resolution
:
{
integrity
:
sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
}
engines
:
{
node
:
'
>=
0.6'
}
express@4.18.3
:
resolution
:
{
integrity
:
sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==
}
engines
:
{
node
:
'
>=
0.10.0'
}
fecha@4.2.3
:
resolution
:
{
integrity
:
sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==
}
fill-range@7.0.1
:
resolution
:
{
integrity
:
sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
}
engines
:
{
node
:
'
>=8'
}
finalhandler@1.2.0
:
resolution
:
{
integrity
:
sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==
}
engines
:
{
node
:
'
>=
0.8'
}
fn.name@1.1.0
:
resolution
:
{
integrity
:
sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==
}
form-data@4.0.0
:
resolution
:
{
integrity
:
sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
}
engines
:
{
node
:
'
>=
6'
}
forwarded@0.2.0
:
resolution
:
{
integrity
:
sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
}
engines
:
{
node
:
'
>=
0.6'
}
fresh@0.5.2
:
resolution
:
{
integrity
:
sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
}
engines
:
{
node
:
'
>=
0.6'
}
fsevents@2.3.3
:
resolution
:
{
integrity
:
sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
}
engines
:
{
node
:
^8.16.0 || ^10.6.0 || >=11.0.0
}
os
:
[
darwin
]
function-bind@1.1.2
:
resolution
:
{
integrity
:
sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
}
get-intrinsic@1.2.4
:
resolution
:
{
integrity
:
sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==
}
engines
:
{
node
:
'
>=
0.4'
}
glob-parent@5.1.2
:
resolution
:
{
integrity
:
sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
}
engines
:
{
node
:
'
>=
6'
}
gopd@1.0.1
:
resolution
:
{
integrity
:
sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
}
has-flag@3.0.0
:
resolution
:
{
integrity
:
sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
}
engines
:
{
node
:
'
>=4'
}
has-property-descriptors@1.0.2
:
resolution
:
{
integrity
:
sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
}
has-proto@1.0.3
:
resolution
:
{
integrity
:
sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==
}
engines
:
{
node
:
'
>=
0.4'
}
has-symbols@1.0.3
:
resolution
:
{
integrity
:
sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
}
engines
:
{
node
:
'
>=
0.4'
}
hasown@2.0.1
:
resolution
:
{
integrity
:
sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==
}
engines
:
{
node
:
'
>=
0.4'
}
html-encoding-sniffer@4.0.0
:
resolution
:
{
integrity
:
sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==
}
engines
:
{
node
:
'
>=18'
}
http-errors@2.0.0
:
resolution
:
{
integrity
:
sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
}
engines
:
{
node
:
'
>=
0.8'
}
http-proxy-agent@7.0.2
:
resolution
:
{
integrity
:
sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==
}
engines
:
{
node
:
'
>=
14'
}
https-proxy-agent@7.0.4
:
resolution
:
{
integrity
:
sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==
}
engines
:
{
node
:
'
>=
14'
}
iconv-lite@0.4.24
:
resolution
:
{
integrity
:
sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
}
engines
:
{
node
:
'
>=0.10.0'
}
iconv-lite@0.6.3
:
resolution
:
{
integrity
:
sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
}
engines
:
{
node
:
'
>=0.10.0'
}
ignore-by-default@1.0.1
:
resolution
:
{
integrity
:
sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==
}
inherits@2.0.4
:
resolution
:
{
integrity
:
sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
}
ipaddr.js@1.9.1
:
resolution
:
{
integrity
:
sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
}
engines
:
{
node
:
'
>=
0.10'
}
is-arrayish@0.3.2
:
resolution
:
{
integrity
:
sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
}
is-binary-path@2.1.0
:
resolution
:
{
integrity
:
sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
}
engines
:
{
node
:
'
>=8'
}
is-extglob@2.1.1
:
resolution
:
{
integrity
:
sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
}
engines
:
{
node
:
'
>=0.10.0'
}
is-glob@4.0.3
:
resolution
:
{
integrity
:
sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
}
engines
:
{
node
:
'
>=0.10.0'
}
is-number@7.0.0
:
resolution
:
{
integrity
:
sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
}
engines
:
{
node
:
'
>=0.12.0'
}
is-potential-custom-element-name@1.0.1
:
resolution
:
{
integrity
:
sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==
}
is-stream@2.0.1
:
resolution
:
{
integrity
:
sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
}
engines
:
{
node
:
'
>=8'
}
jsdom@24.0.0
:
resolution
:
{
integrity
:
sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==
}
engines
:
{
node
:
'
>=18'
}
peerDependencies
:
canvas
:
^2.11.2
peerDependenciesMeta
:
canvas
:
optional
:
true
kuler@2.0.0
:
resolution
:
{
integrity
:
sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==
}
logform@2.6.0
:
resolution
:
{
integrity
:
sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==
}
engines
:
{
node
:
'
>=
12.0.0'
}
lru-cache@6.0.0
:
resolution
:
{
integrity
:
sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
}
engines
:
{
node
:
'
>=10'
}
make-error@1.3.6
:
resolution
:
{
integrity
:
sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
}
media-typer@0.3.0
:
resolution
:
{
integrity
:
sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
}
engines
:
{
node
:
'
>=
0.6'
}
merge-descriptors@1.0.1
:
resolution
:
{
integrity
:
sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==
}
methods@1.1.2
:
resolution
:
{
integrity
:
sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
}
engines
:
{
node
:
'
>=
0.6'
}
mime-db@1.52.0
:
resolution
:
{
integrity
:
sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
}
engines
:
{
node
:
'
>=
0.6'
}
mime-types@2.1.35
:
resolution
:
{
integrity
:
sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
}
engines
:
{
node
:
'
>=
0.6'
}
mime@1.6.0
:
resolution
:
{
integrity
:
sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
}
engines
:
{
node
:
'
>=4'
}
hasBin
:
true
minimatch@3.1.2
:
resolution
:
{
integrity
:
sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
}
ms@2.0.0
:
resolution
:
{
integrity
:
sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
}
ms@2.1.2
:
resolution
:
{
integrity
:
sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
}
ms@2.1.3
:
resolution
:
{
integrity
:
sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
}
negotiator@0.6.3
:
resolution
:
{
integrity
:
sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
}
engines
:
{
node
:
'
>=
0.6'
}
nodemon@3.1.0
:
resolution
:
{
integrity
:
sha512-xqlktYlDMCepBJd43ZQhjWwMw2obW/JRvkrLxq5RCNcuDDX1DbcPT+qT1IlIIdf+DhnWs90JpTMe+Y5KxOchvA==
}
engines
:
{
node
:
'
>=10'
}
hasBin
:
true
nopt@1.0.10
:
resolution
:
{
integrity
:
sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==
}
hasBin
:
true
normalize-path@3.0.0
:
resolution
:
{
integrity
:
sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
}
engines
:
{
node
:
'
>=0.10.0'
}
nwsapi@2.2.7
:
resolution
:
{
integrity
:
sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==
}
object-inspect@1.13.1
:
resolution
:
{
integrity
:
sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==
}
on-finished@2.4.1
:
resolution
:
{
integrity
:
sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
}
engines
:
{
node
:
'
>=
0.8'
}
one-time@1.0.0
:
resolution
:
{
integrity
:
sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==
}
parse5@7.1.2
:
resolution
:
{
integrity
:
sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==
}
parseurl@1.3.3
:
resolution
:
{
integrity
:
sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
}
engines
:
{
node
:
'
>=
0.8'
}
path-to-regexp@0.1.7
:
resolution
:
{
integrity
:
sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==
}
picomatch@2.3.1
:
resolution
:
{
integrity
:
sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
}
engines
:
{
node
:
'
>=8.6'
}
pnpm@9.1.2
:
resolution
:
{
integrity
:
sha512-En3IO56hDDK+ZdIqjvtKZfuVLo/vvf3tOb3DyX78MtMbSLAEIN8sEYes4oySHJAvDLWhNKTQMri1KVy/osaB4g==
}
engines
:
{
node
:
'
>=18.12'
}
hasBin
:
true
proxy-addr@2.0.7
:
resolution
:
{
integrity
:
sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
}
engines
:
{
node
:
'
>=
0.10'
}
psl@1.9.0
:
resolution
:
{
integrity
:
sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
}
pstree.remy@1.1.8
:
resolution
:
{
integrity
:
sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==
}
punycode@2.3.1
:
resolution
:
{
integrity
:
sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
}
engines
:
{
node
:
'
>=6'
}
qs@6.11.0
:
resolution
:
{
integrity
:
sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
}
engines
:
{
node
:
'
>=0.6'
}
querystringify@2.2.0
:
resolution
:
{
integrity
:
sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
}
range-parser@1.2.1
:
resolution
:
{
integrity
:
sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
}
engines
:
{
node
:
'
>=
0.6'
}
raw-body@2.5.2
:
resolution
:
{
integrity
:
sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==
}
engines
:
{
node
:
'
>=
0.8'
}
readable-stream@3.6.2
:
resolution
:
{
integrity
:
sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
}
engines
:
{
node
:
'
>=
6'
}
readdirp@3.6.0
:
resolution
:
{
integrity
:
sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
}
engines
:
{
node
:
'
>=8.10.0'
}
requires-port@1.0.0
:
resolution
:
{
integrity
:
sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
}
rrweb-cssom@0.6.0
:
resolution
:
{
integrity
:
sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==
}
safe-buffer@5.2.1
:
resolution
:
{
integrity
:
sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
}
safe-stable-stringify@2.4.3
:
resolution
:
{
integrity
:
sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==
}
engines
:
{
node
:
'
>=10'
}
safer-buffer@2.1.2
:
resolution
:
{
integrity
:
sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
}
saxes@6.0.0
:
resolution
:
{
integrity
:
sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==
}
engines
:
{
node
:
'
>=v12.22.7'
}
semver@7.6.0
:
resolution
:
{
integrity
:
sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==
}
engines
:
{
node
:
'
>=10'
}
hasBin
:
true
send@0.18.0
:
resolution
:
{
integrity
:
sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==
}
engines
:
{
node
:
'
>=
0.8.0'
}
serve-static@1.15.0
:
resolution
:
{
integrity
:
sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==
}
engines
:
{
node
:
'
>=
0.8.0'
}
set-function-length@1.2.1
:
resolution
:
{
integrity
:
sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==
}
engines
:
{
node
:
'
>=
0.4'
}
setprototypeof@1.2.0
:
resolution
:
{
integrity
:
sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
}
side-channel@1.0.6
:
resolution
:
{
integrity
:
sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==
}
engines
:
{
node
:
'
>=
0.4'
}
simple-swizzle@0.2.2
:
resolution
:
{
integrity
:
sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==
}
simple-update-notifier@2.0.0
:
resolution
:
{
integrity
:
sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==
}
engines
:
{
node
:
'
>=10'
}
stack-trace@0.0.10
:
resolution
:
{
integrity
:
sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==
}
statuses@2.0.1
:
resolution
:
{
integrity
:
sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
}
engines
:
{
node
:
'
>=
0.8'
}
string_decoder@1.3.0
:
resolution
:
{
integrity
:
sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
}
supports-color@5.5.0
:
resolution
:
{
integrity
:
sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
}
engines
:
{
node
:
'
>=4'
}
symbol-tree@3.2.4
:
resolution
:
{
integrity
:
sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
}
text-hex@1.0.0
:
resolution
:
{
integrity
:
sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==
}
to-regex-range@5.0.1
:
resolution
:
{
integrity
:
sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
}
engines
:
{
node
:
'
>=8.0'
}
toidentifier@1.0.1
:
resolution
:
{
integrity
:
sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
}
engines
:
{
node
:
'
>=0.6'
}
touch@3.1.0
:
resolution
:
{
integrity
:
sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==
}
hasBin
:
true
tough-cookie@4.1.3
:
resolution
:
{
integrity
:
sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==
}
engines
:
{
node
:
'
>=6'
}
tr46@5.0.0
:
resolution
:
{
integrity
:
sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==
}
engines
:
{
node
:
'
>=18'
}
triple-beam@1.4.1
:
resolution
:
{
integrity
:
sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==
}
engines
:
{
node
:
'
>=
14.0.0'
}
ts-node@10.9.2
:
resolution
:
{
integrity
:
sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==
}
hasBin
:
true
peerDependencies
:
'
@swc/core'
:
'
>=1.2.50'
'
@swc/wasm'
:
'
>=1.2.50'
'
@types/node'
:
'
*'
typescript
:
'
>=2.7'
peerDependenciesMeta
:
'
@swc/core'
:
optional
:
true
'
@swc/wasm'
:
optional
:
true
turndown@7.1.2
:
resolution
:
{
integrity
:
sha512-ntI9R7fcUKjqBP6QU8rBK2Ehyt8LAzt3UBT9JR9tgo6GtuKvyUzpayWmeMKJw1DPdXzktvtIT8m2mVXz+bL/Qg==
}
type-is@1.6.18
:
resolution
:
{
integrity
:
sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
}
engines
:
{
node
:
'
>=
0.6'
}
typescript@5.3.3
:
resolution
:
{
integrity
:
sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==
}
engines
:
{
node
:
'
>=14.17'
}
hasBin
:
true
undefsafe@2.0.5
:
resolution
:
{
integrity
:
sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==
}
undici-types@5.26.5
:
resolution
:
{
integrity
:
sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
}
universalify@0.2.0
:
resolution
:
{
integrity
:
sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==
}
engines
:
{
node
:
'
>=
4.0.0'
}
unpipe@1.0.0
:
resolution
:
{
integrity
:
sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
}
engines
:
{
node
:
'
>=
0.8'
}
url-parse@1.5.10
:
resolution
:
{
integrity
:
sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==
}
util-deprecate@1.0.2
:
resolution
:
{
integrity
:
sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
}
utils-merge@1.0.1
:
resolution
:
{
integrity
:
sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
}
engines
:
{
node
:
'
>=
0.4.0'
}
v8-compile-cache-lib@3.0.1
:
resolution
:
{
integrity
:
sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
}
vary@1.1.2
:
resolution
:
{
integrity
:
sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
}
engines
:
{
node
:
'
>=
0.8'
}
w3c-xmlserializer@5.0.0
:
resolution
:
{
integrity
:
sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==
}
engines
:
{
node
:
'
>=18'
}
webidl-conversions@7.0.0
:
resolution
:
{
integrity
:
sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==
}
engines
:
{
node
:
'
>=12'
}
whatwg-encoding@3.1.1
:
resolution
:
{
integrity
:
sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==
}
engines
:
{
node
:
'
>=18'
}
whatwg-mimetype@4.0.0
:
resolution
:
{
integrity
:
sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==
}
engines
:
{
node
:
'
>=18'
}
whatwg-url@14.0.0
:
resolution
:
{
integrity
:
sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==
}
engines
:
{
node
:
'
>=18'
}
winston-transport@4.7.0
:
resolution
:
{
integrity
:
sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==
}
engines
:
{
node
:
'
>=
12.0.0'
}
winston@3.11.0
:
resolution
:
{
integrity
:
sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==
}
engines
:
{
node
:
'
>=
12.0.0'
}
ws@8.16.0
:
resolution
:
{
integrity
:
sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==
}
engines
:
{
node
:
'
>=10.0.0'
}
peerDependencies
:
bufferutil
:
^4.0.1
utf-8-validate
:
'
>=5.0.2'
peerDependenciesMeta
:
bufferutil
:
optional
:
true
utf-8-validate
:
optional
:
true
xml-name-validator@5.0.0
:
resolution
:
{
integrity
:
sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==
}
engines
:
{
node
:
'
>=18'
}
xmlchars@2.2.0
:
resolution
:
{
integrity
:
sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
}
yallist@4.0.0
:
resolution
:
{
integrity
:
sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
}
yn@3.1.1
:
resolution
:
{
integrity
:
sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
}
engines
:
{
node
:
'
>=6'
}
snapshots
:
'
@colors/colors@1.6.0'
:
{}
'
@cspotcode/source-map-support@0.8.1'
:
dependencies
:
'
@jridgewell/trace-mapping'
:
0.3.9
'
@dabh/diagnostics@2.0.3'
:
dependencies
:
colorspace
:
1.1.4
enabled
:
2.0.0
kuler
:
2.0.0
'
@jridgewell/resolve-uri@3.1.2'
:
{}
'
@jridgewell/sourcemap-codec@1.4.15'
:
{}
'
@jridgewell/trace-mapping@0.3.9'
:
dependencies
:
'
@jridgewell/resolve-uri'
:
3.1.2
'
@jridgewell/sourcemap-codec'
:
1.4.15
'
@tsconfig/node10@1.0.9'
:
{}
'
@tsconfig/node12@1.0.11'
:
{}
'
@tsconfig/node14@1.0.3'
:
{}
'
@tsconfig/node16@1.0.4'
:
{}
'
@types/body-parser@1.19.5'
:
dependencies
:
'
@types/connect'
:
3.4.38
'
@types/node'
:
20.11.20
'
@types/connect@3.4.38'
:
dependencies
:
'
@types/node'
:
20.11.20
'
@types/express-serve-static-core@4.17.43'
:
dependencies
:
'
@types/node'
:
20.11.20
'
@types/qs'
:
6.9.12
'
@types/range-parser'
:
1.2.7
'
@types/send'
:
0.17.4
'
@types/express@4.17.21'
:
dependencies
:
'
@types/body-parser'
:
1.19.5
'
@types/express-serve-static-core'
:
4.17.43
'
@types/qs'
:
6.9.12
'
@types/serve-static'
:
1.15.5
'
@types/http-errors@2.0.4'
:
{}
'
@types/jsdom@21.1.6'
:
dependencies
:
'
@types/node'
:
20.11.20
'
@types/tough-cookie'
:
4.0.5
parse5
:
7.1.2
'
@types/mime@1.3.5'
:
{}
'
@types/mime@3.0.4'
:
{}
'
@types/node@20.11.20'
:
dependencies
:
undici-types
:
5.26.5
'
@types/qs@6.9.12'
:
{}
'
@types/range-parser@1.2.7'
:
{}
'
@types/send@0.17.4'
:
dependencies
:
'
@types/mime'
:
1.3.5
'
@types/node'
:
20.11.20
'
@types/serve-static@1.15.5'
:
dependencies
:
'
@types/http-errors'
:
2.0.4
'
@types/mime'
:
3.0.4
'
@types/node'
:
20.11.20
'
@types/tough-cookie@4.0.5'
:
{}
'
@types/triple-beam@1.3.5'
:
{}
'
@types/turndown@5.0.4'
:
{}
abbrev@1.1.1
:
{}
accepts@1.3.8
:
dependencies
:
mime-types
:
2.1.35
negotiator
:
0.6.3
acorn-walk@8.3.2
:
{}
acorn@8.11.3
:
{}
agent-base@7.1.0
:
dependencies
:
debug
:
4.3.4(supports-color@5.5.0)
transitivePeerDependencies
:
-
supports-color
anymatch@3.1.3
:
dependencies
:
normalize-path
:
3.0.0
picomatch
:
2.3.1
arg@4.1.3
:
{}
array-flatten@1.1.1
:
{}
async@3.2.5
:
{}
asynckit@0.4.0
:
{}
balanced-match@1.0.2
:
{}
binary-extensions@2.2.0
:
{}
body-parser@1.20.2
:
dependencies
:
bytes
:
3.1.2
content-type
:
1.0.5
debug
:
2.6.9
depd
:
2.0.0
destroy
:
1.2.0
http-errors
:
2.0.0
iconv-lite
:
0.4.24
on-finished
:
2.4.1
qs
:
6.11.0
raw-body
:
2.5.2
type-is
:
1.6.18
unpipe
:
1.0.0
transitivePeerDependencies
:
-
supports-color
brace-expansion@1.1.11
:
dependencies
:
balanced-match
:
1.0.2
concat-map
:
0.0.1
braces@3.0.2
:
dependencies
:
fill-range
:
7.0.1
bytes@3.1.2
:
{}
call-bind@1.0.7
:
dependencies
:
es-define-property
:
1.0.0
es-errors
:
1.3.0
function-bind
:
1.1.2
get-intrinsic
:
1.2.4
set-function-length
:
1.2.1
chokidar@3.6.0
:
dependencies
:
anymatch
:
3.1.3
braces
:
3.0.2
glob-parent
:
5.1.2
is-binary-path
:
2.1.0
is-glob
:
4.0.3
normalize-path
:
3.0.0
readdirp
:
3.6.0
optionalDependencies
:
fsevents
:
2.3.3
color-convert@1.9.3
:
dependencies
:
color-name
:
1.1.3
color-name@1.1.3
:
{}
color-name@1.1.4
:
{}
color-string@1.9.1
:
dependencies
:
color-name
:
1.1.4
simple-swizzle
:
0.2.2
color@3.2.1
:
dependencies
:
color-convert
:
1.9.3
color-string
:
1.9.1
colorspace@1.1.4
:
dependencies
:
color
:
3.2.1
text-hex
:
1.0.0
combined-stream@1.0.8
:
dependencies
:
delayed-stream
:
1.0.0
concat-map@0.0.1
:
{}
content-disposition@0.5.4
:
dependencies
:
safe-buffer
:
5.2.1
content-type@1.0.5
:
{}
cookie-signature@1.0.6
:
{}
cookie@0.5.0
:
{}
create-require@1.1.1
:
{}
cssstyle@4.0.1
:
dependencies
:
rrweb-cssom
:
0.6.0
data-urls@5.0.0
:
dependencies
:
whatwg-mimetype
:
4.0.0
whatwg-url
:
14.0.0
debug@2.6.9
:
dependencies
:
ms
:
2.0.0
debug@4.3.4(supports-color@5.5.0)
:
dependencies
:
ms
:
2.1.2
optionalDependencies
:
supports-color
:
5.5.0
decimal.js@10.4.3
:
{}
define-data-property@1.1.4
:
dependencies
:
es-define-property
:
1.0.0
es-errors
:
1.3.0
gopd
:
1.0.1
delayed-stream@1.0.0
:
{}
depd@2.0.0
:
{}
destroy@1.2.0
:
{}
diff@4.0.2
:
{}
domino@2.1.6
:
{}
ee-first@1.1.1
:
{}
enabled@2.0.0
:
{}
encodeurl@1.0.2
:
{}
entities@4.5.0
:
{}
es-define-property@1.0.0
:
dependencies
:
get-intrinsic
:
1.2.4
es-errors@1.3.0
:
{}
escape-html@1.0.3
:
{}
etag@1.8.1
:
{}
express@4.18.3
:
dependencies
:
accepts
:
1.3.8
array-flatten
:
1.1.1
body-parser
:
1.20.2
content-disposition
:
0.5.4
content-type
:
1.0.5
cookie
:
0.5.0
cookie-signature
:
1.0.6
debug
:
2.6.9
depd
:
2.0.0
encodeurl
:
1.0.2
escape-html
:
1.0.3
etag
:
1.8.1
finalhandler
:
1.2.0
fresh
:
0.5.2
http-errors
:
2.0.0
merge-descriptors
:
1.0.1
methods
:
1.1.2
on-finished
:
2.4.1
parseurl
:
1.3.3
path-to-regexp
:
0.1.7
proxy-addr
:
2.0.7
qs
:
6.11.0
range-parser
:
1.2.1
safe-buffer
:
5.2.1
send
:
0.18.0
serve-static
:
1.15.0
setprototypeof
:
1.2.0
statuses
:
2.0.1
type-is
:
1.6.18
utils-merge
:
1.0.1
vary
:
1.1.2
transitivePeerDependencies
:
-
supports-color
fecha@4.2.3
:
{}
fill-range@7.0.1
:
dependencies
:
to-regex-range
:
5.0.1
finalhandler@1.2.0
:
dependencies
:
debug
:
2.6.9
encodeurl
:
1.0.2
escape-html
:
1.0.3
on-finished
:
2.4.1
parseurl
:
1.3.3
statuses
:
2.0.1
unpipe
:
1.0.0
transitivePeerDependencies
:
-
supports-color
fn.name@1.1.0
:
{}
form-data@4.0.0
:
dependencies
:
asynckit
:
0.4.0
combined-stream
:
1.0.8
mime-types
:
2.1.35
forwarded@0.2.0
:
{}
fresh@0.5.2
:
{}
fsevents@2.3.3
:
optional
:
true
function-bind@1.1.2
:
{}
get-intrinsic@1.2.4
:
dependencies
:
es-errors
:
1.3.0
function-bind
:
1.1.2
has-proto
:
1.0.3
has-symbols
:
1.0.3
hasown
:
2.0.1
glob-parent@5.1.2
:
dependencies
:
is-glob
:
4.0.3
gopd@1.0.1
:
dependencies
:
get-intrinsic
:
1.2.4
has-flag@3.0.0
:
{}
has-property-descriptors@1.0.2
:
dependencies
:
es-define-property
:
1.0.0
has-proto@1.0.3
:
{}
has-symbols@1.0.3
:
{}
hasown@2.0.1
:
dependencies
:
function-bind
:
1.1.2
html-encoding-sniffer@4.0.0
:
dependencies
:
whatwg-encoding
:
3.1.1
http-errors@2.0.0
:
dependencies
:
depd
:
2.0.0
inherits
:
2.0.4
setprototypeof
:
1.2.0
statuses
:
2.0.1
toidentifier
:
1.0.1
http-proxy-agent@7.0.2
:
dependencies
:
agent-base
:
7.1.0
debug
:
4.3.4(supports-color@5.5.0)
transitivePeerDependencies
:
-
supports-color
https-proxy-agent@7.0.4
:
dependencies
:
agent-base
:
7.1.0
debug
:
4.3.4(supports-color@5.5.0)
transitivePeerDependencies
:
-
supports-color
iconv-lite@0.4.24
:
dependencies
:
safer-buffer
:
2.1.2
iconv-lite@0.6.3
:
dependencies
:
safer-buffer
:
2.1.2
ignore-by-default@1.0.1
:
{}
inherits@2.0.4
:
{}
ipaddr.js@1.9.1
:
{}
is-arrayish@0.3.2
:
{}
is-binary-path@2.1.0
:
dependencies
:
binary-extensions
:
2.2.0
is-extglob@2.1.1
:
{}
is-glob@4.0.3
:
dependencies
:
is-extglob
:
2.1.1
is-number@7.0.0
:
{}
is-potential-custom-element-name@1.0.1
:
{}
is-stream@2.0.1
:
{}
jsdom@24.0.0
:
dependencies
:
cssstyle
:
4.0.1
data-urls
:
5.0.0
decimal.js
:
10.4.3
form-data
:
4.0.0
html-encoding-sniffer
:
4.0.0
http-proxy-agent
:
7.0.2
https-proxy-agent
:
7.0.4
is-potential-custom-element-name
:
1.0.1
nwsapi
:
2.2.7
parse5
:
7.1.2
rrweb-cssom
:
0.6.0
saxes
:
6.0.0
symbol-tree
:
3.2.4
tough-cookie
:
4.1.3
w3c-xmlserializer
:
5.0.0
webidl-conversions
:
7.0.0
whatwg-encoding
:
3.1.1
whatwg-mimetype
:
4.0.0
whatwg-url
:
14.0.0
ws
:
8.16.0
xml-name-validator
:
5.0.0
transitivePeerDependencies
:
-
bufferutil
-
supports-color
-
utf-8-validate
kuler@2.0.0
:
{}
logform@2.6.0
:
dependencies
:
'
@colors/colors'
:
1.6.0
'
@types/triple-beam'
:
1.3.5
fecha
:
4.2.3
ms
:
2.1.2
safe-stable-stringify
:
2.4.3
triple-beam
:
1.4.1
lru-cache@6.0.0
:
dependencies
:
yallist
:
4.0.0
make-error@1.3.6
:
{}
media-typer@0.3.0
:
{}
merge-descriptors@1.0.1
:
{}
methods@1.1.2
:
{}
mime-db@1.52.0
:
{}
mime-types@2.1.35
:
dependencies
:
mime-db
:
1.52.0
mime@1.6.0
:
{}
minimatch@3.1.2
:
dependencies
:
brace-expansion
:
1.1.11
ms@2.0.0
:
{}
ms@2.1.2
:
{}
ms@2.1.3
:
{}
negotiator@0.6.3
:
{}
nodemon@3.1.0
:
dependencies
:
chokidar
:
3.6.0
debug
:
4.3.4(supports-color@5.5.0)
ignore-by-default
:
1.0.1
minimatch
:
3.1.2
pstree.remy
:
1.1.8
semver
:
7.6.0
simple-update-notifier
:
2.0.0
supports-color
:
5.5.0
touch
:
3.1.0
undefsafe
:
2.0.5
nopt@1.0.10
:
dependencies
:
abbrev
:
1.1.1
normalize-path@3.0.0
:
{}
nwsapi@2.2.7
:
{}
object-inspect@1.13.1
:
{}
on-finished@2.4.1
:
dependencies
:
ee-first
:
1.1.1
one-time@1.0.0
:
dependencies
:
fn.name
:
1.1.0
parse5@7.1.2
:
dependencies
:
entities
:
4.5.0
parseurl@1.3.3
:
{}
path-to-regexp@0.1.7
:
{}
picomatch@2.3.1
:
{}
pnpm@9.1.2
:
{}
proxy-addr@2.0.7
:
dependencies
:
forwarded
:
0.2.0
ipaddr.js
:
1.9.1
psl@1.9.0
:
{}
pstree.remy@1.1.8
:
{}
punycode@2.3.1
:
{}
qs@6.11.0
:
dependencies
:
side-channel
:
1.0.6
querystringify@2.2.0
:
{}
range-parser@1.2.1
:
{}
raw-body@2.5.2
:
dependencies
:
bytes
:
3.1.2
http-errors
:
2.0.0
iconv-lite
:
0.4.24
unpipe
:
1.0.0
readable-stream@3.6.2
:
dependencies
:
inherits
:
2.0.4
string_decoder
:
1.3.0
util-deprecate
:
1.0.2
readdirp@3.6.0
:
dependencies
:
picomatch
:
2.3.1
requires-port@1.0.0
:
{}
rrweb-cssom@0.6.0
:
{}
safe-buffer@5.2.1
:
{}
safe-stable-stringify@2.4.3
:
{}
safer-buffer@2.1.2
:
{}
saxes@6.0.0
:
dependencies
:
xmlchars
:
2.2.0
semver@7.6.0
:
dependencies
:
lru-cache
:
6.0.0
send@0.18.0
:
dependencies
:
debug
:
2.6.9
depd
:
2.0.0
destroy
:
1.2.0
encodeurl
:
1.0.2
escape-html
:
1.0.3
etag
:
1.8.1
fresh
:
0.5.2
http-errors
:
2.0.0
mime
:
1.6.0
ms
:
2.1.3
on-finished
:
2.4.1
range-parser
:
1.2.1
statuses
:
2.0.1
transitivePeerDependencies
:
-
supports-color
serve-static@1.15.0
:
dependencies
:
encodeurl
:
1.0.2
escape-html
:
1.0.3
parseurl
:
1.3.3
send
:
0.18.0
transitivePeerDependencies
:
-
supports-color
set-function-length@1.2.1
:
dependencies
:
define-data-property
:
1.1.4
es-errors
:
1.3.0
function-bind
:
1.1.2
get-intrinsic
:
1.2.4
gopd
:
1.0.1
has-property-descriptors
:
1.0.2
setprototypeof@1.2.0
:
{}
side-channel@1.0.6
:
dependencies
:
call-bind
:
1.0.7
es-errors
:
1.3.0
get-intrinsic
:
1.2.4
object-inspect
:
1.13.1
simple-swizzle@0.2.2
:
dependencies
:
is-arrayish
:
0.3.2
simple-update-notifier@2.0.0
:
dependencies
:
semver
:
7.6.0
stack-trace@0.0.10
:
{}
statuses@2.0.1
:
{}
string_decoder@1.3.0
:
dependencies
:
safe-buffer
:
5.2.1
supports-color@5.5.0
:
dependencies
:
has-flag
:
3.0.0
symbol-tree@3.2.4
:
{}
text-hex@1.0.0
:
{}
to-regex-range@5.0.1
:
dependencies
:
is-number
:
7.0.0
toidentifier@1.0.1
:
{}
touch@3.1.0
:
dependencies
:
nopt
:
1.0.10
tough-cookie@4.1.3
:
dependencies
:
psl
:
1.9.0
punycode
:
2.3.1
universalify
:
0.2.0
url-parse
:
1.5.10
tr46@5.0.0
:
dependencies
:
punycode
:
2.3.1
triple-beam@1.4.1
:
{}
ts-node@10.9.2(@types/node@20.11.20)(typescript@5.3.3)
:
dependencies
:
'
@cspotcode/source-map-support'
:
0.8.1
'
@tsconfig/node10'
:
1.0.9
'
@tsconfig/node12'
:
1.0.11
'
@tsconfig/node14'
:
1.0.3
'
@tsconfig/node16'
:
1.0.4
'
@types/node'
:
20.11.20
acorn
:
8.11.3
acorn-walk
:
8.3.2
arg
:
4.1.3
create-require
:
1.1.1
diff
:
4.0.2
make-error
:
1.3.6
typescript
:
5.3.3
v8-compile-cache-lib
:
3.0.1
yn
:
3.1.1
turndown@7.1.2
:
dependencies
:
domino
:
2.1.6
type-is@1.6.18
:
dependencies
:
media-typer
:
0.3.0
mime-types
:
2.1.35
typescript@5.3.3
:
{}
undefsafe@2.0.5
:
{}
undici-types@5.26.5
:
{}
universalify@0.2.0
:
{}
unpipe@1.0.0
:
{}
url-parse@1.5.10
:
dependencies
:
querystringify
:
2.2.0
requires-port
:
1.0.0
util-deprecate@1.0.2
:
{}
utils-merge@1.0.1
:
{}
v8-compile-cache-lib@3.0.1
:
{}
vary@1.1.2
:
{}
w3c-xmlserializer@5.0.0
:
dependencies
:
xml-name-validator
:
5.0.0
webidl-conversions@7.0.0
:
{}
whatwg-encoding@3.1.1
:
dependencies
:
iconv-lite
:
0.6.3
whatwg-mimetype@4.0.0
:
{}
whatwg-url@14.0.0
:
dependencies
:
tr46
:
5.0.0
webidl-conversions
:
7.0.0
winston-transport@4.7.0
:
dependencies
:
logform
:
2.6.0
readable-stream
:
3.6.2
triple-beam
:
1.4.1
winston@3.11.0
:
dependencies
:
'
@colors/colors'
:
1.6.0
'
@dabh/diagnostics'
:
2.0.3
async
:
3.2.5
is-stream
:
2.0.1
logform
:
2.6.0
one-time
:
1.0.0
readable-stream
:
3.6.2
safe-stable-stringify
:
2.4.3
stack-trace
:
0.0.10
triple-beam
:
1.4.1
winston-transport
:
4.7.0
ws@8.16.0
:
{}
xml-name-validator@5.0.0
:
{}
xmlchars@2.2.0
:
{}
yallist@4.0.0
:
{}
yn@3.1.1
:
{}
composite_demo/browser/src/browser.ts
0 → 100644
View file @
9eb7f37f
import
{
JSDOM
}
from
'
jsdom
'
;
import
TurndownService
from
'
turndown
'
;
import
config
from
'
./config
'
;
import
{
Message
,
ToolObservation
}
from
'
./types
'
;
import
{
logger
,
withTimeout
}
from
'
./utils
'
;
// represent a quote from a display
interface
Quote
{
text
:
string
;
metadata
:
Metadata
[];
}
interface
ActionResult
{
contentType
:
string
;
metadataList
?:
TetherQuoteMetadata
[];
metadata
?:
any
;
roleMetadata
:
string
;
message
:
string
;
}
// represent a piece of metadata to be marked in the final answer
interface
Metadata
{
type
:
string
;
title
:
string
;
url
:
string
;
lines
:
string
[];
}
interface
TetherQuoteExtra
{
cited_message_idx
:
number
;
evidence_text
:
string
;
}
interface
TetherQuoteMetadata
{
type
:
string
;
title
:
string
;
url
:
string
;
text
:
string
;
pub_date
?:
string
;
extra
?:
TetherQuoteExtra
;
}
interface
Citation
{
citation_format_type
:
string
;
start_ix
:
number
;
end_ix
:
number
;
metadata
?:
TetherQuoteMetadata
;
invalid_reason
?:
string
;
}
interface
PageState
{
aCounter
:
number
;
imgCounter
:
number
;
url
:
URL
;
url_string
:
string
;
hostname
:
string
;
links
:
string
[];
links_meta
:
TetherQuoteMetadata
[];
lines
:
string
[];
line_source
:
Record
<
string
,
Metadata
>
;
// string representation of number interval
title
?:
string
;
}
interface
BrowserState
{
pageStack
:
PageState
[];
quoteCounter
:
number
;
quotes
:
Record
<
string
,
Quote
>
;
}
function
removeDenseLinks
(
document
:
Document
,
ratioThreshold
:
number
=
0.5
)
{
// Remove nav elements
const
navs
=
document
.
querySelectorAll
(
'
nav
'
);
navs
.
forEach
(
nav
=>
{
if
(
nav
.
parentNode
)
{
nav
.
parentNode
.
removeChild
(
nav
);
}
});
// Query for lists, divs, spans, tables, and paragraphs
const
elements
=
document
.
querySelectorAll
(
'
ul, ol, div, span, nav, table, p
'
);
elements
.
forEach
(
element
=>
{
if
(
element
===
null
)
return
;
const
children
=
Array
.
from
(
element
.
childNodes
);
const
links
=
element
.
querySelectorAll
(
'
a
'
);
if
(
children
.
length
<=
1
)
return
;
const
allText
=
element
.
textContent
?
element
.
textContent
.
trim
().
replace
(
/
\s
+/g
,
''
)
:
''
;
const
linksText
=
Array
.
from
(
links
)
.
map
(
link
=>
(
link
.
textContent
?
link
.
textContent
.
trim
()
:
''
))
.
join
(
''
)
.
replace
(
/
\s
+/g
,
''
);
if
(
allText
.
length
===
0
||
linksText
.
length
===
0
)
return
;
let
ratio
=
linksText
.
length
/
allText
.
length
;
if
(
ratio
>
ratioThreshold
&&
element
.
parentNode
)
{
element
.
parentNode
.
removeChild
(
element
);
}
});
}
abstract
class
BaseBrowser
{
public
static
toolName
=
'
browser
'
as
const
;
public
description
=
'
BaseBrowser
'
;
private
turndownService
=
new
TurndownService
({
headingStyle
:
'
atx
'
,
});
private
state
:
BrowserState
;
private
transform
(
dom
:
JSDOM
):
string
{
let
state
=
this
.
lastPageState
();
state
.
aCounter
=
0
;
state
.
imgCounter
=
0
;
state
.
links
=
[];
return
this
.
turndownService
.
turndown
(
dom
.
window
.
document
);
}
private
formatPage
(
state
:
PageState
):
string
{
let
formatted_lines
=
state
.
lines
.
join
(
'
\n
'
);
let
formatted_title
=
state
.
title
?
`TITLE:
${
state
.
title
}
\n\n`
:
''
;
let
formatted_range
=
`\nVisible: 0% - 100%`
;
let
formatted_message
=
formatted_title
+
formatted_lines
+
formatted_range
;
return
formatted_message
;
}
private
newPageState
():
PageState
{
return
{
aCounter
:
0
,
imgCounter
:
0
,
url
:
new
URL
(
'
about:blank
'
),
url_string
:
'
about:blank
'
,
hostname
:
''
,
title
:
''
,
links
:
[],
links_meta
:
[],
lines
:
[],
line_source
:
{},
};
}
private
pushPageState
():
PageState
{
let
state
=
this
.
newPageState
();
this
.
state
.
pageStack
.
push
(
state
);
return
state
;
}
private
lastPageState
():
PageState
{
if
(
this
.
state
.
pageStack
.
length
===
0
)
{
throw
new
Error
(
'
No page state
'
);
}
return
this
.
state
.
pageStack
[
this
.
state
.
pageStack
.
length
-
1
];
}
private
formatErrorUrl
(
url
:
string
):
string
{
let
TRUNCATION_LIMIT
=
80
;
if
(
url
.
length
<=
TRUNCATION_LIMIT
)
{
return
url
;
}
return
url
.
slice
(
0
,
TRUNCATION_LIMIT
)
+
`... (URL truncated at
${
TRUNCATION_LIMIT
}
chars)`
;
}
protected
functions
=
{
search
:
async
(
query
:
string
,
recency_days
:
number
=
-
1
)
=>
{
logger
.
debug
(
`Searching for:
${
query
}
`
);
const
search
=
new
URLSearchParams
({
q
:
query
});
recency_days
>
0
&&
search
.
append
(
'
recency_days
'
,
recency_days
.
toString
());
return
withTimeout
(
config
.
BROWSER_TIMEOUT
,
fetch
(
`
${
config
.
BING_SEARCH_API_URL
}
/search?
${
search
.
toString
()}
`
,
{
headers
:
{
'
Ocp-Apim-Subscription-Key
'
:
config
.
BING_SEARCH_API_KEY
,
}
}).
then
(
res
=>
res
.
json
()
as
Promise
<
{
queryContext
:
{
originalQuery
:
string
;
};
webPages
:
{
webSearchUrl
:
string
;
totalEstimatedMatches
:
number
;
value
:
{
id
:
string
;
name
:
string
;
url
:
string
;
datePublished
:
string
;
// 2018-05-18T08:00:00.0000000
datePublishedDisplayText
:
string
;
isFamilyFriendly
:
boolean
;
displayUrl
:
string
;
snippet
:
string
;
dateLastCrawled
:
string
;
cachedPageUrl
:
string
;
language
:
string
;
isNavigational
:
boolean
;
}[];
};
rankingResponse
:
{
mainline
:
{
items
:
{
answerType
:
'
WebPages
'
;
resultIndex
:
number
;
value
:
{
id
:
string
;
};
}[];
};
};
}
>
,
),
)
.
then
(
async
({
value
:
res
})
=>
{
try
{
let
state
=
this
.
pushPageState
();
let
metadataList
:
TetherQuoteMetadata
[]
=
[];
for
(
const
[
i
,
entry
]
of
res
.
webPages
.
value
.
entries
())
{
const
url
=
new
URL
(
entry
.
url
);
const
hostname
=
url
.
hostname
;
state
.
lines
.
push
(
` # 【
${
i
}
†
${
entry
.
name
}
†
${
hostname
}
】`
);
state
.
lines
.
push
(
entry
.
snippet
);
const
quoteMetadata
:
Metadata
=
{
type
:
'
webpage
'
,
title
:
entry
.
name
,
url
:
entry
.
url
,
lines
:
state
.
lines
.
slice
(
2
*
i
,
2
*
i
+
2
),
};
state
.
line_source
[
`
${
2
*
i
}
-
${
2
*
i
+
1
}
`
]
=
quoteMetadata
;
state
.
links
[
i
]
=
entry
.
url
;
const
returnMetadata
:
TetherQuoteMetadata
=
{
type
:
quoteMetadata
.
type
,
title
:
quoteMetadata
.
title
,
url
:
quoteMetadata
.
url
,
text
:
state
.
lines
[
2
*
i
+
1
],
// only content, not link
pub_date
:
entry
.
datePublished
,
};
metadataList
.
push
(
returnMetadata
);
}
const
returnContentType
=
'
browser_result
'
;
return
{
contentType
:
returnContentType
,
roleMetadata
:
returnContentType
,
message
:
this
.
formatPage
(
state
),
metadataList
,
};
}
catch
(
err
)
{
throw
new
Error
(
`parse error:
${
err
}
`
);
}
})
.
catch
(
err
=>
{
logger
.
error
(
err
.
message
);
if
(
err
.
code
===
'
ECONNABORTED
'
)
{
throw
new
Error
(
`Timeout while executing search for:
${
query
}
`
);
}
throw
new
Error
(
`Network or server error occurred`
);
});
},
open_url
:
(
url
:
string
)
=>
{
logger
.
debug
(
`Opening
${
url
}
`
);
return
withTimeout
(
config
.
BROWSER_TIMEOUT
,
fetch
(
url
).
then
(
res
=>
res
.
text
()),
)
.
then
(
async
({
value
:
res
,
time
})
=>
{
try
{
const
state
=
this
.
pushPageState
();
state
.
url
=
new
URL
(
url
);
state
.
url_string
=
url
;
state
.
hostname
=
state
.
url
.
hostname
;
const
html
=
res
;
const
dom
=
new
JSDOM
(
html
);
const
title
=
dom
.
window
.
document
.
title
;
const
markdown
=
this
.
transform
(
dom
);
state
.
title
=
title
;
// Remove first line, because it will be served as the title
const
lines
=
markdown
.
split
(
'
\n
'
);
lines
.
shift
();
// Remove consequent empty lines
let
i
=
0
;
while
(
i
<
lines
.
length
-
1
)
{
if
(
lines
[
i
].
trim
()
===
''
&&
lines
[
i
+
1
].
trim
()
===
''
)
{
lines
.
splice
(
i
,
1
);
}
else
{
i
++
;
}
}
let
page
=
lines
.
join
(
'
\n
'
);
// The first line feed is not a typo
let
text_result
=
`\nURL:
${
url
}
\n
${
page
}
`
;
state
.
lines
=
text_result
.
split
(
'
\n
'
);
// all lines has only one source
state
.
line_source
=
{};
state
.
line_source
[
`0-
${
state
.
lines
.
length
-
1
}
`
]
=
{
type
:
'
webpage
'
,
title
:
title
,
url
:
url
,
lines
:
state
.
lines
,
};
let
message
=
this
.
formatPage
(
state
);
const
returnContentType
=
'
browser_result
'
;
return
{
contentType
:
returnContentType
,
roleMetadata
:
returnContentType
,
message
,
metadataList
:
state
.
links_meta
,
};
}
catch
(
err
)
{
throw
new
Error
(
`parse error:
${
err
}
`
);
}
})
.
catch
(
err
=>
{
logger
.
error
(
err
.
message
);
if
(
err
.
code
===
'
ECONNABORTED
'
)
{
throw
new
Error
(
`Timeout while loading page w/ URL:
${
url
}
`
);
}
throw
new
Error
(
`Failed to load page w/ URL:
${
url
}
`
);
});
},
mclick
:
(
ids
:
number
[])
=>
{
logger
.
info
(
'
Entering mclick
'
,
ids
);
let
promises
:
Promise
<
ActionResult
>
[]
=
[];
let
state
=
this
.
lastPageState
();
for
(
let
id
of
ids
)
{
if
(
isNaN
(
id
)
||
id
>=
state
.
links
.
length
)
{
promises
.
push
(
Promise
.
reject
(
new
Error
(
`recorded='click(
${
id
}
)' temporary=None permanent=None new_state=None final=None success=False feedback='Error parsing ID
${
id
}
' metadata={}`
,
),
),
);
continue
;
}
let
url
:
string
;
try
{
url
=
new
URL
(
state
.
links
[
id
],
state
.
url
).
href
;
}
catch
(
err
)
{
logger
.
error
(
`Failed in getting
${
state
.
links
[
id
]}
,
${
state
.
url
}
`
);
promises
.
push
(
Promise
.
reject
(
new
Error
(
`recorded='click(
${
id
}
)' temporary=None permanent='
${
err
}
' new_state=None final=None success=False feedback='Error parsing URL for ID
${
id
}
' metadata={}`
,
),
),
);
continue
;
}
const
quoteIndex
=
this
.
state
.
quoteCounter
++
;
// ascending in final results
promises
.
push
(
withTimeout
(
config
.
BROWSER_TIMEOUT
,
fetch
(
url
).
then
(
res
=>
res
.
text
()),
)
.
then
(({
value
:
res
,
time
})
=>
{
let
state
=
this
.
newPageState
();
state
.
url
=
new
URL
(
url
);
state
.
hostname
=
state
.
url
.
hostname
;
try
{
const
html
=
res
;
const
dom
=
new
JSDOM
(
html
);
const
title
=
dom
.
window
.
document
.
title
;
state
.
title
=
title
;
removeDenseLinks
(
dom
.
window
.
document
);
let
quoteText
=
this
.
transform
(
dom
);
// remove consecutive newline
quoteText
=
quoteText
.
replace
(
/
[\r\n]
+/g
,
'
\n
'
);
const
quoteLines
=
quoteText
.
split
(
'
\n
'
);
state
.
lines
=
quoteLines
;
const
metadata
=
{
type
:
'
webpage
'
,
title
:
title
,
url
:
url
,
lines
:
quoteLines
,
};
const
quoteMetadata
=
{
type
:
'
webpage
'
,
title
:
title
,
url
:
url
,
text
:
quoteText
,
};
state
.
line_source
=
{};
state
.
line_source
[
`0-
${
state
.
lines
.
length
-
1
}
`
]
=
metadata
;
this
.
state
.
quotes
[
quoteIndex
.
toString
()]
=
{
text
:
quoteText
,
metadata
:
[
metadata
],
};
const
returnContentType
=
'
quote_result
'
;
return
{
contentType
:
returnContentType
,
roleMetadata
:
`
${
returnContentType
}
[
${
quoteIndex
}
†source]`
,
message
:
quoteText
,
metadataList
:
[
quoteMetadata
],
metadata
:
{
url
,
},
};
}
catch
(
err
)
{
throw
new
Error
(
`parse error:
${
err
}
`
);
}
})
.
catch
(
err
=>
{
logger
.
error
(
err
.
message
);
if
(
err
.
code
===
'
ECONNABORTED
'
)
{
throw
new
Error
(
`Timeout while loading page w/ URL:
${
this
.
formatErrorUrl
(
url
)}
`
);
}
throw
new
Error
(
`Failed to load page w/ URL:
${
this
.
formatErrorUrl
(
url
)}
`
);
})
.
catch
(
err
=>
{
// format error message
const
returnContentType
=
'
system_error
'
;
throw
{
contentType
:
returnContentType
,
roleMetadata
:
returnContentType
,
message
:
`recorded='click(
${
id
}
)' temporary=None permanent='
${
err
.
message
}
' new_state=None final=None success=False feedback='Error fetching url
${
this
.
formatErrorUrl
(
url
,
)}
' metadata={}`
,
metadata
:
{
failedURL
:
url
,
},
}
as
ActionResult
;
}),
);
}
return
Promise
.
allSettled
(
promises
).
then
(
async
results
=>
{
const
actionResults
=
results
.
map
(
r
=>
{
if
(
r
.
status
===
'
fulfilled
'
)
{
return
r
.
value
;
}
else
{
logger
.
error
(
r
.
reason
);
return
r
.
reason
as
ActionResult
;
}
});
if
(
results
.
filter
(
r
=>
r
.
status
===
'
fulfilled
'
).
length
===
0
)
{
// collect errors
const
err_text
=
(
results
as
PromiseRejectedResult
[])
.
map
(
r
=>
(
r
.
reason
as
ActionResult
).
message
)
.
join
(
'
\n
'
);
throw
new
Error
(
err_text
);
}
else
{
return
actionResults
;
}
});
},
};
constructor
()
{
this
.
state
=
{
pageStack
:
[],
quotes
:
{},
quoteCounter
:
7
,
};
this
.
turndownService
.
remove
(
'
script
'
);
this
.
turndownService
.
remove
(
'
style
'
);
// Add rules for turndown
this
.
turndownService
.
addRule
(
'
reference
'
,
{
filter
:
function
(
node
,
options
:
any
):
boolean
{
return
(
options
.
linkStyle
===
'
inlined
'
&&
node
.
nodeName
===
'
A
'
&&
node
.
getAttribute
(
'
href
'
)
!==
undefined
);
},
replacement
:
(
content
,
node
,
options
):
string
=>
{
let
state
=
this
.
state
.
pageStack
[
this
.
state
.
pageStack
.
length
-
1
];
if
(
!
content
||
!
(
'
getAttribute
'
in
node
))
return
''
;
let
href
=
undefined
;
try
{
if
(
'
getAttribute
'
in
node
)
{
const
hostname
=
new
URL
(
node
.
getAttribute
(
'
href
'
)
!
).
hostname
;
// Do not append hostname when in the same domain
if
(
hostname
===
state
.
hostname
||
!
hostname
)
{
href
=
''
;
}
else
{
href
=
'
†
'
+
hostname
;
}
}
}
catch
(
e
)
{
// To prevent displaying links like '/foo/bar'
href
=
''
;
}
if
(
href
===
undefined
)
return
''
;
const
url
=
node
.
getAttribute
(
'
href
'
)
!
;
let
linkId
=
state
.
links
.
findIndex
(
link
=>
link
===
url
);
if
(
linkId
===
-
1
)
{
linkId
=
state
.
aCounter
++
;
// logger.debug(`New link[${linkId}]: ${url}`);
state
.
links_meta
.
push
({
type
:
'
webpage
'
,
title
:
node
.
textContent
!
,
url
:
href
,
text
:
node
.
textContent
!
,
});
state
.
links
.
push
(
url
);
}
return
`【
${
linkId
}
†
${
node
.
textContent
}${
href
}
】`
;
},
});
this
.
turndownService
.
addRule
(
'
img
'
,
{
filter
:
'
img
'
,
replacement
:
(
content
,
node
,
options
):
string
=>
{
let
state
=
this
.
state
.
pageStack
[
this
.
state
.
pageStack
.
length
-
1
];
return
`[Image
${
state
.
imgCounter
++
}
]`
;
},
});
// Just to change indentation, wondering why this isn't exposed as an option
this
.
turndownService
.
addRule
(
'
list
'
,
{
filter
:
'
li
'
,
replacement
:
function
(
content
,
node
,
options
)
{
content
=
content
.
replace
(
/^
\n
+/
,
''
)
// remove leading newlines
.
replace
(
/
\n
+$/
,
'
\n
'
)
// replace trailing newlines with just a single one
.
replace
(
/
\n
/gm
,
'
\n
'
);
// indent
let
prefix
=
options
.
bulletListMarker
+
'
'
;
const
parent
=
node
.
parentNode
!
as
Element
;
if
(
parent
.
nodeName
===
'
OL
'
)
{
const
start
=
parent
.
getAttribute
(
'
start
'
);
const
index
=
Array
.
prototype
.
indexOf
.
call
(
parent
.
children
,
node
);
prefix
=
(
start
?
Number
(
start
)
+
index
:
index
+
1
)
+
'
.
'
;
}
return
'
'
+
prefix
+
content
+
(
node
.
nextSibling
&&
!
/
\n
$/
.
test
(
content
)
?
'
\n
'
:
''
);
},
});
// Remove bold; remove() doesn't work on this, I don't know why
this
.
turndownService
.
addRule
(
'
emph
'
,
{
filter
:
[
'
strong
'
,
'
b
'
],
replacement
:
function
(
content
,
node
,
options
)
{
if
(
!
content
.
trim
())
return
''
;
return
content
;
},
});
}
abstract
actionLine
(
content
:
string
):
Promise
<
ActionResult
|
ActionResult
[]
>
;
async
action
(
content
:
string
):
Promise
<
ToolObservation
[]
>
{
const
lines
=
content
.
split
(
'
\n
'
);
let
results
:
ActionResult
[]
=
[];
for
(
const
line
of
lines
)
{
logger
.
info
(
`Action line:
${
line
}
`
)
try
{
const
lineActionResult
=
await
this
.
actionLine
(
line
);
logger
.
debug
(
`Action line result:
${
JSON
.
stringify
(
lineActionResult
,
null
,
2
)}
`
);
if
(
Array
.
isArray
(
lineActionResult
))
{
results
=
results
.
concat
(
lineActionResult
);
}
else
{
results
.
push
(
lineActionResult
);
}
}
catch
(
err
)
{
const
returnContentType
=
'
system_error
'
;
results
.
push
({
contentType
:
returnContentType
,
roleMetadata
:
returnContentType
,
message
:
`Error when executing command
${
line
}
\n
${
err
}
`
,
metadata
:
{
failedCommand
:
line
,
},
});
}
}
const
observations
:
ToolObservation
[]
=
[];
for
(
const
result
of
results
)
{
const
observation
:
ToolObservation
=
{
contentType
:
result
.
contentType
,
result
:
result
.
message
,
roleMetadata
:
result
.
roleMetadata
,
metadata
:
result
.
metadata
??
{},
};
if
(
result
.
metadataList
)
{
observation
.
metadata
.
metadata_list
=
result
.
metadataList
;
}
observations
.
push
(
observation
);
}
return
observations
;
}
postProcess
(
message
:
Message
,
metadata
:
any
)
{
const
quotePattern
=
/【
(
.+
?)
†
(
.*
?)
】/g
;
const
content
=
message
.
content
;
let
match
;
let
citations
:
Citation
[]
=
[];
const
citation_format_type
=
'
tether_og
'
;
while
((
match
=
quotePattern
.
exec
(
content
)))
{
logger
.
debug
(
`Citation match:
${
match
[
0
]}
`
);
const
start_ix
=
match
.
index
;
const
end_ix
=
match
.
index
+
match
[
0
].
length
;
let
invalid_reason
=
undefined
;
let
metadata
:
TetherQuoteMetadata
;
try
{
let
cited_message_idx
=
parseInt
(
match
[
1
]);
let
evidence_text
=
match
[
2
];
let
quote
=
this
.
state
.
quotes
[
cited_message_idx
.
toString
()];
if
(
quote
===
undefined
)
{
invalid_reason
=
`'Referenced message
${
cited_message_idx
}
in citation 【
${
cited_message_idx
}
†
${
evidence_text
}
】 is not a quote or tether browsing display.'`
;
logger
.
error
(
`Triggered citation error with quote undefined:
${
invalid_reason
}
`
);
citations
.
push
({
citation_format_type
,
start_ix
,
end_ix
,
invalid_reason
,
});
}
else
{
let
extra
:
TetherQuoteExtra
=
{
cited_message_idx
,
evidence_text
,
};
const
quote_metadata
=
quote
.
metadata
[
0
];
metadata
=
{
type
:
'
webpage
'
,
title
:
quote_metadata
.
title
,
url
:
quote_metadata
.
url
,
text
:
quote_metadata
.
lines
.
join
(
'
\n
'
),
extra
,
};
citations
.
push
({
citation_format_type
,
start_ix
,
end_ix
,
metadata
,
});
}
}
catch
(
err
)
{
logger
.
error
(
`Triggered citation error:
${
err
}
`
);
invalid_reason
=
`Citation Error:
${
err
}
`
;
citations
.
push
({
start_ix
,
end_ix
,
citation_format_type
,
invalid_reason
,
});
}
}
metadata
.
citations
=
citations
;
}
getState
()
{
return
this
.
state
;
}
}
export
class
SimpleBrowser
extends
BaseBrowser
{
public
description
=
'
SimpleBrowser
'
;
constructor
()
{
super
();
}
async
actionLine
(
content
:
string
):
Promise
<
ActionResult
|
ActionResult
[]
>
{
const
regex
=
/
(\w
+
)\(([^
)
]
*
)\)
/
;
const
matches
=
content
.
match
(
regex
);
if
(
matches
)
{
const
functionName
=
matches
[
1
];
let
args_string
=
matches
[
2
];
if
(
functionName
===
'
mclick
'
)
{
args_string
=
args_string
.
trim
().
slice
(
1
,
-
1
);
// remove '[' and ']'
}
const
args
=
args_string
.
split
(
'
,
'
).
map
(
arg
=>
arg
.
trim
());
let
result
;
switch
(
functionName
)
{
case
'
search
'
:
logger
.
debug
(
`SimpleBrowser action search
${
args
[
0
].
slice
(
1
,
-
1
)}
`
);
const
recency_days
=
/
(
^|
\D)(\d
+
)(
$|
\D)
/
.
exec
(
args
[
1
])?.[
2
]
as
undefined
|
`
${
number
}
`
;
result
=
await
this
.
functions
.
search
(
args
[
0
].
slice
(
1
,
-
1
),
// slice quote "query"
recency_days
&&
Number
(
recency_days
),
);
break
;
case
'
open_url
'
:
logger
.
debug
(
`SimpleBrowser action open_url
${
args
[
0
].
slice
(
1
,
-
1
)}
`
);
result
=
await
this
.
functions
.
open_url
(
args
[
0
].
slice
(
1
,
-
1
));
break
;
case
'
mclick
'
:
logger
.
debug
(
`SimpleBrowser action mclick
${
args
}
`
);
result
=
await
this
.
functions
.
mclick
(
args
.
map
(
x
=>
parseInt
(
x
)));
break
;
default
:
throw
new
Error
(
`Parse Error:
${
content
}
`
);
}
return
result
;
}
else
{
throw
new
Error
(
'
Parse Error
'
);
}
}
}
if
(
require
.
main
===
module
)
{
(
async
()
=>
{
let
browser
=
new
SimpleBrowser
();
let
demo
=
async
(
action
:
string
)
=>
{
logger
.
info
(
` ------ Begin of Action:
${
action
}
------`
);
let
results
=
await
browser
.
action
(
action
);
for
(
const
[
idx
,
result
]
of
results
.
entries
())
{
logger
.
info
(
`[Result
${
idx
}
] contentType:
${
result
.
contentType
}
`
);
logger
.
info
(
`[Result
${
idx
}
] roleMetadata:
${
result
.
roleMetadata
}
`
);
logger
.
info
(
`[Result
${
idx
}
] result:
${
result
.
result
}
`
);
logger
.
info
(
`[Result
${
idx
}
] metadata:
${
JSON
.
stringify
(
result
.
metadata
,
null
,
2
)}
`
);
}
logger
.
info
(
` ------ End of Action:
${
action
}
------\n\n`
);
};
await
demo
(
"
search('Apple Latest News')
"
);
await
demo
(
'
mclick([0, 1, 5, 6])
'
);
await
demo
(
'
mclick([1, 999999])
'
);
await
demo
(
"
open_url('https://chatglm.cn')
"
);
await
demo
(
"
search('zhipu latest News')
"
);
await
demo
(
'
mclick([0, 1, 5, 6])
'
);
})();
}
composite_demo/browser/src/config.ts
0 → 100644
View file @
9eb7f37f
export
default
{
LOG_LEVEL
:
'
debug
'
,
BROWSER_TIMEOUT
:
10000
,
BING_SEARCH_API_URL
:
'
https://api.bing.microsoft.com/
'
,
BING_SEARCH_API_KEY
:
''
,
HOST
:
'
localhost
'
,
PORT
:
3000
,
};
\ No newline at end of file
composite_demo/browser/src/server.ts
0 → 100644
View file @
9eb7f37f
import
express
,
{
Express
,
Request
,
Response
}
from
'
express
'
;
import
{
SimpleBrowser
}
from
'
./browser
'
;
import
config
from
'
./config
'
;
import
{
logger
}
from
'
./utils
'
;
const
session_history
:
Record
<
string
,
SimpleBrowser
>
=
{};
const
app
:
Express
=
express
();
app
.
use
(
express
.
json
());
app
.
post
(
'
/
'
,
async
(
req
:
Request
,
res
:
Response
)
=>
{
const
{
session_id
,
action
,
}:
{
session_id
:
string
;
action
:
string
;
}
=
req
.
body
;
logger
.
info
(
`session_id:
${
session_id
}
`
);
logger
.
info
(
`action:
${
action
}
`
);
if
(
!
session_history
[
session_id
])
{
session_history
[
session_id
]
=
new
SimpleBrowser
();
}
const
browser
=
session_history
[
session_id
];
try
{
res
.
json
(
await
browser
.
action
(
action
));
}
catch
(
err
)
{
logger
.
error
(
err
);
res
.
status
(
400
).
json
(
err
);
}
})
process
.
on
(
'
SIGINT
'
,
()
=>
{
process
.
exit
(
0
);
});
process
.
on
(
'
uncaughtException
'
,
e
=>
{
logger
.
error
(
e
);
});
const
{
HOST
,
PORT
}
=
config
;
(
async
()
=>
{
app
.
listen
(
PORT
,
HOST
,
()
=>
{
logger
.
info
(
`⚡️[server]: Server is running at http://
${
HOST
}
:
${
PORT
}
`
);
try
{
(
<
any
>
process
).
send
(
'
ready
'
);
}
catch
(
err
)
{}
});
})();
composite_demo/browser/src/types.ts
0 → 100644
View file @
9eb7f37f
export
interface
File
{
id
:
string
;
name
:
string
;
size
:
number
;
}
export
interface
Metadata
{
files
?:
File
[];
reference
?:
string
;
}
export
interface
Message
{
role
:
'
user
'
|
'
assistant
'
|
'
system
'
|
'
observation
'
;
metadata
:
string
;
content
:
string
;
request_metadata
?:
Metadata
;
}
export
interface
ToolObservation
{
contentType
:
string
;
result
:
string
;
text
?:
string
;
roleMetadata
?:
string
;
// metadata for <|observation|>${metadata}
metadata
:
any
;
// metadata for response
}
composite_demo/browser/src/utils.ts
0 → 100644
View file @
9eb7f37f
import
winston
from
'
winston
'
;
import
config
from
'
./config
'
;
export
class
TimeoutError
extends
Error
{}
const
logLevel
=
config
.
LOG_LEVEL
;
export
const
logger
=
winston
.
createLogger
({
level
:
logLevel
,
format
:
winston
.
format
.
combine
(
winston
.
format
.
colorize
(),
winston
.
format
.
printf
(
info
=>
{
return
`
${
info
.
level
}
:
${
info
.
message
}
`
;
}),
),
transports
:
[
new
winston
.
transports
.
Console
()],
});
console
.
log
(
'
LOG_LEVEL
'
,
logLevel
);
export
const
parseHrtimeToMillisecond
=
(
hrtime
:
[
number
,
number
]):
number
=>
{
return
(
hrtime
[
0
]
+
hrtime
[
1
]
/
1
e9
)
*
1000
;
};
export
const
promiseWithTime
=
<
T
>
(
promise
:
Promise
<
T
>
):
Promise
<
{
value
:
T
;
time
:
number
;
}
>
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
const
startTime
=
process
.
hrtime
();
promise
.
then
(
value
=>
{
resolve
({
value
:
value
,
time
:
parseHrtimeToMillisecond
(
process
.
hrtime
(
startTime
))
});
})
.
catch
(
err
=>
reject
(
err
));
});
};
export
const
withTimeout
=
<
T
>
(
millis
:
number
,
promise
:
Promise
<
T
>
):
Promise
<
{
value
:
T
;
time
:
number
;
}
>
=>
{
const
timeout
=
new
Promise
<
{
value
:
T
;
time
:
number
}
>
((
_
,
reject
)
=>
setTimeout
(()
=>
reject
(
new
TimeoutError
()),
millis
)
);
return
Promise
.
race
([
promiseWithTime
(
promise
),
timeout
]);
};
\ No newline at end of file
composite_demo/browser/tsconfig.json
0 → 100644
View file @
9eb7f37f
{
"compilerOptions"
:
{
"target"
:
"es2022"
,
"lib"
:
[
"es2022"
,
"dom"
],
"module"
:
"commonjs"
,
"rootDir"
:
"./"
,
"outDir"
:
"./dist"
,
"esModuleInterop"
:
true
,
"forceConsistentCasingInFileNames"
:
true
,
"strict"
:
true
,
},
"ts-node"
:
{
"transpileOnly"
:
true
}
}
composite_demo/requirements.txt
0 → 100644
View file @
9eb7f37f
accelerate
huggingface_hub>=0.19.4
ipykernel>=6.26.0
ipython>=8.18.1
jupyter_client>=8.6.0
langchain
langchain-community
matplotlib
pillow>=10.1.0
pymupdf
python-docx
python-pptx
pyyaml>=6.0.1
requests>=2.31.0
sentencepiece
streamlit>=1.35.0
tiktoken
transformers==4.40.0
zhipuai>=2.1.0
# Please install vllm if you'd like to use long context model.
# vllm
Prev
1
2
3
4
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment