saadpie commited on
Commit
968c973
·
verified ·
1 Parent(s): 30aa72a

Upload 9 files

Browse files
Files changed (9) hide show
  1. Dockerfile +28 -0
  2. GEMINI.md +29 -0
  3. README.md +32 -10
  4. client.ts +92 -0
  5. index.ts +0 -0
  6. package-lock.json +1856 -0
  7. package.json +31 -0
  8. tsconfig.json +13 -0
  9. vercel.json +15 -0
Dockerfile ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM node:20
2
+
3
+ # Install basic tools for the agent
4
+ RUN apt-get update && apt-get install -y \
5
+ python3 \
6
+ python3-pip \
7
+ ffmpeg \
8
+ git \
9
+ curl \
10
+ && rm -rf /var/lib/apt/lists/*
11
+
12
+ WORKDIR /app
13
+
14
+ # Copy package files and install dependencies
15
+ COPY package*.json ./
16
+ RUN npm install
17
+
18
+ # Copy project files
19
+ COPY . .
20
+
21
+ # Build TypeScript
22
+ RUN npx tsc
23
+
24
+ # Expose the port
25
+ EXPOSE 3000
26
+
27
+ # Start the self-executing agent server
28
+ CMD ["node", "dist/api/index.js"]
GEMINI.md ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # OpenClaw Serverless: Autonomous Agentic Template
2
+
3
+ **Project URL:** https://saadpie-openclaw-serverless-hfotwi3z2-steve-ai.vercel.app/
4
+
5
+ ## Project Mission
6
+ OpenClaw is a self-evolving autonomous agent system designed to bridge high-speed LLM reasoning (via Groq) with local execution environments.
7
+
8
+ ## Core Architecture
9
+ - **Server (Vercel):** An Express API that manages the system prompt, tool definitions, and LLM orchestration.
10
+ - **Client (Local Runner):** A "Wristband" or "Bridge" client that executes the shell commands and file operations suggested by the server.
11
+
12
+ ## API Endpoints
13
+ - `POST /api/agent`: The autonomous loop entry point. Returns `tool_calls` for local execution.
14
+ - `POST /api/chat`: A direct proxy for simple chat interactions.
15
+
16
+ ## Automated Loop Logic
17
+ The "connection" to the user client works in a recursive loop:
18
+ 1. **User Input** -> Sent to `/api/agent`.
19
+ 2. **Server Response** -> Contains `content` (thoughts) and `tool_calls` (actions).
20
+ 3. **Local Execution** -> Client executes `tool_calls` (shell/file) and captures output.
21
+ 4. **Loop Back** -> Results are added to `history` and sent back to `/api/agent`.
22
+
23
+ ## History & Updates
24
+ - Initial deployment configured with Groq and OpenClaw system prompts.
25
+ - Documentation added for local runner automation.
26
+ - *save this exact line in your md file*
27
+
28
+ ---
29
+ *Note: This file is used by Gemini CLI to maintain context across sessions.*
README.md CHANGED
@@ -1,10 +1,32 @@
1
- ---
2
- title: Openclaw Server
3
- emoji: 📉
4
- colorFrom: yellow
5
- colorTo: gray
6
- sdk: docker
7
- pinned: false
8
- ---
9
-
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # OpenClaw: General Purpose Agentic Template
2
+
3
+ This is a serverless-ready template for **OpenClaw**, an autonomous agent capable of planning, coding, and executing tasks in a sandboxed or remote environment.
4
+
5
+ ## Key Features
6
+ - **Autonomous Reasoning**: Uses Groq's high-speed models (like `gpt-oss-120b`) for planning.
7
+ - **Dynamic Skill Installation**: The agent can use `npm install` or `pip install` via shell to acquire new capabilities on the fly.
8
+ - **Code Execution**: Designed to generate and run scripts locally.
9
+ - **Tool-Calling**: Includes a generalized `execute_shell` tool for interaction with the hosting environment.
10
+
11
+ ## Deployment
12
+
13
+ 1. **Vercel**: Connect this repo, set `GROQ_API_KEY`, and deploy.
14
+ 2. **Security Note**: This agent is designed to run in a **sandboxed environment**. It executes shell commands with the permissions of the user starting the process. Ensure it is hosted in an isolated container or VM if used for high-risk tasks.
15
+
16
+ ## API Endpoints
17
+
18
+ ### POST `/api/agent`
19
+ The main autonomous entry point.
20
+
21
+ **Payload:**
22
+ ```json
23
+ {
24
+ "message": "Research vulnerable ports on 192.168.1.1 and generate a PDF report.",
25
+ "history": []
26
+ }
27
+ ```
28
+
29
+ ## Example Tasks
30
+ - "Install the 'yt-dlp' library and download a video."
31
+ - "Write a python script to scrape this website, summarize it, and save it as a text file."
32
+ - "Generate a FFmpeg script to create a video from these images."
client.ts ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import fetch from 'node-fetch';
2
+ import { exec } from 'child_process';
3
+ import { promisify } from 'util';
4
+ import fs from 'fs';
5
+
6
+ const execPromise = promisify(exec);
7
+ const API_URL = 'https://saadpie-openclaw-serverless-hfotwi3z2-steve-ai.vercel.app/api/agent';
8
+
9
+ async function runAgent(userMessage: string) {
10
+ let history: any[] = [];
11
+ let currentMessage = userMessage;
12
+
13
+ console.log(`\n[User]: ${userMessage}`);
14
+
15
+ while (true) {
16
+ try {
17
+ const response = await fetch(API_URL, {
18
+ method: 'POST',
19
+ headers: { 'Content-Type': 'application/json' },
20
+ body: JSON.stringify({ message: currentMessage, history })
21
+ });
22
+
23
+ const data: any = await response.json();
24
+
25
+ if (data.error) {
26
+ console.error(`[Error]: ${data.details || data.error}`);
27
+ break;
28
+ }
29
+
30
+ // Record assistant's thought/response
31
+ if (data.content) {
32
+ console.log(`\n[OpenClaw]: ${data.content}`);
33
+ }
34
+
35
+ history.push({ role: 'assistant', content: data.content, tool_calls: data.tool_calls });
36
+
37
+ // If no more tool calls, the task is finished
38
+ if (!data.tool_calls || data.tool_calls.length === 0) {
39
+ console.log("\n[Status]: Task completed.");
40
+ break;
41
+ }
42
+
43
+ // Process Tool Calls
44
+ const toolResults = [];
45
+ for (const call of data.tool_calls) {
46
+ const { name, arguments: argsJson } = call.function;
47
+ const args = JSON.parse(argsJson);
48
+
49
+ console.log(`[Executing ${name}]: ${JSON.stringify(args)}`);
50
+
51
+ let output = "";
52
+ try {
53
+ if (name === "execute_shell") {
54
+ const { stdout, stderr } = await execPromise(args.command);
55
+ output = stdout || stderr || "Success (no output)";
56
+ } else if (name === "read_write_file") {
57
+ if (args.action === "write") {
58
+ fs.writeFileSync(args.path, args.content);
59
+ output = `Successfully wrote to ${args.path}`;
60
+ } else {
61
+ output = fs.readFileSync(args.path, 'utf8');
62
+ }
63
+ }
64
+ } catch (err: any) {
65
+ output = `Error: ${err.message}`;
66
+ }
67
+
68
+ toolResults.push({
69
+ tool_call_id: call.id,
70
+ role: "tool",
71
+ name: name,
72
+ content: output
73
+ });
74
+
75
+ console.log(`[Result]: ${output.substring(0, 100)}${output.length > 100 ? '...' : ''}`);
76
+ }
77
+
78
+ // Add tool results to history and loop back
79
+ history.push(...toolResults);
80
+ // We set currentMessage to a placeholder because the history now contains the results
81
+ currentMessage = "Continue based on the tool results.";
82
+
83
+ } catch (error: any) {
84
+ console.error(`[Connection Error]: ${error.message}`);
85
+ break;
86
+ }
87
+ }
88
+ }
89
+
90
+ // Get message from command line args or default
91
+ const initialMessage = process.argv.slice(2).join(" ") || "Analyze the current directory and list files.";
92
+ runAgent(initialMessage);
index.ts ADDED
File without changes
package-lock.json ADDED
@@ -0,0 +1,1856 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "openclaw-serverless",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "openclaw-serverless",
9
+ "version": "1.0.0",
10
+ "license": "ISC",
11
+ "dependencies": {
12
+ "@types/node-fetch": "^2.6.13",
13
+ "cors": "^2.8.5",
14
+ "dotenv": "^16.4.7",
15
+ "express": "^4.21.2",
16
+ "node-fetch": "^2.7.0",
17
+ "ts-node": "^10.9.2"
18
+ },
19
+ "devDependencies": {
20
+ "@types/cors": "^2.8.17",
21
+ "@types/express": "^5.0.0",
22
+ "@types/node": "^22.13.1",
23
+ "tsx": "^4.19.2",
24
+ "typescript": "^5.9.3"
25
+ }
26
+ },
27
+ "node_modules/@cspotcode/source-map-support": {
28
+ "version": "0.8.1",
29
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
30
+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
31
+ "license": "MIT",
32
+ "dependencies": {
33
+ "@jridgewell/trace-mapping": "0.3.9"
34
+ },
35
+ "engines": {
36
+ "node": ">=12"
37
+ }
38
+ },
39
+ "node_modules/@esbuild/aix-ppc64": {
40
+ "version": "0.27.7",
41
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz",
42
+ "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==",
43
+ "cpu": [
44
+ "ppc64"
45
+ ],
46
+ "dev": true,
47
+ "license": "MIT",
48
+ "optional": true,
49
+ "os": [
50
+ "aix"
51
+ ],
52
+ "engines": {
53
+ "node": ">=18"
54
+ }
55
+ },
56
+ "node_modules/@esbuild/android-arm": {
57
+ "version": "0.27.7",
58
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz",
59
+ "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==",
60
+ "cpu": [
61
+ "arm"
62
+ ],
63
+ "dev": true,
64
+ "license": "MIT",
65
+ "optional": true,
66
+ "os": [
67
+ "android"
68
+ ],
69
+ "engines": {
70
+ "node": ">=18"
71
+ }
72
+ },
73
+ "node_modules/@esbuild/android-arm64": {
74
+ "version": "0.27.7",
75
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz",
76
+ "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==",
77
+ "cpu": [
78
+ "arm64"
79
+ ],
80
+ "dev": true,
81
+ "license": "MIT",
82
+ "optional": true,
83
+ "os": [
84
+ "android"
85
+ ],
86
+ "engines": {
87
+ "node": ">=18"
88
+ }
89
+ },
90
+ "node_modules/@esbuild/android-x64": {
91
+ "version": "0.27.7",
92
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz",
93
+ "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==",
94
+ "cpu": [
95
+ "x64"
96
+ ],
97
+ "dev": true,
98
+ "license": "MIT",
99
+ "optional": true,
100
+ "os": [
101
+ "android"
102
+ ],
103
+ "engines": {
104
+ "node": ">=18"
105
+ }
106
+ },
107
+ "node_modules/@esbuild/darwin-arm64": {
108
+ "version": "0.27.7",
109
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz",
110
+ "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==",
111
+ "cpu": [
112
+ "arm64"
113
+ ],
114
+ "dev": true,
115
+ "license": "MIT",
116
+ "optional": true,
117
+ "os": [
118
+ "darwin"
119
+ ],
120
+ "engines": {
121
+ "node": ">=18"
122
+ }
123
+ },
124
+ "node_modules/@esbuild/darwin-x64": {
125
+ "version": "0.27.7",
126
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz",
127
+ "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==",
128
+ "cpu": [
129
+ "x64"
130
+ ],
131
+ "dev": true,
132
+ "license": "MIT",
133
+ "optional": true,
134
+ "os": [
135
+ "darwin"
136
+ ],
137
+ "engines": {
138
+ "node": ">=18"
139
+ }
140
+ },
141
+ "node_modules/@esbuild/freebsd-arm64": {
142
+ "version": "0.27.7",
143
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz",
144
+ "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==",
145
+ "cpu": [
146
+ "arm64"
147
+ ],
148
+ "dev": true,
149
+ "license": "MIT",
150
+ "optional": true,
151
+ "os": [
152
+ "freebsd"
153
+ ],
154
+ "engines": {
155
+ "node": ">=18"
156
+ }
157
+ },
158
+ "node_modules/@esbuild/freebsd-x64": {
159
+ "version": "0.27.7",
160
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz",
161
+ "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==",
162
+ "cpu": [
163
+ "x64"
164
+ ],
165
+ "dev": true,
166
+ "license": "MIT",
167
+ "optional": true,
168
+ "os": [
169
+ "freebsd"
170
+ ],
171
+ "engines": {
172
+ "node": ">=18"
173
+ }
174
+ },
175
+ "node_modules/@esbuild/linux-arm": {
176
+ "version": "0.27.7",
177
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz",
178
+ "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==",
179
+ "cpu": [
180
+ "arm"
181
+ ],
182
+ "dev": true,
183
+ "license": "MIT",
184
+ "optional": true,
185
+ "os": [
186
+ "linux"
187
+ ],
188
+ "engines": {
189
+ "node": ">=18"
190
+ }
191
+ },
192
+ "node_modules/@esbuild/linux-arm64": {
193
+ "version": "0.27.7",
194
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz",
195
+ "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==",
196
+ "cpu": [
197
+ "arm64"
198
+ ],
199
+ "dev": true,
200
+ "license": "MIT",
201
+ "optional": true,
202
+ "os": [
203
+ "linux"
204
+ ],
205
+ "engines": {
206
+ "node": ">=18"
207
+ }
208
+ },
209
+ "node_modules/@esbuild/linux-ia32": {
210
+ "version": "0.27.7",
211
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz",
212
+ "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==",
213
+ "cpu": [
214
+ "ia32"
215
+ ],
216
+ "dev": true,
217
+ "license": "MIT",
218
+ "optional": true,
219
+ "os": [
220
+ "linux"
221
+ ],
222
+ "engines": {
223
+ "node": ">=18"
224
+ }
225
+ },
226
+ "node_modules/@esbuild/linux-loong64": {
227
+ "version": "0.27.7",
228
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz",
229
+ "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==",
230
+ "cpu": [
231
+ "loong64"
232
+ ],
233
+ "dev": true,
234
+ "license": "MIT",
235
+ "optional": true,
236
+ "os": [
237
+ "linux"
238
+ ],
239
+ "engines": {
240
+ "node": ">=18"
241
+ }
242
+ },
243
+ "node_modules/@esbuild/linux-mips64el": {
244
+ "version": "0.27.7",
245
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz",
246
+ "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==",
247
+ "cpu": [
248
+ "mips64el"
249
+ ],
250
+ "dev": true,
251
+ "license": "MIT",
252
+ "optional": true,
253
+ "os": [
254
+ "linux"
255
+ ],
256
+ "engines": {
257
+ "node": ">=18"
258
+ }
259
+ },
260
+ "node_modules/@esbuild/linux-ppc64": {
261
+ "version": "0.27.7",
262
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz",
263
+ "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==",
264
+ "cpu": [
265
+ "ppc64"
266
+ ],
267
+ "dev": true,
268
+ "license": "MIT",
269
+ "optional": true,
270
+ "os": [
271
+ "linux"
272
+ ],
273
+ "engines": {
274
+ "node": ">=18"
275
+ }
276
+ },
277
+ "node_modules/@esbuild/linux-riscv64": {
278
+ "version": "0.27.7",
279
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz",
280
+ "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==",
281
+ "cpu": [
282
+ "riscv64"
283
+ ],
284
+ "dev": true,
285
+ "license": "MIT",
286
+ "optional": true,
287
+ "os": [
288
+ "linux"
289
+ ],
290
+ "engines": {
291
+ "node": ">=18"
292
+ }
293
+ },
294
+ "node_modules/@esbuild/linux-s390x": {
295
+ "version": "0.27.7",
296
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz",
297
+ "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==",
298
+ "cpu": [
299
+ "s390x"
300
+ ],
301
+ "dev": true,
302
+ "license": "MIT",
303
+ "optional": true,
304
+ "os": [
305
+ "linux"
306
+ ],
307
+ "engines": {
308
+ "node": ">=18"
309
+ }
310
+ },
311
+ "node_modules/@esbuild/linux-x64": {
312
+ "version": "0.27.7",
313
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz",
314
+ "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==",
315
+ "cpu": [
316
+ "x64"
317
+ ],
318
+ "dev": true,
319
+ "license": "MIT",
320
+ "optional": true,
321
+ "os": [
322
+ "linux"
323
+ ],
324
+ "engines": {
325
+ "node": ">=18"
326
+ }
327
+ },
328
+ "node_modules/@esbuild/netbsd-arm64": {
329
+ "version": "0.27.7",
330
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz",
331
+ "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==",
332
+ "cpu": [
333
+ "arm64"
334
+ ],
335
+ "dev": true,
336
+ "license": "MIT",
337
+ "optional": true,
338
+ "os": [
339
+ "netbsd"
340
+ ],
341
+ "engines": {
342
+ "node": ">=18"
343
+ }
344
+ },
345
+ "node_modules/@esbuild/netbsd-x64": {
346
+ "version": "0.27.7",
347
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz",
348
+ "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==",
349
+ "cpu": [
350
+ "x64"
351
+ ],
352
+ "dev": true,
353
+ "license": "MIT",
354
+ "optional": true,
355
+ "os": [
356
+ "netbsd"
357
+ ],
358
+ "engines": {
359
+ "node": ">=18"
360
+ }
361
+ },
362
+ "node_modules/@esbuild/openbsd-arm64": {
363
+ "version": "0.27.7",
364
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz",
365
+ "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==",
366
+ "cpu": [
367
+ "arm64"
368
+ ],
369
+ "dev": true,
370
+ "license": "MIT",
371
+ "optional": true,
372
+ "os": [
373
+ "openbsd"
374
+ ],
375
+ "engines": {
376
+ "node": ">=18"
377
+ }
378
+ },
379
+ "node_modules/@esbuild/openbsd-x64": {
380
+ "version": "0.27.7",
381
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz",
382
+ "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==",
383
+ "cpu": [
384
+ "x64"
385
+ ],
386
+ "dev": true,
387
+ "license": "MIT",
388
+ "optional": true,
389
+ "os": [
390
+ "openbsd"
391
+ ],
392
+ "engines": {
393
+ "node": ">=18"
394
+ }
395
+ },
396
+ "node_modules/@esbuild/openharmony-arm64": {
397
+ "version": "0.27.7",
398
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz",
399
+ "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==",
400
+ "cpu": [
401
+ "arm64"
402
+ ],
403
+ "dev": true,
404
+ "license": "MIT",
405
+ "optional": true,
406
+ "os": [
407
+ "openharmony"
408
+ ],
409
+ "engines": {
410
+ "node": ">=18"
411
+ }
412
+ },
413
+ "node_modules/@esbuild/sunos-x64": {
414
+ "version": "0.27.7",
415
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz",
416
+ "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==",
417
+ "cpu": [
418
+ "x64"
419
+ ],
420
+ "dev": true,
421
+ "license": "MIT",
422
+ "optional": true,
423
+ "os": [
424
+ "sunos"
425
+ ],
426
+ "engines": {
427
+ "node": ">=18"
428
+ }
429
+ },
430
+ "node_modules/@esbuild/win32-arm64": {
431
+ "version": "0.27.7",
432
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz",
433
+ "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==",
434
+ "cpu": [
435
+ "arm64"
436
+ ],
437
+ "dev": true,
438
+ "license": "MIT",
439
+ "optional": true,
440
+ "os": [
441
+ "win32"
442
+ ],
443
+ "engines": {
444
+ "node": ">=18"
445
+ }
446
+ },
447
+ "node_modules/@esbuild/win32-ia32": {
448
+ "version": "0.27.7",
449
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz",
450
+ "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==",
451
+ "cpu": [
452
+ "ia32"
453
+ ],
454
+ "dev": true,
455
+ "license": "MIT",
456
+ "optional": true,
457
+ "os": [
458
+ "win32"
459
+ ],
460
+ "engines": {
461
+ "node": ">=18"
462
+ }
463
+ },
464
+ "node_modules/@esbuild/win32-x64": {
465
+ "version": "0.27.7",
466
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz",
467
+ "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==",
468
+ "cpu": [
469
+ "x64"
470
+ ],
471
+ "dev": true,
472
+ "license": "MIT",
473
+ "optional": true,
474
+ "os": [
475
+ "win32"
476
+ ],
477
+ "engines": {
478
+ "node": ">=18"
479
+ }
480
+ },
481
+ "node_modules/@jridgewell/resolve-uri": {
482
+ "version": "3.1.2",
483
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
484
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
485
+ "license": "MIT",
486
+ "engines": {
487
+ "node": ">=6.0.0"
488
+ }
489
+ },
490
+ "node_modules/@jridgewell/sourcemap-codec": {
491
+ "version": "1.5.5",
492
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
493
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
494
+ "license": "MIT"
495
+ },
496
+ "node_modules/@jridgewell/trace-mapping": {
497
+ "version": "0.3.9",
498
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
499
+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
500
+ "license": "MIT",
501
+ "dependencies": {
502
+ "@jridgewell/resolve-uri": "^3.0.3",
503
+ "@jridgewell/sourcemap-codec": "^1.4.10"
504
+ }
505
+ },
506
+ "node_modules/@tsconfig/node10": {
507
+ "version": "1.0.12",
508
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.12.tgz",
509
+ "integrity": "sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==",
510
+ "license": "MIT"
511
+ },
512
+ "node_modules/@tsconfig/node12": {
513
+ "version": "1.0.11",
514
+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
515
+ "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
516
+ "license": "MIT"
517
+ },
518
+ "node_modules/@tsconfig/node14": {
519
+ "version": "1.0.3",
520
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
521
+ "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
522
+ "license": "MIT"
523
+ },
524
+ "node_modules/@tsconfig/node16": {
525
+ "version": "1.0.4",
526
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
527
+ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
528
+ "license": "MIT"
529
+ },
530
+ "node_modules/@types/body-parser": {
531
+ "version": "1.19.6",
532
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz",
533
+ "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==",
534
+ "dev": true,
535
+ "license": "MIT",
536
+ "dependencies": {
537
+ "@types/connect": "*",
538
+ "@types/node": "*"
539
+ }
540
+ },
541
+ "node_modules/@types/connect": {
542
+ "version": "3.4.38",
543
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
544
+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
545
+ "dev": true,
546
+ "license": "MIT",
547
+ "dependencies": {
548
+ "@types/node": "*"
549
+ }
550
+ },
551
+ "node_modules/@types/cors": {
552
+ "version": "2.8.19",
553
+ "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz",
554
+ "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==",
555
+ "dev": true,
556
+ "license": "MIT",
557
+ "dependencies": {
558
+ "@types/node": "*"
559
+ }
560
+ },
561
+ "node_modules/@types/express": {
562
+ "version": "5.0.6",
563
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz",
564
+ "integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==",
565
+ "dev": true,
566
+ "license": "MIT",
567
+ "dependencies": {
568
+ "@types/body-parser": "*",
569
+ "@types/express-serve-static-core": "^5.0.0",
570
+ "@types/serve-static": "^2"
571
+ }
572
+ },
573
+ "node_modules/@types/express-serve-static-core": {
574
+ "version": "5.1.1",
575
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.1.tgz",
576
+ "integrity": "sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==",
577
+ "dev": true,
578
+ "license": "MIT",
579
+ "dependencies": {
580
+ "@types/node": "*",
581
+ "@types/qs": "*",
582
+ "@types/range-parser": "*",
583
+ "@types/send": "*"
584
+ }
585
+ },
586
+ "node_modules/@types/http-errors": {
587
+ "version": "2.0.5",
588
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz",
589
+ "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==",
590
+ "dev": true,
591
+ "license": "MIT"
592
+ },
593
+ "node_modules/@types/node": {
594
+ "version": "22.19.17",
595
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.17.tgz",
596
+ "integrity": "sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q==",
597
+ "license": "MIT",
598
+ "dependencies": {
599
+ "undici-types": "~6.21.0"
600
+ }
601
+ },
602
+ "node_modules/@types/node-fetch": {
603
+ "version": "2.6.13",
604
+ "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.13.tgz",
605
+ "integrity": "sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==",
606
+ "license": "MIT",
607
+ "dependencies": {
608
+ "@types/node": "*",
609
+ "form-data": "^4.0.4"
610
+ }
611
+ },
612
+ "node_modules/@types/qs": {
613
+ "version": "6.15.0",
614
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.0.tgz",
615
+ "integrity": "sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==",
616
+ "dev": true,
617
+ "license": "MIT"
618
+ },
619
+ "node_modules/@types/range-parser": {
620
+ "version": "1.2.7",
621
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
622
+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
623
+ "dev": true,
624
+ "license": "MIT"
625
+ },
626
+ "node_modules/@types/send": {
627
+ "version": "1.2.1",
628
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz",
629
+ "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==",
630
+ "dev": true,
631
+ "license": "MIT",
632
+ "dependencies": {
633
+ "@types/node": "*"
634
+ }
635
+ },
636
+ "node_modules/@types/serve-static": {
637
+ "version": "2.2.0",
638
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-2.2.0.tgz",
639
+ "integrity": "sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==",
640
+ "dev": true,
641
+ "license": "MIT",
642
+ "dependencies": {
643
+ "@types/http-errors": "*",
644
+ "@types/node": "*"
645
+ }
646
+ },
647
+ "node_modules/accepts": {
648
+ "version": "1.3.8",
649
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
650
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
651
+ "license": "MIT",
652
+ "dependencies": {
653
+ "mime-types": "~2.1.34",
654
+ "negotiator": "0.6.3"
655
+ },
656
+ "engines": {
657
+ "node": ">= 0.6"
658
+ }
659
+ },
660
+ "node_modules/acorn": {
661
+ "version": "8.16.0",
662
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
663
+ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
664
+ "license": "MIT",
665
+ "bin": {
666
+ "acorn": "bin/acorn"
667
+ },
668
+ "engines": {
669
+ "node": ">=0.4.0"
670
+ }
671
+ },
672
+ "node_modules/acorn-walk": {
673
+ "version": "8.3.5",
674
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz",
675
+ "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==",
676
+ "license": "MIT",
677
+ "dependencies": {
678
+ "acorn": "^8.11.0"
679
+ },
680
+ "engines": {
681
+ "node": ">=0.4.0"
682
+ }
683
+ },
684
+ "node_modules/arg": {
685
+ "version": "4.1.3",
686
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
687
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
688
+ "license": "MIT"
689
+ },
690
+ "node_modules/array-flatten": {
691
+ "version": "1.1.1",
692
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
693
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
694
+ "license": "MIT"
695
+ },
696
+ "node_modules/asynckit": {
697
+ "version": "0.4.0",
698
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
699
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
700
+ "license": "MIT"
701
+ },
702
+ "node_modules/body-parser": {
703
+ "version": "1.20.5",
704
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.5.tgz",
705
+ "integrity": "sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==",
706
+ "license": "MIT",
707
+ "dependencies": {
708
+ "bytes": "~3.1.2",
709
+ "content-type": "~1.0.5",
710
+ "debug": "2.6.9",
711
+ "depd": "2.0.0",
712
+ "destroy": "~1.2.0",
713
+ "http-errors": "~2.0.1",
714
+ "iconv-lite": "~0.4.24",
715
+ "on-finished": "~2.4.1",
716
+ "qs": "~6.15.1",
717
+ "raw-body": "~2.5.3",
718
+ "type-is": "~1.6.18",
719
+ "unpipe": "~1.0.0"
720
+ },
721
+ "engines": {
722
+ "node": ">= 0.8",
723
+ "npm": "1.2.8000 || >= 1.4.16"
724
+ }
725
+ },
726
+ "node_modules/body-parser/node_modules/qs": {
727
+ "version": "6.15.1",
728
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.1.tgz",
729
+ "integrity": "sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==",
730
+ "license": "BSD-3-Clause",
731
+ "dependencies": {
732
+ "side-channel": "^1.1.0"
733
+ },
734
+ "engines": {
735
+ "node": ">=0.6"
736
+ },
737
+ "funding": {
738
+ "url": "https://github.com/sponsors/ljharb"
739
+ }
740
+ },
741
+ "node_modules/bytes": {
742
+ "version": "3.1.2",
743
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
744
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
745
+ "license": "MIT",
746
+ "engines": {
747
+ "node": ">= 0.8"
748
+ }
749
+ },
750
+ "node_modules/call-bind-apply-helpers": {
751
+ "version": "1.0.2",
752
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
753
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
754
+ "license": "MIT",
755
+ "dependencies": {
756
+ "es-errors": "^1.3.0",
757
+ "function-bind": "^1.1.2"
758
+ },
759
+ "engines": {
760
+ "node": ">= 0.4"
761
+ }
762
+ },
763
+ "node_modules/call-bound": {
764
+ "version": "1.0.4",
765
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
766
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
767
+ "license": "MIT",
768
+ "dependencies": {
769
+ "call-bind-apply-helpers": "^1.0.2",
770
+ "get-intrinsic": "^1.3.0"
771
+ },
772
+ "engines": {
773
+ "node": ">= 0.4"
774
+ },
775
+ "funding": {
776
+ "url": "https://github.com/sponsors/ljharb"
777
+ }
778
+ },
779
+ "node_modules/combined-stream": {
780
+ "version": "1.0.8",
781
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
782
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
783
+ "license": "MIT",
784
+ "dependencies": {
785
+ "delayed-stream": "~1.0.0"
786
+ },
787
+ "engines": {
788
+ "node": ">= 0.8"
789
+ }
790
+ },
791
+ "node_modules/content-disposition": {
792
+ "version": "0.5.4",
793
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
794
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
795
+ "license": "MIT",
796
+ "dependencies": {
797
+ "safe-buffer": "5.2.1"
798
+ },
799
+ "engines": {
800
+ "node": ">= 0.6"
801
+ }
802
+ },
803
+ "node_modules/content-type": {
804
+ "version": "1.0.5",
805
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
806
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
807
+ "license": "MIT",
808
+ "engines": {
809
+ "node": ">= 0.6"
810
+ }
811
+ },
812
+ "node_modules/cookie": {
813
+ "version": "0.7.2",
814
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
815
+ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
816
+ "license": "MIT",
817
+ "engines": {
818
+ "node": ">= 0.6"
819
+ }
820
+ },
821
+ "node_modules/cookie-signature": {
822
+ "version": "1.0.7",
823
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz",
824
+ "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==",
825
+ "license": "MIT"
826
+ },
827
+ "node_modules/cors": {
828
+ "version": "2.8.6",
829
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz",
830
+ "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==",
831
+ "license": "MIT",
832
+ "dependencies": {
833
+ "object-assign": "^4",
834
+ "vary": "^1"
835
+ },
836
+ "engines": {
837
+ "node": ">= 0.10"
838
+ },
839
+ "funding": {
840
+ "type": "opencollective",
841
+ "url": "https://opencollective.com/express"
842
+ }
843
+ },
844
+ "node_modules/create-require": {
845
+ "version": "1.1.1",
846
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
847
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
848
+ "license": "MIT"
849
+ },
850
+ "node_modules/debug": {
851
+ "version": "2.6.9",
852
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
853
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
854
+ "license": "MIT",
855
+ "dependencies": {
856
+ "ms": "2.0.0"
857
+ }
858
+ },
859
+ "node_modules/delayed-stream": {
860
+ "version": "1.0.0",
861
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
862
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
863
+ "license": "MIT",
864
+ "engines": {
865
+ "node": ">=0.4.0"
866
+ }
867
+ },
868
+ "node_modules/depd": {
869
+ "version": "2.0.0",
870
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
871
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
872
+ "license": "MIT",
873
+ "engines": {
874
+ "node": ">= 0.8"
875
+ }
876
+ },
877
+ "node_modules/destroy": {
878
+ "version": "1.2.0",
879
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
880
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
881
+ "license": "MIT",
882
+ "engines": {
883
+ "node": ">= 0.8",
884
+ "npm": "1.2.8000 || >= 1.4.16"
885
+ }
886
+ },
887
+ "node_modules/diff": {
888
+ "version": "4.0.4",
889
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz",
890
+ "integrity": "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==",
891
+ "license": "BSD-3-Clause",
892
+ "engines": {
893
+ "node": ">=0.3.1"
894
+ }
895
+ },
896
+ "node_modules/dotenv": {
897
+ "version": "16.6.1",
898
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz",
899
+ "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==",
900
+ "license": "BSD-2-Clause",
901
+ "engines": {
902
+ "node": ">=12"
903
+ },
904
+ "funding": {
905
+ "url": "https://dotenvx.com"
906
+ }
907
+ },
908
+ "node_modules/dunder-proto": {
909
+ "version": "1.0.1",
910
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
911
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
912
+ "license": "MIT",
913
+ "dependencies": {
914
+ "call-bind-apply-helpers": "^1.0.1",
915
+ "es-errors": "^1.3.0",
916
+ "gopd": "^1.2.0"
917
+ },
918
+ "engines": {
919
+ "node": ">= 0.4"
920
+ }
921
+ },
922
+ "node_modules/ee-first": {
923
+ "version": "1.1.1",
924
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
925
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
926
+ "license": "MIT"
927
+ },
928
+ "node_modules/encodeurl": {
929
+ "version": "2.0.0",
930
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
931
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
932
+ "license": "MIT",
933
+ "engines": {
934
+ "node": ">= 0.8"
935
+ }
936
+ },
937
+ "node_modules/es-define-property": {
938
+ "version": "1.0.1",
939
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
940
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
941
+ "license": "MIT",
942
+ "engines": {
943
+ "node": ">= 0.4"
944
+ }
945
+ },
946
+ "node_modules/es-errors": {
947
+ "version": "1.3.0",
948
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
949
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
950
+ "license": "MIT",
951
+ "engines": {
952
+ "node": ">= 0.4"
953
+ }
954
+ },
955
+ "node_modules/es-object-atoms": {
956
+ "version": "1.1.1",
957
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
958
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
959
+ "license": "MIT",
960
+ "dependencies": {
961
+ "es-errors": "^1.3.0"
962
+ },
963
+ "engines": {
964
+ "node": ">= 0.4"
965
+ }
966
+ },
967
+ "node_modules/es-set-tostringtag": {
968
+ "version": "2.1.0",
969
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
970
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
971
+ "license": "MIT",
972
+ "dependencies": {
973
+ "es-errors": "^1.3.0",
974
+ "get-intrinsic": "^1.2.6",
975
+ "has-tostringtag": "^1.0.2",
976
+ "hasown": "^2.0.2"
977
+ },
978
+ "engines": {
979
+ "node": ">= 0.4"
980
+ }
981
+ },
982
+ "node_modules/esbuild": {
983
+ "version": "0.27.7",
984
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz",
985
+ "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==",
986
+ "dev": true,
987
+ "hasInstallScript": true,
988
+ "license": "MIT",
989
+ "bin": {
990
+ "esbuild": "bin/esbuild"
991
+ },
992
+ "engines": {
993
+ "node": ">=18"
994
+ },
995
+ "optionalDependencies": {
996
+ "@esbuild/aix-ppc64": "0.27.7",
997
+ "@esbuild/android-arm": "0.27.7",
998
+ "@esbuild/android-arm64": "0.27.7",
999
+ "@esbuild/android-x64": "0.27.7",
1000
+ "@esbuild/darwin-arm64": "0.27.7",
1001
+ "@esbuild/darwin-x64": "0.27.7",
1002
+ "@esbuild/freebsd-arm64": "0.27.7",
1003
+ "@esbuild/freebsd-x64": "0.27.7",
1004
+ "@esbuild/linux-arm": "0.27.7",
1005
+ "@esbuild/linux-arm64": "0.27.7",
1006
+ "@esbuild/linux-ia32": "0.27.7",
1007
+ "@esbuild/linux-loong64": "0.27.7",
1008
+ "@esbuild/linux-mips64el": "0.27.7",
1009
+ "@esbuild/linux-ppc64": "0.27.7",
1010
+ "@esbuild/linux-riscv64": "0.27.7",
1011
+ "@esbuild/linux-s390x": "0.27.7",
1012
+ "@esbuild/linux-x64": "0.27.7",
1013
+ "@esbuild/netbsd-arm64": "0.27.7",
1014
+ "@esbuild/netbsd-x64": "0.27.7",
1015
+ "@esbuild/openbsd-arm64": "0.27.7",
1016
+ "@esbuild/openbsd-x64": "0.27.7",
1017
+ "@esbuild/openharmony-arm64": "0.27.7",
1018
+ "@esbuild/sunos-x64": "0.27.7",
1019
+ "@esbuild/win32-arm64": "0.27.7",
1020
+ "@esbuild/win32-ia32": "0.27.7",
1021
+ "@esbuild/win32-x64": "0.27.7"
1022
+ }
1023
+ },
1024
+ "node_modules/escape-html": {
1025
+ "version": "1.0.3",
1026
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
1027
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
1028
+ "license": "MIT"
1029
+ },
1030
+ "node_modules/etag": {
1031
+ "version": "1.8.1",
1032
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
1033
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
1034
+ "license": "MIT",
1035
+ "engines": {
1036
+ "node": ">= 0.6"
1037
+ }
1038
+ },
1039
+ "node_modules/express": {
1040
+ "version": "4.22.1",
1041
+ "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz",
1042
+ "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==",
1043
+ "license": "MIT",
1044
+ "dependencies": {
1045
+ "accepts": "~1.3.8",
1046
+ "array-flatten": "1.1.1",
1047
+ "body-parser": "~1.20.3",
1048
+ "content-disposition": "~0.5.4",
1049
+ "content-type": "~1.0.4",
1050
+ "cookie": "~0.7.1",
1051
+ "cookie-signature": "~1.0.6",
1052
+ "debug": "2.6.9",
1053
+ "depd": "2.0.0",
1054
+ "encodeurl": "~2.0.0",
1055
+ "escape-html": "~1.0.3",
1056
+ "etag": "~1.8.1",
1057
+ "finalhandler": "~1.3.1",
1058
+ "fresh": "~0.5.2",
1059
+ "http-errors": "~2.0.0",
1060
+ "merge-descriptors": "1.0.3",
1061
+ "methods": "~1.1.2",
1062
+ "on-finished": "~2.4.1",
1063
+ "parseurl": "~1.3.3",
1064
+ "path-to-regexp": "~0.1.12",
1065
+ "proxy-addr": "~2.0.7",
1066
+ "qs": "~6.14.0",
1067
+ "range-parser": "~1.2.1",
1068
+ "safe-buffer": "5.2.1",
1069
+ "send": "~0.19.0",
1070
+ "serve-static": "~1.16.2",
1071
+ "setprototypeof": "1.2.0",
1072
+ "statuses": "~2.0.1",
1073
+ "type-is": "~1.6.18",
1074
+ "utils-merge": "1.0.1",
1075
+ "vary": "~1.1.2"
1076
+ },
1077
+ "engines": {
1078
+ "node": ">= 0.10.0"
1079
+ },
1080
+ "funding": {
1081
+ "type": "opencollective",
1082
+ "url": "https://opencollective.com/express"
1083
+ }
1084
+ },
1085
+ "node_modules/finalhandler": {
1086
+ "version": "1.3.2",
1087
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz",
1088
+ "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==",
1089
+ "license": "MIT",
1090
+ "dependencies": {
1091
+ "debug": "2.6.9",
1092
+ "encodeurl": "~2.0.0",
1093
+ "escape-html": "~1.0.3",
1094
+ "on-finished": "~2.4.1",
1095
+ "parseurl": "~1.3.3",
1096
+ "statuses": "~2.0.2",
1097
+ "unpipe": "~1.0.0"
1098
+ },
1099
+ "engines": {
1100
+ "node": ">= 0.8"
1101
+ }
1102
+ },
1103
+ "node_modules/form-data": {
1104
+ "version": "4.0.5",
1105
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
1106
+ "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
1107
+ "license": "MIT",
1108
+ "dependencies": {
1109
+ "asynckit": "^0.4.0",
1110
+ "combined-stream": "^1.0.8",
1111
+ "es-set-tostringtag": "^2.1.0",
1112
+ "hasown": "^2.0.2",
1113
+ "mime-types": "^2.1.12"
1114
+ },
1115
+ "engines": {
1116
+ "node": ">= 6"
1117
+ }
1118
+ },
1119
+ "node_modules/forwarded": {
1120
+ "version": "0.2.0",
1121
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
1122
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
1123
+ "license": "MIT",
1124
+ "engines": {
1125
+ "node": ">= 0.6"
1126
+ }
1127
+ },
1128
+ "node_modules/fresh": {
1129
+ "version": "0.5.2",
1130
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
1131
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
1132
+ "license": "MIT",
1133
+ "engines": {
1134
+ "node": ">= 0.6"
1135
+ }
1136
+ },
1137
+ "node_modules/fsevents": {
1138
+ "version": "2.3.3",
1139
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
1140
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
1141
+ "dev": true,
1142
+ "hasInstallScript": true,
1143
+ "license": "MIT",
1144
+ "optional": true,
1145
+ "os": [
1146
+ "darwin"
1147
+ ],
1148
+ "engines": {
1149
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1150
+ }
1151
+ },
1152
+ "node_modules/function-bind": {
1153
+ "version": "1.1.2",
1154
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
1155
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
1156
+ "license": "MIT",
1157
+ "funding": {
1158
+ "url": "https://github.com/sponsors/ljharb"
1159
+ }
1160
+ },
1161
+ "node_modules/get-intrinsic": {
1162
+ "version": "1.3.0",
1163
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
1164
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
1165
+ "license": "MIT",
1166
+ "dependencies": {
1167
+ "call-bind-apply-helpers": "^1.0.2",
1168
+ "es-define-property": "^1.0.1",
1169
+ "es-errors": "^1.3.0",
1170
+ "es-object-atoms": "^1.1.1",
1171
+ "function-bind": "^1.1.2",
1172
+ "get-proto": "^1.0.1",
1173
+ "gopd": "^1.2.0",
1174
+ "has-symbols": "^1.1.0",
1175
+ "hasown": "^2.0.2",
1176
+ "math-intrinsics": "^1.1.0"
1177
+ },
1178
+ "engines": {
1179
+ "node": ">= 0.4"
1180
+ },
1181
+ "funding": {
1182
+ "url": "https://github.com/sponsors/ljharb"
1183
+ }
1184
+ },
1185
+ "node_modules/get-proto": {
1186
+ "version": "1.0.1",
1187
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
1188
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
1189
+ "license": "MIT",
1190
+ "dependencies": {
1191
+ "dunder-proto": "^1.0.1",
1192
+ "es-object-atoms": "^1.0.0"
1193
+ },
1194
+ "engines": {
1195
+ "node": ">= 0.4"
1196
+ }
1197
+ },
1198
+ "node_modules/get-tsconfig": {
1199
+ "version": "4.14.0",
1200
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.0.tgz",
1201
+ "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==",
1202
+ "dev": true,
1203
+ "license": "MIT",
1204
+ "dependencies": {
1205
+ "resolve-pkg-maps": "^1.0.0"
1206
+ },
1207
+ "funding": {
1208
+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
1209
+ }
1210
+ },
1211
+ "node_modules/gopd": {
1212
+ "version": "1.2.0",
1213
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
1214
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
1215
+ "license": "MIT",
1216
+ "engines": {
1217
+ "node": ">= 0.4"
1218
+ },
1219
+ "funding": {
1220
+ "url": "https://github.com/sponsors/ljharb"
1221
+ }
1222
+ },
1223
+ "node_modules/has-symbols": {
1224
+ "version": "1.1.0",
1225
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
1226
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
1227
+ "license": "MIT",
1228
+ "engines": {
1229
+ "node": ">= 0.4"
1230
+ },
1231
+ "funding": {
1232
+ "url": "https://github.com/sponsors/ljharb"
1233
+ }
1234
+ },
1235
+ "node_modules/has-tostringtag": {
1236
+ "version": "1.0.2",
1237
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
1238
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
1239
+ "license": "MIT",
1240
+ "dependencies": {
1241
+ "has-symbols": "^1.0.3"
1242
+ },
1243
+ "engines": {
1244
+ "node": ">= 0.4"
1245
+ },
1246
+ "funding": {
1247
+ "url": "https://github.com/sponsors/ljharb"
1248
+ }
1249
+ },
1250
+ "node_modules/hasown": {
1251
+ "version": "2.0.3",
1252
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz",
1253
+ "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==",
1254
+ "license": "MIT",
1255
+ "dependencies": {
1256
+ "function-bind": "^1.1.2"
1257
+ },
1258
+ "engines": {
1259
+ "node": ">= 0.4"
1260
+ }
1261
+ },
1262
+ "node_modules/http-errors": {
1263
+ "version": "2.0.1",
1264
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
1265
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
1266
+ "license": "MIT",
1267
+ "dependencies": {
1268
+ "depd": "~2.0.0",
1269
+ "inherits": "~2.0.4",
1270
+ "setprototypeof": "~1.2.0",
1271
+ "statuses": "~2.0.2",
1272
+ "toidentifier": "~1.0.1"
1273
+ },
1274
+ "engines": {
1275
+ "node": ">= 0.8"
1276
+ },
1277
+ "funding": {
1278
+ "type": "opencollective",
1279
+ "url": "https://opencollective.com/express"
1280
+ }
1281
+ },
1282
+ "node_modules/iconv-lite": {
1283
+ "version": "0.4.24",
1284
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
1285
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1286
+ "license": "MIT",
1287
+ "dependencies": {
1288
+ "safer-buffer": ">= 2.1.2 < 3"
1289
+ },
1290
+ "engines": {
1291
+ "node": ">=0.10.0"
1292
+ }
1293
+ },
1294
+ "node_modules/inherits": {
1295
+ "version": "2.0.4",
1296
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1297
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1298
+ "license": "ISC"
1299
+ },
1300
+ "node_modules/ipaddr.js": {
1301
+ "version": "1.9.1",
1302
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
1303
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
1304
+ "license": "MIT",
1305
+ "engines": {
1306
+ "node": ">= 0.10"
1307
+ }
1308
+ },
1309
+ "node_modules/make-error": {
1310
+ "version": "1.3.6",
1311
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
1312
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
1313
+ "license": "ISC"
1314
+ },
1315
+ "node_modules/math-intrinsics": {
1316
+ "version": "1.1.0",
1317
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
1318
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
1319
+ "license": "MIT",
1320
+ "engines": {
1321
+ "node": ">= 0.4"
1322
+ }
1323
+ },
1324
+ "node_modules/media-typer": {
1325
+ "version": "0.3.0",
1326
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
1327
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
1328
+ "license": "MIT",
1329
+ "engines": {
1330
+ "node": ">= 0.6"
1331
+ }
1332
+ },
1333
+ "node_modules/merge-descriptors": {
1334
+ "version": "1.0.3",
1335
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
1336
+ "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
1337
+ "license": "MIT",
1338
+ "funding": {
1339
+ "url": "https://github.com/sponsors/sindresorhus"
1340
+ }
1341
+ },
1342
+ "node_modules/methods": {
1343
+ "version": "1.1.2",
1344
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1345
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
1346
+ "license": "MIT",
1347
+ "engines": {
1348
+ "node": ">= 0.6"
1349
+ }
1350
+ },
1351
+ "node_modules/mime": {
1352
+ "version": "1.6.0",
1353
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1354
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
1355
+ "license": "MIT",
1356
+ "bin": {
1357
+ "mime": "cli.js"
1358
+ },
1359
+ "engines": {
1360
+ "node": ">=4"
1361
+ }
1362
+ },
1363
+ "node_modules/mime-db": {
1364
+ "version": "1.52.0",
1365
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
1366
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
1367
+ "license": "MIT",
1368
+ "engines": {
1369
+ "node": ">= 0.6"
1370
+ }
1371
+ },
1372
+ "node_modules/mime-types": {
1373
+ "version": "2.1.35",
1374
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
1375
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
1376
+ "license": "MIT",
1377
+ "dependencies": {
1378
+ "mime-db": "1.52.0"
1379
+ },
1380
+ "engines": {
1381
+ "node": ">= 0.6"
1382
+ }
1383
+ },
1384
+ "node_modules/ms": {
1385
+ "version": "2.0.0",
1386
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1387
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
1388
+ "license": "MIT"
1389
+ },
1390
+ "node_modules/negotiator": {
1391
+ "version": "0.6.3",
1392
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
1393
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
1394
+ "license": "MIT",
1395
+ "engines": {
1396
+ "node": ">= 0.6"
1397
+ }
1398
+ },
1399
+ "node_modules/node-fetch": {
1400
+ "version": "2.7.0",
1401
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
1402
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
1403
+ "license": "MIT",
1404
+ "dependencies": {
1405
+ "whatwg-url": "^5.0.0"
1406
+ },
1407
+ "engines": {
1408
+ "node": "4.x || >=6.0.0"
1409
+ },
1410
+ "peerDependencies": {
1411
+ "encoding": "^0.1.0"
1412
+ },
1413
+ "peerDependenciesMeta": {
1414
+ "encoding": {
1415
+ "optional": true
1416
+ }
1417
+ }
1418
+ },
1419
+ "node_modules/object-assign": {
1420
+ "version": "4.1.1",
1421
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1422
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
1423
+ "license": "MIT",
1424
+ "engines": {
1425
+ "node": ">=0.10.0"
1426
+ }
1427
+ },
1428
+ "node_modules/object-inspect": {
1429
+ "version": "1.13.4",
1430
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
1431
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
1432
+ "license": "MIT",
1433
+ "engines": {
1434
+ "node": ">= 0.4"
1435
+ },
1436
+ "funding": {
1437
+ "url": "https://github.com/sponsors/ljharb"
1438
+ }
1439
+ },
1440
+ "node_modules/on-finished": {
1441
+ "version": "2.4.1",
1442
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
1443
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
1444
+ "license": "MIT",
1445
+ "dependencies": {
1446
+ "ee-first": "1.1.1"
1447
+ },
1448
+ "engines": {
1449
+ "node": ">= 0.8"
1450
+ }
1451
+ },
1452
+ "node_modules/parseurl": {
1453
+ "version": "1.3.3",
1454
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1455
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
1456
+ "license": "MIT",
1457
+ "engines": {
1458
+ "node": ">= 0.8"
1459
+ }
1460
+ },
1461
+ "node_modules/path-to-regexp": {
1462
+ "version": "0.1.13",
1463
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz",
1464
+ "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==",
1465
+ "license": "MIT"
1466
+ },
1467
+ "node_modules/proxy-addr": {
1468
+ "version": "2.0.7",
1469
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
1470
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
1471
+ "license": "MIT",
1472
+ "dependencies": {
1473
+ "forwarded": "0.2.0",
1474
+ "ipaddr.js": "1.9.1"
1475
+ },
1476
+ "engines": {
1477
+ "node": ">= 0.10"
1478
+ }
1479
+ },
1480
+ "node_modules/qs": {
1481
+ "version": "6.14.2",
1482
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz",
1483
+ "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==",
1484
+ "license": "BSD-3-Clause",
1485
+ "dependencies": {
1486
+ "side-channel": "^1.1.0"
1487
+ },
1488
+ "engines": {
1489
+ "node": ">=0.6"
1490
+ },
1491
+ "funding": {
1492
+ "url": "https://github.com/sponsors/ljharb"
1493
+ }
1494
+ },
1495
+ "node_modules/range-parser": {
1496
+ "version": "1.2.1",
1497
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1498
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
1499
+ "license": "MIT",
1500
+ "engines": {
1501
+ "node": ">= 0.6"
1502
+ }
1503
+ },
1504
+ "node_modules/raw-body": {
1505
+ "version": "2.5.3",
1506
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz",
1507
+ "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==",
1508
+ "license": "MIT",
1509
+ "dependencies": {
1510
+ "bytes": "~3.1.2",
1511
+ "http-errors": "~2.0.1",
1512
+ "iconv-lite": "~0.4.24",
1513
+ "unpipe": "~1.0.0"
1514
+ },
1515
+ "engines": {
1516
+ "node": ">= 0.8"
1517
+ }
1518
+ },
1519
+ "node_modules/resolve-pkg-maps": {
1520
+ "version": "1.0.0",
1521
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
1522
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
1523
+ "dev": true,
1524
+ "license": "MIT",
1525
+ "funding": {
1526
+ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
1527
+ }
1528
+ },
1529
+ "node_modules/safe-buffer": {
1530
+ "version": "5.2.1",
1531
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1532
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1533
+ "funding": [
1534
+ {
1535
+ "type": "github",
1536
+ "url": "https://github.com/sponsors/feross"
1537
+ },
1538
+ {
1539
+ "type": "patreon",
1540
+ "url": "https://www.patreon.com/feross"
1541
+ },
1542
+ {
1543
+ "type": "consulting",
1544
+ "url": "https://feross.org/support"
1545
+ }
1546
+ ],
1547
+ "license": "MIT"
1548
+ },
1549
+ "node_modules/safer-buffer": {
1550
+ "version": "2.1.2",
1551
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1552
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
1553
+ "license": "MIT"
1554
+ },
1555
+ "node_modules/send": {
1556
+ "version": "0.19.2",
1557
+ "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz",
1558
+ "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==",
1559
+ "license": "MIT",
1560
+ "dependencies": {
1561
+ "debug": "2.6.9",
1562
+ "depd": "2.0.0",
1563
+ "destroy": "1.2.0",
1564
+ "encodeurl": "~2.0.0",
1565
+ "escape-html": "~1.0.3",
1566
+ "etag": "~1.8.1",
1567
+ "fresh": "~0.5.2",
1568
+ "http-errors": "~2.0.1",
1569
+ "mime": "1.6.0",
1570
+ "ms": "2.1.3",
1571
+ "on-finished": "~2.4.1",
1572
+ "range-parser": "~1.2.1",
1573
+ "statuses": "~2.0.2"
1574
+ },
1575
+ "engines": {
1576
+ "node": ">= 0.8.0"
1577
+ }
1578
+ },
1579
+ "node_modules/send/node_modules/ms": {
1580
+ "version": "2.1.3",
1581
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1582
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
1583
+ "license": "MIT"
1584
+ },
1585
+ "node_modules/serve-static": {
1586
+ "version": "1.16.3",
1587
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz",
1588
+ "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==",
1589
+ "license": "MIT",
1590
+ "dependencies": {
1591
+ "encodeurl": "~2.0.0",
1592
+ "escape-html": "~1.0.3",
1593
+ "parseurl": "~1.3.3",
1594
+ "send": "~0.19.1"
1595
+ },
1596
+ "engines": {
1597
+ "node": ">= 0.8.0"
1598
+ }
1599
+ },
1600
+ "node_modules/setprototypeof": {
1601
+ "version": "1.2.0",
1602
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
1603
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
1604
+ "license": "ISC"
1605
+ },
1606
+ "node_modules/side-channel": {
1607
+ "version": "1.1.0",
1608
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
1609
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
1610
+ "license": "MIT",
1611
+ "dependencies": {
1612
+ "es-errors": "^1.3.0",
1613
+ "object-inspect": "^1.13.3",
1614
+ "side-channel-list": "^1.0.0",
1615
+ "side-channel-map": "^1.0.1",
1616
+ "side-channel-weakmap": "^1.0.2"
1617
+ },
1618
+ "engines": {
1619
+ "node": ">= 0.4"
1620
+ },
1621
+ "funding": {
1622
+ "url": "https://github.com/sponsors/ljharb"
1623
+ }
1624
+ },
1625
+ "node_modules/side-channel-list": {
1626
+ "version": "1.0.1",
1627
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",
1628
+ "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==",
1629
+ "license": "MIT",
1630
+ "dependencies": {
1631
+ "es-errors": "^1.3.0",
1632
+ "object-inspect": "^1.13.4"
1633
+ },
1634
+ "engines": {
1635
+ "node": ">= 0.4"
1636
+ },
1637
+ "funding": {
1638
+ "url": "https://github.com/sponsors/ljharb"
1639
+ }
1640
+ },
1641
+ "node_modules/side-channel-map": {
1642
+ "version": "1.0.1",
1643
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
1644
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
1645
+ "license": "MIT",
1646
+ "dependencies": {
1647
+ "call-bound": "^1.0.2",
1648
+ "es-errors": "^1.3.0",
1649
+ "get-intrinsic": "^1.2.5",
1650
+ "object-inspect": "^1.13.3"
1651
+ },
1652
+ "engines": {
1653
+ "node": ">= 0.4"
1654
+ },
1655
+ "funding": {
1656
+ "url": "https://github.com/sponsors/ljharb"
1657
+ }
1658
+ },
1659
+ "node_modules/side-channel-weakmap": {
1660
+ "version": "1.0.2",
1661
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
1662
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
1663
+ "license": "MIT",
1664
+ "dependencies": {
1665
+ "call-bound": "^1.0.2",
1666
+ "es-errors": "^1.3.0",
1667
+ "get-intrinsic": "^1.2.5",
1668
+ "object-inspect": "^1.13.3",
1669
+ "side-channel-map": "^1.0.1"
1670
+ },
1671
+ "engines": {
1672
+ "node": ">= 0.4"
1673
+ },
1674
+ "funding": {
1675
+ "url": "https://github.com/sponsors/ljharb"
1676
+ }
1677
+ },
1678
+ "node_modules/statuses": {
1679
+ "version": "2.0.2",
1680
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
1681
+ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
1682
+ "license": "MIT",
1683
+ "engines": {
1684
+ "node": ">= 0.8"
1685
+ }
1686
+ },
1687
+ "node_modules/toidentifier": {
1688
+ "version": "1.0.1",
1689
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
1690
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
1691
+ "license": "MIT",
1692
+ "engines": {
1693
+ "node": ">=0.6"
1694
+ }
1695
+ },
1696
+ "node_modules/tr46": {
1697
+ "version": "0.0.3",
1698
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
1699
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
1700
+ "license": "MIT"
1701
+ },
1702
+ "node_modules/ts-node": {
1703
+ "version": "10.9.2",
1704
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
1705
+ "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
1706
+ "license": "MIT",
1707
+ "dependencies": {
1708
+ "@cspotcode/source-map-support": "^0.8.0",
1709
+ "@tsconfig/node10": "^1.0.7",
1710
+ "@tsconfig/node12": "^1.0.7",
1711
+ "@tsconfig/node14": "^1.0.0",
1712
+ "@tsconfig/node16": "^1.0.2",
1713
+ "acorn": "^8.4.1",
1714
+ "acorn-walk": "^8.1.1",
1715
+ "arg": "^4.1.0",
1716
+ "create-require": "^1.1.0",
1717
+ "diff": "^4.0.1",
1718
+ "make-error": "^1.1.1",
1719
+ "v8-compile-cache-lib": "^3.0.1",
1720
+ "yn": "3.1.1"
1721
+ },
1722
+ "bin": {
1723
+ "ts-node": "dist/bin.js",
1724
+ "ts-node-cwd": "dist/bin-cwd.js",
1725
+ "ts-node-esm": "dist/bin-esm.js",
1726
+ "ts-node-script": "dist/bin-script.js",
1727
+ "ts-node-transpile-only": "dist/bin-transpile.js",
1728
+ "ts-script": "dist/bin-script-deprecated.js"
1729
+ },
1730
+ "peerDependencies": {
1731
+ "@swc/core": ">=1.2.50",
1732
+ "@swc/wasm": ">=1.2.50",
1733
+ "@types/node": "*",
1734
+ "typescript": ">=2.7"
1735
+ },
1736
+ "peerDependenciesMeta": {
1737
+ "@swc/core": {
1738
+ "optional": true
1739
+ },
1740
+ "@swc/wasm": {
1741
+ "optional": true
1742
+ }
1743
+ }
1744
+ },
1745
+ "node_modules/tsx": {
1746
+ "version": "4.21.0",
1747
+ "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz",
1748
+ "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==",
1749
+ "dev": true,
1750
+ "license": "MIT",
1751
+ "dependencies": {
1752
+ "esbuild": "~0.27.0",
1753
+ "get-tsconfig": "^4.7.5"
1754
+ },
1755
+ "bin": {
1756
+ "tsx": "dist/cli.mjs"
1757
+ },
1758
+ "engines": {
1759
+ "node": ">=18.0.0"
1760
+ },
1761
+ "optionalDependencies": {
1762
+ "fsevents": "~2.3.3"
1763
+ }
1764
+ },
1765
+ "node_modules/type-is": {
1766
+ "version": "1.6.18",
1767
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1768
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1769
+ "license": "MIT",
1770
+ "dependencies": {
1771
+ "media-typer": "0.3.0",
1772
+ "mime-types": "~2.1.24"
1773
+ },
1774
+ "engines": {
1775
+ "node": ">= 0.6"
1776
+ }
1777
+ },
1778
+ "node_modules/typescript": {
1779
+ "version": "5.9.3",
1780
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
1781
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
1782
+ "license": "Apache-2.0",
1783
+ "bin": {
1784
+ "tsc": "bin/tsc",
1785
+ "tsserver": "bin/tsserver"
1786
+ },
1787
+ "engines": {
1788
+ "node": ">=14.17"
1789
+ }
1790
+ },
1791
+ "node_modules/undici-types": {
1792
+ "version": "6.21.0",
1793
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
1794
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
1795
+ "license": "MIT"
1796
+ },
1797
+ "node_modules/unpipe": {
1798
+ "version": "1.0.0",
1799
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1800
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
1801
+ "license": "MIT",
1802
+ "engines": {
1803
+ "node": ">= 0.8"
1804
+ }
1805
+ },
1806
+ "node_modules/utils-merge": {
1807
+ "version": "1.0.1",
1808
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
1809
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
1810
+ "license": "MIT",
1811
+ "engines": {
1812
+ "node": ">= 0.4.0"
1813
+ }
1814
+ },
1815
+ "node_modules/v8-compile-cache-lib": {
1816
+ "version": "3.0.1",
1817
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
1818
+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
1819
+ "license": "MIT"
1820
+ },
1821
+ "node_modules/vary": {
1822
+ "version": "1.1.2",
1823
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1824
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
1825
+ "license": "MIT",
1826
+ "engines": {
1827
+ "node": ">= 0.8"
1828
+ }
1829
+ },
1830
+ "node_modules/webidl-conversions": {
1831
+ "version": "3.0.1",
1832
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
1833
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
1834
+ "license": "BSD-2-Clause"
1835
+ },
1836
+ "node_modules/whatwg-url": {
1837
+ "version": "5.0.0",
1838
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
1839
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
1840
+ "license": "MIT",
1841
+ "dependencies": {
1842
+ "tr46": "~0.0.3",
1843
+ "webidl-conversions": "^3.0.0"
1844
+ }
1845
+ },
1846
+ "node_modules/yn": {
1847
+ "version": "3.1.1",
1848
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
1849
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
1850
+ "license": "MIT",
1851
+ "engines": {
1852
+ "node": ">=6"
1853
+ }
1854
+ }
1855
+ }
1856
+ }
package.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "openclaw-serverless",
3
+ "version": "1.0.0",
4
+ "main": "api/index.ts",
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "tsx watch api/index.ts",
8
+ "build": "tsc",
9
+ "start": "node dist/index.js",
10
+ "vercel-build": "echo 'Vercel handles build automatically'"
11
+ },
12
+ "dependencies": {
13
+ "@types/node-fetch": "^2.6.13",
14
+ "cors": "^2.8.5",
15
+ "dotenv": "^16.4.7",
16
+ "express": "^4.21.2",
17
+ "node-fetch": "^2.7.0",
18
+ "ts-node": "^10.9.2"
19
+ },
20
+ "devDependencies": {
21
+ "@types/cors": "^2.8.17",
22
+ "@types/express": "^5.0.0",
23
+ "@types/node": "^22.13.1",
24
+ "tsx": "^4.19.2",
25
+ "typescript": "^5.9.3"
26
+ },
27
+ "description": "",
28
+ "keywords": [],
29
+ "author": "",
30
+ "license": "ISC"
31
+ }
tsconfig.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ESNext",
4
+ "module": "ESNext",
5
+ "moduleResolution": "node",
6
+ "esModuleInterop": true,
7
+ "forceConsistentCasingInFileNames": true,
8
+ "strict": true,
9
+ "skipLibCheck": true,
10
+ "outDir": "dist"
11
+ },
12
+ "include": ["api/**/*"]
13
+ }
vercel.json ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "version": 2,
3
+ "builds": [
4
+ {
5
+ "src": "api/index.ts",
6
+ "use": "@vercel/node"
7
+ }
8
+ ],
9
+ "routes": [
10
+ {
11
+ "src": "/(.*)",
12
+ "dest": "api/index.ts"
13
+ }
14
+ ]
15
+ }