tanhm07 commited on
Commit
f5d03aa
·
verified ·
1 Parent(s): 8dbfb10

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .DS_Store +0 -0
  2. .gitignore.txt +28 -0
  3. AGENTS.md +12 -0
  4. Dockerfile +38 -0
  5. README.md +86 -5
  6. backend/__init__.py +1 -0
  7. backend/__pycache__/__init__.cpython-312.pyc +0 -0
  8. backend/__pycache__/engine.cpython-312.pyc +0 -0
  9. backend/__pycache__/main.cpython-312.pyc +0 -0
  10. backend/__pycache__/models.cpython-312.pyc +0 -0
  11. backend/__pycache__/prompts.cpython-312.pyc +0 -0
  12. backend/engine.py +188 -0
  13. backend/main.py +55 -0
  14. backend/models.py +76 -0
  15. backend/prompts.py +58 -0
  16. backend/test_engine.py +44 -0
  17. environment.yml +15 -0
  18. frontend/.DS_Store +0 -0
  19. frontend/dist/.DS_Store +0 -0
  20. frontend/dist/assets/index-B3znFPSa.js +0 -0
  21. frontend/dist/assets/index-CexdZOyH.css +1 -0
  22. frontend/dist/index.html +3 -0
  23. frontend/index.html +1 -0
  24. frontend/node_modules/.DS_Store +0 -0
  25. frontend/node_modules/.bin/browserslist +43 -0
  26. frontend/node_modules/.bin/tsc +43 -0
  27. frontend/node_modules/.bin/tsc (Hong Ming Tan's conflicted copy 2026-08-07) +21 -0
  28. frontend/node_modules/.bin/tsserver +43 -0
  29. frontend/node_modules/.bin/tsserver (Hong Ming Tan's conflicted copy 2026-08-07) +21 -0
  30. frontend/node_modules/.bin/vite +43 -0
  31. frontend/node_modules/.bin/vite (Hong Ming Tan's conflicted copy 2026-08-07) +21 -0
  32. frontend/node_modules/.modules.yaml +322 -0
  33. frontend/node_modules/.package-map.json +1 -0
  34. frontend/node_modules/.pnpm/@babel+code-frame@7.29.7/node_modules/@babel/code-frame/LICENSE +22 -0
  35. frontend/node_modules/.pnpm/@babel+code-frame@7.29.7/node_modules/@babel/code-frame/README.md +19 -0
  36. frontend/node_modules/.pnpm/@babel+code-frame@7.29.7/node_modules/@babel/code-frame/lib/index.js +217 -0
  37. frontend/node_modules/.pnpm/@babel+code-frame@7.29.7/node_modules/@babel/code-frame/lib/index.js.map +1 -0
  38. frontend/node_modules/.pnpm/@babel+code-frame@7.29.7/node_modules/@babel/code-frame/package.json +32 -0
  39. frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/LICENSE +22 -0
  40. frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/README.md +19 -0
  41. frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/corejs2-built-ins.js +2 -0
  42. frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/corejs3-shipped-proposals.js +2 -0
  43. frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/data/corejs2-built-ins.json +2120 -0
  44. frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/data/corejs3-shipped-proposals.json +5 -0
  45. frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/data/native-modules.json +18 -0
  46. frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/data/overlapping-plugins.json +38 -0
  47. frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/data/plugin-bugfixes.json +231 -0
  48. frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/data/plugins.json +843 -0
  49. frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/native-modules.js +2 -0
  50. frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/overlapping-plugins.js +2 -0
.DS_Store ADDED
Binary file (8.2 kB). View file
 
.gitignore.txt ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Secret settings
2
+ .env
3
+ .env.*
4
+ !.env.example
5
+
6
+ # Frontend generated files
7
+ frontend/node_modules/
8
+ frontend/dist/
9
+
10
+ # Python generated files
11
+ __pycache__/
12
+ *.pyc
13
+ *.pyo
14
+ .pytest_cache/
15
+ .venv/
16
+
17
+ # Conda
18
+ .conda/
19
+
20
+ # macOS
21
+ .DS_Store
22
+
23
+ # VS Code local settings
24
+ .vscode/
25
+
26
+ # ChatGPT project material not needed by the app
27
+ AGENTS.md
28
+ sources/
AGENTS.md ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ChatGPT project context
2
+
3
+ This directory is a local mirror of the ChatGPT project “MBA”.
4
+
5
+ - Treat every file under `sources/` as read-only reference material.
6
+ - Do not edit, rename, move, or delete synced project files.
7
+ - These files may be replaced the next time a task is created from this ChatGPT project.
8
+
9
+
10
+ ## Project instructions
11
+
12
+ This project has no custom instructions.
Dockerfile ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM node:20-alpine AS frontend
2
+
3
+ WORKDIR /app/frontend
4
+
5
+ RUN corepack enable
6
+
7
+ COPY frontend/package.json frontend/pnpm-lock.yaml frontend/pnpm-workspace.yaml ./
8
+
9
+ RUN pnpm install --frozen-lockfile
10
+
11
+ COPY frontend/ ./
12
+
13
+ RUN pnpm run build
14
+
15
+
16
+ FROM python:3.12-slim
17
+
18
+ RUN useradd -m -u 1000 user
19
+
20
+ USER user
21
+
22
+ ENV HOME=/home/user \
23
+ PATH=/home/user/.local/bin:$PATH \
24
+ PORT=7860
25
+
26
+ WORKDIR $HOME/app
27
+
28
+ COPY --chown=user requirements.txt ./
29
+
30
+ RUN pip install --no-cache-dir --user -r requirements.txt
31
+
32
+ COPY --chown=user backend/ ./backend/
33
+
34
+ COPY --chown=user --from=frontend /app/frontend/dist ./frontend/dist/
35
+
36
+ EXPOSE 7860
37
+
38
+ CMD ["sh", "-c", "uvicorn backend.main:app --host 0.0.0.0 --port ${PORT}"]
README.md CHANGED
@@ -1,12 +1,93 @@
1
  ---
2
  title: Agentic Workflow Node Lab
3
- emoji: 🦀
4
- colorFrom: pink
5
  colorTo: yellow
6
  sdk: docker
 
7
  pinned: false
8
- license: mit
9
- short_description: No Code builder for Simulated Agent workflow education
10
  ---
11
 
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
  title: Agentic Workflow Node Lab
3
+ emoji: 🤖
4
+ colorFrom: indigo
5
  colorTo: yellow
6
  sdk: docker
7
+ app_port: 7860
8
  pinned: false
 
 
9
  ---
10
 
11
+ # Agentic Workflow Lab
12
+
13
+ A deliberately small educational workflow simulator. Build a graph with **Input**, **AI Worker**, **Decision Rules**, **Human Review**, **Simulated Tool**, and **Output** nodes, then send one item through it at a time. Actions and integrations are simulations only.
14
+
15
+ ## Local setup (Conda + VS Code)
16
+
17
+ 1. Install [Miniconda](https://docs.conda.io/projects/miniconda/en/latest/) and Node.js 20+.
18
+ 2. In this folder, create the environment:
19
+
20
+ ```bash
21
+ conda env create -f environment.yml
22
+ conda activate workflow-lab
23
+ cp .env.example .env
24
+ ```
25
+
26
+ 3. Put your server-side API key in `.env`. The browser never receives it.
27
+ 4. In VS Code, run **Tasks: Run Task → Start app**, or use two terminals:
28
+
29
+ ```bash
30
+ uvicorn backend.main:app --reload --port 8000
31
+ cd frontend && npm install && npm run dev
32
+ ```
33
+
34
+ Open <http://localhost:5173>. The frontend proxies `/api` calls to FastAPI.
35
+
36
+ ## LLM settings
37
+
38
+ The backend uses the OpenAI Python SDK and supports OpenAI-compatible endpoints:
39
+
40
+ ```dotenv
41
+ OPENAI_API_KEY=...
42
+ OPENAI_MODEL=gpt-4.1-mini
43
+ # OPENAI_BASE_URL=https://your-compatible-endpoint/v1
44
+ ```
45
+
46
+ Without a key, the app runs in deterministic demo mode so the workflow UI can still be taught and tested.
47
+
48
+ ## How execution works
49
+
50
+ - Exactly one item enters through an Input node.
51
+ - Solid workflow connections determine what runs next.
52
+ - Purple dashed tool connections grant an AI Worker access to a Simulated Tool; they do not advance the workflow.
53
+ - AI Workers see each attached tool's name, description, expected input, and prior results. They decide at runtime whether to call a tool, may call up to five tools, and then produce their final work.
54
+ - Simulated Tools return prompt-generated information or simulated actions. They never invoke a real integration.
55
+ - Decision Rules return the ID of one connected target using route labels and explicit plain-English rules.
56
+ - Human Review is a dedicated node that pauses on the server; the learner replies in English, then execution resumes.
57
+ - Output ends the run and displays the accumulated result and event trace.
58
+ - Safety limits of 50 workflow steps and five tool calls per worker prevent accidental loops.
59
+
60
+ ### The two connection types
61
+
62
+ ```text
63
+ Input ──flow──> AI Worker ──flow──> Decision Rules ──flow──> Output
64
+ │
65
+ └──tool access (dashed)──> Simulated Tool
66
+ ```
67
+
68
+ Select a workflow connection to give it a route label such as `High risk` or `Standard response`. Decision Rules uses these labels when applying its English rules.
69
+
70
+ Workflow JSON can be downloaded and loaded in the browser. The JSON stores the canvas, connections, node settings, and input text—never API keys.
71
+
72
+ ## Hugging Face Spaces deployment
73
+
74
+ Create a new **Docker Space**, upload this repository, and add `OPENAI_API_KEY` as a Space **Secret**. Optionally add `OPENAI_MODEL` and `OPENAI_BASE_URL` as variables/secrets. The included `Dockerfile` builds React and serves it from FastAPI on port 7860.
75
+
76
+ For Git-based deployment:
77
+
78
+ ```bash
79
+ git remote add space https://huggingface.co/spaces/YOUR_NAME/YOUR_SPACE
80
+ git push space main
81
+ ```
82
+
83
+ Do not commit `.env`; it is ignored.
84
+
85
+ ## Project map
86
+
87
+ ```text
88
+ backend/ FastAPI API, execution engine, prompt templates
89
+ frontend/ React + React Flow visual editor
90
+ .vscode/tasks.json one-click local development task
91
+ environment.yml Conda environment
92
+ Dockerfile Hugging Face Spaces build
93
+ ```
backend/__init__.py ADDED
@@ -0,0 +1 @@
 
 
1
+ """Agentic Workflow Lab backend."""
backend/__pycache__/__init__.cpython-312.pyc ADDED
Binary file (286 Bytes). View file
 
backend/__pycache__/engine.cpython-312.pyc ADDED
Binary file (16.1 kB). View file
 
backend/__pycache__/main.cpython-312.pyc ADDED
Binary file (3.52 kB). View file
 
backend/__pycache__/models.cpython-312.pyc ADDED
Binary file (3.8 kB). View file
 
backend/__pycache__/prompts.cpython-312.pyc ADDED
Binary file (3.79 kB). View file
 
backend/engine.py ADDED
@@ -0,0 +1,188 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import os
3
+ import re
4
+ import uuid
5
+ from dataclasses import dataclass, field
6
+
7
+ from openai import OpenAI
8
+
9
+ from .models import RunResponse, StartRequest, TraceEvent, Workflow, WorkflowNode
10
+ from .prompts import decision_prompt, tool_prompt, worker_prompt
11
+
12
+
13
+ MAX_STEPS = 50
14
+ MAX_TOOL_CALLS_PER_WORKER = 5
15
+
16
+
17
+ @dataclass
18
+ class RunState:
19
+ workflow: Workflow
20
+ current_id: str
21
+ value: str
22
+ trace: list[TraceEvent] = field(default_factory=list)
23
+ steps: int = 0
24
+
25
+
26
+ class WorkflowEngine:
27
+ def __init__(self) -> None:
28
+ self.runs: dict[str, RunState] = {}
29
+
30
+ def _client(self) -> OpenAI | None:
31
+ key = os.getenv("OPENAI_API_KEY", "").strip()
32
+ if not key:
33
+ return None
34
+ kwargs = {"api_key": key}
35
+ if os.getenv("OPENAI_BASE_URL"):
36
+ kwargs["base_url"] = os.environ["OPENAI_BASE_URL"]
37
+ return OpenAI(**kwargs)
38
+
39
+ def _complete(self, prompt: str) -> str:
40
+ client = self._client()
41
+ if not client:
42
+ return "Demo output"
43
+ response = client.responses.create(model=os.getenv("OPENAI_MODEL", "gpt-4.1-mini"), input=prompt)
44
+ return response.output_text.strip()
45
+
46
+ @staticmethod
47
+ def _graphs(workflow: Workflow) -> tuple[dict[str, WorkflowNode], dict[str, list], dict[str, list]]:
48
+ nodes = {node.id: node for node in workflow.nodes}
49
+ if len(nodes) != len(workflow.nodes):
50
+ raise ValueError("Node IDs must be unique.")
51
+ starts = [node for node in workflow.nodes if node.data.mode == "Input"]
52
+ if len(starts) != 1:
53
+ raise ValueError("The workflow needs exactly one Input node.")
54
+ flow = {node_id: [] for node_id in nodes}
55
+ tools = {node_id: [] for node_id in nodes}
56
+ for edge in workflow.edges:
57
+ if edge.source not in nodes or edge.target not in nodes:
58
+ raise ValueError("Every connection must point to an existing node.")
59
+ if edge.data.connectionType == "tool":
60
+ if nodes[edge.source].data.mode != "AI Worker" or nodes[edge.target].data.mode != "Simulated Tool":
61
+ raise ValueError("Tool connections must run from an AI Worker to a Simulated Tool.")
62
+ tools[edge.source].append(edge)
63
+ else:
64
+ if nodes[edge.target].data.mode == "Simulated Tool" or nodes[edge.source].data.mode == "Simulated Tool":
65
+ raise ValueError("Simulated Tools use dashed tool connections, not workflow connections.")
66
+ flow[edge.source].append(edge)
67
+ return nodes, flow, tools
68
+
69
+ @classmethod
70
+ def _validate(cls, workflow: Workflow) -> tuple[dict, dict[str, list]]:
71
+ nodes, flow, _ = cls._graphs(workflow)
72
+ return nodes, flow
73
+
74
+ def start(self, request: StartRequest) -> RunResponse:
75
+ nodes, _, _ = self._graphs(request.workflow)
76
+ start = next(node for node in nodes.values() if node.data.mode == "Input")
77
+ value = request.input.strip() or start.data.value.strip()
78
+ if not value:
79
+ raise ValueError("Enter one item in the Input node.")
80
+ run_id = str(uuid.uuid4())
81
+ self.runs[run_id] = RunState(request.workflow, start.id, value)
82
+ return self._advance(run_id)
83
+
84
+ def resume(self, run_id: str, response: str) -> RunResponse:
85
+ state = self.runs.get(run_id)
86
+ if not state:
87
+ raise ValueError("This run no longer exists. Start a new run.")
88
+ nodes, flow, _ = self._graphs(state.workflow)
89
+ node = nodes[state.current_id]
90
+ if node.data.mode != "Human Review":
91
+ raise ValueError("This run is not waiting for human review.")
92
+ reply = response.strip()
93
+ if not reply:
94
+ raise ValueError("Write a review response before continuing.")
95
+ state.trace.append(TraceEvent(node_id=node.id, label=node.data.label, mode=node.data.mode, input=state.value, output=reply))
96
+ state.value = reply
97
+ if not flow[node.id]:
98
+ raise ValueError("Human Review needs an outgoing workflow connection.")
99
+ state.current_id = flow[node.id][0].target
100
+ return self._advance(run_id)
101
+
102
+ @staticmethod
103
+ def _parse_json(text: str) -> dict:
104
+ cleaned = re.sub(r"^```(?:json)?\s*|\s*```$", "", text.strip(), flags=re.I)
105
+ try:
106
+ value = json.loads(cleaned)
107
+ except json.JSONDecodeError as exc:
108
+ raise ValueError(f"AI Worker returned invalid tool instructions: {text}") from exc
109
+ if not isinstance(value, dict):
110
+ raise ValueError("AI Worker response must be a JSON object.")
111
+ return value
112
+
113
+ def _run_tool(self, tool: WorkflowNode, tool_input: str) -> str:
114
+ if not self._client():
115
+ return f"Simulated {tool.data.label} result for: {tool_input}"
116
+ return self._complete(tool_prompt(tool, tool_input))
117
+
118
+ def _run_worker(self, state: RunState, worker: WorkflowNode, available_tools: list[WorkflowNode]) -> str:
119
+ tool_results: list[dict] = []
120
+ if not self._client():
121
+ if available_tools:
122
+ tool = available_tools[0]
123
+ result = self._run_tool(tool, state.value)
124
+ state.trace.append(TraceEvent(node_id=tool.id, label=tool.data.label, mode=tool.data.mode, input=state.value, output=result, kind="tool"))
125
+ return f"Demo AI Worker result using {tool.data.label}: {result}"
126
+ return f"Demo AI Worker result: {state.value}"
127
+
128
+ tools_by_id = {tool.id: tool for tool in available_tools}
129
+ for _ in range(MAX_TOOL_CALLS_PER_WORKER + 1):
130
+ command = self._parse_json(self._complete(worker_prompt(worker.data.prompt, state.value, available_tools, tool_results)))
131
+ if command.get("action") == "final":
132
+ output = str(command.get("output", "")).strip()
133
+ if not output:
134
+ raise ValueError("AI Worker returned an empty final output.")
135
+ return output
136
+ if command.get("action") != "call_tool":
137
+ raise ValueError("AI Worker must choose 'call_tool' or 'final'.")
138
+ tool_id = str(command.get("tool_id", ""))
139
+ if tool_id not in tools_by_id:
140
+ raise ValueError(f"AI Worker tried to call an unavailable tool: {tool_id}")
141
+ tool_input = str(command.get("tool_input", "")).strip()
142
+ result = self._run_tool(tools_by_id[tool_id], tool_input)
143
+ tool_results.append({"tool_id": tool_id, "input": tool_input, "output": result})
144
+ tool = tools_by_id[tool_id]
145
+ state.trace.append(TraceEvent(node_id=tool.id, label=tool.data.label, mode=tool.data.mode, input=tool_input, output=result, kind="tool"))
146
+ raise ValueError(f"AI Worker exceeded {MAX_TOOL_CALLS_PER_WORKER} tool calls.")
147
+
148
+ def _advance(self, run_id: str) -> RunResponse:
149
+ state = self.runs[run_id]
150
+ nodes, flow, tool_edges = self._graphs(state.workflow)
151
+ while state.steps < MAX_STEPS:
152
+ state.steps += 1
153
+ node = nodes[state.current_id]
154
+ mode, incoming = node.data.mode, state.value
155
+
156
+ if mode == "Human Review":
157
+ return RunResponse(run_id=run_id, status="awaiting_review", current_node_id=node.id, message=node.data.prompt or "Review the current item. What should happen next?", result=state.value, trace=state.trace)
158
+ if mode == "Output":
159
+ state.trace.append(TraceEvent(node_id=node.id, label=node.data.label, mode=mode, input=incoming, output=incoming))
160
+ del self.runs[run_id]
161
+ return RunResponse(run_id=run_id, status="completed", current_node_id=node.id, result=incoming, trace=state.trace)
162
+ if mode == "Simulated Tool":
163
+ raise ValueError("A Simulated Tool cannot be a workflow step. Connect it to an AI Worker's tool handle.")
164
+
165
+ edges = flow[node.id]
166
+ if not edges:
167
+ raise ValueError(f"'{node.data.label}' has no outgoing workflow connection.")
168
+ if mode == "Input":
169
+ output, next_id = incoming, edges[0].target
170
+ elif mode == "Decision Rules":
171
+ choices = [(edge.target, str(edge.label or nodes[edge.target].data.label)) for edge in edges]
172
+ if self._client():
173
+ answer = self._complete(decision_prompt(node.data.prompt, incoming, choices))
174
+ next_id = next((target for target, _ in choices if re.search(rf"(?<![\w-]){re.escape(target)}(?![\w-])", answer)), "")
175
+ if not next_id:
176
+ raise ValueError(f"Decision Rules returned an unknown route: {answer}")
177
+ else:
178
+ next_id = choices[0][0]
179
+ output = f"Selected route: {next(label for target, label in choices if target == next_id)}\n\n{incoming}"
180
+ elif mode == "AI Worker":
181
+ available_tools = [nodes[edge.target] for edge in tool_edges[node.id]]
182
+ output, next_id = self._run_worker(state, node, available_tools), edges[0].target
183
+ else:
184
+ raise ValueError(f"Unsupported node type: {mode}")
185
+
186
+ state.trace.append(TraceEvent(node_id=node.id, label=node.data.label, mode=mode, input=incoming, output=output))
187
+ state.value, state.current_id = output, next_id
188
+ raise ValueError(f"Run stopped after {MAX_STEPS} steps. Check for a loop.")
backend/main.py ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from pathlib import Path
2
+
3
+ from dotenv import load_dotenv
4
+ from fastapi import FastAPI, HTTPException
5
+ from fastapi.middleware.cors import CORSMiddleware
6
+ from fastapi.responses import FileResponse
7
+ from fastapi.staticfiles import StaticFiles
8
+
9
+ from .engine import WorkflowEngine
10
+ from .models import ResumeRequest, RunResponse, StartRequest, Workflow
11
+
12
+ load_dotenv()
13
+ app = FastAPI(title="Agentic Workflow Lab", version="1.0.0")
14
+ app.add_middleware(CORSMiddleware, allow_origins=["http://localhost:5173"], allow_methods=["*"], allow_headers=["*"])
15
+ engine = WorkflowEngine()
16
+
17
+
18
+ @app.get("/api/health")
19
+ def health() -> dict[str, str]:
20
+ return {"status": "ok"}
21
+
22
+
23
+ @app.post("/api/run", response_model=RunResponse)
24
+ def run(request: StartRequest) -> RunResponse:
25
+ try:
26
+ return engine.start(request)
27
+ except Exception as exc:
28
+ raise HTTPException(status_code=400, detail=str(exc)) from exc
29
+
30
+
31
+ @app.post("/api/resume", response_model=RunResponse)
32
+ def resume(request: ResumeRequest) -> RunResponse:
33
+ try:
34
+ return engine.resume(request.run_id, request.response)
35
+ except Exception as exc:
36
+ raise HTTPException(status_code=400, detail=str(exc)) from exc
37
+
38
+
39
+ @app.post("/api/workflows/validate", response_model=Workflow)
40
+ def validate_workflow(workflow: Workflow) -> Workflow:
41
+ try:
42
+ engine._validate(workflow)
43
+ return workflow
44
+ except Exception as exc:
45
+ raise HTTPException(status_code=400, detail=str(exc)) from exc
46
+
47
+
48
+ dist = Path(__file__).resolve().parents[1] / "frontend" / "dist"
49
+ if dist.exists():
50
+ app.mount("/assets", StaticFiles(directory=dist / "assets"), name="assets")
51
+
52
+ @app.get("/{path:path}")
53
+ def spa(path: str) -> FileResponse:
54
+ requested = dist / path
55
+ return FileResponse(requested if requested.is_file() else dist / "index.html")
backend/models.py ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import Any, Literal
2
+
3
+ from pydantic import BaseModel, Field
4
+
5
+
6
+ NodeKind = Literal["Input", "AI Worker", "Decision Rules", "Human Review", "Simulated Tool", "Output"]
7
+
8
+
9
+ class Position(BaseModel):
10
+ x: float = 0
11
+ y: float = 0
12
+
13
+
14
+ class NodeData(BaseModel):
15
+ label: str
16
+ mode: NodeKind
17
+ prompt: str = ""
18
+ value: str = ""
19
+ description: str = ""
20
+ input_guidance: str = ""
21
+
22
+
23
+ class WorkflowNode(BaseModel):
24
+ id: str
25
+ type: str = "workflow"
26
+ position: Position = Field(default_factory=Position)
27
+ data: NodeData
28
+
29
+
30
+ class EdgeData(BaseModel):
31
+ connectionType: Literal["flow", "tool"] = "flow"
32
+
33
+
34
+ class WorkflowEdge(BaseModel):
35
+ id: str
36
+ source: str
37
+ target: str
38
+ label: str = ""
39
+ sourceHandle: str | None = None
40
+ targetHandle: str | None = None
41
+ data: EdgeData = Field(default_factory=EdgeData)
42
+
43
+
44
+ class Workflow(BaseModel):
45
+ name: str = "Untitled workflow"
46
+ nodes: list[WorkflowNode]
47
+ edges: list[WorkflowEdge]
48
+
49
+
50
+ class StartRequest(BaseModel):
51
+ workflow: Workflow
52
+ input: str = ""
53
+
54
+
55
+ class ResumeRequest(BaseModel):
56
+ run_id: str
57
+ response: str
58
+
59
+
60
+ class TraceEvent(BaseModel):
61
+ node_id: str
62
+ label: str
63
+ mode: str
64
+ input: str
65
+ output: str
66
+ kind: Literal["flow", "tool"] = "flow"
67
+
68
+
69
+ class RunResponse(BaseModel):
70
+ run_id: str
71
+ status: Literal["completed", "awaiting_review", "error"]
72
+ current_node_id: str | None = None
73
+ message: str = ""
74
+ result: str = ""
75
+ trace: list[TraceEvent] = Field(default_factory=list)
76
+ detail: dict[str, Any] = Field(default_factory=dict)
backend/prompts.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+
3
+ from .models import WorkflowNode
4
+
5
+
6
+ def decision_prompt(instructions: str, item: str, choices: list[tuple[str, str]]) -> str:
7
+ options = "\n".join(f"- {node_id}: {label}" for node_id, label in choices)
8
+ return f"""You apply explicit decision rules in an educational workflow.
9
+ Rules:
10
+ {instructions or 'Choose the most suitable route.'}
11
+
12
+ Current item:
13
+ {item}
14
+
15
+ Available routes (target ID: route label):
16
+ {options}
17
+
18
+ Return only one target ID exactly as shown. Do not explain or invent a route."""
19
+
20
+
21
+ def tool_prompt(tool: WorkflowNode, tool_input: str) -> str:
22
+ return f"""You are a simulated tool in an educational sandbox. Never perform a real action.
23
+ Tool name: {tool.data.label}
24
+ Tool description: {tool.data.description}
25
+ Expected input: {tool.data.input_guidance or 'Plain text relevant to the tool.'}
26
+ Simulation instructions: {tool.data.prompt or 'Produce a plausible simulated result.'}
27
+
28
+ Tool input:
29
+ {tool_input}
30
+
31
+ Return only the simulated tool output as concise plain text. Clearly label simulated side effects as simulated."""
32
+
33
+
34
+ def worker_prompt(instructions: str, item: str, tools: list[WorkflowNode], tool_results: list[dict]) -> str:
35
+ tool_list = "\n".join(
36
+ f"- {tool.id} | {tool.data.label}: {tool.data.description} | Input: {tool.data.input_guidance or 'plain text'}"
37
+ for tool in tools
38
+ ) or "- No tools are available."
39
+ results = json.dumps(tool_results, ensure_ascii=False, indent=2) if tool_results else "None yet."
40
+ return f"""You are an AI Worker in an educational agentic workflow.
41
+ Instructions:
42
+ {instructions or 'Complete the task using your best judgment.'}
43
+
44
+ Current item:
45
+ {item}
46
+
47
+ Tools you are permitted to call:
48
+ {tool_list}
49
+
50
+ Tool results already received:
51
+ {results}
52
+
53
+ Decide whether another tool is genuinely needed. Return exactly one JSON object, with no markdown:
54
+ {{"action":"call_tool","tool_id":"exact tool ID","tool_input":"specific input for the tool"}}
55
+ or
56
+ {{"action":"final","output":"your completed work, incorporating any useful tool results"}}
57
+
58
+ Only call listed tools. Never claim a real-world action occurred."""
backend/test_engine.py ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pytest
2
+
3
+ from backend.engine import WorkflowEngine
4
+ from backend.models import StartRequest
5
+
6
+
7
+ def node(node_id, mode, **data):
8
+ return {"id": node_id, "position": {"x": 0, "y": 0}, "data": {"label": data.pop("label", mode), "mode": mode, **data}}
9
+
10
+
11
+ def edge(edge_id, source, target, connection_type="flow", label=""):
12
+ return {"id": edge_id, "source": source, "target": target, "label": label, "data": {"connectionType": connection_type}}
13
+
14
+
15
+ def test_ai_worker_calls_attached_simulated_tool_in_demo_mode(monkeypatch):
16
+ monkeypatch.delenv("OPENAI_API_KEY", raising=False)
17
+ request = StartRequest.model_validate({"workflow": {"nodes": [
18
+ node("i", "Input", value="Order 42 is damaged"),
19
+ node("w", "AI Worker", prompt="Investigate and respond"),
20
+ node("t", "Simulated Tool", label="Order lookup", description="Retrieves order details", input_guidance="Order ID", prompt="Return a plausible order"),
21
+ node("o", "Output"),
22
+ ], "edges": [edge("a", "i", "w"), edge("b", "w", "o"), edge("tool", "w", "t", "tool")]}})
23
+ result = WorkflowEngine().start(request)
24
+ assert result.status == "completed"
25
+ assert "Order lookup" in result.result
26
+ assert any(event.kind == "tool" and event.node_id == "t" for event in result.trace)
27
+
28
+
29
+ def test_human_review_pauses_and_resumes(monkeypatch):
30
+ monkeypatch.delenv("OPENAI_API_KEY", raising=False)
31
+ request = StartRequest.model_validate({"workflow": {"nodes": [node("i", "Input", value="case"), node("h", "Human Review"), node("o", "Output")], "edges": [edge("a", "i", "h"), edge("b", "h", "o")]}})
32
+ engine = WorkflowEngine()
33
+ paused = engine.start(request)
34
+ assert paused.status == "awaiting_review"
35
+ finished = engine.resume(paused.run_id, "Approve")
36
+ assert finished.status == "completed"
37
+ assert finished.result == "Approve"
38
+
39
+
40
+ def test_tool_connection_must_target_simulated_tool(monkeypatch):
41
+ monkeypatch.delenv("OPENAI_API_KEY", raising=False)
42
+ request = StartRequest.model_validate({"workflow": {"nodes": [node("i", "Input", value="case"), node("w", "AI Worker"), node("o", "Output")], "edges": [edge("a", "i", "w"), edge("b", "w", "o"), edge("bad", "w", "o", "tool")]}})
43
+ with pytest.raises(ValueError, match="Simulated Tool"):
44
+ WorkflowEngine().start(request)
environment.yml ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: workflow-lab
2
+ channels:
3
+ - conda-forge
4
+ dependencies:
5
+ - python=3.12
6
+ - nodejs=20
7
+ - pip
8
+ - pip:
9
+ - fastapi==0.115.12
10
+ - uvicorn[standard]==0.34.2
11
+ - openai==1.82.0
12
+ - python-dotenv==1.1.0
13
+ - pydantic==2.11.5
14
+ - pytest==8.3.5
15
+ - httpx==0.28.1
frontend/.DS_Store ADDED
Binary file (6.15 kB). View file
 
frontend/dist/.DS_Store ADDED
Binary file (6.15 kB). View file
 
frontend/dist/assets/index-B3znFPSa.js ADDED
The diff for this file is too large to render. See raw diff
 
frontend/dist/assets/index-CexdZOyH.css ADDED
@@ -0,0 +1 @@
 
 
1
+ @import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@600;700&display=swap";.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{font-family:DM Sans,sans-serif;color:#202320;background:#f4f5f1;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer}main{min-height:100vh}header{height:82px;background:#202320;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid #3b403b}h1,h2{font-family:Space Grotesk,sans-serif;margin:0}h1{font-size:22px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.14em;color:#aeb5ae}.header-actions{display:flex;gap:10px}.header-actions button,.run{display:flex;align-items:center;gap:7px;border:0;border-radius:8px;padding:10px 14px;font-weight:700}.quiet{background:#373b37;color:#fff}.run{background:#ffd36a;color:#25231d}.workspace{height:calc(100vh - 82px);display:grid;grid-template-columns:245px 1fr 295px}.left-panel,.right-panel{background:#fff;padding:20px;border-color:#dfe3dd;border-style:solid;overflow:auto}.left-panel{border-width:0 1px 0 0}.right-panel{border-width:0 0 0 1px}.left-panel h2,.right-panel h2{font-size:16px;margin:20px 0 14px}.canvas{min-width:0;background:#f7f8f5}.add-card{width:100%;display:flex;gap:10px;text-align:left;align-items:center;border:1px solid #dfe3dd;border-left:5px solid;padding:10px;margin:7px 0;border-radius:8px;background:#fff}.add-card span{display:flex;flex-direction:column}.add-card small,.hint{color:#6f766f}.input-card{border-left-color:#e7af2c}.ai-worker-card{border-left-color:#7975e8}.decision-rules-card{border-left-color:#ea8d50}.human-review-card{border-left-color:#e36e78}.simulated-tool-card{border-left-color:#9a62d5}.output-card{border-left-color:#2eb881}.hint{font-size:12px;line-height:1.5;margin-top:15px}.legend{border-top:1px solid #e2e6e0;margin-top:18px;padding-top:14px;font-size:11px;display:grid;gap:8px}.legend span{display:flex;align-items:center;gap:8px}.legend i{display:inline-block;width:28px;border-top:2px solid #777}.legend .tool-line{border-top:2px dashed #9a62d5}.panel-copy,.field-help{font-size:12px;line-height:1.5;color:#727872}.field-help{display:block;margin-top:5px;font-weight:400}label{display:block;font-size:12px;font-weight:700;margin:14px 0}input,textarea{display:block;width:100%;margin-top:7px;border:1px solid #ccd2ca;border-radius:7px;padding:9px;background:#fff;color:#202320}textarea{resize:vertical;line-height:1.45}.flow-node{position:relative;width:210px;min-height:68px;background:#fff;border:1px solid #cfd5cd;border-left:6px solid;box-shadow:0 5px 16px #34403414;border-radius:10px;padding:14px;display:flex;align-items:center;gap:11px}.flow-node.selected{outline:3px solid #b8b5f2}.flow-node.input{border-left-color:#e7af2c}.flow-node.ai-worker{border-left-color:#7975e8}.flow-node.decision-rules{border-left-color:#ea8d50}.flow-node.human-review{border-left-color:#e36e78}.flow-node.simulated-tool{border-left-color:#9a62d5}.flow-node.output{border-left-color:#2eb881}.flow-node .tool-handle{width:11px;height:11px;background:#9a62d5;border:2px solid white}.tool-port-label{position:absolute;bottom:-17px;left:50%;transform:translate(-50%);font-size:8px;font-weight:800;letter-spacing:.1em;color:#8150b5}.node-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#f0f1ee}.flow-node small,.flow-node strong{display:block}.flow-node small{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#727872}.flow-node strong{font-size:13px;margin-top:3px}.danger{border:0;background:none;color:#b94646;padding:8px 0;margin-top:18px}.empty{text-align:center;color:#777f77;margin-top:50%}.empty svg{color:#9ca39c}.empty p{font-size:13px}.run-drawer{display:none;position:fixed;z-index:10;left:265px;right:315px;bottom:18px;max-height:48vh;overflow:auto;background:#202320;color:#fff;border-radius:12px;padding:20px 24px;box-shadow:0 16px 50px #1118}.run-drawer.open{display:block}.run-drawer h2{font-size:17px;margin-top:4px}.run-drawer pre,.run-drawer blockquote{white-space:pre-wrap;background:#303530;border-left:3px solid #69d6ad;border-radius:5px;padding:14px;font-family:inherit}.review textarea{background:#fff;margin-bottom:10px}.error{color:#ffaaa0}.trace{border-top:1px solid #444b44;padding:12px 0}.trace.tool-event{border-left:3px solid #9a62d5;padding-left:12px}.trace span{font-size:10px;text-transform:uppercase;margin-left:8px;color:#aaa}.trace.tool-event span{color:#d5aaff}.trace p{white-space:pre-wrap;font-size:13px;color:#d6dbd5}details summary{cursor:pointer;color:#c5cbc4}@media(max-width:900px){.workspace{grid-template-columns:200px 1fr}.right-panel{position:fixed;z-index:5;right:0;top:82px;bottom:0;width:270px;box-shadow:-8px 0 25px #2222}.run-drawer{left:215px;right:290px}}@media(max-width:650px){header{padding:0 14px}.eyebrow,.header-actions .quiet{display:none}.workspace{grid-template-columns:1fr}.left-panel{display:none}.right-panel{top:82px;width:240px}.run-drawer{left:12px;right:12px}.canvas{height:calc(100vh - 82px)}}
frontend/dist/index.html ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ <script type="module" crossorigin src="/assets/index-B3znFPSa.js"></script>
2
+ <link rel="stylesheet" crossorigin href="/assets/index-CexdZOyH.css">
3
+ <div id="root"></div>
frontend/index.html ADDED
@@ -0,0 +1 @@
 
 
1
+ <div id="root"></div><script type="module" src="/src/main.tsx"></script>
frontend/node_modules/.DS_Store ADDED
Binary file (6.15 kB). View file
 
frontend/node_modules/.bin/browserslist ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+ basedir_win="$basedir"
4
+ exe=""
5
+ msys=""
6
+
7
+ case `uname -a` in
8
+ *CYGWIN*|*MINGW*|*MSYS*)
9
+ if command -v cygpath > /dev/null 2>&1; then
10
+ basedir_win=`cygpath -w "$basedir"`
11
+ fi
12
+ exe=".exe"
13
+ msys="true"
14
+ ;;
15
+ *WSL2*)
16
+ if command -v wslpath > /dev/null 2>&1; then
17
+ basedir_win="$(wslpath -w "$basedir" 2> /dev/null)"
18
+ if [ $? -ne 0 ] || [ -z "$basedir_win" ]; then
19
+ basedir_win="$basedir"
20
+ else
21
+ exe=".exe"
22
+ fi
23
+ fi
24
+ ;;
25
+ esac
26
+
27
+ if [ -z "$NODE_PATH" ]; then
28
+ export NODE_PATH="/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/browserslist@4.28.7/node_modules/browserslist/node_modules:/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/browserslist@4.28.7/node_modules:/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/node_modules"
29
+ else
30
+ export NODE_PATH="/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/browserslist@4.28.7/node_modules/browserslist/node_modules:/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/browserslist@4.28.7/node_modules:/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/node_modules:$NODE_PATH"
31
+ fi
32
+ if [ -n "$exe" ] && [ -x "$basedir/node.exe" ]; then
33
+ exec "$basedir/node.exe" "$basedir_win/../.pnpm/browserslist@4.28.7/node_modules/browserslist/cli.js" "$@"
34
+ elif [ -x "$basedir/node" ]; then
35
+ exec "$basedir/node" "$basedir/../.pnpm/browserslist@4.28.7/node_modules/browserslist/cli.js" "$@"
36
+ elif command -v node >/dev/null 2>&1; then
37
+ exec node "$basedir/../.pnpm/browserslist@4.28.7/node_modules/browserslist/cli.js" "$@"
38
+ elif [ -n "$exe" ] && command -v node.exe >/dev/null 2>&1; then
39
+ exec node.exe "$basedir_win/../.pnpm/browserslist@4.28.7/node_modules/browserslist/cli.js" "$@"
40
+ else
41
+ exec node "$basedir/../.pnpm/browserslist@4.28.7/node_modules/browserslist/cli.js" "$@"
42
+ fi
43
+ # cmd-shim-target=/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/browserslist@4.28.7/node_modules/browserslist/cli.js
frontend/node_modules/.bin/tsc ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+ basedir_win="$basedir"
4
+ exe=""
5
+ msys=""
6
+
7
+ case `uname -a` in
8
+ *CYGWIN*|*MINGW*|*MSYS*)
9
+ if command -v cygpath > /dev/null 2>&1; then
10
+ basedir_win=`cygpath -w "$basedir"`
11
+ fi
12
+ exe=".exe"
13
+ msys="true"
14
+ ;;
15
+ *WSL2*)
16
+ if command -v wslpath > /dev/null 2>&1; then
17
+ basedir_win="$(wslpath -w "$basedir" 2> /dev/null)"
18
+ if [ $? -ne 0 ] || [ -z "$basedir_win" ]; then
19
+ basedir_win="$basedir"
20
+ else
21
+ exe=".exe"
22
+ fi
23
+ fi
24
+ ;;
25
+ esac
26
+
27
+ if [ -z "$NODE_PATH" ]; then
28
+ export NODE_PATH="/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/typescript@5.8.3/node_modules:/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/node_modules"
29
+ else
30
+ export NODE_PATH="/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/typescript@5.8.3/node_modules:/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/node_modules:$NODE_PATH"
31
+ fi
32
+ if [ -n "$exe" ] && [ -x "$basedir/node.exe" ]; then
33
+ exec "$basedir/node.exe" "$basedir_win/../typescript/bin/tsc" "$@"
34
+ elif [ -x "$basedir/node" ]; then
35
+ exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
36
+ elif command -v node >/dev/null 2>&1; then
37
+ exec node "$basedir/../typescript/bin/tsc" "$@"
38
+ elif [ -n "$exe" ] && command -v node.exe >/dev/null 2>&1; then
39
+ exec node.exe "$basedir_win/../typescript/bin/tsc" "$@"
40
+ else
41
+ exec node "$basedir/../typescript/bin/tsc" "$@"
42
+ fi
43
+ # cmd-shim-target=/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/typescript/bin/tsc
frontend/node_modules/.bin/tsc (Hong Ming Tan's conflicted copy 2026-08-07) ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/hongmingtan/Library/CloudStorage/Dropbox-Personal/PHD/Teaching/BME5203 AI From Basics to Execution/AgenticNodeBuilder2/frontend/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/Users/hongmingtan/Library/CloudStorage/Dropbox-Personal/PHD/Teaching/BME5203 AI From Basics to Execution/AgenticNodeBuilder2/frontend/node_modules/.pnpm/typescript@5.8.3/node_modules:/Users/hongmingtan/Library/CloudStorage/Dropbox-Personal/PHD/Teaching/BME5203 AI From Basics to Execution/AgenticNodeBuilder2/frontend/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/hongmingtan/Library/CloudStorage/Dropbox-Personal/PHD/Teaching/BME5203 AI From Basics to Execution/AgenticNodeBuilder2/frontend/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/Users/hongmingtan/Library/CloudStorage/Dropbox-Personal/PHD/Teaching/BME5203 AI From Basics to Execution/AgenticNodeBuilder2/frontend/node_modules/.pnpm/typescript@5.8.3/node_modules:/Users/hongmingtan/Library/CloudStorage/Dropbox-Personal/PHD/Teaching/BME5203 AI From Basics to Execution/AgenticNodeBuilder2/frontend/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
19
+ else
20
+ exec node "$basedir/../typescript/bin/tsc" "$@"
21
+ fi
frontend/node_modules/.bin/tsserver ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+ basedir_win="$basedir"
4
+ exe=""
5
+ msys=""
6
+
7
+ case `uname -a` in
8
+ *CYGWIN*|*MINGW*|*MSYS*)
9
+ if command -v cygpath > /dev/null 2>&1; then
10
+ basedir_win=`cygpath -w "$basedir"`
11
+ fi
12
+ exe=".exe"
13
+ msys="true"
14
+ ;;
15
+ *WSL2*)
16
+ if command -v wslpath > /dev/null 2>&1; then
17
+ basedir_win="$(wslpath -w "$basedir" 2> /dev/null)"
18
+ if [ $? -ne 0 ] || [ -z "$basedir_win" ]; then
19
+ basedir_win="$basedir"
20
+ else
21
+ exe=".exe"
22
+ fi
23
+ fi
24
+ ;;
25
+ esac
26
+
27
+ if [ -z "$NODE_PATH" ]; then
28
+ export NODE_PATH="/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/typescript@5.8.3/node_modules:/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/node_modules"
29
+ else
30
+ export NODE_PATH="/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/typescript@5.8.3/node_modules:/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/node_modules:$NODE_PATH"
31
+ fi
32
+ if [ -n "$exe" ] && [ -x "$basedir/node.exe" ]; then
33
+ exec "$basedir/node.exe" "$basedir_win/../typescript/bin/tsserver" "$@"
34
+ elif [ -x "$basedir/node" ]; then
35
+ exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
36
+ elif command -v node >/dev/null 2>&1; then
37
+ exec node "$basedir/../typescript/bin/tsserver" "$@"
38
+ elif [ -n "$exe" ] && command -v node.exe >/dev/null 2>&1; then
39
+ exec node.exe "$basedir_win/../typescript/bin/tsserver" "$@"
40
+ else
41
+ exec node "$basedir/../typescript/bin/tsserver" "$@"
42
+ fi
43
+ # cmd-shim-target=/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/typescript/bin/tsserver
frontend/node_modules/.bin/tsserver (Hong Ming Tan's conflicted copy 2026-08-07) ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/hongmingtan/Library/CloudStorage/Dropbox-Personal/PHD/Teaching/BME5203 AI From Basics to Execution/AgenticNodeBuilder2/frontend/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/Users/hongmingtan/Library/CloudStorage/Dropbox-Personal/PHD/Teaching/BME5203 AI From Basics to Execution/AgenticNodeBuilder2/frontend/node_modules/.pnpm/typescript@5.8.3/node_modules:/Users/hongmingtan/Library/CloudStorage/Dropbox-Personal/PHD/Teaching/BME5203 AI From Basics to Execution/AgenticNodeBuilder2/frontend/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/hongmingtan/Library/CloudStorage/Dropbox-Personal/PHD/Teaching/BME5203 AI From Basics to Execution/AgenticNodeBuilder2/frontend/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/Users/hongmingtan/Library/CloudStorage/Dropbox-Personal/PHD/Teaching/BME5203 AI From Basics to Execution/AgenticNodeBuilder2/frontend/node_modules/.pnpm/typescript@5.8.3/node_modules:/Users/hongmingtan/Library/CloudStorage/Dropbox-Personal/PHD/Teaching/BME5203 AI From Basics to Execution/AgenticNodeBuilder2/frontend/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
19
+ else
20
+ exec node "$basedir/../typescript/bin/tsserver" "$@"
21
+ fi
frontend/node_modules/.bin/vite ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+ basedir_win="$basedir"
4
+ exe=""
5
+ msys=""
6
+
7
+ case `uname -a` in
8
+ *CYGWIN*|*MINGW*|*MSYS*)
9
+ if command -v cygpath > /dev/null 2>&1; then
10
+ basedir_win=`cygpath -w "$basedir"`
11
+ fi
12
+ exe=".exe"
13
+ msys="true"
14
+ ;;
15
+ *WSL2*)
16
+ if command -v wslpath > /dev/null 2>&1; then
17
+ basedir_win="$(wslpath -w "$basedir" 2> /dev/null)"
18
+ if [ $? -ne 0 ] || [ -z "$basedir_win" ]; then
19
+ basedir_win="$basedir"
20
+ else
21
+ exe=".exe"
22
+ fi
23
+ fi
24
+ ;;
25
+ esac
26
+
27
+ if [ -z "$NODE_PATH" ]; then
28
+ export NODE_PATH="/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/vite@6.4.3/node_modules/vite/node_modules:/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/vite@6.4.3/node_modules:/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/node_modules"
29
+ else
30
+ export NODE_PATH="/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/vite@6.4.3/node_modules/vite/node_modules:/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/vite@6.4.3/node_modules:/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/.pnpm/node_modules:$NODE_PATH"
31
+ fi
32
+ if [ -n "$exe" ] && [ -x "$basedir/node.exe" ]; then
33
+ exec "$basedir/node.exe" "$basedir_win/../vite/bin/vite.js" "$@"
34
+ elif [ -x "$basedir/node" ]; then
35
+ exec "$basedir/node" "$basedir/../vite/bin/vite.js" "$@"
36
+ elif command -v node >/dev/null 2>&1; then
37
+ exec node "$basedir/../vite/bin/vite.js" "$@"
38
+ elif [ -n "$exe" ] && command -v node.exe >/dev/null 2>&1; then
39
+ exec node.exe "$basedir_win/../vite/bin/vite.js" "$@"
40
+ else
41
+ exec node "$basedir/../vite/bin/vite.js" "$@"
42
+ fi
43
+ # cmd-shim-target=/Users/hongmingtan/.codex/.chatgpt-projects/g-p-69534aeacdb48191b1d999925db783c8/frontend/node_modules/vite/bin/vite.js
frontend/node_modules/.bin/vite (Hong Ming Tan's conflicted copy 2026-08-07) ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/hongmingtan/Library/CloudStorage/Dropbox-Personal/PHD/Teaching/BME5203 AI From Basics to Execution/AgenticNodeBuilder2/frontend/node_modules/.pnpm/vite@6.4.3/node_modules/vite/node_modules:/Users/hongmingtan/Library/CloudStorage/Dropbox-Personal/PHD/Teaching/BME5203 AI From Basics to Execution/AgenticNodeBuilder2/frontend/node_modules/.pnpm/vite@6.4.3/node_modules:/Users/hongmingtan/Library/CloudStorage/Dropbox-Personal/PHD/Teaching/BME5203 AI From Basics to Execution/AgenticNodeBuilder2/frontend/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/hongmingtan/Library/CloudStorage/Dropbox-Personal/PHD/Teaching/BME5203 AI From Basics to Execution/AgenticNodeBuilder2/frontend/node_modules/.pnpm/vite@6.4.3/node_modules/vite/node_modules:/Users/hongmingtan/Library/CloudStorage/Dropbox-Personal/PHD/Teaching/BME5203 AI From Basics to Execution/AgenticNodeBuilder2/frontend/node_modules/.pnpm/vite@6.4.3/node_modules:/Users/hongmingtan/Library/CloudStorage/Dropbox-Personal/PHD/Teaching/BME5203 AI From Basics to Execution/AgenticNodeBuilder2/frontend/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../vite/bin/vite.js" "$@"
19
+ else
20
+ exec node "$basedir/../vite/bin/vite.js" "$@"
21
+ fi
frontend/node_modules/.modules.yaml ADDED
@@ -0,0 +1,322 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "hoistedDependencies": {
3
+ "csstype@3.2.3": {
4
+ "csstype": "private"
5
+ },
6
+ "@babel/core@7.29.7": {
7
+ "@babel/core": "private"
8
+ },
9
+ "@babel/plugin-transform-react-jsx-self@7.29.7(@babel/core@7.29.7)": {
10
+ "@babel/plugin-transform-react-jsx-self": "private"
11
+ },
12
+ "@babel/plugin-transform-react-jsx-source@7.29.7(@babel/core@7.29.7)": {
13
+ "@babel/plugin-transform-react-jsx-source": "private"
14
+ },
15
+ "@rolldown/pluginutils@1.0.0-beta.27": {
16
+ "@rolldown/pluginutils": "private"
17
+ },
18
+ "@types/babel__core@7.20.5": {
19
+ "@types/babel__core": "private"
20
+ },
21
+ "react-refresh@0.17.0": {
22
+ "react-refresh": "private"
23
+ },
24
+ "@xyflow/system@0.0.79": {
25
+ "@xyflow/system": "private"
26
+ },
27
+ "classcat@5.0.5": {
28
+ "classcat": "private"
29
+ },
30
+ "zustand@4.5.7(@types/react@19.2.18)(react@19.2.8)": {
31
+ "zustand": "private"
32
+ },
33
+ "scheduler@0.27.0": {
34
+ "scheduler": "private"
35
+ },
36
+ "esbuild@0.25.12": {
37
+ "esbuild": "private"
38
+ },
39
+ "fdir@6.5.0(picomatch@4.0.5)": {
40
+ "fdir": "private"
41
+ },
42
+ "picomatch@4.0.5": {
43
+ "picomatch": "private"
44
+ },
45
+ "postcss@8.5.25": {
46
+ "postcss": "private"
47
+ },
48
+ "rollup@4.62.4": {
49
+ "rollup": "private"
50
+ },
51
+ "tinyglobby@0.2.17": {
52
+ "tinyglobby": "private"
53
+ },
54
+ "fsevents@2.3.3": {
55
+ "fsevents": "private"
56
+ },
57
+ "@babel/code-frame@7.29.7": {
58
+ "@babel/code-frame": "private"
59
+ },
60
+ "@babel/generator@7.29.8": {
61
+ "@babel/generator": "private"
62
+ },
63
+ "@babel/helper-compilation-targets@7.29.7": {
64
+ "@babel/helper-compilation-targets": "private"
65
+ },
66
+ "@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)": {
67
+ "@babel/helper-module-transforms": "private"
68
+ },
69
+ "@babel/helpers@7.29.7": {
70
+ "@babel/helpers": "private"
71
+ },
72
+ "@babel/parser@7.29.8": {
73
+ "@babel/parser": "private"
74
+ },
75
+ "@babel/template@7.29.7": {
76
+ "@babel/template": "private"
77
+ },
78
+ "@babel/traverse@7.29.8": {
79
+ "@babel/traverse": "private"
80
+ },
81
+ "@babel/types@7.29.8": {
82
+ "@babel/types": "private"
83
+ },
84
+ "@jridgewell/remapping@2.3.5": {
85
+ "@jridgewell/remapping": "private"
86
+ },
87
+ "convert-source-map@2.0.0": {
88
+ "convert-source-map": "private"
89
+ },
90
+ "debug@4.4.3": {
91
+ "debug": "private"
92
+ },
93
+ "gensync@1.0.0-beta.2": {
94
+ "gensync": "private"
95
+ },
96
+ "json5@2.2.3": {
97
+ "json5": "private"
98
+ },
99
+ "semver@6.3.1": {
100
+ "semver": "private"
101
+ },
102
+ "@babel/helper-plugin-utils@7.29.7": {
103
+ "@babel/helper-plugin-utils": "private"
104
+ },
105
+ "@types/babel__generator@7.27.0": {
106
+ "@types/babel__generator": "private"
107
+ },
108
+ "@types/babel__template@7.4.4": {
109
+ "@types/babel__template": "private"
110
+ },
111
+ "@types/babel__traverse@7.28.0": {
112
+ "@types/babel__traverse": "private"
113
+ },
114
+ "@types/d3-drag@3.0.7": {
115
+ "@types/d3-drag": "private"
116
+ },
117
+ "@types/d3-interpolate@3.0.4": {
118
+ "@types/d3-interpolate": "private"
119
+ },
120
+ "@types/d3-selection@3.0.11": {
121
+ "@types/d3-selection": "private"
122
+ },
123
+ "@types/d3-transition@3.0.9": {
124
+ "@types/d3-transition": "private"
125
+ },
126
+ "@types/d3-zoom@3.0.8": {
127
+ "@types/d3-zoom": "private"
128
+ },
129
+ "d3-drag@3.0.0": {
130
+ "d3-drag": "private"
131
+ },
132
+ "d3-interpolate@3.0.1": {
133
+ "d3-interpolate": "private"
134
+ },
135
+ "d3-selection@3.0.0": {
136
+ "d3-selection": "private"
137
+ },
138
+ "d3-zoom@3.0.0": {
139
+ "d3-zoom": "private"
140
+ },
141
+ "@esbuild/darwin-arm64@0.25.12": {
142
+ "@esbuild/darwin-arm64": "private"
143
+ },
144
+ "nanoid@3.3.17": {
145
+ "nanoid": "private"
146
+ },
147
+ "picocolors@1.1.1": {
148
+ "picocolors": "private"
149
+ },
150
+ "source-map-js@1.2.1": {
151
+ "source-map-js": "private"
152
+ },
153
+ "@types/estree@1.0.9": {
154
+ "@types/estree": "private"
155
+ },
156
+ "@rollup/rollup-darwin-arm64@4.62.4": {
157
+ "@rollup/rollup-darwin-arm64": "private"
158
+ },
159
+ "use-sync-external-store@1.6.0(react@19.2.8)": {
160
+ "use-sync-external-store": "private"
161
+ },
162
+ "@babel/helper-validator-identifier@7.29.7": {
163
+ "@babel/helper-validator-identifier": "private"
164
+ },
165
+ "js-tokens@4.0.0": {
166
+ "js-tokens": "private"
167
+ },
168
+ "@jridgewell/gen-mapping@0.3.13": {
169
+ "@jridgewell/gen-mapping": "private"
170
+ },
171
+ "@jridgewell/trace-mapping@0.3.31": {
172
+ "@jridgewell/trace-mapping": "private"
173
+ },
174
+ "jsesc@3.1.0": {
175
+ "jsesc": "private"
176
+ },
177
+ "@babel/compat-data@7.29.7": {
178
+ "@babel/compat-data": "private"
179
+ },
180
+ "@babel/helper-validator-option@7.29.7": {
181
+ "@babel/helper-validator-option": "private"
182
+ },
183
+ "browserslist@4.28.7": {
184
+ "browserslist": "private"
185
+ },
186
+ "lru-cache@5.1.1": {
187
+ "lru-cache": "private"
188
+ },
189
+ "@babel/helper-module-imports@7.29.7": {
190
+ "@babel/helper-module-imports": "private"
191
+ },
192
+ "@babel/helper-globals@7.29.7": {
193
+ "@babel/helper-globals": "private"
194
+ },
195
+ "@babel/helper-string-parser@7.29.7": {
196
+ "@babel/helper-string-parser": "private"
197
+ },
198
+ "@types/d3-color@3.1.3": {
199
+ "@types/d3-color": "private"
200
+ },
201
+ "d3-dispatch@3.0.1": {
202
+ "d3-dispatch": "private"
203
+ },
204
+ "d3-color@3.1.0": {
205
+ "d3-color": "private"
206
+ },
207
+ "d3-transition@3.0.1(d3-selection@3.0.0)": {
208
+ "d3-transition": "private"
209
+ },
210
+ "ms@2.1.3": {
211
+ "ms": "private"
212
+ },
213
+ "@jridgewell/sourcemap-codec@1.5.5": {
214
+ "@jridgewell/sourcemap-codec": "private"
215
+ },
216
+ "@jridgewell/resolve-uri@3.1.2": {
217
+ "@jridgewell/resolve-uri": "private"
218
+ },
219
+ "baseline-browser-mapping@2.11.12": {
220
+ "baseline-browser-mapping": "private"
221
+ },
222
+ "caniuse-lite@1.0.30001806": {
223
+ "caniuse-lite": "private"
224
+ },
225
+ "electron-to-chromium@1.5.401": {
226
+ "electron-to-chromium": "private"
227
+ },
228
+ "node-releases@2.0.52": {
229
+ "node-releases": "private"
230
+ },
231
+ "update-browserslist-db@1.2.3(browserslist@4.28.7)": {
232
+ "update-browserslist-db": "private"
233
+ },
234
+ "d3-ease@3.0.1": {
235
+ "d3-ease": "private"
236
+ },
237
+ "d3-timer@3.0.1": {
238
+ "d3-timer": "private"
239
+ },
240
+ "yallist@3.1.1": {
241
+ "yallist": "private"
242
+ },
243
+ "escalade@3.2.0": {
244
+ "escalade": "private"
245
+ }
246
+ },
247
+ "hoistPattern": [
248
+ "*"
249
+ ],
250
+ "included": {
251
+ "dependencies": true,
252
+ "devDependencies": true,
253
+ "optionalDependencies": true
254
+ },
255
+ "injectedDeps": {},
256
+ "ignoredBuilds": [],
257
+ "layoutVersion": 5,
258
+ "nodeLinker": "isolated",
259
+ "packageManager": "pnpm@10.34.5",
260
+ "pendingBuilds": [],
261
+ "publicHoistPattern": [],
262
+ "prunedAt": "Fri, 07 Aug 2026 09:20:50 GMT",
263
+ "registries": {
264
+ "default": "https://registry.npmjs.org/",
265
+ "@jsr": "https://npm.jsr.io/"
266
+ },
267
+ "skipped": [
268
+ "@esbuild/aix-ppc64@0.25.12",
269
+ "@esbuild/android-arm64@0.25.12",
270
+ "@esbuild/android-arm@0.25.12",
271
+ "@esbuild/android-x64@0.25.12",
272
+ "@esbuild/darwin-x64@0.25.12",
273
+ "@esbuild/freebsd-arm64@0.25.12",
274
+ "@esbuild/freebsd-x64@0.25.12",
275
+ "@esbuild/linux-arm64@0.25.12",
276
+ "@esbuild/linux-arm@0.25.12",
277
+ "@esbuild/linux-ia32@0.25.12",
278
+ "@esbuild/linux-loong64@0.25.12",
279
+ "@esbuild/linux-mips64el@0.25.12",
280
+ "@esbuild/linux-ppc64@0.25.12",
281
+ "@esbuild/linux-riscv64@0.25.12",
282
+ "@esbuild/linux-s390x@0.25.12",
283
+ "@esbuild/linux-x64@0.25.12",
284
+ "@esbuild/netbsd-arm64@0.25.12",
285
+ "@esbuild/netbsd-x64@0.25.12",
286
+ "@esbuild/openbsd-arm64@0.25.12",
287
+ "@esbuild/openbsd-x64@0.25.12",
288
+ "@esbuild/openharmony-arm64@0.25.12",
289
+ "@esbuild/sunos-x64@0.25.12",
290
+ "@esbuild/win32-arm64@0.25.12",
291
+ "@esbuild/win32-ia32@0.25.12",
292
+ "@esbuild/win32-x64@0.25.12",
293
+ "@napi-rs/lzma-linux-x64-gnu@1.5.1",
294
+ "@rollup/rollup-android-arm-eabi@4.62.4",
295
+ "@rollup/rollup-android-arm64@4.62.4",
296
+ "@rollup/rollup-darwin-x64@4.62.4",
297
+ "@rollup/rollup-freebsd-arm64@4.62.4",
298
+ "@rollup/rollup-freebsd-x64@4.62.4",
299
+ "@rollup/rollup-linux-arm-gnueabihf@4.62.4",
300
+ "@rollup/rollup-linux-arm-musleabihf@4.62.4",
301
+ "@rollup/rollup-linux-arm64-gnu@4.62.4",
302
+ "@rollup/rollup-linux-arm64-musl@4.62.4",
303
+ "@rollup/rollup-linux-loong64-gnu@4.62.4",
304
+ "@rollup/rollup-linux-loong64-musl@4.62.4",
305
+ "@rollup/rollup-linux-ppc64-gnu@4.62.4",
306
+ "@rollup/rollup-linux-ppc64-musl@4.62.4",
307
+ "@rollup/rollup-linux-riscv64-gnu@4.62.4",
308
+ "@rollup/rollup-linux-riscv64-musl@4.62.4",
309
+ "@rollup/rollup-linux-s390x-gnu@4.62.4",
310
+ "@rollup/rollup-linux-x64-gnu@4.62.4",
311
+ "@rollup/rollup-linux-x64-musl@4.62.4",
312
+ "@rollup/rollup-openbsd-x64@4.62.4",
313
+ "@rollup/rollup-openharmony-arm64@4.62.4",
314
+ "@rollup/rollup-win32-arm64-msvc@4.62.4",
315
+ "@rollup/rollup-win32-ia32-msvc@4.62.4",
316
+ "@rollup/rollup-win32-x64-gnu@4.62.4",
317
+ "@rollup/rollup-win32-x64-msvc@4.62.4"
318
+ ],
319
+ "storeDir": "/Users/hongmingtan/Library/pnpm/store/v10",
320
+ "virtualStoreDir": ".pnpm",
321
+ "virtualStoreDirMaxLength": 120
322
+ }
frontend/node_modules/.package-map.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"packages":{".":{"url":"..","dependencies":{"@types/react":"@types/react@19.2.18","@types/react-dom":"@types/react-dom@19.2.4(@types/react@19.2.18)","@vitejs/plugin-react":"@vitejs/plugin-react@4.7.0(vite@6.4.3)","@xyflow/react":"@xyflow/react@12.11.2(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)","agentic-workflow-lab":".","lucide-react":"lucide-react@0.511.0(react@19.2.8)","react":"react@19.2.8","react-dom":"react-dom@19.2.8(react@19.2.8)","typescript":"typescript@5.8.3","vite":"vite@6.4.3"}},"@babel/code-frame@7.29.7":{"url":"./.pnpm/@babel+code-frame@7.29.7/node_modules/@babel/code-frame","dependencies":{"@babel/code-frame":"@babel/code-frame@7.29.7","@babel/helper-validator-identifier":"@babel/helper-validator-identifier@7.29.7","js-tokens":"js-tokens@4.0.0","picocolors":"picocolors@1.1.1"}},"@babel/compat-data@7.29.7":{"url":"./.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data","dependencies":{"@babel/compat-data":"@babel/compat-data@7.29.7"}},"@babel/core@7.29.7":{"url":"./.pnpm/@babel+core@7.29.7/node_modules/@babel/core","dependencies":{"@babel/code-frame":"@babel/code-frame@7.29.7","@babel/core":"@babel/core@7.29.7","@babel/generator":"@babel/generator@7.29.8","@babel/helper-compilation-targets":"@babel/helper-compilation-targets@7.29.7","@babel/helper-module-transforms":"@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)","@babel/helpers":"@babel/helpers@7.29.7","@babel/parser":"@babel/parser@7.29.8","@babel/template":"@babel/template@7.29.7","@babel/traverse":"@babel/traverse@7.29.8","@babel/types":"@babel/types@7.29.8","@jridgewell/remapping":"@jridgewell/remapping@2.3.5","convert-source-map":"convert-source-map@2.0.0","debug":"debug@4.4.3","gensync":"gensync@1.0.0-beta.2","json5":"json5@2.2.3","semver":"semver@6.3.1"}},"@babel/generator@7.29.8":{"url":"./.pnpm/@babel+generator@7.29.8/node_modules/@babel/generator","dependencies":{"@babel/generator":"@babel/generator@7.29.8","@babel/parser":"@babel/parser@7.29.8","@babel/types":"@babel/types@7.29.8","@jridgewell/gen-mapping":"@jridgewell/gen-mapping@0.3.13","@jridgewell/trace-mapping":"@jridgewell/trace-mapping@0.3.31","jsesc":"jsesc@3.1.0"}},"@babel/helper-compilation-targets@7.29.7":{"url":"./.pnpm/@babel+helper-compilation-targets@7.29.7/node_modules/@babel/helper-compilation-targets","dependencies":{"@babel/compat-data":"@babel/compat-data@7.29.7","@babel/helper-compilation-targets":"@babel/helper-compilation-targets@7.29.7","@babel/helper-validator-option":"@babel/helper-validator-option@7.29.7","browserslist":"browserslist@4.28.7","lru-cache":"lru-cache@5.1.1","semver":"semver@6.3.1"}},"@babel/helper-globals@7.29.7":{"url":"./.pnpm/@babel+helper-globals@7.29.7/node_modules/@babel/helper-globals","dependencies":{"@babel/helper-globals":"@babel/helper-globals@7.29.7"}},"@babel/helper-module-imports@7.29.7":{"url":"./.pnpm/@babel+helper-module-imports@7.29.7/node_modules/@babel/helper-module-imports","dependencies":{"@babel/helper-module-imports":"@babel/helper-module-imports@7.29.7","@babel/traverse":"@babel/traverse@7.29.8","@babel/types":"@babel/types@7.29.8"}},"@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)":{"url":"./.pnpm/@babel+helper-module-transforms@7.29.7_@babel+core@7.29.7/node_modules/@babel/helper-module-transforms","dependencies":{"@babel/core":"@babel/core@7.29.7","@babel/helper-module-imports":"@babel/helper-module-imports@7.29.7","@babel/helper-module-transforms":"@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)","@babel/helper-validator-identifier":"@babel/helper-validator-identifier@7.29.7","@babel/traverse":"@babel/traverse@7.29.8"}},"@babel/helper-plugin-utils@7.29.7":{"url":"./.pnpm/@babel+helper-plugin-utils@7.29.7/node_modules/@babel/helper-plugin-utils","dependencies":{"@babel/helper-plugin-utils":"@babel/helper-plugin-utils@7.29.7"}},"@babel/helper-string-parser@7.29.7":{"url":"./.pnpm/@babel+helper-string-parser@7.29.7/node_modules/@babel/helper-string-parser","dependencies":{"@babel/helper-string-parser":"@babel/helper-string-parser@7.29.7"}},"@babel/helper-validator-identifier@7.29.7":{"url":"./.pnpm/@babel+helper-validator-identifier@7.29.7/node_modules/@babel/helper-validator-identifier","dependencies":{"@babel/helper-validator-identifier":"@babel/helper-validator-identifier@7.29.7"}},"@babel/helper-validator-option@7.29.7":{"url":"./.pnpm/@babel+helper-validator-option@7.29.7/node_modules/@babel/helper-validator-option","dependencies":{"@babel/helper-validator-option":"@babel/helper-validator-option@7.29.7"}},"@babel/helpers@7.29.7":{"url":"./.pnpm/@babel+helpers@7.29.7/node_modules/@babel/helpers","dependencies":{"@babel/helpers":"@babel/helpers@7.29.7","@babel/template":"@babel/template@7.29.7","@babel/types":"@babel/types@7.29.8"}},"@babel/parser@7.29.8":{"url":"./.pnpm/@babel+parser@7.29.8/node_modules/@babel/parser","dependencies":{"@babel/parser":"@babel/parser@7.29.8","@babel/types":"@babel/types@7.29.8"}},"@babel/plugin-transform-react-jsx-self@7.29.7(@babel/core@7.29.7)":{"url":"./.pnpm/@babel+plugin-transform-react-jsx-self@7.29.7_@babel+core@7.29.7/node_modules/@babel/plugin-transform-react-jsx-self","dependencies":{"@babel/core":"@babel/core@7.29.7","@babel/helper-plugin-utils":"@babel/helper-plugin-utils@7.29.7","@babel/plugin-transform-react-jsx-self":"@babel/plugin-transform-react-jsx-self@7.29.7(@babel/core@7.29.7)"}},"@babel/plugin-transform-react-jsx-source@7.29.7(@babel/core@7.29.7)":{"url":"./.pnpm/@babel+plugin-transform-react-jsx-source@7.29.7_@babel+core@7.29.7/node_modules/@babel/plugin-transform-react-jsx-source","dependencies":{"@babel/core":"@babel/core@7.29.7","@babel/helper-plugin-utils":"@babel/helper-plugin-utils@7.29.7","@babel/plugin-transform-react-jsx-source":"@babel/plugin-transform-react-jsx-source@7.29.7(@babel/core@7.29.7)"}},"@babel/template@7.29.7":{"url":"./.pnpm/@babel+template@7.29.7/node_modules/@babel/template","dependencies":{"@babel/code-frame":"@babel/code-frame@7.29.7","@babel/parser":"@babel/parser@7.29.8","@babel/template":"@babel/template@7.29.7","@babel/types":"@babel/types@7.29.8"}},"@babel/traverse@7.29.8":{"url":"./.pnpm/@babel+traverse@7.29.8/node_modules/@babel/traverse","dependencies":{"@babel/code-frame":"@babel/code-frame@7.29.7","@babel/generator":"@babel/generator@7.29.8","@babel/helper-globals":"@babel/helper-globals@7.29.7","@babel/parser":"@babel/parser@7.29.8","@babel/template":"@babel/template@7.29.7","@babel/traverse":"@babel/traverse@7.29.8","@babel/types":"@babel/types@7.29.8","debug":"debug@4.4.3"}},"@babel/types@7.29.8":{"url":"./.pnpm/@babel+types@7.29.8/node_modules/@babel/types","dependencies":{"@babel/helper-string-parser":"@babel/helper-string-parser@7.29.7","@babel/helper-validator-identifier":"@babel/helper-validator-identifier@7.29.7","@babel/types":"@babel/types@7.29.8"}},"@esbuild/aix-ppc64@0.25.12":{"url":"./.pnpm/@esbuild+aix-ppc64@0.25.12/node_modules/@esbuild/aix-ppc64","dependencies":{"@esbuild/aix-ppc64":"@esbuild/aix-ppc64@0.25.12"}},"@esbuild/android-arm64@0.25.12":{"url":"./.pnpm/@esbuild+android-arm64@0.25.12/node_modules/@esbuild/android-arm64","dependencies":{"@esbuild/android-arm64":"@esbuild/android-arm64@0.25.12"}},"@esbuild/android-arm@0.25.12":{"url":"./.pnpm/@esbuild+android-arm@0.25.12/node_modules/@esbuild/android-arm","dependencies":{"@esbuild/android-arm":"@esbuild/android-arm@0.25.12"}},"@esbuild/android-x64@0.25.12":{"url":"./.pnpm/@esbuild+android-x64@0.25.12/node_modules/@esbuild/android-x64","dependencies":{"@esbuild/android-x64":"@esbuild/android-x64@0.25.12"}},"@esbuild/darwin-arm64@0.25.12":{"url":"./.pnpm/@esbuild+darwin-arm64@0.25.12/node_modules/@esbuild/darwin-arm64","dependencies":{"@esbuild/darwin-arm64":"@esbuild/darwin-arm64@0.25.12"}},"@esbuild/darwin-x64@0.25.12":{"url":"./.pnpm/@esbuild+darwin-x64@0.25.12/node_modules/@esbuild/darwin-x64","dependencies":{"@esbuild/darwin-x64":"@esbuild/darwin-x64@0.25.12"}},"@esbuild/freebsd-arm64@0.25.12":{"url":"./.pnpm/@esbuild+freebsd-arm64@0.25.12/node_modules/@esbuild/freebsd-arm64","dependencies":{"@esbuild/freebsd-arm64":"@esbuild/freebsd-arm64@0.25.12"}},"@esbuild/freebsd-x64@0.25.12":{"url":"./.pnpm/@esbuild+freebsd-x64@0.25.12/node_modules/@esbuild/freebsd-x64","dependencies":{"@esbuild/freebsd-x64":"@esbuild/freebsd-x64@0.25.12"}},"@esbuild/linux-arm64@0.25.12":{"url":"./.pnpm/@esbuild+linux-arm64@0.25.12/node_modules/@esbuild/linux-arm64","dependencies":{"@esbuild/linux-arm64":"@esbuild/linux-arm64@0.25.12"}},"@esbuild/linux-arm@0.25.12":{"url":"./.pnpm/@esbuild+linux-arm@0.25.12/node_modules/@esbuild/linux-arm","dependencies":{"@esbuild/linux-arm":"@esbuild/linux-arm@0.25.12"}},"@esbuild/linux-ia32@0.25.12":{"url":"./.pnpm/@esbuild+linux-ia32@0.25.12/node_modules/@esbuild/linux-ia32","dependencies":{"@esbuild/linux-ia32":"@esbuild/linux-ia32@0.25.12"}},"@esbuild/linux-loong64@0.25.12":{"url":"./.pnpm/@esbuild+linux-loong64@0.25.12/node_modules/@esbuild/linux-loong64","dependencies":{"@esbuild/linux-loong64":"@esbuild/linux-loong64@0.25.12"}},"@esbuild/linux-mips64el@0.25.12":{"url":"./.pnpm/@esbuild+linux-mips64el@0.25.12/node_modules/@esbuild/linux-mips64el","dependencies":{"@esbuild/linux-mips64el":"@esbuild/linux-mips64el@0.25.12"}},"@esbuild/linux-ppc64@0.25.12":{"url":"./.pnpm/@esbuild+linux-ppc64@0.25.12/node_modules/@esbuild/linux-ppc64","dependencies":{"@esbuild/linux-ppc64":"@esbuild/linux-ppc64@0.25.12"}},"@esbuild/linux-riscv64@0.25.12":{"url":"./.pnpm/@esbuild+linux-riscv64@0.25.12/node_modules/@esbuild/linux-riscv64","dependencies":{"@esbuild/linux-riscv64":"@esbuild/linux-riscv64@0.25.12"}},"@esbuild/linux-s390x@0.25.12":{"url":"./.pnpm/@esbuild+linux-s390x@0.25.12/node_modules/@esbuild/linux-s390x","dependencies":{"@esbuild/linux-s390x":"@esbuild/linux-s390x@0.25.12"}},"@esbuild/linux-x64@0.25.12":{"url":"./.pnpm/@esbuild+linux-x64@0.25.12/node_modules/@esbuild/linux-x64","dependencies":{"@esbuild/linux-x64":"@esbuild/linux-x64@0.25.12"}},"@esbuild/netbsd-arm64@0.25.12":{"url":"./.pnpm/@esbuild+netbsd-arm64@0.25.12/node_modules/@esbuild/netbsd-arm64","dependencies":{"@esbuild/netbsd-arm64":"@esbuild/netbsd-arm64@0.25.12"}},"@esbuild/netbsd-x64@0.25.12":{"url":"./.pnpm/@esbuild+netbsd-x64@0.25.12/node_modules/@esbuild/netbsd-x64","dependencies":{"@esbuild/netbsd-x64":"@esbuild/netbsd-x64@0.25.12"}},"@esbuild/openbsd-arm64@0.25.12":{"url":"./.pnpm/@esbuild+openbsd-arm64@0.25.12/node_modules/@esbuild/openbsd-arm64","dependencies":{"@esbuild/openbsd-arm64":"@esbuild/openbsd-arm64@0.25.12"}},"@esbuild/openbsd-x64@0.25.12":{"url":"./.pnpm/@esbuild+openbsd-x64@0.25.12/node_modules/@esbuild/openbsd-x64","dependencies":{"@esbuild/openbsd-x64":"@esbuild/openbsd-x64@0.25.12"}},"@esbuild/openharmony-arm64@0.25.12":{"url":"./.pnpm/@esbuild+openharmony-arm64@0.25.12/node_modules/@esbuild/openharmony-arm64","dependencies":{"@esbuild/openharmony-arm64":"@esbuild/openharmony-arm64@0.25.12"}},"@esbuild/sunos-x64@0.25.12":{"url":"./.pnpm/@esbuild+sunos-x64@0.25.12/node_modules/@esbuild/sunos-x64","dependencies":{"@esbuild/sunos-x64":"@esbuild/sunos-x64@0.25.12"}},"@esbuild/win32-arm64@0.25.12":{"url":"./.pnpm/@esbuild+win32-arm64@0.25.12/node_modules/@esbuild/win32-arm64","dependencies":{"@esbuild/win32-arm64":"@esbuild/win32-arm64@0.25.12"}},"@esbuild/win32-ia32@0.25.12":{"url":"./.pnpm/@esbuild+win32-ia32@0.25.12/node_modules/@esbuild/win32-ia32","dependencies":{"@esbuild/win32-ia32":"@esbuild/win32-ia32@0.25.12"}},"@esbuild/win32-x64@0.25.12":{"url":"./.pnpm/@esbuild+win32-x64@0.25.12/node_modules/@esbuild/win32-x64","dependencies":{"@esbuild/win32-x64":"@esbuild/win32-x64@0.25.12"}},"@jridgewell/gen-mapping@0.3.13":{"url":"./.pnpm/@jridgewell+gen-mapping@0.3.13/node_modules/@jridgewell/gen-mapping","dependencies":{"@jridgewell/gen-mapping":"@jridgewell/gen-mapping@0.3.13","@jridgewell/sourcemap-codec":"@jridgewell/sourcemap-codec@1.5.5","@jridgewell/trace-mapping":"@jridgewell/trace-mapping@0.3.31"}},"@jridgewell/remapping@2.3.5":{"url":"./.pnpm/@jridgewell+remapping@2.3.5/node_modules/@jridgewell/remapping","dependencies":{"@jridgewell/gen-mapping":"@jridgewell/gen-mapping@0.3.13","@jridgewell/remapping":"@jridgewell/remapping@2.3.5","@jridgewell/trace-mapping":"@jridgewell/trace-mapping@0.3.31"}},"@jridgewell/resolve-uri@3.1.2":{"url":"./.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri","dependencies":{"@jridgewell/resolve-uri":"@jridgewell/resolve-uri@3.1.2"}},"@jridgewell/sourcemap-codec@1.5.5":{"url":"./.pnpm/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec","dependencies":{"@jridgewell/sourcemap-codec":"@jridgewell/sourcemap-codec@1.5.5"}},"@jridgewell/trace-mapping@0.3.31":{"url":"./.pnpm/@jridgewell+trace-mapping@0.3.31/node_modules/@jridgewell/trace-mapping","dependencies":{"@jridgewell/resolve-uri":"@jridgewell/resolve-uri@3.1.2","@jridgewell/sourcemap-codec":"@jridgewell/sourcemap-codec@1.5.5","@jridgewell/trace-mapping":"@jridgewell/trace-mapping@0.3.31"}},"@napi-rs/lzma-linux-x64-gnu@1.5.1":{"url":"./.pnpm/@napi-rs+lzma-linux-x64-gnu@1.5.1/node_modules/@napi-rs/lzma-linux-x64-gnu","dependencies":{"@napi-rs/lzma-linux-x64-gnu":"@napi-rs/lzma-linux-x64-gnu@1.5.1"}},"@rolldown/pluginutils@1.0.0-beta.27":{"url":"./.pnpm/@rolldown+pluginutils@1.0.0-beta.27/node_modules/@rolldown/pluginutils","dependencies":{"@rolldown/pluginutils":"@rolldown/pluginutils@1.0.0-beta.27"}},"@rollup/rollup-android-arm-eabi@4.62.4":{"url":"./.pnpm/@rollup+rollup-android-arm-eabi@4.62.4/node_modules/@rollup/rollup-android-arm-eabi","dependencies":{"@rollup/rollup-android-arm-eabi":"@rollup/rollup-android-arm-eabi@4.62.4"}},"@rollup/rollup-android-arm64@4.62.4":{"url":"./.pnpm/@rollup+rollup-android-arm64@4.62.4/node_modules/@rollup/rollup-android-arm64","dependencies":{"@rollup/rollup-android-arm64":"@rollup/rollup-android-arm64@4.62.4"}},"@rollup/rollup-darwin-arm64@4.62.4":{"url":"./.pnpm/@rollup+rollup-darwin-arm64@4.62.4/node_modules/@rollup/rollup-darwin-arm64","dependencies":{"@rollup/rollup-darwin-arm64":"@rollup/rollup-darwin-arm64@4.62.4"}},"@rollup/rollup-darwin-x64@4.62.4":{"url":"./.pnpm/@rollup+rollup-darwin-x64@4.62.4/node_modules/@rollup/rollup-darwin-x64","dependencies":{"@rollup/rollup-darwin-x64":"@rollup/rollup-darwin-x64@4.62.4"}},"@rollup/rollup-freebsd-arm64@4.62.4":{"url":"./.pnpm/@rollup+rollup-freebsd-arm64@4.62.4/node_modules/@rollup/rollup-freebsd-arm64","dependencies":{"@rollup/rollup-freebsd-arm64":"@rollup/rollup-freebsd-arm64@4.62.4"}},"@rollup/rollup-freebsd-x64@4.62.4":{"url":"./.pnpm/@rollup+rollup-freebsd-x64@4.62.4/node_modules/@rollup/rollup-freebsd-x64","dependencies":{"@rollup/rollup-freebsd-x64":"@rollup/rollup-freebsd-x64@4.62.4"}},"@rollup/rollup-linux-arm-gnueabihf@4.62.4":{"url":"./.pnpm/@rollup+rollup-linux-arm-gnueabihf@4.62.4/node_modules/@rollup/rollup-linux-arm-gnueabihf","dependencies":{"@rollup/rollup-linux-arm-gnueabihf":"@rollup/rollup-linux-arm-gnueabihf@4.62.4"}},"@rollup/rollup-linux-arm-musleabihf@4.62.4":{"url":"./.pnpm/@rollup+rollup-linux-arm-musleabihf@4.62.4/node_modules/@rollup/rollup-linux-arm-musleabihf","dependencies":{"@rollup/rollup-linux-arm-musleabihf":"@rollup/rollup-linux-arm-musleabihf@4.62.4"}},"@rollup/rollup-linux-arm64-gnu@4.62.4":{"url":"./.pnpm/@rollup+rollup-linux-arm64-gnu@4.62.4/node_modules/@rollup/rollup-linux-arm64-gnu","dependencies":{"@rollup/rollup-linux-arm64-gnu":"@rollup/rollup-linux-arm64-gnu@4.62.4"}},"@rollup/rollup-linux-arm64-musl@4.62.4":{"url":"./.pnpm/@rollup+rollup-linux-arm64-musl@4.62.4/node_modules/@rollup/rollup-linux-arm64-musl","dependencies":{"@rollup/rollup-linux-arm64-musl":"@rollup/rollup-linux-arm64-musl@4.62.4"}},"@rollup/rollup-linux-loong64-gnu@4.62.4":{"url":"./.pnpm/@rollup+rollup-linux-loong64-gnu@4.62.4/node_modules/@rollup/rollup-linux-loong64-gnu","dependencies":{"@rollup/rollup-linux-loong64-gnu":"@rollup/rollup-linux-loong64-gnu@4.62.4"}},"@rollup/rollup-linux-loong64-musl@4.62.4":{"url":"./.pnpm/@rollup+rollup-linux-loong64-musl@4.62.4/node_modules/@rollup/rollup-linux-loong64-musl","dependencies":{"@rollup/rollup-linux-loong64-musl":"@rollup/rollup-linux-loong64-musl@4.62.4"}},"@rollup/rollup-linux-ppc64-gnu@4.62.4":{"url":"./.pnpm/@rollup+rollup-linux-ppc64-gnu@4.62.4/node_modules/@rollup/rollup-linux-ppc64-gnu","dependencies":{"@rollup/rollup-linux-ppc64-gnu":"@rollup/rollup-linux-ppc64-gnu@4.62.4"}},"@rollup/rollup-linux-ppc64-musl@4.62.4":{"url":"./.pnpm/@rollup+rollup-linux-ppc64-musl@4.62.4/node_modules/@rollup/rollup-linux-ppc64-musl","dependencies":{"@rollup/rollup-linux-ppc64-musl":"@rollup/rollup-linux-ppc64-musl@4.62.4"}},"@rollup/rollup-linux-riscv64-gnu@4.62.4":{"url":"./.pnpm/@rollup+rollup-linux-riscv64-gnu@4.62.4/node_modules/@rollup/rollup-linux-riscv64-gnu","dependencies":{"@rollup/rollup-linux-riscv64-gnu":"@rollup/rollup-linux-riscv64-gnu@4.62.4"}},"@rollup/rollup-linux-riscv64-musl@4.62.4":{"url":"./.pnpm/@rollup+rollup-linux-riscv64-musl@4.62.4/node_modules/@rollup/rollup-linux-riscv64-musl","dependencies":{"@rollup/rollup-linux-riscv64-musl":"@rollup/rollup-linux-riscv64-musl@4.62.4"}},"@rollup/rollup-linux-s390x-gnu@4.62.4":{"url":"./.pnpm/@rollup+rollup-linux-s390x-gnu@4.62.4/node_modules/@rollup/rollup-linux-s390x-gnu","dependencies":{"@rollup/rollup-linux-s390x-gnu":"@rollup/rollup-linux-s390x-gnu@4.62.4"}},"@rollup/rollup-linux-x64-gnu@4.62.4":{"url":"./.pnpm/@rollup+rollup-linux-x64-gnu@4.62.4/node_modules/@rollup/rollup-linux-x64-gnu","dependencies":{"@rollup/rollup-linux-x64-gnu":"@rollup/rollup-linux-x64-gnu@4.62.4"}},"@rollup/rollup-linux-x64-musl@4.62.4":{"url":"./.pnpm/@rollup+rollup-linux-x64-musl@4.62.4/node_modules/@rollup/rollup-linux-x64-musl","dependencies":{"@rollup/rollup-linux-x64-musl":"@rollup/rollup-linux-x64-musl@4.62.4"}},"@rollup/rollup-openbsd-x64@4.62.4":{"url":"./.pnpm/@rollup+rollup-openbsd-x64@4.62.4/node_modules/@rollup/rollup-openbsd-x64","dependencies":{"@rollup/rollup-openbsd-x64":"@rollup/rollup-openbsd-x64@4.62.4"}},"@rollup/rollup-openharmony-arm64@4.62.4":{"url":"./.pnpm/@rollup+rollup-openharmony-arm64@4.62.4/node_modules/@rollup/rollup-openharmony-arm64","dependencies":{"@rollup/rollup-openharmony-arm64":"@rollup/rollup-openharmony-arm64@4.62.4"}},"@rollup/rollup-win32-arm64-msvc@4.62.4":{"url":"./.pnpm/@rollup+rollup-win32-arm64-msvc@4.62.4/node_modules/@rollup/rollup-win32-arm64-msvc","dependencies":{"@rollup/rollup-win32-arm64-msvc":"@rollup/rollup-win32-arm64-msvc@4.62.4"}},"@rollup/rollup-win32-ia32-msvc@4.62.4":{"url":"./.pnpm/@rollup+rollup-win32-ia32-msvc@4.62.4/node_modules/@rollup/rollup-win32-ia32-msvc","dependencies":{"@rollup/rollup-win32-ia32-msvc":"@rollup/rollup-win32-ia32-msvc@4.62.4"}},"@rollup/rollup-win32-x64-gnu@4.62.4":{"url":"./.pnpm/@rollup+rollup-win32-x64-gnu@4.62.4/node_modules/@rollup/rollup-win32-x64-gnu","dependencies":{"@rollup/rollup-win32-x64-gnu":"@rollup/rollup-win32-x64-gnu@4.62.4"}},"@rollup/rollup-win32-x64-msvc@4.62.4":{"url":"./.pnpm/@rollup+rollup-win32-x64-msvc@4.62.4/node_modules/@rollup/rollup-win32-x64-msvc","dependencies":{"@rollup/rollup-win32-x64-msvc":"@rollup/rollup-win32-x64-msvc@4.62.4"}},"@types/babel__core@7.20.5":{"url":"./.pnpm/@types+babel__core@7.20.5/node_modules/@types/babel__core","dependencies":{"@babel/parser":"@babel/parser@7.29.8","@babel/types":"@babel/types@7.29.8","@types/babel__core":"@types/babel__core@7.20.5","@types/babel__generator":"@types/babel__generator@7.27.0","@types/babel__template":"@types/babel__template@7.4.4","@types/babel__traverse":"@types/babel__traverse@7.28.0"}},"@types/babel__generator@7.27.0":{"url":"./.pnpm/@types+babel__generator@7.27.0/node_modules/@types/babel__generator","dependencies":{"@babel/types":"@babel/types@7.29.8","@types/babel__generator":"@types/babel__generator@7.27.0"}},"@types/babel__template@7.4.4":{"url":"./.pnpm/@types+babel__template@7.4.4/node_modules/@types/babel__template","dependencies":{"@babel/parser":"@babel/parser@7.29.8","@babel/types":"@babel/types@7.29.8","@types/babel__template":"@types/babel__template@7.4.4"}},"@types/babel__traverse@7.28.0":{"url":"./.pnpm/@types+babel__traverse@7.28.0/node_modules/@types/babel__traverse","dependencies":{"@babel/types":"@babel/types@7.29.8","@types/babel__traverse":"@types/babel__traverse@7.28.0"}},"@types/d3-color@3.1.3":{"url":"./.pnpm/@types+d3-color@3.1.3/node_modules/@types/d3-color","dependencies":{"@types/d3-color":"@types/d3-color@3.1.3"}},"@types/d3-drag@3.0.7":{"url":"./.pnpm/@types+d3-drag@3.0.7/node_modules/@types/d3-drag","dependencies":{"@types/d3-drag":"@types/d3-drag@3.0.7","@types/d3-selection":"@types/d3-selection@3.0.11"}},"@types/d3-interpolate@3.0.4":{"url":"./.pnpm/@types+d3-interpolate@3.0.4/node_modules/@types/d3-interpolate","dependencies":{"@types/d3-color":"@types/d3-color@3.1.3","@types/d3-interpolate":"@types/d3-interpolate@3.0.4"}},"@types/d3-selection@3.0.11":{"url":"./.pnpm/@types+d3-selection@3.0.11/node_modules/@types/d3-selection","dependencies":{"@types/d3-selection":"@types/d3-selection@3.0.11"}},"@types/d3-transition@3.0.9":{"url":"./.pnpm/@types+d3-transition@3.0.9/node_modules/@types/d3-transition","dependencies":{"@types/d3-selection":"@types/d3-selection@3.0.11","@types/d3-transition":"@types/d3-transition@3.0.9"}},"@types/d3-zoom@3.0.8":{"url":"./.pnpm/@types+d3-zoom@3.0.8/node_modules/@types/d3-zoom","dependencies":{"@types/d3-interpolate":"@types/d3-interpolate@3.0.4","@types/d3-selection":"@types/d3-selection@3.0.11","@types/d3-zoom":"@types/d3-zoom@3.0.8"}},"@types/estree@1.0.9":{"url":"./.pnpm/@types+estree@1.0.9/node_modules/@types/estree","dependencies":{"@types/estree":"@types/estree@1.0.9"}},"@types/react-dom@19.2.4(@types/react@19.2.18)":{"url":"./.pnpm/@types+react-dom@19.2.4_@types+react@19.2.18/node_modules/@types/react-dom","dependencies":{"@types/react":"@types/react@19.2.18","@types/react-dom":"@types/react-dom@19.2.4(@types/react@19.2.18)"}},"@types/react@19.2.18":{"url":"./.pnpm/@types+react@19.2.18/node_modules/@types/react","dependencies":{"@types/react":"@types/react@19.2.18","csstype":"csstype@3.2.3"}},"@vitejs/plugin-react@4.7.0(vite@6.4.3)":{"url":"./.pnpm/@vitejs+plugin-react@4.7.0_vite@6.4.3/node_modules/@vitejs/plugin-react","dependencies":{"@babel/core":"@babel/core@7.29.7","@babel/plugin-transform-react-jsx-self":"@babel/plugin-transform-react-jsx-self@7.29.7(@babel/core@7.29.7)","@babel/plugin-transform-react-jsx-source":"@babel/plugin-transform-react-jsx-source@7.29.7(@babel/core@7.29.7)","@rolldown/pluginutils":"@rolldown/pluginutils@1.0.0-beta.27","@types/babel__core":"@types/babel__core@7.20.5","@vitejs/plugin-react":"@vitejs/plugin-react@4.7.0(vite@6.4.3)","react-refresh":"react-refresh@0.17.0","vite":"vite@6.4.3"}},"@xyflow/react@12.11.2(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)":{"url":"./.pnpm/@xyflow+react@12.11.2_@types+react-dom@19.2.4_@types+react@19.2.18__@types+react@19.2.1_4449a809c64647816bd89ebca5fbd811/node_modules/@xyflow/react","dependencies":{"@types/react":"@types/react@19.2.18","@types/react-dom":"@types/react-dom@19.2.4(@types/react@19.2.18)","@xyflow/react":"@xyflow/react@12.11.2(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)","@xyflow/system":"@xyflow/system@0.0.79","classcat":"classcat@5.0.5","react":"react@19.2.8","react-dom":"react-dom@19.2.8(react@19.2.8)","zustand":"zustand@4.5.7(@types/react@19.2.18)(react@19.2.8)"}},"@xyflow/system@0.0.79":{"url":"./.pnpm/@xyflow+system@0.0.79/node_modules/@xyflow/system","dependencies":{"@types/d3-drag":"@types/d3-drag@3.0.7","@types/d3-interpolate":"@types/d3-interpolate@3.0.4","@types/d3-selection":"@types/d3-selection@3.0.11","@types/d3-transition":"@types/d3-transition@3.0.9","@types/d3-zoom":"@types/d3-zoom@3.0.8","@xyflow/system":"@xyflow/system@0.0.79","d3-drag":"d3-drag@3.0.0","d3-interpolate":"d3-interpolate@3.0.1","d3-selection":"d3-selection@3.0.0","d3-zoom":"d3-zoom@3.0.0"}},"baseline-browser-mapping@2.11.12":{"url":"./.pnpm/baseline-browser-mapping@2.11.12/node_modules/baseline-browser-mapping","dependencies":{"baseline-browser-mapping":"baseline-browser-mapping@2.11.12"}},"browserslist@4.28.7":{"url":"./.pnpm/browserslist@4.28.7/node_modules/browserslist","dependencies":{"baseline-browser-mapping":"baseline-browser-mapping@2.11.12","browserslist":"browserslist@4.28.7","caniuse-lite":"caniuse-lite@1.0.30001806","electron-to-chromium":"electron-to-chromium@1.5.401","node-releases":"node-releases@2.0.52","update-browserslist-db":"update-browserslist-db@1.2.3(browserslist@4.28.7)"}},"caniuse-lite@1.0.30001806":{"url":"./.pnpm/caniuse-lite@1.0.30001806/node_modules/caniuse-lite","dependencies":{"caniuse-lite":"caniuse-lite@1.0.30001806"}},"classcat@5.0.5":{"url":"./.pnpm/classcat@5.0.5/node_modules/classcat","dependencies":{"classcat":"classcat@5.0.5"}},"convert-source-map@2.0.0":{"url":"./.pnpm/convert-source-map@2.0.0/node_modules/convert-source-map","dependencies":{"convert-source-map":"convert-source-map@2.0.0"}},"csstype@3.2.3":{"url":"./.pnpm/csstype@3.2.3/node_modules/csstype","dependencies":{"csstype":"csstype@3.2.3"}},"d3-color@3.1.0":{"url":"./.pnpm/d3-color@3.1.0/node_modules/d3-color","dependencies":{"d3-color":"d3-color@3.1.0"}},"d3-dispatch@3.0.1":{"url":"./.pnpm/d3-dispatch@3.0.1/node_modules/d3-dispatch","dependencies":{"d3-dispatch":"d3-dispatch@3.0.1"}},"d3-drag@3.0.0":{"url":"./.pnpm/d3-drag@3.0.0/node_modules/d3-drag","dependencies":{"d3-dispatch":"d3-dispatch@3.0.1","d3-drag":"d3-drag@3.0.0","d3-selection":"d3-selection@3.0.0"}},"d3-ease@3.0.1":{"url":"./.pnpm/d3-ease@3.0.1/node_modules/d3-ease","dependencies":{"d3-ease":"d3-ease@3.0.1"}},"d3-interpolate@3.0.1":{"url":"./.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate","dependencies":{"d3-color":"d3-color@3.1.0","d3-interpolate":"d3-interpolate@3.0.1"}},"d3-selection@3.0.0":{"url":"./.pnpm/d3-selection@3.0.0/node_modules/d3-selection","dependencies":{"d3-selection":"d3-selection@3.0.0"}},"d3-timer@3.0.1":{"url":"./.pnpm/d3-timer@3.0.1/node_modules/d3-timer","dependencies":{"d3-timer":"d3-timer@3.0.1"}},"d3-transition@3.0.1(d3-selection@3.0.0)":{"url":"./.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition","dependencies":{"d3-color":"d3-color@3.1.0","d3-dispatch":"d3-dispatch@3.0.1","d3-ease":"d3-ease@3.0.1","d3-interpolate":"d3-interpolate@3.0.1","d3-selection":"d3-selection@3.0.0","d3-timer":"d3-timer@3.0.1","d3-transition":"d3-transition@3.0.1(d3-selection@3.0.0)"}},"d3-zoom@3.0.0":{"url":"./.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom","dependencies":{"d3-dispatch":"d3-dispatch@3.0.1","d3-drag":"d3-drag@3.0.0","d3-interpolate":"d3-interpolate@3.0.1","d3-selection":"d3-selection@3.0.0","d3-transition":"d3-transition@3.0.1(d3-selection@3.0.0)","d3-zoom":"d3-zoom@3.0.0"}},"debug@4.4.3":{"url":"./.pnpm/debug@4.4.3/node_modules/debug","dependencies":{"debug":"debug@4.4.3","ms":"ms@2.1.3"}},"electron-to-chromium@1.5.401":{"url":"./.pnpm/electron-to-chromium@1.5.401/node_modules/electron-to-chromium","dependencies":{"electron-to-chromium":"electron-to-chromium@1.5.401"}},"esbuild@0.25.12":{"url":"./.pnpm/esbuild@0.25.12/node_modules/esbuild","dependencies":{"@esbuild/aix-ppc64":"@esbuild/aix-ppc64@0.25.12","@esbuild/android-arm":"@esbuild/android-arm@0.25.12","@esbuild/android-arm64":"@esbuild/android-arm64@0.25.12","@esbuild/android-x64":"@esbuild/android-x64@0.25.12","@esbuild/darwin-arm64":"@esbuild/darwin-arm64@0.25.12","@esbuild/darwin-x64":"@esbuild/darwin-x64@0.25.12","@esbuild/freebsd-arm64":"@esbuild/freebsd-arm64@0.25.12","@esbuild/freebsd-x64":"@esbuild/freebsd-x64@0.25.12","@esbuild/linux-arm":"@esbuild/linux-arm@0.25.12","@esbuild/linux-arm64":"@esbuild/linux-arm64@0.25.12","@esbuild/linux-ia32":"@esbuild/linux-ia32@0.25.12","@esbuild/linux-loong64":"@esbuild/linux-loong64@0.25.12","@esbuild/linux-mips64el":"@esbuild/linux-mips64el@0.25.12","@esbuild/linux-ppc64":"@esbuild/linux-ppc64@0.25.12","@esbuild/linux-riscv64":"@esbuild/linux-riscv64@0.25.12","@esbuild/linux-s390x":"@esbuild/linux-s390x@0.25.12","@esbuild/linux-x64":"@esbuild/linux-x64@0.25.12","@esbuild/netbsd-arm64":"@esbuild/netbsd-arm64@0.25.12","@esbuild/netbsd-x64":"@esbuild/netbsd-x64@0.25.12","@esbuild/openbsd-arm64":"@esbuild/openbsd-arm64@0.25.12","@esbuild/openbsd-x64":"@esbuild/openbsd-x64@0.25.12","@esbuild/openharmony-arm64":"@esbuild/openharmony-arm64@0.25.12","@esbuild/sunos-x64":"@esbuild/sunos-x64@0.25.12","@esbuild/win32-arm64":"@esbuild/win32-arm64@0.25.12","@esbuild/win32-ia32":"@esbuild/win32-ia32@0.25.12","@esbuild/win32-x64":"@esbuild/win32-x64@0.25.12","esbuild":"esbuild@0.25.12"}},"escalade@3.2.0":{"url":"./.pnpm/escalade@3.2.0/node_modules/escalade","dependencies":{"escalade":"escalade@3.2.0"}},"fdir@6.5.0(picomatch@4.0.5)":{"url":"./.pnpm/fdir@6.5.0_picomatch@4.0.5/node_modules/fdir","dependencies":{"fdir":"fdir@6.5.0(picomatch@4.0.5)","picomatch":"picomatch@4.0.5"}},"fsevents@2.3.3":{"url":"./.pnpm/fsevents@2.3.3/node_modules/fsevents","dependencies":{"fsevents":"fsevents@2.3.3"}},"gensync@1.0.0-beta.2":{"url":"./.pnpm/gensync@1.0.0-beta.2/node_modules/gensync","dependencies":{"gensync":"gensync@1.0.0-beta.2"}},"js-tokens@4.0.0":{"url":"./.pnpm/js-tokens@4.0.0/node_modules/js-tokens","dependencies":{"js-tokens":"js-tokens@4.0.0"}},"jsesc@3.1.0":{"url":"./.pnpm/jsesc@3.1.0/node_modules/jsesc","dependencies":{"jsesc":"jsesc@3.1.0"}},"json5@2.2.3":{"url":"./.pnpm/json5@2.2.3/node_modules/json5","dependencies":{"json5":"json5@2.2.3"}},"lru-cache@5.1.1":{"url":"./.pnpm/lru-cache@5.1.1/node_modules/lru-cache","dependencies":{"lru-cache":"lru-cache@5.1.1","yallist":"yallist@3.1.1"}},"lucide-react@0.511.0(react@19.2.8)":{"url":"./.pnpm/lucide-react@0.511.0_react@19.2.8/node_modules/lucide-react","dependencies":{"lucide-react":"lucide-react@0.511.0(react@19.2.8)","react":"react@19.2.8"}},"ms@2.1.3":{"url":"./.pnpm/ms@2.1.3/node_modules/ms","dependencies":{"ms":"ms@2.1.3"}},"nanoid@3.3.17":{"url":"./.pnpm/nanoid@3.3.17/node_modules/nanoid","dependencies":{"nanoid":"nanoid@3.3.17"}},"node-releases@2.0.52":{"url":"./.pnpm/node-releases@2.0.52/node_modules/node-releases","dependencies":{"node-releases":"node-releases@2.0.52"}},"picocolors@1.1.1":{"url":"./.pnpm/picocolors@1.1.1/node_modules/picocolors","dependencies":{"picocolors":"picocolors@1.1.1"}},"picomatch@4.0.5":{"url":"./.pnpm/picomatch@4.0.5/node_modules/picomatch","dependencies":{"picomatch":"picomatch@4.0.5"}},"postcss@8.5.25":{"url":"./.pnpm/postcss@8.5.25/node_modules/postcss","dependencies":{"nanoid":"nanoid@3.3.17","picocolors":"picocolors@1.1.1","postcss":"postcss@8.5.25","source-map-js":"source-map-js@1.2.1"}},"react-dom@19.2.8(react@19.2.8)":{"url":"./.pnpm/react-dom@19.2.8_react@19.2.8/node_modules/react-dom","dependencies":{"react":"react@19.2.8","react-dom":"react-dom@19.2.8(react@19.2.8)","scheduler":"scheduler@0.27.0"}},"react-refresh@0.17.0":{"url":"./.pnpm/react-refresh@0.17.0/node_modules/react-refresh","dependencies":{"react-refresh":"react-refresh@0.17.0"}},"react@19.2.8":{"url":"./.pnpm/react@19.2.8/node_modules/react","dependencies":{"react":"react@19.2.8"}},"rollup@4.62.4":{"url":"./.pnpm/rollup@4.62.4/node_modules/rollup","dependencies":{"@napi-rs/lzma-linux-x64-gnu":"@napi-rs/lzma-linux-x64-gnu@1.5.1","@rollup/rollup-android-arm-eabi":"@rollup/rollup-android-arm-eabi@4.62.4","@rollup/rollup-android-arm64":"@rollup/rollup-android-arm64@4.62.4","@rollup/rollup-darwin-arm64":"@rollup/rollup-darwin-arm64@4.62.4","@rollup/rollup-darwin-x64":"@rollup/rollup-darwin-x64@4.62.4","@rollup/rollup-freebsd-arm64":"@rollup/rollup-freebsd-arm64@4.62.4","@rollup/rollup-freebsd-x64":"@rollup/rollup-freebsd-x64@4.62.4","@rollup/rollup-linux-arm-gnueabihf":"@rollup/rollup-linux-arm-gnueabihf@4.62.4","@rollup/rollup-linux-arm-musleabihf":"@rollup/rollup-linux-arm-musleabihf@4.62.4","@rollup/rollup-linux-arm64-gnu":"@rollup/rollup-linux-arm64-gnu@4.62.4","@rollup/rollup-linux-arm64-musl":"@rollup/rollup-linux-arm64-musl@4.62.4","@rollup/rollup-linux-loong64-gnu":"@rollup/rollup-linux-loong64-gnu@4.62.4","@rollup/rollup-linux-loong64-musl":"@rollup/rollup-linux-loong64-musl@4.62.4","@rollup/rollup-linux-ppc64-gnu":"@rollup/rollup-linux-ppc64-gnu@4.62.4","@rollup/rollup-linux-ppc64-musl":"@rollup/rollup-linux-ppc64-musl@4.62.4","@rollup/rollup-linux-riscv64-gnu":"@rollup/rollup-linux-riscv64-gnu@4.62.4","@rollup/rollup-linux-riscv64-musl":"@rollup/rollup-linux-riscv64-musl@4.62.4","@rollup/rollup-linux-s390x-gnu":"@rollup/rollup-linux-s390x-gnu@4.62.4","@rollup/rollup-linux-x64-gnu":"@rollup/rollup-linux-x64-gnu@4.62.4","@rollup/rollup-linux-x64-musl":"@rollup/rollup-linux-x64-musl@4.62.4","@rollup/rollup-openbsd-x64":"@rollup/rollup-openbsd-x64@4.62.4","@rollup/rollup-openharmony-arm64":"@rollup/rollup-openharmony-arm64@4.62.4","@rollup/rollup-win32-arm64-msvc":"@rollup/rollup-win32-arm64-msvc@4.62.4","@rollup/rollup-win32-ia32-msvc":"@rollup/rollup-win32-ia32-msvc@4.62.4","@rollup/rollup-win32-x64-gnu":"@rollup/rollup-win32-x64-gnu@4.62.4","@rollup/rollup-win32-x64-msvc":"@rollup/rollup-win32-x64-msvc@4.62.4","@types/estree":"@types/estree@1.0.9","fsevents":"fsevents@2.3.3","rollup":"rollup@4.62.4"}},"scheduler@0.27.0":{"url":"./.pnpm/scheduler@0.27.0/node_modules/scheduler","dependencies":{"scheduler":"scheduler@0.27.0"}},"semver@6.3.1":{"url":"./.pnpm/semver@6.3.1/node_modules/semver","dependencies":{"semver":"semver@6.3.1"}},"source-map-js@1.2.1":{"url":"./.pnpm/source-map-js@1.2.1/node_modules/source-map-js","dependencies":{"source-map-js":"source-map-js@1.2.1"}},"tinyglobby@0.2.17":{"url":"./.pnpm/tinyglobby@0.2.17/node_modules/tinyglobby","dependencies":{"fdir":"fdir@6.5.0(picomatch@4.0.5)","picomatch":"picomatch@4.0.5","tinyglobby":"tinyglobby@0.2.17"}},"typescript@5.8.3":{"url":"./.pnpm/typescript@5.8.3/node_modules/typescript","dependencies":{"typescript":"typescript@5.8.3"}},"update-browserslist-db@1.2.3(browserslist@4.28.7)":{"url":"./.pnpm/update-browserslist-db@1.2.3_browserslist@4.28.7/node_modules/update-browserslist-db","dependencies":{"browserslist":"browserslist@4.28.7","escalade":"escalade@3.2.0","picocolors":"picocolors@1.1.1","update-browserslist-db":"update-browserslist-db@1.2.3(browserslist@4.28.7)"}},"use-sync-external-store@1.6.0(react@19.2.8)":{"url":"./.pnpm/use-sync-external-store@1.6.0_react@19.2.8/node_modules/use-sync-external-store","dependencies":{"react":"react@19.2.8","use-sync-external-store":"use-sync-external-store@1.6.0(react@19.2.8)"}},"vite@6.4.3":{"url":"./.pnpm/vite@6.4.3/node_modules/vite","dependencies":{"esbuild":"esbuild@0.25.12","fdir":"fdir@6.5.0(picomatch@4.0.5)","fsevents":"fsevents@2.3.3","picomatch":"picomatch@4.0.5","postcss":"postcss@8.5.25","rollup":"rollup@4.62.4","tinyglobby":"tinyglobby@0.2.17","vite":"vite@6.4.3"}},"yallist@3.1.1":{"url":"./.pnpm/yallist@3.1.1/node_modules/yallist","dependencies":{"yallist":"yallist@3.1.1"}},"zustand@4.5.7(@types/react@19.2.18)(react@19.2.8)":{"url":"./.pnpm/zustand@4.5.7_@types+react@19.2.18_react@19.2.8/node_modules/zustand","dependencies":{"@types/react":"@types/react@19.2.18","react":"react@19.2.8","use-sync-external-store":"use-sync-external-store@1.6.0(react@19.2.8)","zustand":"zustand@4.5.7(@types/react@19.2.18)(react@19.2.8)"}}}}
frontend/node_modules/.pnpm/@babel+code-frame@7.29.7/node_modules/@babel/code-frame/LICENSE ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2014-present Sebastian McKenzie and other contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
frontend/node_modules/.pnpm/@babel+code-frame@7.29.7/node_modules/@babel/code-frame/README.md ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # @babel/code-frame
2
+
3
+ > Generate errors that contain a code frame that point to source locations.
4
+
5
+ See our website [@babel/code-frame](https://babeljs.io/docs/babel-code-frame) for more information.
6
+
7
+ ## Install
8
+
9
+ Using npm:
10
+
11
+ ```sh
12
+ npm install --save-dev @babel/code-frame
13
+ ```
14
+
15
+ or using yarn:
16
+
17
+ ```sh
18
+ yarn add @babel/code-frame --dev
19
+ ```
frontend/node_modules/.pnpm/@babel+code-frame@7.29.7/node_modules/@babel/code-frame/lib/index.js ADDED
@@ -0,0 +1,217 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var picocolors = require('picocolors');
6
+ var jsTokens = require('js-tokens');
7
+ var helperValidatorIdentifier = require('@babel/helper-validator-identifier');
8
+
9
+ function isColorSupported() {
10
+ return (typeof process === "object" && (process.env.FORCE_COLOR === "0" || process.env.FORCE_COLOR === "false") ? false : picocolors.isColorSupported
11
+ );
12
+ }
13
+ const compose = (f, g) => v => f(g(v));
14
+ function buildDefs(colors) {
15
+ return {
16
+ keyword: colors.cyan,
17
+ capitalized: colors.yellow,
18
+ jsxIdentifier: colors.yellow,
19
+ punctuator: colors.yellow,
20
+ number: colors.magenta,
21
+ string: colors.green,
22
+ regex: colors.magenta,
23
+ comment: colors.gray,
24
+ invalid: compose(compose(colors.white, colors.bgRed), colors.bold),
25
+ gutter: colors.gray,
26
+ marker: compose(colors.red, colors.bold),
27
+ message: compose(colors.red, colors.bold),
28
+ reset: colors.reset
29
+ };
30
+ }
31
+ const defsOn = buildDefs(picocolors.createColors(true));
32
+ const defsOff = buildDefs(picocolors.createColors(false));
33
+ function getDefs(enabled) {
34
+ return enabled ? defsOn : defsOff;
35
+ }
36
+
37
+ const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]);
38
+ const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/;
39
+ const BRACKET = /^[()[\]{}]$/;
40
+ let tokenize;
41
+ const JSX_TAG = /^[a-z][\w-]*$/i;
42
+ const getTokenType = function (token, offset, text) {
43
+ if (token.type === "name") {
44
+ const tokenValue = token.value;
45
+ if (helperValidatorIdentifier.isKeyword(tokenValue) || helperValidatorIdentifier.isStrictReservedWord(tokenValue, true) || sometimesKeywords.has(tokenValue)) {
46
+ return "keyword";
47
+ }
48
+ if (JSX_TAG.test(tokenValue) && (text[offset - 1] === "<" || text.slice(offset - 2, offset) === "</")) {
49
+ return "jsxIdentifier";
50
+ }
51
+ const firstChar = String.fromCodePoint(tokenValue.codePointAt(0));
52
+ if (firstChar !== firstChar.toLowerCase()) {
53
+ return "capitalized";
54
+ }
55
+ }
56
+ if (token.type === "punctuator" && BRACKET.test(token.value)) {
57
+ return "bracket";
58
+ }
59
+ if (token.type === "invalid" && (token.value === "@" || token.value === "#")) {
60
+ return "punctuator";
61
+ }
62
+ return token.type;
63
+ };
64
+ tokenize = function* (text) {
65
+ let match;
66
+ while (match = jsTokens.default.exec(text)) {
67
+ const token = jsTokens.matchToToken(match);
68
+ yield {
69
+ type: getTokenType(token, match.index, text),
70
+ value: token.value
71
+ };
72
+ }
73
+ };
74
+ function highlight(text) {
75
+ if (text === "") return "";
76
+ const defs = getDefs(true);
77
+ let highlighted = "";
78
+ for (const {
79
+ type,
80
+ value
81
+ } of tokenize(text)) {
82
+ if (type in defs) {
83
+ highlighted += value.split(NEWLINE$1).map(str => defs[type](str)).join("\n");
84
+ } else {
85
+ highlighted += value;
86
+ }
87
+ }
88
+ return highlighted;
89
+ }
90
+
91
+ let deprecationWarningShown = false;
92
+ const NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
93
+ function getMarkerLines(loc, source, opts, startLineBaseZero) {
94
+ const startLoc = Object.assign({
95
+ column: 0,
96
+ line: -1
97
+ }, loc.start);
98
+ const endLoc = Object.assign({}, startLoc, loc.end);
99
+ const {
100
+ linesAbove = 2,
101
+ linesBelow = 3
102
+ } = opts || {};
103
+ const startLine = startLoc.line - startLineBaseZero;
104
+ const startColumn = startLoc.column;
105
+ const endLine = endLoc.line - startLineBaseZero;
106
+ const endColumn = endLoc.column;
107
+ let start = Math.max(startLine - (linesAbove + 1), 0);
108
+ let end = Math.min(source.length, endLine + linesBelow);
109
+ if (startLine === -1) {
110
+ start = 0;
111
+ }
112
+ if (endLine === -1) {
113
+ end = source.length;
114
+ }
115
+ const lineDiff = endLine - startLine;
116
+ const markerLines = {};
117
+ if (lineDiff) {
118
+ for (let i = 0; i <= lineDiff; i++) {
119
+ const lineNumber = i + startLine;
120
+ if (!startColumn) {
121
+ markerLines[lineNumber] = true;
122
+ } else if (i === 0) {
123
+ const sourceLength = source[lineNumber - 1].length;
124
+ markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];
125
+ } else if (i === lineDiff) {
126
+ markerLines[lineNumber] = [0, endColumn];
127
+ } else {
128
+ const sourceLength = source[lineNumber - i].length;
129
+ markerLines[lineNumber] = [0, sourceLength];
130
+ }
131
+ }
132
+ } else {
133
+ if (startColumn === endColumn) {
134
+ if (startColumn) {
135
+ markerLines[startLine] = [startColumn, 0];
136
+ } else {
137
+ markerLines[startLine] = true;
138
+ }
139
+ } else {
140
+ markerLines[startLine] = [startColumn, endColumn - startColumn];
141
+ }
142
+ }
143
+ return {
144
+ start,
145
+ end,
146
+ markerLines
147
+ };
148
+ }
149
+ function codeFrameColumns(rawLines, loc, opts = {}) {
150
+ const shouldHighlight = opts.forceColor || isColorSupported() && opts.highlightCode;
151
+ const startLineBaseZero = (opts.startLine || 1) - 1;
152
+ const defs = getDefs(shouldHighlight);
153
+ const lines = rawLines.split(NEWLINE);
154
+ const {
155
+ start,
156
+ end,
157
+ markerLines
158
+ } = getMarkerLines(loc, lines, opts, startLineBaseZero);
159
+ const hasColumns = loc.start && typeof loc.start.column === "number";
160
+ const numberMaxWidth = String(end + startLineBaseZero).length;
161
+ const highlightedLines = shouldHighlight ? highlight(rawLines) : rawLines;
162
+ let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => {
163
+ const number = start + 1 + index;
164
+ const paddedNumber = ` ${number + startLineBaseZero}`.slice(-numberMaxWidth);
165
+ const gutter = ` ${paddedNumber} |`;
166
+ const hasMarker = markerLines[number];
167
+ const lastMarkerLine = !markerLines[number + 1];
168
+ if (hasMarker) {
169
+ let markerLine = "";
170
+ if (Array.isArray(hasMarker)) {
171
+ const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " ");
172
+ const numberOfMarkers = hasMarker[1] || 1;
173
+ markerLine = ["\n ", defs.gutter(gutter.replace(/\d/g, " ")), " ", markerSpacing, defs.marker("^").repeat(numberOfMarkers)].join("");
174
+ if (lastMarkerLine && opts.message) {
175
+ markerLine += " " + defs.message(opts.message);
176
+ }
177
+ }
178
+ return [defs.marker(">"), defs.gutter(gutter), line.length > 0 ? ` ${line}` : "", markerLine].join("");
179
+ } else {
180
+ return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : ""}`;
181
+ }
182
+ }).join("\n");
183
+ if (opts.message && !hasColumns) {
184
+ frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
185
+ }
186
+ if (shouldHighlight) {
187
+ return defs.reset(frame);
188
+ } else {
189
+ return frame;
190
+ }
191
+ }
192
+ function index (rawLines, lineNumber, colNumber, opts = {}) {
193
+ if (!deprecationWarningShown) {
194
+ deprecationWarningShown = true;
195
+ const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";
196
+ if (process.emitWarning) {
197
+ process.emitWarning(message, "DeprecationWarning");
198
+ } else {
199
+ const deprecationError = new Error(message);
200
+ deprecationError.name = "DeprecationWarning";
201
+ console.warn(new Error(message));
202
+ }
203
+ }
204
+ colNumber = Math.max(colNumber, 0);
205
+ const location = {
206
+ start: {
207
+ column: colNumber,
208
+ line: lineNumber
209
+ }
210
+ };
211
+ return codeFrameColumns(rawLines, location, opts);
212
+ }
213
+
214
+ exports.codeFrameColumns = codeFrameColumns;
215
+ exports.default = index;
216
+ exports.highlight = highlight;
217
+ //# sourceMappingURL=index.js.map
frontend/node_modules/.pnpm/@babel+code-frame@7.29.7/node_modules/@babel/code-frame/lib/index.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"index.js","sources":["../src/defs.ts","../src/highlight.ts","../src/index.ts"],"sourcesContent":["import picocolors, { createColors } from \"picocolors\";\nimport type { Colors, Formatter } from \"picocolors/types\";\n\nexport function isColorSupported() {\n return (\n // See https://github.com/alexeyraspopov/picocolors/issues/62\n typeof process === \"object\" &&\n (process.env.FORCE_COLOR === \"0\" || process.env.FORCE_COLOR === \"false\")\n ? false\n : picocolors.isColorSupported\n );\n}\n\nexport type InternalTokenType =\n | \"keyword\"\n | \"capitalized\"\n | \"jsxIdentifier\"\n | \"punctuator\"\n | \"number\"\n | \"string\"\n | \"regex\"\n | \"comment\"\n | \"invalid\";\n\ntype UITokens = \"gutter\" | \"marker\" | \"message\";\n\nexport type Defs = Record<InternalTokenType | UITokens | \"reset\", Formatter>;\n\nconst compose: <T, U, V>(f: (gv: U) => V, g: (v: T) => U) => (v: T) => V =\n (f, g) => v =>\n f(g(v));\n\n/**\n * Styles for token types.\n */\nfunction buildDefs(colors: Colors): Defs {\n return {\n keyword: colors.cyan,\n capitalized: colors.yellow,\n jsxIdentifier: colors.yellow,\n punctuator: colors.yellow,\n number: colors.magenta,\n string: colors.green,\n regex: colors.magenta,\n comment: colors.gray,\n invalid: compose(compose(colors.white, colors.bgRed), colors.bold),\n\n gutter: colors.gray,\n marker: compose(colors.red, colors.bold),\n message: compose(colors.red, colors.bold),\n\n reset: colors.reset,\n };\n}\n\nconst defsOn = buildDefs(createColors(true));\nconst defsOff = buildDefs(createColors(false));\n\nexport function getDefs(enabled: boolean): Defs {\n return enabled ? defsOn : defsOff;\n}\n","import type { Token as JSToken, JSXToken } from \"js-tokens\";\nimport jsTokens from \"js-tokens\";\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\nimport {\n isStrictReservedWord,\n isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nimport { getDefs, type InternalTokenType } from \"./defs.ts\";\n\n/**\n * Names that are always allowed as identifiers, but also appear as keywords\n * within certain syntactic productions.\n *\n * https://tc39.es/ecma262/#sec-keywords-and-reserved-words\n *\n * `target` has been omitted since it is very likely going to be a false\n * positive.\n */\nconst sometimesKeywords = new Set([\"as\", \"async\", \"from\", \"get\", \"of\", \"set\"]);\n\ntype Token = {\n type: InternalTokenType | \"uncolored\";\n value: string;\n};\n\n/**\n * RegExp to test for newlines in terminal.\n */\nconst NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n\n/**\n * RegExp to test for the three types of brackets.\n */\nconst BRACKET = /^[()[\\]{}]$/;\n\nlet tokenize: (\n text: string,\n) => Generator<{ type: InternalTokenType | \"uncolored\"; value: string }>;\n\nif (process.env.BABEL_8_BREAKING) {\n /**\n * Get the type of token, specifying punctuator type.\n */\n const getTokenType = function (\n token: JSToken | JSXToken,\n ): InternalTokenType | \"uncolored\" {\n if (token.type === \"IdentifierName\") {\n const tokenValue = token.value;\n if (\n isKeyword(tokenValue) ||\n isStrictReservedWord(tokenValue, true) ||\n sometimesKeywords.has(tokenValue)\n ) {\n return \"keyword\";\n }\n\n const firstChar = tokenValue.charCodeAt(0);\n if (firstChar < 128) {\n // ASCII characters\n if (\n firstChar >= charCodes.uppercaseA &&\n firstChar <= charCodes.uppercaseZ\n ) {\n return \"capitalized\";\n }\n } else {\n const firstChar = String.fromCodePoint(tokenValue.codePointAt(0));\n if (firstChar !== firstChar.toLowerCase()) {\n return \"capitalized\";\n }\n }\n }\n\n if (token.type === \"Punctuator\" && BRACKET.test(token.value)) {\n return \"uncolored\";\n }\n\n if (token.type === \"Invalid\" && token.value === \"@\") {\n return \"punctuator\";\n }\n\n switch (token.type) {\n case \"NumericLiteral\":\n return \"number\";\n\n case \"StringLiteral\":\n case \"JSXString\":\n case \"NoSubstitutionTemplate\":\n return \"string\";\n\n case \"RegularExpressionLiteral\":\n return \"regex\";\n\n case \"Punctuator\":\n case \"JSXPunctuator\":\n return \"punctuator\";\n\n case \"MultiLineComment\":\n case \"SingleLineComment\":\n return \"comment\";\n\n case \"Invalid\":\n case \"JSXInvalid\":\n return \"invalid\";\n\n case \"JSXIdentifier\":\n return \"jsxIdentifier\";\n\n default:\n return \"uncolored\";\n }\n };\n\n /**\n * Turn a string of JS into an array of objects.\n */\n tokenize = function* (text: string): Generator<Token> {\n for (const token of jsTokens(text, { jsx: true })) {\n switch (token.type) {\n case \"TemplateHead\":\n yield { type: \"string\", value: token.value.slice(0, -2) };\n yield { type: \"punctuator\", value: \"${\" };\n break;\n\n case \"TemplateMiddle\":\n yield { type: \"punctuator\", value: \"}\" };\n yield { type: \"string\", value: token.value.slice(1, -2) };\n yield { type: \"punctuator\", value: \"${\" };\n break;\n\n case \"TemplateTail\":\n yield { type: \"punctuator\", value: \"}\" };\n yield { type: \"string\", value: token.value.slice(1) };\n break;\n\n default:\n yield {\n type: getTokenType(token),\n value: token.value,\n };\n }\n }\n };\n} else {\n /**\n * RegExp to test for what seems to be a JSX tag name.\n */\n const JSX_TAG = /^[a-z][\\w-]*$/i;\n\n // The token here is defined in js-tokens@4. However we don't bother\n // typing it since the whole block will be removed in Babel 8\n const getTokenType = function (token: any, offset: number, text: string) {\n if (token.type === \"name\") {\n const tokenValue = token.value;\n if (\n isKeyword(tokenValue) ||\n isStrictReservedWord(tokenValue, true) ||\n sometimesKeywords.has(tokenValue)\n ) {\n return \"keyword\";\n }\n\n if (\n JSX_TAG.test(tokenValue) &&\n (text[offset - 1] === \"<\" || text.slice(offset - 2, offset) === \"</\")\n ) {\n return \"jsxIdentifier\";\n }\n\n const firstChar = String.fromCodePoint(tokenValue.codePointAt(0));\n if (firstChar !== firstChar.toLowerCase()) {\n return \"capitalized\";\n }\n }\n\n if (token.type === \"punctuator\" && BRACKET.test(token.value)) {\n return \"bracket\";\n }\n\n if (\n token.type === \"invalid\" &&\n (token.value === \"@\" || token.value === \"#\")\n ) {\n return \"punctuator\";\n }\n\n return token.type;\n };\n\n tokenize = function* (text: string) {\n let match;\n while ((match = (jsTokens as any).default.exec(text))) {\n const token = (jsTokens as any).matchToToken(match);\n\n yield {\n type: getTokenType(token, match.index, text),\n value: token.value,\n };\n }\n };\n}\n\nexport function highlight(text: string) {\n if (text === \"\") return \"\";\n\n const defs = getDefs(true);\n\n let highlighted = \"\";\n\n for (const { type, value } of tokenize(text)) {\n if (type in defs) {\n highlighted += value\n .split(NEWLINE)\n .map(str => defs[type as InternalTokenType](str))\n .join(\"\\n\");\n } else {\n highlighted += value;\n }\n }\n\n return highlighted;\n}\n","import { getDefs, isColorSupported } from \"./defs.ts\";\nimport { highlight } from \"./highlight.ts\";\n\nexport { highlight };\n\nlet deprecationWarningShown = false;\n\ntype Location = {\n column: number;\n line: number;\n};\n\ntype NodeLocation = {\n end?: Location;\n start: Location;\n};\n\nexport interface Options {\n /** Syntax highlight the code as JavaScript for terminals. default: false */\n highlightCode?: boolean;\n /** The number of lines to show above the error. default: 2 */\n linesAbove?: number;\n /** The number of lines to show below the error. default: 3 */\n linesBelow?: number;\n /** The line number corresponding to the first line in `rawLines`. default: 1 */\n startLine?: number;\n /**\n * Forcibly syntax highlight the code as JavaScript (for non-terminals);\n * overrides highlightCode.\n * default: false\n */\n forceColor?: boolean;\n /**\n * Pass in a string to be displayed inline (if possible) next to the\n * highlighted location in the code. If it can't be positioned inline,\n * it will be placed above the code frame.\n * default: nothing\n */\n message?: string;\n}\n\n/**\n * RegExp to test for newlines in terminal.\n */\n\nconst NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n\n/**\n * Extract what lines should be marked and highlighted.\n */\n\ntype MarkerLines = Record<number, true | [number, number]>;\n\nfunction getMarkerLines(\n loc: NodeLocation,\n source: string[],\n opts: Options,\n startLineBaseZero: number,\n): {\n start: number;\n end: number;\n markerLines: MarkerLines;\n} {\n const startLoc: Location = {\n column: 0,\n line: -1,\n ...loc.start,\n };\n const endLoc: Location = {\n ...startLoc,\n ...loc.end,\n };\n const { linesAbove = 2, linesBelow = 3 } = opts || {};\n const startLine = startLoc.line - startLineBaseZero;\n const startColumn = startLoc.column;\n const endLine = endLoc.line - startLineBaseZero;\n const endColumn = endLoc.column;\n\n let start = Math.max(startLine - (linesAbove + 1), 0);\n let end = Math.min(source.length, endLine + linesBelow);\n\n if (startLine === -1) {\n start = 0;\n }\n\n if (endLine === -1) {\n end = source.length;\n }\n\n const lineDiff = endLine - startLine;\n const markerLines: MarkerLines = {};\n\n if (lineDiff) {\n for (let i = 0; i <= lineDiff; i++) {\n const lineNumber = i + startLine;\n\n if (!startColumn) {\n markerLines[lineNumber] = true;\n } else if (i === 0) {\n const sourceLength = source[lineNumber - 1].length;\n\n markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];\n } else if (i === lineDiff) {\n markerLines[lineNumber] = [0, endColumn];\n } else {\n const sourceLength = source[lineNumber - i].length;\n\n markerLines[lineNumber] = [0, sourceLength];\n }\n }\n } else {\n if (startColumn === endColumn) {\n if (startColumn) {\n markerLines[startLine] = [startColumn, 0];\n } else {\n markerLines[startLine] = true;\n }\n } else {\n markerLines[startLine] = [startColumn, endColumn - startColumn];\n }\n }\n\n return { start, end, markerLines };\n}\n\nexport function codeFrameColumns(\n rawLines: string,\n loc: NodeLocation,\n opts: Options = {},\n): string {\n const shouldHighlight =\n opts.forceColor || (isColorSupported() && opts.highlightCode);\n const startLineBaseZero = (opts.startLine || 1) - 1;\n const defs = getDefs(shouldHighlight);\n\n const lines = rawLines.split(NEWLINE);\n const { start, end, markerLines } = getMarkerLines(\n loc,\n lines,\n opts,\n startLineBaseZero,\n );\n const hasColumns = loc.start && typeof loc.start.column === \"number\";\n\n const numberMaxWidth = String(end + startLineBaseZero).length;\n\n const highlightedLines = shouldHighlight ? highlight(rawLines) : rawLines;\n\n let frame = highlightedLines\n .split(NEWLINE, end)\n .slice(start, end)\n .map((line, index) => {\n const number = start + 1 + index;\n const paddedNumber = ` ${number + startLineBaseZero}`.slice(\n -numberMaxWidth,\n );\n const gutter = ` ${paddedNumber} |`;\n const hasMarker = markerLines[number];\n const lastMarkerLine = !markerLines[number + 1];\n if (hasMarker) {\n let markerLine = \"\";\n if (Array.isArray(hasMarker)) {\n const markerSpacing = line\n .slice(0, Math.max(hasMarker[0] - 1, 0))\n .replace(/[^\\t]/g, \" \");\n const numberOfMarkers = hasMarker[1] || 1;\n\n markerLine = [\n \"\\n \",\n defs.gutter(gutter.replace(/\\d/g, \" \")),\n \" \",\n markerSpacing,\n defs.marker(\"^\").repeat(numberOfMarkers),\n ].join(\"\");\n\n if (lastMarkerLine && opts.message) {\n markerLine += \" \" + defs.message(opts.message);\n }\n }\n return [\n defs.marker(\">\"),\n defs.gutter(gutter),\n line.length > 0 ? ` ${line}` : \"\",\n markerLine,\n ].join(\"\");\n } else {\n return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : \"\"}`;\n }\n })\n .join(\"\\n\");\n\n if (opts.message && !hasColumns) {\n frame = `${\" \".repeat(numberMaxWidth + 1)}${opts.message}\\n${frame}`;\n }\n\n if (shouldHighlight) {\n return defs.reset(frame);\n } else {\n return frame;\n }\n}\n\n/**\n * Create a code frame, adding line numbers, code highlighting, and pointing to a given position.\n */\n\nexport default function (\n rawLines: string,\n lineNumber: number,\n colNumber?: number | null,\n opts: Options = {},\n): string {\n if (!deprecationWarningShown) {\n deprecationWarningShown = true;\n\n const message =\n \"Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.\";\n\n if (process.emitWarning) {\n // A string is directly supplied to emitWarning, because when supplying an\n // Error object node throws in the tests because of different contexts\n process.emitWarning(message, \"DeprecationWarning\");\n } else {\n const deprecationError = new Error(message);\n deprecationError.name = \"DeprecationWarning\";\n console.warn(new Error(message));\n }\n }\n\n colNumber = Math.max(colNumber, 0);\n\n const location: NodeLocation = {\n start: { column: colNumber, line: lineNumber },\n };\n\n return codeFrameColumns(rawLines, location, opts);\n}\n"],"names":["isColorSupported","process","env","FORCE_COLOR","picocolors","compose","f","g","v","buildDefs","colors","keyword","cyan","capitalized","yellow","jsxIdentifier","punctuator","number","magenta","string","green","regex","comment","gray","invalid","white","bgRed","bold","gutter","marker","red","message","reset","defsOn","createColors","defsOff","getDefs","enabled","sometimesKeywords","Set","NEWLINE","BRACKET","tokenize","JSX_TAG","getTokenType","token","offset","text","type","tokenValue","value","isKeyword","isStrictReservedWord","has","test","slice","firstChar","String","fromCodePoint","codePointAt","toLowerCase","match","jsTokens","default","exec","matchToToken","index","highlight","defs","highlighted","split","map","str","join","deprecationWarningShown","getMarkerLines","loc","source","opts","startLineBaseZero","startLoc","Object","assign","column","line","start","endLoc","end","linesAbove","linesBelow","startLine","startColumn","endLine","endColumn","Math","max","min","length","lineDiff","markerLines","i","lineNumber","sourceLength","codeFrameColumns","rawLines","shouldHighlight","forceColor","highlightCode","lines","hasColumns","numberMaxWidth","highlightedLines","frame","paddedNumber","hasMarker","lastMarkerLine","markerLine","Array","isArray","markerSpacing","replace","numberOfMarkers","repeat","colNumber","emitWarning","deprecationError","Error","name","console","warn","location"],"mappings":"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"}
frontend/node_modules/.pnpm/@babel+code-frame@7.29.7/node_modules/@babel/code-frame/package.json ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "@babel/code-frame",
3
+ "version": "7.29.7",
4
+ "description": "Generate errors that contain a code frame that point to source locations.",
5
+ "author": "The Babel Team (https://babel.dev/team)",
6
+ "homepage": "https://babel.dev/docs/en/next/babel-code-frame",
7
+ "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen",
8
+ "license": "MIT",
9
+ "publishConfig": {
10
+ "access": "public"
11
+ },
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "https://github.com/babel/babel.git",
15
+ "directory": "packages/babel-code-frame"
16
+ },
17
+ "main": "./lib/index.js",
18
+ "dependencies": {
19
+ "@babel/helper-validator-identifier": "^7.29.7",
20
+ "js-tokens": "^4.0.0",
21
+ "picocolors": "^1.1.1"
22
+ },
23
+ "devDependencies": {
24
+ "charcodes": "^0.2.0",
25
+ "import-meta-resolve": "^4.1.0",
26
+ "strip-ansi": "^4.0.0"
27
+ },
28
+ "engines": {
29
+ "node": ">=6.9.0"
30
+ },
31
+ "type": "commonjs"
32
+ }
frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/LICENSE ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2014-present Sebastian McKenzie and other contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/README.md ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # @babel/compat-data
2
+
3
+ > The compat-data to determine required Babel plugins
4
+
5
+ See our website [@babel/compat-data](https://babeljs.io/docs/babel-compat-data) for more information.
6
+
7
+ ## Install
8
+
9
+ Using npm:
10
+
11
+ ```sh
12
+ npm install --save @babel/compat-data
13
+ ```
14
+
15
+ or using yarn:
16
+
17
+ ```sh
18
+ yarn add @babel/compat-data
19
+ ```
frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/corejs2-built-ins.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ // Todo (Babel 8): remove this file as Babel 8 drop support of core-js 2
2
+ module.exports = require("./data/corejs2-built-ins.json");
frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/corejs3-shipped-proposals.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ // Todo (Babel 8): remove this file now that it is included in babel-plugin-polyfill-corejs3
2
+ module.exports = require("./data/corejs3-shipped-proposals.json");
frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/data/corejs2-built-ins.json ADDED
@@ -0,0 +1,2120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "es6.array.copy-within": {
3
+ "chrome": "45",
4
+ "opera": "32",
5
+ "edge": "12",
6
+ "firefox": "32",
7
+ "safari": "9",
8
+ "node": "4",
9
+ "deno": "1",
10
+ "ios": "9",
11
+ "samsung": "5",
12
+ "rhino": "1.7.13",
13
+ "opera_mobile": "32",
14
+ "electron": "0.31"
15
+ },
16
+ "es6.array.every": {
17
+ "chrome": "5",
18
+ "opera": "10.10",
19
+ "edge": "12",
20
+ "firefox": "2",
21
+ "safari": "3.1",
22
+ "node": "0.4",
23
+ "deno": "1",
24
+ "ie": "9",
25
+ "android": "4",
26
+ "ios": "6",
27
+ "phantom": "1.9",
28
+ "samsung": "1",
29
+ "rhino": "1.7.13",
30
+ "opera_mobile": "10.1",
31
+ "electron": "0.20"
32
+ },
33
+ "es6.array.fill": {
34
+ "chrome": "45",
35
+ "opera": "32",
36
+ "edge": "12",
37
+ "firefox": "31",
38
+ "safari": "7.1",
39
+ "node": "4",
40
+ "deno": "1",
41
+ "ios": "8",
42
+ "samsung": "5",
43
+ "rhino": "1.7.13",
44
+ "opera_mobile": "32",
45
+ "electron": "0.31"
46
+ },
47
+ "es6.array.filter": {
48
+ "chrome": "51",
49
+ "opera": "38",
50
+ "edge": "13",
51
+ "firefox": "48",
52
+ "safari": "10",
53
+ "node": "6.5",
54
+ "deno": "1",
55
+ "ios": "10",
56
+ "samsung": "5",
57
+ "rhino": "1.9",
58
+ "opera_mobile": "41",
59
+ "electron": "1.2"
60
+ },
61
+ "es6.array.find": {
62
+ "chrome": "45",
63
+ "opera": "32",
64
+ "edge": "12",
65
+ "firefox": "25",
66
+ "safari": "7.1",
67
+ "node": "4",
68
+ "deno": "1",
69
+ "ios": "8",
70
+ "samsung": "5",
71
+ "rhino": "1.7.13",
72
+ "opera_mobile": "32",
73
+ "electron": "0.31"
74
+ },
75
+ "es6.array.find-index": {
76
+ "chrome": "45",
77
+ "opera": "32",
78
+ "edge": "12",
79
+ "firefox": "25",
80
+ "safari": "7.1",
81
+ "node": "4",
82
+ "deno": "1",
83
+ "ios": "8",
84
+ "samsung": "5",
85
+ "rhino": "1.7.13",
86
+ "opera_mobile": "32",
87
+ "electron": "0.31"
88
+ },
89
+ "es7.array.flat-map": {
90
+ "chrome": "69",
91
+ "opera": "56",
92
+ "edge": "79",
93
+ "firefox": "62",
94
+ "safari": "12",
95
+ "node": "11",
96
+ "deno": "1",
97
+ "ios": "12",
98
+ "samsung": "10",
99
+ "rhino": "1.7.15",
100
+ "opera_mobile": "48",
101
+ "electron": "4.0"
102
+ },
103
+ "es6.array.for-each": {
104
+ "chrome": "5",
105
+ "opera": "10.10",
106
+ "edge": "12",
107
+ "firefox": "2",
108
+ "safari": "3.1",
109
+ "node": "0.4",
110
+ "deno": "1",
111
+ "ie": "9",
112
+ "android": "4",
113
+ "ios": "6",
114
+ "phantom": "1.9",
115
+ "samsung": "1",
116
+ "rhino": "1.7.13",
117
+ "opera_mobile": "10.1",
118
+ "electron": "0.20"
119
+ },
120
+ "es6.array.from": {
121
+ "chrome": "51",
122
+ "opera": "38",
123
+ "edge": "15",
124
+ "firefox": "36",
125
+ "safari": "10",
126
+ "node": "6.5",
127
+ "deno": "1",
128
+ "ios": "10",
129
+ "samsung": "5",
130
+ "rhino": "1.7.15",
131
+ "opera_mobile": "41",
132
+ "electron": "1.2"
133
+ },
134
+ "es7.array.includes": {
135
+ "chrome": "47",
136
+ "opera": "34",
137
+ "edge": "14",
138
+ "firefox": "102",
139
+ "safari": "10",
140
+ "node": "6",
141
+ "deno": "1",
142
+ "ios": "10",
143
+ "samsung": "5",
144
+ "rhino": "1.8",
145
+ "opera_mobile": "34",
146
+ "electron": "0.36"
147
+ },
148
+ "es6.array.index-of": {
149
+ "chrome": "5",
150
+ "opera": "10.10",
151
+ "edge": "12",
152
+ "firefox": "2",
153
+ "safari": "3.1",
154
+ "node": "0.4",
155
+ "deno": "1",
156
+ "ie": "9",
157
+ "android": "4",
158
+ "ios": "6",
159
+ "phantom": "1.9",
160
+ "samsung": "1",
161
+ "rhino": "1.7.13",
162
+ "opera_mobile": "10.1",
163
+ "electron": "0.20"
164
+ },
165
+ "es6.array.is-array": {
166
+ "chrome": "5",
167
+ "opera": "10.50",
168
+ "edge": "12",
169
+ "firefox": "4",
170
+ "safari": "4",
171
+ "node": "0.4",
172
+ "deno": "1",
173
+ "ie": "9",
174
+ "android": "4",
175
+ "ios": "6",
176
+ "phantom": "1.9",
177
+ "samsung": "1",
178
+ "rhino": "1.7.13",
179
+ "opera_mobile": "10.1",
180
+ "electron": "0.20"
181
+ },
182
+ "es6.array.iterator": {
183
+ "chrome": "66",
184
+ "opera": "53",
185
+ "edge": "12",
186
+ "firefox": "60",
187
+ "safari": "9",
188
+ "node": "10",
189
+ "deno": "1",
190
+ "ios": "9",
191
+ "samsung": "9",
192
+ "rhino": "1.7.13",
193
+ "opera_mobile": "47",
194
+ "electron": "3.0"
195
+ },
196
+ "es6.array.last-index-of": {
197
+ "chrome": "5",
198
+ "opera": "10.10",
199
+ "edge": "12",
200
+ "firefox": "2",
201
+ "safari": "3.1",
202
+ "node": "0.4",
203
+ "deno": "1",
204
+ "ie": "9",
205
+ "android": "4",
206
+ "ios": "6",
207
+ "phantom": "1.9",
208
+ "samsung": "1",
209
+ "rhino": "1.7.13",
210
+ "opera_mobile": "10.1",
211
+ "electron": "0.20"
212
+ },
213
+ "es6.array.map": {
214
+ "chrome": "51",
215
+ "opera": "38",
216
+ "edge": "13",
217
+ "firefox": "48",
218
+ "safari": "10",
219
+ "node": "6.5",
220
+ "deno": "1",
221
+ "ios": "10",
222
+ "samsung": "5",
223
+ "rhino": "1.9",
224
+ "opera_mobile": "41",
225
+ "electron": "1.2"
226
+ },
227
+ "es6.array.of": {
228
+ "chrome": "45",
229
+ "opera": "32",
230
+ "edge": "12",
231
+ "firefox": "25",
232
+ "safari": "9",
233
+ "node": "4",
234
+ "deno": "1",
235
+ "ios": "9",
236
+ "samsung": "5",
237
+ "rhino": "1.7.13",
238
+ "opera_mobile": "32",
239
+ "electron": "0.31"
240
+ },
241
+ "es6.array.reduce": {
242
+ "chrome": "5",
243
+ "opera": "10.50",
244
+ "edge": "12",
245
+ "firefox": "3",
246
+ "safari": "4",
247
+ "node": "0.4",
248
+ "deno": "1",
249
+ "ie": "9",
250
+ "android": "4",
251
+ "ios": "6",
252
+ "phantom": "1.9",
253
+ "samsung": "1",
254
+ "rhino": "1.7.13",
255
+ "opera_mobile": "10.1",
256
+ "electron": "0.20"
257
+ },
258
+ "es6.array.reduce-right": {
259
+ "chrome": "5",
260
+ "opera": "10.50",
261
+ "edge": "12",
262
+ "firefox": "3",
263
+ "safari": "4",
264
+ "node": "0.4",
265
+ "deno": "1",
266
+ "ie": "9",
267
+ "android": "4",
268
+ "ios": "6",
269
+ "phantom": "1.9",
270
+ "samsung": "1",
271
+ "rhino": "1.7.13",
272
+ "opera_mobile": "10.1",
273
+ "electron": "0.20"
274
+ },
275
+ "es6.array.slice": {
276
+ "chrome": "51",
277
+ "opera": "38",
278
+ "edge": "13",
279
+ "firefox": "48",
280
+ "safari": "10",
281
+ "node": "6.5",
282
+ "deno": "1",
283
+ "ios": "10",
284
+ "samsung": "5",
285
+ "rhino": "1.9",
286
+ "opera_mobile": "41",
287
+ "electron": "1.2"
288
+ },
289
+ "es6.array.some": {
290
+ "chrome": "5",
291
+ "opera": "10.10",
292
+ "edge": "12",
293
+ "firefox": "2",
294
+ "safari": "3.1",
295
+ "node": "0.4",
296
+ "deno": "1",
297
+ "ie": "9",
298
+ "android": "4",
299
+ "ios": "6",
300
+ "phantom": "1.9",
301
+ "samsung": "1",
302
+ "rhino": "1.7.13",
303
+ "opera_mobile": "10.1",
304
+ "electron": "0.20"
305
+ },
306
+ "es6.array.sort": {
307
+ "chrome": "63",
308
+ "opera": "50",
309
+ "edge": "12",
310
+ "firefox": "5",
311
+ "safari": "12",
312
+ "node": "10",
313
+ "deno": "1",
314
+ "ie": "9",
315
+ "ios": "12",
316
+ "samsung": "8",
317
+ "rhino": "1.7.13",
318
+ "opera_mobile": "46",
319
+ "electron": "3.0"
320
+ },
321
+ "es6.array.species": {
322
+ "chrome": "51",
323
+ "opera": "38",
324
+ "edge": "13",
325
+ "firefox": "48",
326
+ "safari": "10",
327
+ "node": "6.5",
328
+ "deno": "1",
329
+ "ios": "10",
330
+ "samsung": "5",
331
+ "rhino": "1.7.15",
332
+ "opera_mobile": "41",
333
+ "electron": "1.2"
334
+ },
335
+ "es6.date.now": {
336
+ "chrome": "5",
337
+ "opera": "10.50",
338
+ "edge": "12",
339
+ "firefox": "2",
340
+ "safari": "4",
341
+ "node": "0.4",
342
+ "deno": "1",
343
+ "ie": "9",
344
+ "android": "4",
345
+ "ios": "6",
346
+ "phantom": "1.9",
347
+ "samsung": "1",
348
+ "rhino": "1.7.13",
349
+ "opera_mobile": "10.1",
350
+ "electron": "0.20"
351
+ },
352
+ "es6.date.to-iso-string": {
353
+ "chrome": "5",
354
+ "opera": "10.50",
355
+ "edge": "12",
356
+ "firefox": "3.5",
357
+ "safari": "4",
358
+ "node": "0.4",
359
+ "deno": "1",
360
+ "ie": "9",
361
+ "android": "4",
362
+ "ios": "6",
363
+ "phantom": "1.9",
364
+ "samsung": "1",
365
+ "rhino": "1.7.13",
366
+ "opera_mobile": "10.1",
367
+ "electron": "0.20"
368
+ },
369
+ "es6.date.to-json": {
370
+ "chrome": "5",
371
+ "opera": "12.10",
372
+ "edge": "12",
373
+ "firefox": "4",
374
+ "safari": "10",
375
+ "node": "0.4",
376
+ "deno": "1",
377
+ "ie": "9",
378
+ "android": "4",
379
+ "ios": "10",
380
+ "samsung": "1",
381
+ "rhino": "1.7.13",
382
+ "opera_mobile": "12.1",
383
+ "electron": "0.20"
384
+ },
385
+ "es6.date.to-primitive": {
386
+ "chrome": "47",
387
+ "opera": "34",
388
+ "edge": "15",
389
+ "firefox": "44",
390
+ "safari": "10",
391
+ "node": "6",
392
+ "deno": "1",
393
+ "ios": "10",
394
+ "samsung": "5",
395
+ "rhino": "1.8",
396
+ "opera_mobile": "34",
397
+ "electron": "0.36"
398
+ },
399
+ "es6.date.to-string": {
400
+ "chrome": "5",
401
+ "opera": "10.50",
402
+ "edge": "12",
403
+ "firefox": "2",
404
+ "safari": "3.1",
405
+ "node": "0.4",
406
+ "deno": "1",
407
+ "ie": "10",
408
+ "android": "4",
409
+ "ios": "6",
410
+ "phantom": "1.9",
411
+ "samsung": "1",
412
+ "rhino": "1.7.13",
413
+ "opera_mobile": "10.1",
414
+ "electron": "0.20"
415
+ },
416
+ "es6.function.bind": {
417
+ "chrome": "7",
418
+ "opera": "12",
419
+ "edge": "12",
420
+ "firefox": "4",
421
+ "safari": "5.1",
422
+ "node": "0.4",
423
+ "deno": "1",
424
+ "ie": "9",
425
+ "android": "4",
426
+ "ios": "6",
427
+ "phantom": "1.9",
428
+ "samsung": "1",
429
+ "rhino": "1.7.13",
430
+ "opera_mobile": "12",
431
+ "electron": "0.20"
432
+ },
433
+ "es6.function.has-instance": {
434
+ "chrome": "51",
435
+ "opera": "38",
436
+ "edge": "15",
437
+ "firefox": "50",
438
+ "safari": "10",
439
+ "node": "6.5",
440
+ "deno": "1",
441
+ "ios": "10",
442
+ "samsung": "5",
443
+ "opera_mobile": "41",
444
+ "electron": "1.2"
445
+ },
446
+ "es6.function.name": {
447
+ "chrome": "5",
448
+ "opera": "10.50",
449
+ "edge": "14",
450
+ "firefox": "2",
451
+ "safari": "4",
452
+ "node": "0.4",
453
+ "deno": "1",
454
+ "android": "4",
455
+ "ios": "6",
456
+ "phantom": "1.9",
457
+ "samsung": "1",
458
+ "rhino": "1.7.13",
459
+ "opera_mobile": "10.1",
460
+ "electron": "0.20"
461
+ },
462
+ "es6.map": {
463
+ "chrome": "51",
464
+ "opera": "38",
465
+ "edge": "15",
466
+ "firefox": "53",
467
+ "safari": "10",
468
+ "node": "6.5",
469
+ "deno": "1",
470
+ "ios": "10",
471
+ "samsung": "5",
472
+ "opera_mobile": "41",
473
+ "electron": "1.2"
474
+ },
475
+ "es6.math.acosh": {
476
+ "chrome": "38",
477
+ "opera": "25",
478
+ "edge": "12",
479
+ "firefox": "25",
480
+ "safari": "7.1",
481
+ "node": "0.12",
482
+ "deno": "1",
483
+ "ios": "8",
484
+ "samsung": "3",
485
+ "rhino": "1.7.13",
486
+ "opera_mobile": "25",
487
+ "electron": "0.20"
488
+ },
489
+ "es6.math.asinh": {
490
+ "chrome": "38",
491
+ "opera": "25",
492
+ "edge": "12",
493
+ "firefox": "25",
494
+ "safari": "7.1",
495
+ "node": "0.12",
496
+ "deno": "1",
497
+ "ios": "8",
498
+ "samsung": "3",
499
+ "rhino": "1.7.13",
500
+ "opera_mobile": "25",
501
+ "electron": "0.20"
502
+ },
503
+ "es6.math.atanh": {
504
+ "chrome": "38",
505
+ "opera": "25",
506
+ "edge": "12",
507
+ "firefox": "25",
508
+ "safari": "7.1",
509
+ "node": "0.12",
510
+ "deno": "1",
511
+ "ios": "8",
512
+ "samsung": "3",
513
+ "rhino": "1.7.13",
514
+ "opera_mobile": "25",
515
+ "electron": "0.20"
516
+ },
517
+ "es6.math.cbrt": {
518
+ "chrome": "38",
519
+ "opera": "25",
520
+ "edge": "12",
521
+ "firefox": "25",
522
+ "safari": "7.1",
523
+ "node": "0.12",
524
+ "deno": "1",
525
+ "ios": "8",
526
+ "samsung": "3",
527
+ "rhino": "1.7.13",
528
+ "opera_mobile": "25",
529
+ "electron": "0.20"
530
+ },
531
+ "es6.math.clz32": {
532
+ "chrome": "38",
533
+ "opera": "25",
534
+ "edge": "12",
535
+ "firefox": "31",
536
+ "safari": "9",
537
+ "node": "0.12",
538
+ "deno": "1",
539
+ "ios": "9",
540
+ "samsung": "3",
541
+ "rhino": "1.7.13",
542
+ "opera_mobile": "25",
543
+ "electron": "0.20"
544
+ },
545
+ "es6.math.cosh": {
546
+ "chrome": "38",
547
+ "opera": "25",
548
+ "edge": "12",
549
+ "firefox": "25",
550
+ "safari": "7.1",
551
+ "node": "0.12",
552
+ "deno": "1",
553
+ "ios": "8",
554
+ "samsung": "3",
555
+ "rhino": "1.7.13",
556
+ "opera_mobile": "25",
557
+ "electron": "0.20"
558
+ },
559
+ "es6.math.expm1": {
560
+ "chrome": "38",
561
+ "opera": "25",
562
+ "edge": "12",
563
+ "firefox": "25",
564
+ "safari": "7.1",
565
+ "node": "0.12",
566
+ "deno": "1",
567
+ "ios": "8",
568
+ "samsung": "3",
569
+ "rhino": "1.7.13",
570
+ "opera_mobile": "25",
571
+ "electron": "0.20"
572
+ },
573
+ "es6.math.fround": {
574
+ "chrome": "38",
575
+ "opera": "25",
576
+ "edge": "12",
577
+ "firefox": "26",
578
+ "safari": "7.1",
579
+ "node": "0.12",
580
+ "deno": "1",
581
+ "ios": "8",
582
+ "samsung": "3",
583
+ "rhino": "1.7.13",
584
+ "opera_mobile": "25",
585
+ "electron": "0.20"
586
+ },
587
+ "es6.math.hypot": {
588
+ "chrome": "38",
589
+ "opera": "25",
590
+ "edge": "12",
591
+ "firefox": "27",
592
+ "safari": "7.1",
593
+ "node": "0.12",
594
+ "deno": "1",
595
+ "ios": "8",
596
+ "samsung": "3",
597
+ "rhino": "1.7.13",
598
+ "opera_mobile": "25",
599
+ "electron": "0.20"
600
+ },
601
+ "es6.math.imul": {
602
+ "chrome": "30",
603
+ "opera": "17",
604
+ "edge": "12",
605
+ "firefox": "23",
606
+ "safari": "7",
607
+ "node": "0.12",
608
+ "deno": "1",
609
+ "android": "4.4",
610
+ "ios": "7",
611
+ "samsung": "2",
612
+ "rhino": "1.7.13",
613
+ "opera_mobile": "18",
614
+ "electron": "0.20"
615
+ },
616
+ "es6.math.log1p": {
617
+ "chrome": "38",
618
+ "opera": "25",
619
+ "edge": "12",
620
+ "firefox": "25",
621
+ "safari": "7.1",
622
+ "node": "0.12",
623
+ "deno": "1",
624
+ "ios": "8",
625
+ "samsung": "3",
626
+ "rhino": "1.7.13",
627
+ "opera_mobile": "25",
628
+ "electron": "0.20"
629
+ },
630
+ "es6.math.log10": {
631
+ "chrome": "38",
632
+ "opera": "25",
633
+ "edge": "12",
634
+ "firefox": "25",
635
+ "safari": "7.1",
636
+ "node": "0.12",
637
+ "deno": "1",
638
+ "ios": "8",
639
+ "samsung": "3",
640
+ "rhino": "1.7.13",
641
+ "opera_mobile": "25",
642
+ "electron": "0.20"
643
+ },
644
+ "es6.math.log2": {
645
+ "chrome": "38",
646
+ "opera": "25",
647
+ "edge": "12",
648
+ "firefox": "25",
649
+ "safari": "7.1",
650
+ "node": "0.12",
651
+ "deno": "1",
652
+ "ios": "8",
653
+ "samsung": "3",
654
+ "rhino": "1.7.13",
655
+ "opera_mobile": "25",
656
+ "electron": "0.20"
657
+ },
658
+ "es6.math.sign": {
659
+ "chrome": "38",
660
+ "opera": "25",
661
+ "edge": "12",
662
+ "firefox": "25",
663
+ "safari": "9",
664
+ "node": "0.12",
665
+ "deno": "1",
666
+ "ios": "9",
667
+ "samsung": "3",
668
+ "rhino": "1.7.13",
669
+ "opera_mobile": "25",
670
+ "electron": "0.20"
671
+ },
672
+ "es6.math.sinh": {
673
+ "chrome": "38",
674
+ "opera": "25",
675
+ "edge": "12",
676
+ "firefox": "25",
677
+ "safari": "7.1",
678
+ "node": "0.12",
679
+ "deno": "1",
680
+ "ios": "8",
681
+ "samsung": "3",
682
+ "rhino": "1.7.13",
683
+ "opera_mobile": "25",
684
+ "electron": "0.20"
685
+ },
686
+ "es6.math.tanh": {
687
+ "chrome": "38",
688
+ "opera": "25",
689
+ "edge": "12",
690
+ "firefox": "25",
691
+ "safari": "7.1",
692
+ "node": "0.12",
693
+ "deno": "1",
694
+ "ios": "8",
695
+ "samsung": "3",
696
+ "rhino": "1.7.13",
697
+ "opera_mobile": "25",
698
+ "electron": "0.20"
699
+ },
700
+ "es6.math.trunc": {
701
+ "chrome": "38",
702
+ "opera": "25",
703
+ "edge": "12",
704
+ "firefox": "25",
705
+ "safari": "7.1",
706
+ "node": "0.12",
707
+ "deno": "1",
708
+ "ios": "8",
709
+ "samsung": "3",
710
+ "rhino": "1.7.13",
711
+ "opera_mobile": "25",
712
+ "electron": "0.20"
713
+ },
714
+ "es6.number.constructor": {
715
+ "chrome": "41",
716
+ "opera": "28",
717
+ "edge": "12",
718
+ "firefox": "36",
719
+ "safari": "9",
720
+ "node": "4",
721
+ "deno": "1",
722
+ "ios": "9",
723
+ "samsung": "3.4",
724
+ "rhino": "1.7.13",
725
+ "opera_mobile": "28",
726
+ "electron": "0.21"
727
+ },
728
+ "es6.number.epsilon": {
729
+ "chrome": "34",
730
+ "opera": "21",
731
+ "edge": "12",
732
+ "firefox": "25",
733
+ "safari": "9",
734
+ "node": "0.12",
735
+ "deno": "1",
736
+ "ios": "9",
737
+ "samsung": "2",
738
+ "rhino": "1.7.14",
739
+ "opera_mobile": "21",
740
+ "electron": "0.20"
741
+ },
742
+ "es6.number.is-finite": {
743
+ "chrome": "19",
744
+ "opera": "15",
745
+ "edge": "12",
746
+ "firefox": "16",
747
+ "safari": "9",
748
+ "node": "0.8",
749
+ "deno": "1",
750
+ "android": "4.1",
751
+ "ios": "9",
752
+ "samsung": "1.5",
753
+ "rhino": "1.7.13",
754
+ "opera_mobile": "14",
755
+ "electron": "0.20"
756
+ },
757
+ "es6.number.is-integer": {
758
+ "chrome": "34",
759
+ "opera": "21",
760
+ "edge": "12",
761
+ "firefox": "16",
762
+ "safari": "9",
763
+ "node": "0.12",
764
+ "deno": "1",
765
+ "ios": "9",
766
+ "samsung": "2",
767
+ "rhino": "1.7.13",
768
+ "opera_mobile": "21",
769
+ "electron": "0.20"
770
+ },
771
+ "es6.number.is-nan": {
772
+ "chrome": "19",
773
+ "opera": "15",
774
+ "edge": "12",
775
+ "firefox": "15",
776
+ "safari": "9",
777
+ "node": "0.8",
778
+ "deno": "1",
779
+ "android": "4.1",
780
+ "ios": "9",
781
+ "samsung": "1.5",
782
+ "rhino": "1.7.13",
783
+ "opera_mobile": "14",
784
+ "electron": "0.20"
785
+ },
786
+ "es6.number.is-safe-integer": {
787
+ "chrome": "34",
788
+ "opera": "21",
789
+ "edge": "12",
790
+ "firefox": "32",
791
+ "safari": "9",
792
+ "node": "0.12",
793
+ "deno": "1",
794
+ "ios": "9",
795
+ "samsung": "2",
796
+ "rhino": "1.7.13",
797
+ "opera_mobile": "21",
798
+ "electron": "0.20"
799
+ },
800
+ "es6.number.max-safe-integer": {
801
+ "chrome": "34",
802
+ "opera": "21",
803
+ "edge": "12",
804
+ "firefox": "31",
805
+ "safari": "9",
806
+ "node": "0.12",
807
+ "deno": "1",
808
+ "ios": "9",
809
+ "samsung": "2",
810
+ "rhino": "1.7.13",
811
+ "opera_mobile": "21",
812
+ "electron": "0.20"
813
+ },
814
+ "es6.number.min-safe-integer": {
815
+ "chrome": "34",
816
+ "opera": "21",
817
+ "edge": "12",
818
+ "firefox": "31",
819
+ "safari": "9",
820
+ "node": "0.12",
821
+ "deno": "1",
822
+ "ios": "9",
823
+ "samsung": "2",
824
+ "rhino": "1.7.13",
825
+ "opera_mobile": "21",
826
+ "electron": "0.20"
827
+ },
828
+ "es6.number.parse-float": {
829
+ "chrome": "34",
830
+ "opera": "21",
831
+ "edge": "12",
832
+ "firefox": "25",
833
+ "safari": "9",
834
+ "node": "0.12",
835
+ "deno": "1",
836
+ "ios": "9",
837
+ "samsung": "2",
838
+ "rhino": "1.7.14",
839
+ "opera_mobile": "21",
840
+ "electron": "0.20"
841
+ },
842
+ "es6.number.parse-int": {
843
+ "chrome": "34",
844
+ "opera": "21",
845
+ "edge": "12",
846
+ "firefox": "25",
847
+ "safari": "9",
848
+ "node": "0.12",
849
+ "deno": "1",
850
+ "ios": "9",
851
+ "samsung": "2",
852
+ "rhino": "1.7.14",
853
+ "opera_mobile": "21",
854
+ "electron": "0.20"
855
+ },
856
+ "es6.object.assign": {
857
+ "chrome": "49",
858
+ "opera": "36",
859
+ "edge": "13",
860
+ "firefox": "36",
861
+ "safari": "10",
862
+ "node": "6",
863
+ "deno": "1",
864
+ "ios": "10",
865
+ "samsung": "5",
866
+ "rhino": "1.8",
867
+ "opera_mobile": "36",
868
+ "electron": "0.37"
869
+ },
870
+ "es6.object.create": {
871
+ "chrome": "5",
872
+ "opera": "12",
873
+ "edge": "12",
874
+ "firefox": "4",
875
+ "safari": "4",
876
+ "node": "0.4",
877
+ "deno": "1",
878
+ "ie": "9",
879
+ "android": "4",
880
+ "ios": "6",
881
+ "phantom": "1.9",
882
+ "samsung": "1",
883
+ "rhino": "1.7.13",
884
+ "opera_mobile": "12",
885
+ "electron": "0.20"
886
+ },
887
+ "es7.object.define-getter": {
888
+ "chrome": "62",
889
+ "opera": "49",
890
+ "edge": "16",
891
+ "firefox": "48",
892
+ "safari": "9",
893
+ "node": "8.10",
894
+ "deno": "1",
895
+ "ios": "9",
896
+ "samsung": "8",
897
+ "opera_mobile": "46",
898
+ "electron": "3.0"
899
+ },
900
+ "es7.object.define-setter": {
901
+ "chrome": "62",
902
+ "opera": "49",
903
+ "edge": "16",
904
+ "firefox": "48",
905
+ "safari": "9",
906
+ "node": "8.10",
907
+ "deno": "1",
908
+ "ios": "9",
909
+ "samsung": "8",
910
+ "opera_mobile": "46",
911
+ "electron": "3.0"
912
+ },
913
+ "es6.object.define-property": {
914
+ "chrome": "5",
915
+ "opera": "12",
916
+ "edge": "12",
917
+ "firefox": "4",
918
+ "safari": "5.1",
919
+ "node": "0.4",
920
+ "deno": "1",
921
+ "ie": "9",
922
+ "android": "4",
923
+ "ios": "6",
924
+ "phantom": "1.9",
925
+ "samsung": "1",
926
+ "rhino": "1.7.13",
927
+ "opera_mobile": "12",
928
+ "electron": "0.20"
929
+ },
930
+ "es6.object.define-properties": {
931
+ "chrome": "5",
932
+ "opera": "12",
933
+ "edge": "12",
934
+ "firefox": "4",
935
+ "safari": "4",
936
+ "node": "0.4",
937
+ "deno": "1",
938
+ "ie": "9",
939
+ "android": "4",
940
+ "ios": "6",
941
+ "phantom": "1.9",
942
+ "samsung": "1",
943
+ "rhino": "1.7.13",
944
+ "opera_mobile": "12",
945
+ "electron": "0.20"
946
+ },
947
+ "es7.object.entries": {
948
+ "chrome": "54",
949
+ "opera": "41",
950
+ "edge": "14",
951
+ "firefox": "47",
952
+ "safari": "10.1",
953
+ "node": "7",
954
+ "deno": "1",
955
+ "ios": "10.3",
956
+ "samsung": "6",
957
+ "rhino": "1.7.14",
958
+ "opera_mobile": "41",
959
+ "electron": "1.4"
960
+ },
961
+ "es6.object.freeze": {
962
+ "chrome": "44",
963
+ "opera": "31",
964
+ "edge": "12",
965
+ "firefox": "35",
966
+ "safari": "9",
967
+ "node": "4",
968
+ "deno": "1",
969
+ "ios": "9",
970
+ "samsung": "4",
971
+ "rhino": "1.7.13",
972
+ "opera_mobile": "32",
973
+ "electron": "0.30"
974
+ },
975
+ "es6.object.get-own-property-descriptor": {
976
+ "chrome": "44",
977
+ "opera": "31",
978
+ "edge": "12",
979
+ "firefox": "35",
980
+ "safari": "9",
981
+ "node": "4",
982
+ "deno": "1",
983
+ "ios": "9",
984
+ "samsung": "4",
985
+ "rhino": "1.7.13",
986
+ "opera_mobile": "32",
987
+ "electron": "0.30"
988
+ },
989
+ "es7.object.get-own-property-descriptors": {
990
+ "chrome": "54",
991
+ "opera": "41",
992
+ "edge": "15",
993
+ "firefox": "50",
994
+ "safari": "10.1",
995
+ "node": "7",
996
+ "deno": "1",
997
+ "ios": "10.3",
998
+ "samsung": "6",
999
+ "rhino": "1.8",
1000
+ "opera_mobile": "41",
1001
+ "electron": "1.4"
1002
+ },
1003
+ "es6.object.get-own-property-names": {
1004
+ "chrome": "40",
1005
+ "opera": "27",
1006
+ "edge": "12",
1007
+ "firefox": "33",
1008
+ "safari": "9",
1009
+ "node": "4",
1010
+ "deno": "1",
1011
+ "ios": "9",
1012
+ "samsung": "3.4",
1013
+ "rhino": "1.7.13",
1014
+ "opera_mobile": "27",
1015
+ "electron": "0.21"
1016
+ },
1017
+ "es6.object.get-prototype-of": {
1018
+ "chrome": "44",
1019
+ "opera": "31",
1020
+ "edge": "12",
1021
+ "firefox": "35",
1022
+ "safari": "9",
1023
+ "node": "4",
1024
+ "deno": "1",
1025
+ "ios": "9",
1026
+ "samsung": "4",
1027
+ "rhino": "1.7.13",
1028
+ "opera_mobile": "32",
1029
+ "electron": "0.30"
1030
+ },
1031
+ "es7.object.lookup-getter": {
1032
+ "chrome": "62",
1033
+ "opera": "49",
1034
+ "edge": "79",
1035
+ "firefox": "36",
1036
+ "safari": "9",
1037
+ "node": "8.10",
1038
+ "deno": "1",
1039
+ "ios": "9",
1040
+ "samsung": "8",
1041
+ "opera_mobile": "46",
1042
+ "electron": "3.0"
1043
+ },
1044
+ "es7.object.lookup-setter": {
1045
+ "chrome": "62",
1046
+ "opera": "49",
1047
+ "edge": "79",
1048
+ "firefox": "36",
1049
+ "safari": "9",
1050
+ "node": "8.10",
1051
+ "deno": "1",
1052
+ "ios": "9",
1053
+ "samsung": "8",
1054
+ "opera_mobile": "46",
1055
+ "electron": "3.0"
1056
+ },
1057
+ "es6.object.prevent-extensions": {
1058
+ "chrome": "44",
1059
+ "opera": "31",
1060
+ "edge": "12",
1061
+ "firefox": "35",
1062
+ "safari": "9",
1063
+ "node": "4",
1064
+ "deno": "1",
1065
+ "ios": "9",
1066
+ "samsung": "4",
1067
+ "rhino": "1.7.13",
1068
+ "opera_mobile": "32",
1069
+ "electron": "0.30"
1070
+ },
1071
+ "es6.object.to-string": {
1072
+ "chrome": "57",
1073
+ "opera": "44",
1074
+ "edge": "15",
1075
+ "firefox": "51",
1076
+ "safari": "10",
1077
+ "node": "8",
1078
+ "deno": "1",
1079
+ "ios": "10",
1080
+ "samsung": "7",
1081
+ "rhino": "1.9",
1082
+ "opera_mobile": "43",
1083
+ "electron": "1.7"
1084
+ },
1085
+ "es6.object.is": {
1086
+ "chrome": "19",
1087
+ "opera": "15",
1088
+ "edge": "12",
1089
+ "firefox": "22",
1090
+ "safari": "9",
1091
+ "node": "0.8",
1092
+ "deno": "1",
1093
+ "android": "4.1",
1094
+ "ios": "9",
1095
+ "samsung": "1.5",
1096
+ "rhino": "1.7.13",
1097
+ "opera_mobile": "14",
1098
+ "electron": "0.20"
1099
+ },
1100
+ "es6.object.is-frozen": {
1101
+ "chrome": "44",
1102
+ "opera": "31",
1103
+ "edge": "12",
1104
+ "firefox": "35",
1105
+ "safari": "9",
1106
+ "node": "4",
1107
+ "deno": "1",
1108
+ "ios": "9",
1109
+ "samsung": "4",
1110
+ "rhino": "1.7.13",
1111
+ "opera_mobile": "32",
1112
+ "electron": "0.30"
1113
+ },
1114
+ "es6.object.is-sealed": {
1115
+ "chrome": "44",
1116
+ "opera": "31",
1117
+ "edge": "12",
1118
+ "firefox": "35",
1119
+ "safari": "9",
1120
+ "node": "4",
1121
+ "deno": "1",
1122
+ "ios": "9",
1123
+ "samsung": "4",
1124
+ "rhino": "1.7.13",
1125
+ "opera_mobile": "32",
1126
+ "electron": "0.30"
1127
+ },
1128
+ "es6.object.is-extensible": {
1129
+ "chrome": "44",
1130
+ "opera": "31",
1131
+ "edge": "12",
1132
+ "firefox": "35",
1133
+ "safari": "9",
1134
+ "node": "4",
1135
+ "deno": "1",
1136
+ "ios": "9",
1137
+ "samsung": "4",
1138
+ "rhino": "1.7.13",
1139
+ "opera_mobile": "32",
1140
+ "electron": "0.30"
1141
+ },
1142
+ "es6.object.keys": {
1143
+ "chrome": "40",
1144
+ "opera": "27",
1145
+ "edge": "12",
1146
+ "firefox": "35",
1147
+ "safari": "9",
1148
+ "node": "4",
1149
+ "deno": "1",
1150
+ "ios": "9",
1151
+ "samsung": "3.4",
1152
+ "rhino": "1.7.13",
1153
+ "opera_mobile": "27",
1154
+ "electron": "0.21"
1155
+ },
1156
+ "es6.object.seal": {
1157
+ "chrome": "44",
1158
+ "opera": "31",
1159
+ "edge": "12",
1160
+ "firefox": "35",
1161
+ "safari": "9",
1162
+ "node": "4",
1163
+ "deno": "1",
1164
+ "ios": "9",
1165
+ "samsung": "4",
1166
+ "rhino": "1.7.13",
1167
+ "opera_mobile": "32",
1168
+ "electron": "0.30"
1169
+ },
1170
+ "es6.object.set-prototype-of": {
1171
+ "chrome": "34",
1172
+ "opera": "21",
1173
+ "edge": "12",
1174
+ "firefox": "31",
1175
+ "safari": "9",
1176
+ "node": "0.12",
1177
+ "deno": "1",
1178
+ "ie": "11",
1179
+ "ios": "9",
1180
+ "samsung": "2",
1181
+ "rhino": "1.7.13",
1182
+ "opera_mobile": "21",
1183
+ "electron": "0.20"
1184
+ },
1185
+ "es7.object.values": {
1186
+ "chrome": "54",
1187
+ "opera": "41",
1188
+ "edge": "14",
1189
+ "firefox": "47",
1190
+ "safari": "10.1",
1191
+ "node": "7",
1192
+ "deno": "1",
1193
+ "ios": "10.3",
1194
+ "samsung": "6",
1195
+ "rhino": "1.7.14",
1196
+ "opera_mobile": "41",
1197
+ "electron": "1.4"
1198
+ },
1199
+ "es6.promise": {
1200
+ "chrome": "51",
1201
+ "opera": "38",
1202
+ "edge": "14",
1203
+ "firefox": "45",
1204
+ "safari": "10",
1205
+ "node": "6.5",
1206
+ "deno": "1",
1207
+ "ios": "10",
1208
+ "samsung": "5",
1209
+ "rhino": "1.7.15",
1210
+ "opera_mobile": "41",
1211
+ "electron": "1.2"
1212
+ },
1213
+ "es7.promise.finally": {
1214
+ "chrome": "63",
1215
+ "opera": "50",
1216
+ "edge": "18",
1217
+ "firefox": "58",
1218
+ "safari": "11.1",
1219
+ "node": "10",
1220
+ "deno": "1",
1221
+ "ios": "11.3",
1222
+ "samsung": "8",
1223
+ "opera_mobile": "46",
1224
+ "electron": "3.0"
1225
+ },
1226
+ "es6.reflect.apply": {
1227
+ "chrome": "49",
1228
+ "opera": "36",
1229
+ "edge": "12",
1230
+ "firefox": "42",
1231
+ "safari": "10",
1232
+ "node": "6",
1233
+ "deno": "1",
1234
+ "ios": "10",
1235
+ "samsung": "5",
1236
+ "rhino": "1.8",
1237
+ "opera_mobile": "36",
1238
+ "electron": "0.37"
1239
+ },
1240
+ "es6.reflect.construct": {
1241
+ "chrome": "49",
1242
+ "opera": "36",
1243
+ "edge": "13",
1244
+ "firefox": "49",
1245
+ "safari": "10",
1246
+ "node": "6",
1247
+ "deno": "1",
1248
+ "ios": "10",
1249
+ "samsung": "5",
1250
+ "opera_mobile": "36",
1251
+ "electron": "0.37"
1252
+ },
1253
+ "es6.reflect.define-property": {
1254
+ "chrome": "49",
1255
+ "opera": "36",
1256
+ "edge": "13",
1257
+ "firefox": "42",
1258
+ "safari": "10",
1259
+ "node": "6",
1260
+ "deno": "1",
1261
+ "ios": "10",
1262
+ "samsung": "5",
1263
+ "rhino": "1.8",
1264
+ "opera_mobile": "36",
1265
+ "electron": "0.37"
1266
+ },
1267
+ "es6.reflect.delete-property": {
1268
+ "chrome": "49",
1269
+ "opera": "36",
1270
+ "edge": "12",
1271
+ "firefox": "42",
1272
+ "safari": "10",
1273
+ "node": "6",
1274
+ "deno": "1",
1275
+ "ios": "10",
1276
+ "samsung": "5",
1277
+ "rhino": "1.8",
1278
+ "opera_mobile": "36",
1279
+ "electron": "0.37"
1280
+ },
1281
+ "es6.reflect.get": {
1282
+ "chrome": "49",
1283
+ "opera": "36",
1284
+ "edge": "12",
1285
+ "firefox": "42",
1286
+ "safari": "10",
1287
+ "node": "6",
1288
+ "deno": "1",
1289
+ "ios": "10",
1290
+ "samsung": "5",
1291
+ "rhino": "1.8",
1292
+ "opera_mobile": "36",
1293
+ "electron": "0.37"
1294
+ },
1295
+ "es6.reflect.get-own-property-descriptor": {
1296
+ "chrome": "49",
1297
+ "opera": "36",
1298
+ "edge": "12",
1299
+ "firefox": "42",
1300
+ "safari": "10",
1301
+ "node": "6",
1302
+ "deno": "1",
1303
+ "ios": "10",
1304
+ "samsung": "5",
1305
+ "rhino": "1.8",
1306
+ "opera_mobile": "36",
1307
+ "electron": "0.37"
1308
+ },
1309
+ "es6.reflect.get-prototype-of": {
1310
+ "chrome": "49",
1311
+ "opera": "36",
1312
+ "edge": "12",
1313
+ "firefox": "42",
1314
+ "safari": "10",
1315
+ "node": "6",
1316
+ "deno": "1",
1317
+ "ios": "10",
1318
+ "samsung": "5",
1319
+ "rhino": "1.8",
1320
+ "opera_mobile": "36",
1321
+ "electron": "0.37"
1322
+ },
1323
+ "es6.reflect.has": {
1324
+ "chrome": "49",
1325
+ "opera": "36",
1326
+ "edge": "12",
1327
+ "firefox": "42",
1328
+ "safari": "10",
1329
+ "node": "6",
1330
+ "deno": "1",
1331
+ "ios": "10",
1332
+ "samsung": "5",
1333
+ "rhino": "1.8",
1334
+ "opera_mobile": "36",
1335
+ "electron": "0.37"
1336
+ },
1337
+ "es6.reflect.is-extensible": {
1338
+ "chrome": "49",
1339
+ "opera": "36",
1340
+ "edge": "12",
1341
+ "firefox": "42",
1342
+ "safari": "10",
1343
+ "node": "6",
1344
+ "deno": "1",
1345
+ "ios": "10",
1346
+ "samsung": "5",
1347
+ "rhino": "1.8",
1348
+ "opera_mobile": "36",
1349
+ "electron": "0.37"
1350
+ },
1351
+ "es6.reflect.own-keys": {
1352
+ "chrome": "49",
1353
+ "opera": "36",
1354
+ "edge": "12",
1355
+ "firefox": "42",
1356
+ "safari": "10",
1357
+ "node": "6",
1358
+ "deno": "1",
1359
+ "ios": "10",
1360
+ "samsung": "5",
1361
+ "rhino": "1.8",
1362
+ "opera_mobile": "36",
1363
+ "electron": "0.37"
1364
+ },
1365
+ "es6.reflect.prevent-extensions": {
1366
+ "chrome": "49",
1367
+ "opera": "36",
1368
+ "edge": "12",
1369
+ "firefox": "42",
1370
+ "safari": "10",
1371
+ "node": "6",
1372
+ "deno": "1",
1373
+ "ios": "10",
1374
+ "samsung": "5",
1375
+ "rhino": "1.8",
1376
+ "opera_mobile": "36",
1377
+ "electron": "0.37"
1378
+ },
1379
+ "es6.reflect.set": {
1380
+ "chrome": "49",
1381
+ "opera": "36",
1382
+ "edge": "12",
1383
+ "firefox": "42",
1384
+ "safari": "10",
1385
+ "node": "6",
1386
+ "deno": "1",
1387
+ "ios": "10",
1388
+ "samsung": "5",
1389
+ "rhino": "1.8",
1390
+ "opera_mobile": "36",
1391
+ "electron": "0.37"
1392
+ },
1393
+ "es6.reflect.set-prototype-of": {
1394
+ "chrome": "49",
1395
+ "opera": "36",
1396
+ "edge": "12",
1397
+ "firefox": "42",
1398
+ "safari": "10",
1399
+ "node": "6",
1400
+ "deno": "1",
1401
+ "ios": "10",
1402
+ "samsung": "5",
1403
+ "rhino": "1.8",
1404
+ "opera_mobile": "36",
1405
+ "electron": "0.37"
1406
+ },
1407
+ "es6.regexp.constructor": {
1408
+ "chrome": "50",
1409
+ "opera": "37",
1410
+ "edge": "79",
1411
+ "firefox": "40",
1412
+ "safari": "10",
1413
+ "node": "6",
1414
+ "deno": "1",
1415
+ "ios": "10",
1416
+ "samsung": "5",
1417
+ "opera_mobile": "37",
1418
+ "electron": "1.1"
1419
+ },
1420
+ "es6.regexp.flags": {
1421
+ "chrome": "49",
1422
+ "opera": "36",
1423
+ "edge": "79",
1424
+ "firefox": "37",
1425
+ "safari": "9",
1426
+ "node": "6",
1427
+ "deno": "1",
1428
+ "ios": "9",
1429
+ "samsung": "5",
1430
+ "rhino": "1.7.15",
1431
+ "opera_mobile": "36",
1432
+ "electron": "0.37"
1433
+ },
1434
+ "es6.regexp.match": {
1435
+ "chrome": "50",
1436
+ "opera": "37",
1437
+ "edge": "79",
1438
+ "firefox": "49",
1439
+ "safari": "10",
1440
+ "node": "6",
1441
+ "deno": "1",
1442
+ "ios": "10",
1443
+ "samsung": "5",
1444
+ "rhino": "1.7.13",
1445
+ "opera_mobile": "37",
1446
+ "electron": "1.1"
1447
+ },
1448
+ "es6.regexp.replace": {
1449
+ "chrome": "50",
1450
+ "opera": "37",
1451
+ "edge": "79",
1452
+ "firefox": "49",
1453
+ "safari": "10",
1454
+ "node": "6",
1455
+ "deno": "1",
1456
+ "ios": "10",
1457
+ "samsung": "5",
1458
+ "rhino": "1.9",
1459
+ "opera_mobile": "37",
1460
+ "electron": "1.1"
1461
+ },
1462
+ "es6.regexp.split": {
1463
+ "chrome": "50",
1464
+ "opera": "37",
1465
+ "edge": "79",
1466
+ "firefox": "49",
1467
+ "safari": "10",
1468
+ "node": "6",
1469
+ "deno": "1",
1470
+ "ios": "10",
1471
+ "samsung": "5",
1472
+ "rhino": "1.9",
1473
+ "opera_mobile": "37",
1474
+ "electron": "1.1"
1475
+ },
1476
+ "es6.regexp.search": {
1477
+ "chrome": "50",
1478
+ "opera": "37",
1479
+ "edge": "79",
1480
+ "firefox": "49",
1481
+ "safari": "10",
1482
+ "node": "6",
1483
+ "deno": "1",
1484
+ "ios": "10",
1485
+ "samsung": "5",
1486
+ "rhino": "1.7.13",
1487
+ "opera_mobile": "37",
1488
+ "electron": "1.1"
1489
+ },
1490
+ "es6.regexp.to-string": {
1491
+ "chrome": "50",
1492
+ "opera": "37",
1493
+ "edge": "79",
1494
+ "firefox": "39",
1495
+ "safari": "10",
1496
+ "node": "6",
1497
+ "deno": "1",
1498
+ "ios": "10",
1499
+ "samsung": "5",
1500
+ "rhino": "1.7.15",
1501
+ "opera_mobile": "37",
1502
+ "electron": "1.1"
1503
+ },
1504
+ "es6.set": {
1505
+ "chrome": "51",
1506
+ "opera": "38",
1507
+ "edge": "15",
1508
+ "firefox": "53",
1509
+ "safari": "10",
1510
+ "node": "6.5",
1511
+ "deno": "1",
1512
+ "ios": "10",
1513
+ "samsung": "5",
1514
+ "opera_mobile": "41",
1515
+ "electron": "1.2"
1516
+ },
1517
+ "es6.symbol": {
1518
+ "chrome": "51",
1519
+ "opera": "38",
1520
+ "edge": "79",
1521
+ "firefox": "51",
1522
+ "safari": "10",
1523
+ "node": "6.5",
1524
+ "deno": "1",
1525
+ "ios": "10",
1526
+ "samsung": "5",
1527
+ "opera_mobile": "41",
1528
+ "electron": "1.2"
1529
+ },
1530
+ "es7.symbol.async-iterator": {
1531
+ "chrome": "63",
1532
+ "opera": "50",
1533
+ "edge": "79",
1534
+ "firefox": "57",
1535
+ "safari": "12",
1536
+ "node": "10",
1537
+ "deno": "1",
1538
+ "ios": "12",
1539
+ "samsung": "8",
1540
+ "opera_mobile": "46",
1541
+ "electron": "3.0"
1542
+ },
1543
+ "es6.string.anchor": {
1544
+ "chrome": "5",
1545
+ "opera": "15",
1546
+ "edge": "12",
1547
+ "firefox": "17",
1548
+ "safari": "6",
1549
+ "node": "0.4",
1550
+ "deno": "1",
1551
+ "android": "4",
1552
+ "ios": "7",
1553
+ "phantom": "1.9",
1554
+ "samsung": "1",
1555
+ "rhino": "1.7.14",
1556
+ "opera_mobile": "14",
1557
+ "electron": "0.20"
1558
+ },
1559
+ "es6.string.big": {
1560
+ "chrome": "5",
1561
+ "opera": "15",
1562
+ "edge": "12",
1563
+ "firefox": "17",
1564
+ "safari": "6",
1565
+ "node": "0.4",
1566
+ "deno": "1",
1567
+ "android": "4",
1568
+ "ios": "7",
1569
+ "phantom": "1.9",
1570
+ "samsung": "1",
1571
+ "rhino": "1.7.14",
1572
+ "opera_mobile": "14",
1573
+ "electron": "0.20"
1574
+ },
1575
+ "es6.string.blink": {
1576
+ "chrome": "5",
1577
+ "opera": "15",
1578
+ "edge": "12",
1579
+ "firefox": "17",
1580
+ "safari": "6",
1581
+ "node": "0.4",
1582
+ "deno": "1",
1583
+ "android": "4",
1584
+ "ios": "7",
1585
+ "phantom": "1.9",
1586
+ "samsung": "1",
1587
+ "rhino": "1.7.14",
1588
+ "opera_mobile": "14",
1589
+ "electron": "0.20"
1590
+ },
1591
+ "es6.string.bold": {
1592
+ "chrome": "5",
1593
+ "opera": "15",
1594
+ "edge": "12",
1595
+ "firefox": "17",
1596
+ "safari": "6",
1597
+ "node": "0.4",
1598
+ "deno": "1",
1599
+ "android": "4",
1600
+ "ios": "7",
1601
+ "phantom": "1.9",
1602
+ "samsung": "1",
1603
+ "rhino": "1.7.14",
1604
+ "opera_mobile": "14",
1605
+ "electron": "0.20"
1606
+ },
1607
+ "es6.string.code-point-at": {
1608
+ "chrome": "41",
1609
+ "opera": "28",
1610
+ "edge": "12",
1611
+ "firefox": "29",
1612
+ "safari": "9",
1613
+ "node": "4",
1614
+ "deno": "1",
1615
+ "ios": "9",
1616
+ "samsung": "3.4",
1617
+ "rhino": "1.7.13",
1618
+ "opera_mobile": "28",
1619
+ "electron": "0.21"
1620
+ },
1621
+ "es6.string.ends-with": {
1622
+ "chrome": "41",
1623
+ "opera": "28",
1624
+ "edge": "12",
1625
+ "firefox": "29",
1626
+ "safari": "9",
1627
+ "node": "4",
1628
+ "deno": "1",
1629
+ "ios": "9",
1630
+ "samsung": "3.4",
1631
+ "rhino": "1.7.13",
1632
+ "opera_mobile": "28",
1633
+ "electron": "0.21"
1634
+ },
1635
+ "es6.string.fixed": {
1636
+ "chrome": "5",
1637
+ "opera": "15",
1638
+ "edge": "12",
1639
+ "firefox": "17",
1640
+ "safari": "6",
1641
+ "node": "0.4",
1642
+ "deno": "1",
1643
+ "android": "4",
1644
+ "ios": "7",
1645
+ "phantom": "1.9",
1646
+ "samsung": "1",
1647
+ "rhino": "1.7.14",
1648
+ "opera_mobile": "14",
1649
+ "electron": "0.20"
1650
+ },
1651
+ "es6.string.fontcolor": {
1652
+ "chrome": "5",
1653
+ "opera": "15",
1654
+ "edge": "12",
1655
+ "firefox": "17",
1656
+ "safari": "6",
1657
+ "node": "0.4",
1658
+ "deno": "1",
1659
+ "android": "4",
1660
+ "ios": "7",
1661
+ "phantom": "1.9",
1662
+ "samsung": "1",
1663
+ "rhino": "1.7.14",
1664
+ "opera_mobile": "14",
1665
+ "electron": "0.20"
1666
+ },
1667
+ "es6.string.fontsize": {
1668
+ "chrome": "5",
1669
+ "opera": "15",
1670
+ "edge": "12",
1671
+ "firefox": "17",
1672
+ "safari": "6",
1673
+ "node": "0.4",
1674
+ "deno": "1",
1675
+ "android": "4",
1676
+ "ios": "7",
1677
+ "phantom": "1.9",
1678
+ "samsung": "1",
1679
+ "rhino": "1.7.14",
1680
+ "opera_mobile": "14",
1681
+ "electron": "0.20"
1682
+ },
1683
+ "es6.string.from-code-point": {
1684
+ "chrome": "41",
1685
+ "opera": "28",
1686
+ "edge": "12",
1687
+ "firefox": "29",
1688
+ "safari": "9",
1689
+ "node": "4",
1690
+ "deno": "1",
1691
+ "ios": "9",
1692
+ "samsung": "3.4",
1693
+ "rhino": "1.7.13",
1694
+ "opera_mobile": "28",
1695
+ "electron": "0.21"
1696
+ },
1697
+ "es6.string.includes": {
1698
+ "chrome": "41",
1699
+ "opera": "28",
1700
+ "edge": "12",
1701
+ "firefox": "40",
1702
+ "safari": "9",
1703
+ "node": "4",
1704
+ "deno": "1",
1705
+ "ios": "9",
1706
+ "samsung": "3.4",
1707
+ "rhino": "1.7.13",
1708
+ "opera_mobile": "28",
1709
+ "electron": "0.21"
1710
+ },
1711
+ "es6.string.italics": {
1712
+ "chrome": "5",
1713
+ "opera": "15",
1714
+ "edge": "12",
1715
+ "firefox": "17",
1716
+ "safari": "6",
1717
+ "node": "0.4",
1718
+ "deno": "1",
1719
+ "android": "4",
1720
+ "ios": "7",
1721
+ "phantom": "1.9",
1722
+ "samsung": "1",
1723
+ "rhino": "1.7.14",
1724
+ "opera_mobile": "14",
1725
+ "electron": "0.20"
1726
+ },
1727
+ "es6.string.iterator": {
1728
+ "chrome": "38",
1729
+ "opera": "25",
1730
+ "edge": "12",
1731
+ "firefox": "36",
1732
+ "safari": "9",
1733
+ "node": "0.12",
1734
+ "deno": "1",
1735
+ "ios": "9",
1736
+ "samsung": "3",
1737
+ "rhino": "1.7.13",
1738
+ "opera_mobile": "25",
1739
+ "electron": "0.20"
1740
+ },
1741
+ "es6.string.link": {
1742
+ "chrome": "5",
1743
+ "opera": "15",
1744
+ "edge": "12",
1745
+ "firefox": "17",
1746
+ "safari": "6",
1747
+ "node": "0.4",
1748
+ "deno": "1",
1749
+ "android": "4",
1750
+ "ios": "7",
1751
+ "phantom": "1.9",
1752
+ "samsung": "1",
1753
+ "rhino": "1.7.14",
1754
+ "opera_mobile": "14",
1755
+ "electron": "0.20"
1756
+ },
1757
+ "es7.string.pad-start": {
1758
+ "chrome": "57",
1759
+ "opera": "44",
1760
+ "edge": "15",
1761
+ "firefox": "48",
1762
+ "safari": "10",
1763
+ "node": "8",
1764
+ "deno": "1",
1765
+ "ios": "10",
1766
+ "samsung": "7",
1767
+ "rhino": "1.7.13",
1768
+ "opera_mobile": "43",
1769
+ "electron": "1.7"
1770
+ },
1771
+ "es7.string.pad-end": {
1772
+ "chrome": "57",
1773
+ "opera": "44",
1774
+ "edge": "15",
1775
+ "firefox": "48",
1776
+ "safari": "10",
1777
+ "node": "8",
1778
+ "deno": "1",
1779
+ "ios": "10",
1780
+ "samsung": "7",
1781
+ "rhino": "1.7.13",
1782
+ "opera_mobile": "43",
1783
+ "electron": "1.7"
1784
+ },
1785
+ "es6.string.raw": {
1786
+ "chrome": "41",
1787
+ "opera": "28",
1788
+ "edge": "12",
1789
+ "firefox": "34",
1790
+ "safari": "9",
1791
+ "node": "4",
1792
+ "deno": "1",
1793
+ "ios": "9",
1794
+ "samsung": "3.4",
1795
+ "rhino": "1.7.14",
1796
+ "opera_mobile": "28",
1797
+ "electron": "0.21"
1798
+ },
1799
+ "es6.string.repeat": {
1800
+ "chrome": "41",
1801
+ "opera": "28",
1802
+ "edge": "12",
1803
+ "firefox": "24",
1804
+ "safari": "9",
1805
+ "node": "4",
1806
+ "deno": "1",
1807
+ "ios": "9",
1808
+ "samsung": "3.4",
1809
+ "rhino": "1.7.13",
1810
+ "opera_mobile": "28",
1811
+ "electron": "0.21"
1812
+ },
1813
+ "es6.string.small": {
1814
+ "chrome": "5",
1815
+ "opera": "15",
1816
+ "edge": "12",
1817
+ "firefox": "17",
1818
+ "safari": "6",
1819
+ "node": "0.4",
1820
+ "deno": "1",
1821
+ "android": "4",
1822
+ "ios": "7",
1823
+ "phantom": "1.9",
1824
+ "samsung": "1",
1825
+ "rhino": "1.7.14",
1826
+ "opera_mobile": "14",
1827
+ "electron": "0.20"
1828
+ },
1829
+ "es6.string.starts-with": {
1830
+ "chrome": "41",
1831
+ "opera": "28",
1832
+ "edge": "12",
1833
+ "firefox": "29",
1834
+ "safari": "9",
1835
+ "node": "4",
1836
+ "deno": "1",
1837
+ "ios": "9",
1838
+ "samsung": "3.4",
1839
+ "rhino": "1.7.13",
1840
+ "opera_mobile": "28",
1841
+ "electron": "0.21"
1842
+ },
1843
+ "es6.string.strike": {
1844
+ "chrome": "5",
1845
+ "opera": "15",
1846
+ "edge": "12",
1847
+ "firefox": "17",
1848
+ "safari": "6",
1849
+ "node": "0.4",
1850
+ "deno": "1",
1851
+ "android": "4",
1852
+ "ios": "7",
1853
+ "phantom": "1.9",
1854
+ "samsung": "1",
1855
+ "rhino": "1.7.14",
1856
+ "opera_mobile": "14",
1857
+ "electron": "0.20"
1858
+ },
1859
+ "es6.string.sub": {
1860
+ "chrome": "5",
1861
+ "opera": "15",
1862
+ "edge": "12",
1863
+ "firefox": "17",
1864
+ "safari": "6",
1865
+ "node": "0.4",
1866
+ "deno": "1",
1867
+ "android": "4",
1868
+ "ios": "7",
1869
+ "phantom": "1.9",
1870
+ "samsung": "1",
1871
+ "rhino": "1.7.14",
1872
+ "opera_mobile": "14",
1873
+ "electron": "0.20"
1874
+ },
1875
+ "es6.string.sup": {
1876
+ "chrome": "5",
1877
+ "opera": "15",
1878
+ "edge": "12",
1879
+ "firefox": "17",
1880
+ "safari": "6",
1881
+ "node": "0.4",
1882
+ "deno": "1",
1883
+ "android": "4",
1884
+ "ios": "7",
1885
+ "phantom": "1.9",
1886
+ "samsung": "1",
1887
+ "rhino": "1.7.14",
1888
+ "opera_mobile": "14",
1889
+ "electron": "0.20"
1890
+ },
1891
+ "es6.string.trim": {
1892
+ "chrome": "5",
1893
+ "opera": "10.50",
1894
+ "edge": "12",
1895
+ "firefox": "3.5",
1896
+ "safari": "4",
1897
+ "node": "0.4",
1898
+ "deno": "1",
1899
+ "ie": "9",
1900
+ "android": "4",
1901
+ "ios": "6",
1902
+ "phantom": "1.9",
1903
+ "samsung": "1",
1904
+ "rhino": "1.7.13",
1905
+ "opera_mobile": "10.1",
1906
+ "electron": "0.20"
1907
+ },
1908
+ "es7.string.trim-left": {
1909
+ "chrome": "66",
1910
+ "opera": "53",
1911
+ "edge": "79",
1912
+ "firefox": "61",
1913
+ "safari": "12",
1914
+ "node": "10",
1915
+ "deno": "1",
1916
+ "ios": "12",
1917
+ "samsung": "9",
1918
+ "rhino": "1.7.13",
1919
+ "opera_mobile": "47",
1920
+ "electron": "3.0"
1921
+ },
1922
+ "es7.string.trim-right": {
1923
+ "chrome": "66",
1924
+ "opera": "53",
1925
+ "edge": "79",
1926
+ "firefox": "61",
1927
+ "safari": "12",
1928
+ "node": "10",
1929
+ "deno": "1",
1930
+ "ios": "12",
1931
+ "samsung": "9",
1932
+ "rhino": "1.7.13",
1933
+ "opera_mobile": "47",
1934
+ "electron": "3.0"
1935
+ },
1936
+ "es6.typed.array-buffer": {
1937
+ "chrome": "51",
1938
+ "opera": "38",
1939
+ "edge": "13",
1940
+ "firefox": "48",
1941
+ "safari": "10",
1942
+ "node": "6.5",
1943
+ "deno": "1",
1944
+ "ios": "10",
1945
+ "samsung": "5",
1946
+ "opera_mobile": "41",
1947
+ "electron": "1.2"
1948
+ },
1949
+ "es6.typed.data-view": {
1950
+ "chrome": "5",
1951
+ "opera": "12",
1952
+ "edge": "12",
1953
+ "firefox": "15",
1954
+ "safari": "5.1",
1955
+ "node": "0.4",
1956
+ "deno": "1",
1957
+ "ie": "10",
1958
+ "android": "4",
1959
+ "ios": "6",
1960
+ "phantom": "1.9",
1961
+ "samsung": "1",
1962
+ "rhino": "1.7.13",
1963
+ "opera_mobile": "12",
1964
+ "electron": "0.20"
1965
+ },
1966
+ "es6.typed.int8-array": {
1967
+ "chrome": "51",
1968
+ "opera": "38",
1969
+ "edge": "13",
1970
+ "firefox": "48",
1971
+ "safari": "10",
1972
+ "node": "6.5",
1973
+ "deno": "1",
1974
+ "ios": "10",
1975
+ "samsung": "5",
1976
+ "rhino": "1.9",
1977
+ "opera_mobile": "41",
1978
+ "electron": "1.2"
1979
+ },
1980
+ "es6.typed.uint8-array": {
1981
+ "chrome": "51",
1982
+ "opera": "38",
1983
+ "edge": "13",
1984
+ "firefox": "48",
1985
+ "safari": "10",
1986
+ "node": "6.5",
1987
+ "deno": "1",
1988
+ "ios": "10",
1989
+ "samsung": "5",
1990
+ "rhino": "1.9",
1991
+ "opera_mobile": "41",
1992
+ "electron": "1.2"
1993
+ },
1994
+ "es6.typed.uint8-clamped-array": {
1995
+ "chrome": "51",
1996
+ "opera": "38",
1997
+ "edge": "13",
1998
+ "firefox": "48",
1999
+ "safari": "10",
2000
+ "node": "6.5",
2001
+ "deno": "1",
2002
+ "ios": "10",
2003
+ "samsung": "5",
2004
+ "rhino": "1.9",
2005
+ "opera_mobile": "41",
2006
+ "electron": "1.2"
2007
+ },
2008
+ "es6.typed.int16-array": {
2009
+ "chrome": "51",
2010
+ "opera": "38",
2011
+ "edge": "13",
2012
+ "firefox": "48",
2013
+ "safari": "10",
2014
+ "node": "6.5",
2015
+ "deno": "1",
2016
+ "ios": "10",
2017
+ "samsung": "5",
2018
+ "rhino": "1.9",
2019
+ "opera_mobile": "41",
2020
+ "electron": "1.2"
2021
+ },
2022
+ "es6.typed.uint16-array": {
2023
+ "chrome": "51",
2024
+ "opera": "38",
2025
+ "edge": "13",
2026
+ "firefox": "48",
2027
+ "safari": "10",
2028
+ "node": "6.5",
2029
+ "deno": "1",
2030
+ "ios": "10",
2031
+ "samsung": "5",
2032
+ "rhino": "1.9",
2033
+ "opera_mobile": "41",
2034
+ "electron": "1.2"
2035
+ },
2036
+ "es6.typed.int32-array": {
2037
+ "chrome": "51",
2038
+ "opera": "38",
2039
+ "edge": "13",
2040
+ "firefox": "48",
2041
+ "safari": "10",
2042
+ "node": "6.5",
2043
+ "deno": "1",
2044
+ "ios": "10",
2045
+ "samsung": "5",
2046
+ "rhino": "1.9",
2047
+ "opera_mobile": "41",
2048
+ "electron": "1.2"
2049
+ },
2050
+ "es6.typed.uint32-array": {
2051
+ "chrome": "51",
2052
+ "opera": "38",
2053
+ "edge": "13",
2054
+ "firefox": "48",
2055
+ "safari": "10",
2056
+ "node": "6.5",
2057
+ "deno": "1",
2058
+ "ios": "10",
2059
+ "samsung": "5",
2060
+ "rhino": "1.9",
2061
+ "opera_mobile": "41",
2062
+ "electron": "1.2"
2063
+ },
2064
+ "es6.typed.float32-array": {
2065
+ "chrome": "51",
2066
+ "opera": "38",
2067
+ "edge": "13",
2068
+ "firefox": "48",
2069
+ "safari": "10",
2070
+ "node": "6.5",
2071
+ "deno": "1",
2072
+ "ios": "10",
2073
+ "samsung": "5",
2074
+ "rhino": "1.9",
2075
+ "opera_mobile": "41",
2076
+ "electron": "1.2"
2077
+ },
2078
+ "es6.typed.float64-array": {
2079
+ "chrome": "51",
2080
+ "opera": "38",
2081
+ "edge": "13",
2082
+ "firefox": "48",
2083
+ "safari": "10",
2084
+ "node": "6.5",
2085
+ "deno": "1",
2086
+ "ios": "10",
2087
+ "samsung": "5",
2088
+ "rhino": "1.9",
2089
+ "opera_mobile": "41",
2090
+ "electron": "1.2"
2091
+ },
2092
+ "es6.weak-map": {
2093
+ "chrome": "51",
2094
+ "opera": "38",
2095
+ "edge": "15",
2096
+ "firefox": "53",
2097
+ "safari": "9",
2098
+ "node": "6.5",
2099
+ "deno": "1",
2100
+ "ios": "9",
2101
+ "samsung": "5",
2102
+ "rhino": "1.7.15",
2103
+ "opera_mobile": "41",
2104
+ "electron": "1.2"
2105
+ },
2106
+ "es6.weak-set": {
2107
+ "chrome": "51",
2108
+ "opera": "38",
2109
+ "edge": "15",
2110
+ "firefox": "53",
2111
+ "safari": "9",
2112
+ "node": "6.5",
2113
+ "deno": "1",
2114
+ "ios": "9",
2115
+ "samsung": "5",
2116
+ "rhino": "1.7.15",
2117
+ "opera_mobile": "41",
2118
+ "electron": "1.2"
2119
+ }
2120
+ }
frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/data/corejs3-shipped-proposals.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ [
2
+ "esnext.promise.all-settled",
3
+ "esnext.string.match-all",
4
+ "esnext.global-this"
5
+ ]
frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/data/native-modules.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "es6.module": {
3
+ "chrome": "61",
4
+ "and_chr": "61",
5
+ "edge": "16",
6
+ "firefox": "60",
7
+ "and_ff": "60",
8
+ "node": "13.2.0",
9
+ "opera": "48",
10
+ "op_mob": "45",
11
+ "safari": "10.1",
12
+ "ios": "10.3",
13
+ "samsung": "8.2",
14
+ "android": "61",
15
+ "electron": "2.0",
16
+ "ios_saf": "10.3"
17
+ }
18
+ }
frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/data/overlapping-plugins.json ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "transform-async-to-generator": [
3
+ "bugfix/transform-async-arrows-in-class"
4
+ ],
5
+ "transform-parameters": [
6
+ "bugfix/transform-edge-default-parameters",
7
+ "bugfix/transform-safari-id-destructuring-collision-in-function-expression"
8
+ ],
9
+ "transform-function-name": [
10
+ "bugfix/transform-edge-function-name"
11
+ ],
12
+ "transform-block-scoping": [
13
+ "bugfix/transform-safari-block-shadowing",
14
+ "bugfix/transform-safari-for-shadowing"
15
+ ],
16
+ "transform-destructuring": [
17
+ "bugfix/transform-safari-rest-destructuring-rhs-array"
18
+ ],
19
+ "transform-template-literals": [
20
+ "bugfix/transform-tagged-template-caching"
21
+ ],
22
+ "transform-optional-chaining": [
23
+ "bugfix/transform-v8-spread-parameters-in-optional-chaining"
24
+ ],
25
+ "proposal-optional-chaining": [
26
+ "bugfix/transform-v8-spread-parameters-in-optional-chaining"
27
+ ],
28
+ "transform-class-properties": [
29
+ "bugfix/transform-v8-static-class-fields-redefine-readonly",
30
+ "bugfix/transform-firefox-class-in-computed-class-key",
31
+ "bugfix/transform-safari-class-field-initializer-scope"
32
+ ],
33
+ "proposal-class-properties": [
34
+ "bugfix/transform-v8-static-class-fields-redefine-readonly",
35
+ "bugfix/transform-firefox-class-in-computed-class-key",
36
+ "bugfix/transform-safari-class-field-initializer-scope"
37
+ ]
38
+ }
frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/data/plugin-bugfixes.json ADDED
@@ -0,0 +1,231 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bugfix/transform-async-arrows-in-class": {
3
+ "chrome": "55",
4
+ "opera": "42",
5
+ "edge": "15",
6
+ "firefox": "52",
7
+ "safari": "11",
8
+ "node": "7.6",
9
+ "deno": "1",
10
+ "ios": "11",
11
+ "samsung": "6",
12
+ "opera_mobile": "42",
13
+ "electron": "1.6"
14
+ },
15
+ "bugfix/transform-edge-default-parameters": {
16
+ "chrome": "49",
17
+ "opera": "36",
18
+ "edge": "18",
19
+ "firefox": "52",
20
+ "safari": "10",
21
+ "node": "6",
22
+ "deno": "1",
23
+ "ios": "10",
24
+ "samsung": "5",
25
+ "opera_mobile": "36",
26
+ "electron": "0.37"
27
+ },
28
+ "bugfix/transform-edge-function-name": {
29
+ "chrome": "51",
30
+ "opera": "38",
31
+ "edge": "79",
32
+ "firefox": "53",
33
+ "safari": "10",
34
+ "node": "6.5",
35
+ "deno": "1",
36
+ "ios": "10",
37
+ "samsung": "5",
38
+ "rhino": "1.9",
39
+ "opera_mobile": "41",
40
+ "electron": "1.2"
41
+ },
42
+ "bugfix/transform-safari-block-shadowing": {
43
+ "chrome": "49",
44
+ "opera": "36",
45
+ "edge": "12",
46
+ "firefox": "44",
47
+ "safari": "11",
48
+ "node": "6",
49
+ "deno": "1",
50
+ "ie": "11",
51
+ "ios": "11",
52
+ "samsung": "5",
53
+ "opera_mobile": "36",
54
+ "electron": "0.37"
55
+ },
56
+ "bugfix/transform-safari-for-shadowing": {
57
+ "chrome": "49",
58
+ "opera": "36",
59
+ "edge": "12",
60
+ "firefox": "4",
61
+ "safari": "11",
62
+ "node": "6",
63
+ "deno": "1",
64
+ "ie": "11",
65
+ "ios": "11",
66
+ "samsung": "5",
67
+ "rhino": "1.7.13",
68
+ "opera_mobile": "36",
69
+ "electron": "0.37"
70
+ },
71
+ "bugfix/transform-safari-id-destructuring-collision-in-function-expression": {
72
+ "chrome": "49",
73
+ "opera": "36",
74
+ "edge": "14",
75
+ "firefox": "2",
76
+ "safari": "16.3",
77
+ "node": "6",
78
+ "deno": "1",
79
+ "ios": "16.3",
80
+ "samsung": "5",
81
+ "opera_mobile": "36",
82
+ "electron": "0.37"
83
+ },
84
+ "bugfix/transform-safari-rest-destructuring-rhs-array": {
85
+ "chrome": "49",
86
+ "opera": "36",
87
+ "edge": "14",
88
+ "firefox": "34",
89
+ "safari": "14.1",
90
+ "node": "6",
91
+ "deno": "1",
92
+ "ios": "14.5",
93
+ "samsung": "5",
94
+ "opera_mobile": "36",
95
+ "electron": "0.37"
96
+ },
97
+ "bugfix/transform-tagged-template-caching": {
98
+ "chrome": "41",
99
+ "opera": "28",
100
+ "edge": "12",
101
+ "firefox": "34",
102
+ "safari": "13",
103
+ "node": "4",
104
+ "deno": "1",
105
+ "ios": "13",
106
+ "samsung": "3.4",
107
+ "rhino": "1.7.14",
108
+ "opera_mobile": "28",
109
+ "electron": "0.21"
110
+ },
111
+ "bugfix/transform-v8-spread-parameters-in-optional-chaining": {
112
+ "chrome": "91",
113
+ "opera": "77",
114
+ "edge": "91",
115
+ "firefox": "74",
116
+ "safari": "13.1",
117
+ "node": "16.9",
118
+ "deno": "1.9",
119
+ "ios": "13.4",
120
+ "samsung": "16",
121
+ "opera_mobile": "64",
122
+ "electron": "13.0"
123
+ },
124
+ "transform-optional-chaining": {
125
+ "chrome": "80",
126
+ "opera": "67",
127
+ "edge": "80",
128
+ "firefox": "74",
129
+ "safari": "13.1",
130
+ "node": "14",
131
+ "deno": "1",
132
+ "ios": "13.4",
133
+ "samsung": "13",
134
+ "rhino": "1.8",
135
+ "opera_mobile": "57",
136
+ "electron": "8.0"
137
+ },
138
+ "proposal-optional-chaining": {
139
+ "chrome": "80",
140
+ "opera": "67",
141
+ "edge": "80",
142
+ "firefox": "74",
143
+ "safari": "13.1",
144
+ "node": "14",
145
+ "deno": "1",
146
+ "ios": "13.4",
147
+ "samsung": "13",
148
+ "rhino": "1.8",
149
+ "opera_mobile": "57",
150
+ "electron": "8.0"
151
+ },
152
+ "transform-parameters": {
153
+ "chrome": "49",
154
+ "opera": "36",
155
+ "edge": "15",
156
+ "firefox": "52",
157
+ "safari": "10",
158
+ "node": "6",
159
+ "deno": "1",
160
+ "ios": "10",
161
+ "samsung": "5",
162
+ "opera_mobile": "36",
163
+ "electron": "0.37"
164
+ },
165
+ "transform-async-to-generator": {
166
+ "chrome": "55",
167
+ "opera": "42",
168
+ "edge": "15",
169
+ "firefox": "52",
170
+ "safari": "10.1",
171
+ "node": "7.6",
172
+ "deno": "1",
173
+ "ios": "10.3",
174
+ "samsung": "6",
175
+ "opera_mobile": "42",
176
+ "electron": "1.6"
177
+ },
178
+ "transform-template-literals": {
179
+ "chrome": "41",
180
+ "opera": "28",
181
+ "edge": "13",
182
+ "firefox": "34",
183
+ "safari": "9",
184
+ "node": "4",
185
+ "deno": "1",
186
+ "ios": "9",
187
+ "samsung": "3.4",
188
+ "rhino": "1.9",
189
+ "opera_mobile": "28",
190
+ "electron": "0.21"
191
+ },
192
+ "transform-function-name": {
193
+ "chrome": "51",
194
+ "opera": "38",
195
+ "edge": "14",
196
+ "firefox": "53",
197
+ "safari": "10",
198
+ "node": "6.5",
199
+ "deno": "1",
200
+ "ios": "10",
201
+ "samsung": "5",
202
+ "opera_mobile": "41",
203
+ "electron": "1.2"
204
+ },
205
+ "transform-destructuring": {
206
+ "chrome": "51",
207
+ "opera": "38",
208
+ "edge": "15",
209
+ "firefox": "53",
210
+ "safari": "10",
211
+ "node": "6.5",
212
+ "deno": "1",
213
+ "ios": "10",
214
+ "samsung": "5",
215
+ "opera_mobile": "41",
216
+ "electron": "1.2"
217
+ },
218
+ "transform-block-scoping": {
219
+ "chrome": "50",
220
+ "opera": "37",
221
+ "edge": "14",
222
+ "firefox": "53",
223
+ "safari": "10",
224
+ "node": "6",
225
+ "deno": "1",
226
+ "ios": "10",
227
+ "samsung": "5",
228
+ "opera_mobile": "37",
229
+ "electron": "1.1"
230
+ }
231
+ }
frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/data/plugins.json ADDED
@@ -0,0 +1,843 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "transform-explicit-resource-management": {
3
+ "chrome": "141",
4
+ "edge": "141",
5
+ "firefox": "141",
6
+ "node": "25",
7
+ "electron": "39.0"
8
+ },
9
+ "transform-duplicate-named-capturing-groups-regex": {
10
+ "chrome": "126",
11
+ "opera": "112",
12
+ "edge": "126",
13
+ "firefox": "129",
14
+ "safari": "17.4",
15
+ "node": "23",
16
+ "ios": "17.4",
17
+ "rhino": "1.9",
18
+ "electron": "31.0"
19
+ },
20
+ "transform-regexp-modifiers": {
21
+ "chrome": "125",
22
+ "opera": "111",
23
+ "edge": "125",
24
+ "firefox": "132",
25
+ "node": "23",
26
+ "samsung": "27",
27
+ "electron": "31.0"
28
+ },
29
+ "transform-unicode-sets-regex": {
30
+ "chrome": "112",
31
+ "opera": "98",
32
+ "edge": "112",
33
+ "firefox": "116",
34
+ "safari": "17",
35
+ "node": "20",
36
+ "deno": "1.32",
37
+ "ios": "17",
38
+ "samsung": "23",
39
+ "opera_mobile": "75",
40
+ "electron": "24.0"
41
+ },
42
+ "bugfix/transform-v8-static-class-fields-redefine-readonly": {
43
+ "chrome": "98",
44
+ "opera": "84",
45
+ "edge": "98",
46
+ "firefox": "75",
47
+ "safari": "15",
48
+ "node": "12",
49
+ "deno": "1.18",
50
+ "ios": "15",
51
+ "samsung": "11",
52
+ "opera_mobile": "52",
53
+ "electron": "17.0"
54
+ },
55
+ "bugfix/transform-firefox-class-in-computed-class-key": {
56
+ "chrome": "74",
57
+ "opera": "62",
58
+ "edge": "79",
59
+ "firefox": "126",
60
+ "safari": "16",
61
+ "node": "12",
62
+ "deno": "1",
63
+ "ios": "16",
64
+ "samsung": "11",
65
+ "opera_mobile": "53",
66
+ "electron": "6.0"
67
+ },
68
+ "bugfix/transform-safari-class-field-initializer-scope": {
69
+ "chrome": "74",
70
+ "opera": "62",
71
+ "edge": "79",
72
+ "firefox": "69",
73
+ "safari": "16",
74
+ "node": "12",
75
+ "deno": "1",
76
+ "ios": "16",
77
+ "samsung": "11",
78
+ "opera_mobile": "53",
79
+ "electron": "6.0"
80
+ },
81
+ "transform-class-static-block": {
82
+ "chrome": "94",
83
+ "opera": "80",
84
+ "edge": "94",
85
+ "firefox": "93",
86
+ "safari": "16.4",
87
+ "node": "16.11",
88
+ "deno": "1.14",
89
+ "ios": "16.4",
90
+ "samsung": "17",
91
+ "opera_mobile": "66",
92
+ "electron": "15.0"
93
+ },
94
+ "proposal-class-static-block": {
95
+ "chrome": "94",
96
+ "opera": "80",
97
+ "edge": "94",
98
+ "firefox": "93",
99
+ "safari": "16.4",
100
+ "node": "16.11",
101
+ "deno": "1.14",
102
+ "ios": "16.4",
103
+ "samsung": "17",
104
+ "opera_mobile": "66",
105
+ "electron": "15.0"
106
+ },
107
+ "transform-private-property-in-object": {
108
+ "chrome": "91",
109
+ "opera": "77",
110
+ "edge": "91",
111
+ "firefox": "90",
112
+ "safari": "15",
113
+ "node": "16.9",
114
+ "deno": "1.9",
115
+ "ios": "15",
116
+ "samsung": "16",
117
+ "opera_mobile": "64",
118
+ "electron": "13.0"
119
+ },
120
+ "proposal-private-property-in-object": {
121
+ "chrome": "91",
122
+ "opera": "77",
123
+ "edge": "91",
124
+ "firefox": "90",
125
+ "safari": "15",
126
+ "node": "16.9",
127
+ "deno": "1.9",
128
+ "ios": "15",
129
+ "samsung": "16",
130
+ "opera_mobile": "64",
131
+ "electron": "13.0"
132
+ },
133
+ "transform-class-properties": {
134
+ "chrome": "74",
135
+ "opera": "62",
136
+ "edge": "79",
137
+ "firefox": "90",
138
+ "safari": "14.1",
139
+ "node": "12",
140
+ "deno": "1",
141
+ "ios": "14.5",
142
+ "samsung": "11",
143
+ "opera_mobile": "53",
144
+ "electron": "6.0"
145
+ },
146
+ "proposal-class-properties": {
147
+ "chrome": "74",
148
+ "opera": "62",
149
+ "edge": "79",
150
+ "firefox": "90",
151
+ "safari": "14.1",
152
+ "node": "12",
153
+ "deno": "1",
154
+ "ios": "14.5",
155
+ "samsung": "11",
156
+ "opera_mobile": "53",
157
+ "electron": "6.0"
158
+ },
159
+ "transform-private-methods": {
160
+ "chrome": "84",
161
+ "opera": "70",
162
+ "edge": "84",
163
+ "firefox": "90",
164
+ "safari": "15",
165
+ "node": "14.6",
166
+ "deno": "1",
167
+ "ios": "15",
168
+ "samsung": "14",
169
+ "opera_mobile": "60",
170
+ "electron": "10.0"
171
+ },
172
+ "proposal-private-methods": {
173
+ "chrome": "84",
174
+ "opera": "70",
175
+ "edge": "84",
176
+ "firefox": "90",
177
+ "safari": "15",
178
+ "node": "14.6",
179
+ "deno": "1",
180
+ "ios": "15",
181
+ "samsung": "14",
182
+ "opera_mobile": "60",
183
+ "electron": "10.0"
184
+ },
185
+ "transform-numeric-separator": {
186
+ "chrome": "75",
187
+ "opera": "62",
188
+ "edge": "79",
189
+ "firefox": "70",
190
+ "safari": "13",
191
+ "node": "12.5",
192
+ "deno": "1",
193
+ "ios": "13",
194
+ "samsung": "11",
195
+ "rhino": "1.7.14",
196
+ "opera_mobile": "54",
197
+ "electron": "6.0"
198
+ },
199
+ "proposal-numeric-separator": {
200
+ "chrome": "75",
201
+ "opera": "62",
202
+ "edge": "79",
203
+ "firefox": "70",
204
+ "safari": "13",
205
+ "node": "12.5",
206
+ "deno": "1",
207
+ "ios": "13",
208
+ "samsung": "11",
209
+ "rhino": "1.7.14",
210
+ "opera_mobile": "54",
211
+ "electron": "6.0"
212
+ },
213
+ "transform-logical-assignment-operators": {
214
+ "chrome": "85",
215
+ "opera": "71",
216
+ "edge": "85",
217
+ "firefox": "79",
218
+ "safari": "14",
219
+ "node": "15",
220
+ "deno": "1.2",
221
+ "ios": "14",
222
+ "samsung": "14",
223
+ "opera_mobile": "60",
224
+ "electron": "10.0"
225
+ },
226
+ "proposal-logical-assignment-operators": {
227
+ "chrome": "85",
228
+ "opera": "71",
229
+ "edge": "85",
230
+ "firefox": "79",
231
+ "safari": "14",
232
+ "node": "15",
233
+ "deno": "1.2",
234
+ "ios": "14",
235
+ "samsung": "14",
236
+ "opera_mobile": "60",
237
+ "electron": "10.0"
238
+ },
239
+ "transform-nullish-coalescing-operator": {
240
+ "chrome": "80",
241
+ "opera": "67",
242
+ "edge": "80",
243
+ "firefox": "72",
244
+ "safari": "13.1",
245
+ "node": "14",
246
+ "deno": "1",
247
+ "ios": "13.4",
248
+ "samsung": "13",
249
+ "rhino": "1.8",
250
+ "opera_mobile": "57",
251
+ "electron": "8.0"
252
+ },
253
+ "proposal-nullish-coalescing-operator": {
254
+ "chrome": "80",
255
+ "opera": "67",
256
+ "edge": "80",
257
+ "firefox": "72",
258
+ "safari": "13.1",
259
+ "node": "14",
260
+ "deno": "1",
261
+ "ios": "13.4",
262
+ "samsung": "13",
263
+ "rhino": "1.8",
264
+ "opera_mobile": "57",
265
+ "electron": "8.0"
266
+ },
267
+ "transform-optional-chaining": {
268
+ "chrome": "91",
269
+ "opera": "77",
270
+ "edge": "91",
271
+ "firefox": "74",
272
+ "safari": "13.1",
273
+ "node": "16.9",
274
+ "deno": "1.9",
275
+ "ios": "13.4",
276
+ "samsung": "16",
277
+ "opera_mobile": "64",
278
+ "electron": "13.0"
279
+ },
280
+ "proposal-optional-chaining": {
281
+ "chrome": "91",
282
+ "opera": "77",
283
+ "edge": "91",
284
+ "firefox": "74",
285
+ "safari": "13.1",
286
+ "node": "16.9",
287
+ "deno": "1.9",
288
+ "ios": "13.4",
289
+ "samsung": "16",
290
+ "opera_mobile": "64",
291
+ "electron": "13.0"
292
+ },
293
+ "transform-json-strings": {
294
+ "chrome": "66",
295
+ "opera": "53",
296
+ "edge": "79",
297
+ "firefox": "62",
298
+ "safari": "12",
299
+ "node": "10",
300
+ "deno": "1",
301
+ "ios": "12",
302
+ "samsung": "9",
303
+ "rhino": "1.7.14",
304
+ "opera_mobile": "47",
305
+ "electron": "3.0"
306
+ },
307
+ "proposal-json-strings": {
308
+ "chrome": "66",
309
+ "opera": "53",
310
+ "edge": "79",
311
+ "firefox": "62",
312
+ "safari": "12",
313
+ "node": "10",
314
+ "deno": "1",
315
+ "ios": "12",
316
+ "samsung": "9",
317
+ "rhino": "1.7.14",
318
+ "opera_mobile": "47",
319
+ "electron": "3.0"
320
+ },
321
+ "transform-optional-catch-binding": {
322
+ "chrome": "66",
323
+ "opera": "53",
324
+ "edge": "79",
325
+ "firefox": "58",
326
+ "safari": "11.1",
327
+ "node": "10",
328
+ "deno": "1",
329
+ "ios": "11.3",
330
+ "samsung": "9",
331
+ "opera_mobile": "47",
332
+ "electron": "3.0"
333
+ },
334
+ "proposal-optional-catch-binding": {
335
+ "chrome": "66",
336
+ "opera": "53",
337
+ "edge": "79",
338
+ "firefox": "58",
339
+ "safari": "11.1",
340
+ "node": "10",
341
+ "deno": "1",
342
+ "ios": "11.3",
343
+ "samsung": "9",
344
+ "opera_mobile": "47",
345
+ "electron": "3.0"
346
+ },
347
+ "transform-parameters": {
348
+ "chrome": "49",
349
+ "opera": "36",
350
+ "edge": "18",
351
+ "firefox": "52",
352
+ "safari": "16.3",
353
+ "node": "6",
354
+ "deno": "1",
355
+ "ios": "16.3",
356
+ "samsung": "5",
357
+ "opera_mobile": "36",
358
+ "electron": "0.37"
359
+ },
360
+ "transform-async-generator-functions": {
361
+ "chrome": "63",
362
+ "opera": "50",
363
+ "edge": "79",
364
+ "firefox": "57",
365
+ "safari": "12",
366
+ "node": "10",
367
+ "deno": "1",
368
+ "ios": "12",
369
+ "samsung": "8",
370
+ "opera_mobile": "46",
371
+ "electron": "3.0"
372
+ },
373
+ "proposal-async-generator-functions": {
374
+ "chrome": "63",
375
+ "opera": "50",
376
+ "edge": "79",
377
+ "firefox": "57",
378
+ "safari": "12",
379
+ "node": "10",
380
+ "deno": "1",
381
+ "ios": "12",
382
+ "samsung": "8",
383
+ "opera_mobile": "46",
384
+ "electron": "3.0"
385
+ },
386
+ "transform-object-rest-spread": {
387
+ "chrome": "60",
388
+ "opera": "47",
389
+ "edge": "79",
390
+ "firefox": "55",
391
+ "safari": "11.1",
392
+ "node": "8.3",
393
+ "deno": "1",
394
+ "ios": "11.3",
395
+ "samsung": "8",
396
+ "opera_mobile": "44",
397
+ "electron": "2.0"
398
+ },
399
+ "proposal-object-rest-spread": {
400
+ "chrome": "60",
401
+ "opera": "47",
402
+ "edge": "79",
403
+ "firefox": "55",
404
+ "safari": "11.1",
405
+ "node": "8.3",
406
+ "deno": "1",
407
+ "ios": "11.3",
408
+ "samsung": "8",
409
+ "opera_mobile": "44",
410
+ "electron": "2.0"
411
+ },
412
+ "transform-dotall-regex": {
413
+ "chrome": "62",
414
+ "opera": "49",
415
+ "edge": "79",
416
+ "firefox": "78",
417
+ "safari": "11.1",
418
+ "node": "8.10",
419
+ "deno": "1",
420
+ "ios": "11.3",
421
+ "samsung": "8",
422
+ "rhino": "1.7.15",
423
+ "opera_mobile": "46",
424
+ "electron": "3.0"
425
+ },
426
+ "transform-unicode-property-regex": {
427
+ "chrome": "64",
428
+ "opera": "51",
429
+ "edge": "79",
430
+ "firefox": "78",
431
+ "safari": "11.1",
432
+ "node": "10",
433
+ "deno": "1",
434
+ "ios": "11.3",
435
+ "samsung": "9",
436
+ "rhino": "1.9",
437
+ "opera_mobile": "47",
438
+ "electron": "3.0"
439
+ },
440
+ "proposal-unicode-property-regex": {
441
+ "chrome": "64",
442
+ "opera": "51",
443
+ "edge": "79",
444
+ "firefox": "78",
445
+ "safari": "11.1",
446
+ "node": "10",
447
+ "deno": "1",
448
+ "ios": "11.3",
449
+ "samsung": "9",
450
+ "rhino": "1.9",
451
+ "opera_mobile": "47",
452
+ "electron": "3.0"
453
+ },
454
+ "transform-named-capturing-groups-regex": {
455
+ "chrome": "64",
456
+ "opera": "51",
457
+ "edge": "79",
458
+ "firefox": "78",
459
+ "safari": "11.1",
460
+ "node": "10",
461
+ "deno": "1",
462
+ "ios": "11.3",
463
+ "samsung": "9",
464
+ "rhino": "1.9",
465
+ "opera_mobile": "47",
466
+ "electron": "3.0"
467
+ },
468
+ "transform-async-to-generator": {
469
+ "chrome": "55",
470
+ "opera": "42",
471
+ "edge": "15",
472
+ "firefox": "52",
473
+ "safari": "11",
474
+ "node": "7.6",
475
+ "deno": "1",
476
+ "ios": "11",
477
+ "samsung": "6",
478
+ "opera_mobile": "42",
479
+ "electron": "1.6"
480
+ },
481
+ "transform-exponentiation-operator": {
482
+ "chrome": "52",
483
+ "opera": "39",
484
+ "edge": "14",
485
+ "firefox": "52",
486
+ "safari": "10.1",
487
+ "node": "7",
488
+ "deno": "1",
489
+ "ios": "10.3",
490
+ "samsung": "6",
491
+ "rhino": "1.7.14",
492
+ "opera_mobile": "41",
493
+ "electron": "1.3"
494
+ },
495
+ "transform-template-literals": {
496
+ "chrome": "41",
497
+ "opera": "28",
498
+ "edge": "13",
499
+ "firefox": "34",
500
+ "safari": "13",
501
+ "node": "4",
502
+ "deno": "1",
503
+ "ios": "13",
504
+ "samsung": "3.4",
505
+ "rhino": "1.9",
506
+ "opera_mobile": "28",
507
+ "electron": "0.21"
508
+ },
509
+ "transform-literals": {
510
+ "chrome": "44",
511
+ "opera": "31",
512
+ "edge": "12",
513
+ "firefox": "53",
514
+ "safari": "9",
515
+ "node": "4",
516
+ "deno": "1",
517
+ "ios": "9",
518
+ "samsung": "4",
519
+ "rhino": "1.7.15",
520
+ "opera_mobile": "32",
521
+ "electron": "0.30"
522
+ },
523
+ "transform-function-name": {
524
+ "chrome": "51",
525
+ "opera": "38",
526
+ "edge": "79",
527
+ "firefox": "53",
528
+ "safari": "10",
529
+ "node": "6.5",
530
+ "deno": "1",
531
+ "ios": "10",
532
+ "samsung": "5",
533
+ "opera_mobile": "41",
534
+ "electron": "1.2"
535
+ },
536
+ "transform-arrow-functions": {
537
+ "chrome": "47",
538
+ "opera": "34",
539
+ "edge": "13",
540
+ "firefox": "43",
541
+ "safari": "10",
542
+ "node": "6",
543
+ "deno": "1",
544
+ "ios": "10",
545
+ "samsung": "5",
546
+ "rhino": "1.7.13",
547
+ "opera_mobile": "34",
548
+ "electron": "0.36"
549
+ },
550
+ "transform-block-scoped-functions": {
551
+ "chrome": "41",
552
+ "opera": "28",
553
+ "edge": "12",
554
+ "firefox": "46",
555
+ "safari": "10",
556
+ "node": "4",
557
+ "deno": "1",
558
+ "ie": "11",
559
+ "ios": "10",
560
+ "samsung": "3.4",
561
+ "opera_mobile": "28",
562
+ "electron": "0.21"
563
+ },
564
+ "transform-classes": {
565
+ "chrome": "46",
566
+ "opera": "33",
567
+ "edge": "13",
568
+ "firefox": "45",
569
+ "safari": "10",
570
+ "node": "5",
571
+ "deno": "1",
572
+ "ios": "10",
573
+ "samsung": "5",
574
+ "opera_mobile": "33",
575
+ "electron": "0.36"
576
+ },
577
+ "transform-object-super": {
578
+ "chrome": "46",
579
+ "opera": "33",
580
+ "edge": "13",
581
+ "firefox": "45",
582
+ "safari": "10",
583
+ "node": "5",
584
+ "deno": "1",
585
+ "ios": "10",
586
+ "samsung": "5",
587
+ "opera_mobile": "33",
588
+ "electron": "0.36"
589
+ },
590
+ "transform-shorthand-properties": {
591
+ "chrome": "43",
592
+ "opera": "30",
593
+ "edge": "12",
594
+ "firefox": "33",
595
+ "safari": "9",
596
+ "node": "4",
597
+ "deno": "1",
598
+ "ios": "9",
599
+ "samsung": "4",
600
+ "rhino": "1.7.14",
601
+ "opera_mobile": "30",
602
+ "electron": "0.27"
603
+ },
604
+ "transform-duplicate-keys": {
605
+ "chrome": "42",
606
+ "opera": "29",
607
+ "edge": "12",
608
+ "firefox": "34",
609
+ "safari": "9",
610
+ "node": "4",
611
+ "deno": "1",
612
+ "ios": "9",
613
+ "samsung": "3.4",
614
+ "opera_mobile": "29",
615
+ "electron": "0.25"
616
+ },
617
+ "transform-computed-properties": {
618
+ "chrome": "44",
619
+ "opera": "31",
620
+ "edge": "12",
621
+ "firefox": "34",
622
+ "safari": "7.1",
623
+ "node": "4",
624
+ "deno": "1",
625
+ "ios": "8",
626
+ "samsung": "4",
627
+ "rhino": "1.8",
628
+ "opera_mobile": "32",
629
+ "electron": "0.30"
630
+ },
631
+ "transform-for-of": {
632
+ "chrome": "51",
633
+ "opera": "38",
634
+ "edge": "15",
635
+ "firefox": "53",
636
+ "safari": "10",
637
+ "node": "6.5",
638
+ "deno": "1",
639
+ "ios": "10",
640
+ "samsung": "5",
641
+ "opera_mobile": "41",
642
+ "electron": "1.2"
643
+ },
644
+ "transform-sticky-regex": {
645
+ "chrome": "49",
646
+ "opera": "36",
647
+ "edge": "13",
648
+ "firefox": "3",
649
+ "safari": "10",
650
+ "node": "6",
651
+ "deno": "1",
652
+ "ios": "10",
653
+ "samsung": "5",
654
+ "rhino": "1.7.15",
655
+ "opera_mobile": "36",
656
+ "electron": "0.37"
657
+ },
658
+ "transform-unicode-escapes": {
659
+ "chrome": "44",
660
+ "opera": "31",
661
+ "edge": "12",
662
+ "firefox": "53",
663
+ "safari": "9",
664
+ "node": "4",
665
+ "deno": "1",
666
+ "ios": "9",
667
+ "samsung": "4",
668
+ "rhino": "1.7.15",
669
+ "opera_mobile": "32",
670
+ "electron": "0.30"
671
+ },
672
+ "transform-unicode-regex": {
673
+ "chrome": "50",
674
+ "opera": "37",
675
+ "edge": "13",
676
+ "firefox": "46",
677
+ "safari": "12",
678
+ "node": "6",
679
+ "deno": "1",
680
+ "ios": "12",
681
+ "samsung": "5",
682
+ "opera_mobile": "37",
683
+ "electron": "1.1"
684
+ },
685
+ "transform-spread": {
686
+ "chrome": "46",
687
+ "opera": "33",
688
+ "edge": "13",
689
+ "firefox": "45",
690
+ "safari": "10",
691
+ "node": "5",
692
+ "deno": "1",
693
+ "ios": "10",
694
+ "samsung": "5",
695
+ "opera_mobile": "33",
696
+ "electron": "0.36"
697
+ },
698
+ "transform-destructuring": {
699
+ "chrome": "51",
700
+ "opera": "38",
701
+ "edge": "15",
702
+ "firefox": "53",
703
+ "safari": "14.1",
704
+ "node": "6.5",
705
+ "deno": "1",
706
+ "ios": "14.5",
707
+ "samsung": "5",
708
+ "opera_mobile": "41",
709
+ "electron": "1.2"
710
+ },
711
+ "transform-block-scoping": {
712
+ "chrome": "50",
713
+ "opera": "37",
714
+ "edge": "14",
715
+ "firefox": "53",
716
+ "safari": "11",
717
+ "node": "6",
718
+ "deno": "1",
719
+ "ios": "11",
720
+ "samsung": "5",
721
+ "opera_mobile": "37",
722
+ "electron": "1.1"
723
+ },
724
+ "transform-typeof-symbol": {
725
+ "chrome": "48",
726
+ "opera": "35",
727
+ "edge": "12",
728
+ "firefox": "36",
729
+ "safari": "9",
730
+ "node": "6",
731
+ "deno": "1",
732
+ "ios": "9",
733
+ "samsung": "5",
734
+ "rhino": "1.8",
735
+ "opera_mobile": "35",
736
+ "electron": "0.37"
737
+ },
738
+ "transform-new-target": {
739
+ "chrome": "46",
740
+ "opera": "33",
741
+ "edge": "14",
742
+ "firefox": "41",
743
+ "safari": "10",
744
+ "node": "5",
745
+ "deno": "1",
746
+ "ios": "10",
747
+ "samsung": "5",
748
+ "opera_mobile": "33",
749
+ "electron": "0.36"
750
+ },
751
+ "transform-regenerator": {
752
+ "chrome": "50",
753
+ "opera": "37",
754
+ "edge": "13",
755
+ "firefox": "53",
756
+ "safari": "10",
757
+ "node": "6",
758
+ "deno": "1",
759
+ "ios": "10",
760
+ "samsung": "5",
761
+ "opera_mobile": "37",
762
+ "electron": "1.1"
763
+ },
764
+ "transform-member-expression-literals": {
765
+ "chrome": "7",
766
+ "opera": "12",
767
+ "edge": "12",
768
+ "firefox": "2",
769
+ "safari": "5.1",
770
+ "node": "0.4",
771
+ "deno": "1",
772
+ "ie": "9",
773
+ "android": "4",
774
+ "ios": "6",
775
+ "phantom": "1.9",
776
+ "samsung": "1",
777
+ "rhino": "1.7.13",
778
+ "opera_mobile": "12",
779
+ "electron": "0.20"
780
+ },
781
+ "transform-property-literals": {
782
+ "chrome": "7",
783
+ "opera": "12",
784
+ "edge": "12",
785
+ "firefox": "2",
786
+ "safari": "5.1",
787
+ "node": "0.4",
788
+ "deno": "1",
789
+ "ie": "9",
790
+ "android": "4",
791
+ "ios": "6",
792
+ "phantom": "1.9",
793
+ "samsung": "1",
794
+ "rhino": "1.7.13",
795
+ "opera_mobile": "12",
796
+ "electron": "0.20"
797
+ },
798
+ "transform-reserved-words": {
799
+ "chrome": "13",
800
+ "opera": "10.50",
801
+ "edge": "12",
802
+ "firefox": "2",
803
+ "safari": "3.1",
804
+ "node": "0.6",
805
+ "deno": "1",
806
+ "ie": "9",
807
+ "android": "4.4",
808
+ "ios": "6",
809
+ "phantom": "1.9",
810
+ "samsung": "1",
811
+ "rhino": "1.7.13",
812
+ "opera_mobile": "10.1",
813
+ "electron": "0.20"
814
+ },
815
+ "transform-export-namespace-from": {
816
+ "chrome": "72",
817
+ "deno": "1.0",
818
+ "edge": "79",
819
+ "firefox": "80",
820
+ "node": "13.2.0",
821
+ "opera": "60",
822
+ "opera_mobile": "51",
823
+ "safari": "14.1",
824
+ "ios": "14.5",
825
+ "samsung": "11.0",
826
+ "android": "72",
827
+ "electron": "5.0"
828
+ },
829
+ "proposal-export-namespace-from": {
830
+ "chrome": "72",
831
+ "deno": "1.0",
832
+ "edge": "79",
833
+ "firefox": "80",
834
+ "node": "13.2.0",
835
+ "opera": "60",
836
+ "opera_mobile": "51",
837
+ "safari": "14.1",
838
+ "ios": "14.5",
839
+ "samsung": "11.0",
840
+ "android": "72",
841
+ "electron": "5.0"
842
+ }
843
+ }
frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/native-modules.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ // Todo (Babel 8): remove this file, in Babel 8 users import the .json directly
2
+ module.exports = require("./data/native-modules.json");
frontend/node_modules/.pnpm/@babel+compat-data@7.29.7/node_modules/@babel/compat-data/overlapping-plugins.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ // Todo (Babel 8): remove this file, in Babel 8 users import the .json directly
2
+ module.exports = require("./data/overlapping-plugins.json");