shivareddy-03 commited on
Commit
cba2c8f
·
verified ·
1 Parent(s): 3b0537a

Upload 1109 files

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +4 -0
  2. Image_topdf.py +23 -0
  3. VL_output_to_json.py +354 -0
  4. app.py +227 -0
  5. engine.py +149 -0
  6. frequency.py +187 -0
  7. json_to_pdf.py +128 -0
  8. main.py +154 -0
  9. my-vue-app/.gitignore +24 -0
  10. my-vue-app/.vscode/extensions.json +3 -0
  11. my-vue-app/README.md +5 -0
  12. my-vue-app/index.html +11 -0
  13. my-vue-app/node_modules/.bin/esbuild +3 -0
  14. my-vue-app/node_modules/.bin/esbuild.cmd +3 -0
  15. my-vue-app/node_modules/.bin/esbuild.ps1 +3 -0
  16. my-vue-app/node_modules/.bin/nanoid +3 -0
  17. my-vue-app/node_modules/.bin/nanoid.cmd +3 -0
  18. my-vue-app/node_modules/.bin/nanoid.ps1 +3 -0
  19. my-vue-app/node_modules/.bin/parser +3 -0
  20. my-vue-app/node_modules/.bin/parser.cmd +3 -0
  21. my-vue-app/node_modules/.bin/parser.ps1 +3 -0
  22. my-vue-app/node_modules/.bin/rollup +3 -0
  23. my-vue-app/node_modules/.bin/rollup.cmd +3 -0
  24. my-vue-app/node_modules/.bin/rollup.ps1 +3 -0
  25. my-vue-app/node_modules/.bin/vite +3 -0
  26. my-vue-app/node_modules/.bin/vite.cmd +3 -0
  27. my-vue-app/node_modules/.bin/vite.ps1 +3 -0
  28. my-vue-app/node_modules/.package-lock.json +764 -0
  29. my-vue-app/node_modules/.vite/deps/_metadata.json +25 -0
  30. my-vue-app/node_modules/.vite/deps/axios.js +2629 -0
  31. my-vue-app/node_modules/.vite/deps/axios.js.map +0 -0
  32. my-vue-app/node_modules/.vite/deps/chunk-PZ5AY32C.js +10 -0
  33. my-vue-app/node_modules/.vite/deps/chunk-PZ5AY32C.js.map +7 -0
  34. my-vue-app/node_modules/.vite/deps/package.json +3 -0
  35. my-vue-app/node_modules/.vite/deps/vue.js +0 -0
  36. my-vue-app/node_modules/.vite/deps/vue.js.map +0 -0
  37. my-vue-app/node_modules/@babel/helper-string-parser/LICENSE +22 -0
  38. my-vue-app/node_modules/@babel/helper-string-parser/README.md +19 -0
  39. my-vue-app/node_modules/@babel/helper-string-parser/lib/index.js +295 -0
  40. my-vue-app/node_modules/@babel/helper-string-parser/lib/index.js.map +1 -0
  41. my-vue-app/node_modules/@babel/helper-string-parser/package.json +31 -0
  42. my-vue-app/node_modules/@babel/helper-validator-identifier/LICENSE +22 -0
  43. my-vue-app/node_modules/@babel/helper-validator-identifier/README.md +19 -0
  44. my-vue-app/node_modules/@babel/helper-validator-identifier/lib/identifier.js +70 -0
  45. my-vue-app/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map +1 -0
  46. my-vue-app/node_modules/@babel/helper-validator-identifier/lib/index.js +57 -0
  47. my-vue-app/node_modules/@babel/helper-validator-identifier/lib/index.js.map +1 -0
  48. my-vue-app/node_modules/@babel/helper-validator-identifier/lib/keyword.js +35 -0
  49. my-vue-app/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map +1 -0
  50. my-vue-app/node_modules/@babel/helper-validator-identifier/package.json +31 -0
.gitattributes CHANGED
@@ -33,3 +33,7 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ my-vue-app/node_modules/@esbuild/win32-x64/esbuild.exe filter=lfs diff=lfs merge=lfs -text
37
+ my-vue-app/node_modules/@rollup/rollup-win32-x64-gnu/rollup.win32-x64-gnu.node filter=lfs diff=lfs merge=lfs -text
38
+ my-vue-app/node_modules/@rollup/rollup-win32-x64-msvc/rollup.win32-x64-msvc.node filter=lfs diff=lfs merge=lfs -text
39
+ my-vue-app/public/bg.mp4 filter=lfs diff=lfs merge=lfs -text
Image_topdf.py ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from PIL import Image
2
+ from io import BytesIO
3
+ from pathlib import Path
4
+
5
+ def images_to_pdf(files, output_pdf_path: Path):
6
+ images = []
7
+
8
+ for file in files:
9
+ # FastAPI UploadFile → bytes → PIL Image
10
+ file_bytes = file.file.read()
11
+ img = Image.open(BytesIO(file_bytes)).convert("RGB")
12
+ images.append(img)
13
+
14
+ if not images:
15
+ raise ValueError("No valid images provided")
16
+
17
+ images[0].save(
18
+ output_pdf_path,
19
+ save_all=True,
20
+ append_images=images[1:]
21
+ )
22
+
23
+ return str(output_pdf_path)
VL_output_to_json.py ADDED
@@ -0,0 +1,354 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # import json
2
+ # from pathlib import Path
3
+ # from groq import Groq
4
+
5
+ # # Initialize Groq client (make sure env var GROQ_API_KEY is set)
6
+ # client = Groq(api_key="YOUR_GROQ_API_KEY_HERE")
7
+
8
+ # # Load your Markdown file
9
+
10
+ # md_file_path = Path(r"output1\final_document.md")
11
+ # exam_text = md_file_path.read_text(encoding="utf-8")
12
+
13
+ # def extract_questions_with_groq(text: str):
14
+ # prompt = f"""
15
+ # You are an expert assistant. Extract all exam questions from the following Markdown/HTML content.
16
+
17
+ # IMPORTANT:
18
+ # - ONLY return valid JSON. DO NOT write any explanations or extra text.
19
+ # - JSON structure:
20
+
21
+ # {{
22
+ # "subject": "...",
23
+ # "PART_A": [
24
+ # {{
25
+ # "qno": "...",
26
+ # "question": "...",
27
+ # "image": null
28
+ # }}
29
+ # ],
30
+ # "PART_B": [
31
+ # {{
32
+ # "qno": "...",
33
+ # "subquestions": [
34
+ # {{
35
+ # "subq": "...",
36
+ # "question": "...",
37
+ # "image": null
38
+ # }}
39
+ # ]
40
+ # }}
41
+ # ]
42
+ # }}
43
+
44
+ # Rules:
45
+ # - Extract subject name if present.
46
+ # - PART_A: exactly 10 items (1a–1j)
47
+ # - PART_B: 5 main questions with 4 subquestions each (a–d)
48
+ # - Attach <img src="..."> links to "image" if present, else null
49
+ # - RETURN ONLY JSON, no markdown, no explanations.
50
+ # CRITICAL CLEANING RULES:
51
+ # - REMOVE and DO NOT include ANY assessment or evaluation metadata in question text.
52
+ # - This includes (but is not limited to):
53
+ # - Course Outcomes (CO1, CO2, CO3, etc.)
54
+ # - Bloom levels (L1, L2, L3, etc.)
55
+ # - Marks / scores (2M, 5M, 10M, 5 Marks, etc.)
56
+ # - Any combinations like "CO2 L3 5M", "CO3-L2", "CO4/L3"
57
+ # - These are NOT part of the question.
58
+ # - Do NOT move them to another field.
59
+ # - Do NOT mention them anywhere in the output.
60
+ # - The question text must contain ONLY the academic question.
61
+
62
+
63
+ # Markdown/HTML content:
64
+ # {text}
65
+ # """
66
+
67
+
68
+ # response = client.chat.completions.create(
69
+ # messages=[{"role": "user", "content": prompt}],
70
+ # model="openai/gpt-oss-20b", # Groq-compatible chat model
71
+ # max_tokens=12000, # recommended instead of max_output_tokens
72
+ # temperature=0
73
+ # )
74
+
75
+ # # Extract JSON text from the response
76
+ # json_text = response.choices[0].message.content
77
+
78
+ # try:
79
+ # data = json.loads(json_text)
80
+ # except json.JSONDecodeError:
81
+ # print("❌ JSON parse error — raw output:")
82
+ # print(json_text)
83
+ # return None
84
+
85
+ # return data
86
+
87
+
88
+ # import re
89
+ # from bs4 import BeautifulSoup
90
+
91
+ # def normalize_exam_md(md_text: str):
92
+ # soup = BeautifulSoup(md_text, "html.parser")
93
+ # current_qno = None
94
+
95
+ # for tr in soup.find_all("tr"):
96
+ # tds = tr.find_all("td")
97
+ # texts = [td.get_text(strip=True) for td in tds]
98
+
99
+ # # Detect main question number like "3."
100
+ # for t in texts:
101
+ # if re.fullmatch(r"\d+\.", t):
102
+ # current_qno = t[:-1] # "3."
103
+ # break
104
+
105
+ # has_subq = any(re.fullmatch(r"[a-d]\)", t) for t in texts)
106
+ # has_main_q = any(re.fullmatch(r"\d+\.", t) for t in texts)
107
+
108
+ # if has_subq and not has_main_q and current_qno:
109
+ # new_td = soup.new_tag("td")
110
+ # new_td.string = f"{current_qno}."
111
+ # tr.insert(0, new_td)
112
+
113
+ # return str(soup), current_qno
114
+
115
+
116
+ # import re
117
+
118
+ # def inject_orphan_subquestions(md_text: str) -> str:
119
+ # """
120
+ # Attach orphaned c), d) style questions to the last seen main question.
121
+ # """
122
+ # lines = md_text.splitlines()
123
+ # output = []
124
+ # current_qno = None
125
+
126
+ # qno_pattern = re.compile(r"^\s*(\d+)\.\s*")
127
+ # subq_pattern = re.compile(r"^\s*([a-d])\)\s*(.+)")
128
+
129
+ # for line in lines:
130
+ # # Detect main question number
131
+ # qno_match = qno_pattern.match(line)
132
+ # if qno_match:
133
+ # current_qno = qno_match.group(1)
134
+
135
+ # subq_match = subq_pattern.match(line)
136
+
137
+ # if subq_match and current_qno:
138
+ # subq, text = subq_match.groups()
139
+ # # Convert to pseudo-table format so LLM understands
140
+ # line = f"{current_qno}. {subq}) {text}"
141
+
142
+ # output.append(line)
143
+
144
+ # return "\n".join(output)
145
+
146
+ # import re
147
+
148
+ # def inject_plain_text_subquestions(text: str, inherited_qno=None):
149
+ # lines = text.splitlines()
150
+ # output = []
151
+
152
+ # current_qno = inherited_qno
153
+ # qno_pattern = re.compile(r"^\s*(\d+)\.\s*")
154
+ # subq_pattern = re.compile(r"^\s*([a-d])\)\s*(.+)")
155
+
156
+ # for line in lines:
157
+ # q_match = qno_pattern.match(line)
158
+ # if q_match:
159
+ # current_qno = q_match.group(1)
160
+ # output.append(line)
161
+ # continue
162
+
163
+ # s_match = subq_pattern.match(line)
164
+ # if s_match and current_qno:
165
+ # subq, content = s_match.groups()
166
+ # line = f"{current_qno}. {subq}) {content}"
167
+
168
+ # output.append(line)
169
+
170
+ # return "\n".join(output)
171
+
172
+
173
+
174
+ # # Run extraction
175
+ # raw_text = md_file_path.read_text(encoding="utf-8")
176
+ # normalized_html, last_qno = normalize_exam_md(raw_text)
177
+ # final_text = inject_plain_text_subquestions(normalized_html, last_qno)
178
+
179
+ # questions_json = extract_questions_with_groq(final_text)
180
+
181
+
182
+ # # Save output
183
+ # if questions_json:
184
+ # out_file = Path(r"C:\Users\shiva\OneDrive\Desktop\mini 2.0\injection1.json")
185
+ # with out_file.open("w", encoding="utf-8") as f:
186
+ # json.dump(questions_json, f, indent=2)
187
+ # print(f"✅ Questions JSON saved: {out_file}")
188
+ # else:
189
+ # print("⚠ Extraction failed.")
190
+
191
+
192
+
193
+ import json
194
+ import re
195
+ from pathlib import Path
196
+ from groq import Groq
197
+ from bs4 import BeautifulSoup
198
+
199
+
200
+ # -------------------------------
201
+ # Groq Client Factory
202
+ # -------------------------------
203
+ def create_groq_client(api_key: str) -> Groq:
204
+ return Groq(api_key=api_key)
205
+
206
+
207
+ # -------------------------------
208
+ # Normalize HTML tables
209
+ # -------------------------------
210
+ def normalize_exam_md(md_text: str):
211
+ soup = BeautifulSoup(md_text, "html.parser")
212
+ current_qno = None
213
+
214
+ for tr in soup.find_all("tr"):
215
+ tds = tr.find_all("td")
216
+ texts = [td.get_text(strip=True) for td in tds]
217
+
218
+ for t in texts:
219
+ if re.fullmatch(r"\d+\.", t):
220
+ current_qno = t[:-1]
221
+ break
222
+
223
+ has_subq = any(re.fullmatch(r"[a-d]\)", t) for t in texts)
224
+ has_main_q = any(re.fullmatch(r"\d+\.", t) for t in texts)
225
+
226
+ if has_subq and not has_main_q and current_qno:
227
+ new_td = soup.new_tag("td")
228
+ new_td.string = f"{current_qno}."
229
+ tr.insert(0, new_td)
230
+
231
+ return str(soup), current_qno
232
+
233
+
234
+ # -------------------------------
235
+ # Inject orphan subquestions
236
+ # -------------------------------
237
+ def inject_plain_text_subquestions(text: str, inherited_qno=None):
238
+ lines = text.splitlines()
239
+ output = []
240
+
241
+ current_qno = inherited_qno
242
+ qno_pattern = re.compile(r"^\s*(\d+)\.\s*")
243
+ subq_pattern = re.compile(r"^\s*([a-d])\)\s*(.+)")
244
+
245
+ for line in lines:
246
+ q_match = qno_pattern.match(line)
247
+ if q_match:
248
+ current_qno = q_match.group(1)
249
+ output.append(line)
250
+ continue
251
+
252
+ s_match = subq_pattern.match(line)
253
+ if s_match and current_qno:
254
+ subq, content = s_match.groups()
255
+ line = f"{current_qno}. {subq}) {content}"
256
+
257
+ output.append(line)
258
+
259
+ return "\n".join(output)
260
+
261
+
262
+ # -------------------------------
263
+ # Groq Extraction
264
+ # -------------------------------
265
+ def extract_questions_with_groq(
266
+ client: Groq,
267
+ text: str,
268
+ model: str = "openai/gpt-oss-20b"
269
+ ):
270
+ prompt = f"""
271
+ You are an expert assistant. Extract all exam questions from the following Markdown/HTML content.
272
+
273
+ IMPORTANT:
274
+ - ONLY return valid JSON. DO NOT write any explanations or extra text.
275
+ - JSON structure:
276
+
277
+ {{
278
+ "subject": "...",
279
+ "PART_A": [
280
+ {{
281
+ "qno": "...",
282
+ "question": "...",
283
+ "image": null
284
+ }}
285
+ ],
286
+ "PART_B": [
287
+ {{
288
+ "qno": "...",
289
+ "subquestions": [
290
+ {{
291
+ "subq": "...",
292
+ "question": "...",
293
+ "image": null
294
+ }}
295
+ ]
296
+ }}
297
+ ]
298
+ }}
299
+
300
+ Rules:
301
+ - Extract subject name if present
302
+ - PART_A: exactly 10 items (1a–1j)
303
+ - PART_B: 5 main questions with 4 subquestions each (a–d)
304
+ - Attach <img src="..."> links to "image" if present, else null
305
+ - REMOVE CO, Bloom levels, Marks completely
306
+
307
+ Markdown/HTML content:
308
+ {text}
309
+ """
310
+
311
+ response = client.chat.completions.create(
312
+ messages=[{"role": "user", "content": prompt}],
313
+ model=model,
314
+ temperature=0,
315
+ max_tokens=20000
316
+ )
317
+
318
+ raw = response.choices[0].message.content
319
+
320
+ try:
321
+ return json.loads(raw)
322
+ except json.JSONDecodeError:
323
+ print("❌ JSON parse failed")
324
+ print(raw)
325
+ return None
326
+
327
+
328
+ # -------------------------------
329
+ # 🚀 SINGLE ENTRY FUNCTION
330
+ # -------------------------------
331
+ def extract_exam_questions(
332
+ md_file_path: str,
333
+ api_key: str,
334
+ output_json_path: str = None
335
+ ):
336
+ client = create_groq_client(api_key)
337
+
338
+ raw_text = Path(md_file_path).read_text(encoding="utf-8")
339
+
340
+ normalized_html, last_qno = normalize_exam_md(raw_text)
341
+ final_text = inject_plain_text_subquestions(normalized_html, last_qno)
342
+
343
+ result = extract_questions_with_groq(client, final_text)
344
+
345
+ if result and output_json_path:
346
+ with open(output_json_path, "w", encoding="utf-8") as f:
347
+ json.dump(result, f, indent=2)
348
+
349
+ return result
350
+ # extract_exam_questions(
351
+ # md_file_path=r"C:\\Users\\shiva\\OneDrive\\Desktop\\mini 2.0\\vl_output_bro\\query_1\\final_document.md",
352
+ # api_key="YOUR_GROQ_API_KEY_HERE",
353
+ # output_json_path=r"C:\\Users\\shiva\\OneDrive\\Desktop\\mini 2.0\\injection1.json"
354
+ # )
app.py ADDED
@@ -0,0 +1,227 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from pathlib import Path
3
+ import requests
4
+
5
+ API_URL = "http://localhost:8000"
6
+
7
+ # ----------------------------------
8
+ # Setup folders (UI only)
9
+ # ----------------------------------
10
+ BASE_DIR = Path.cwd()
11
+ QUERY_DIR = BASE_DIR / "queries"
12
+ QUERY_DIR.mkdir(parents=True, exist_ok=True)
13
+
14
+ # ----------------------------------
15
+ # Session state init (CRITICAL FIX)
16
+ # ----------------------------------
17
+ if "saved_docs" not in st.session_state:
18
+ st.session_state.saved_docs = []
19
+
20
+ if "saved_once" not in st.session_state:
21
+ st.session_state.saved_once = set() # prevents duplicates
22
+
23
+ saved_docs = st.session_state.saved_docs
24
+
25
+ # ----------------------------------
26
+ # UI
27
+ # ----------------------------------
28
+ st.set_page_config(page_title="Exam Pipeline", layout="wide")
29
+ st.title("📘 Exam Question Processing Pipeline")
30
+
31
+ api_key = "your_groq_api_key_here" # Replace with your actual API key or use st.text_input to get from user
32
+
33
+ num_docs = st.number_input(
34
+ "Number of documents",
35
+ min_value=1,
36
+ step=1
37
+ )
38
+
39
+ # ----------------------------------
40
+ # Upload Section
41
+ # ----------------------------------
42
+ for i in range(num_docs):
43
+ st.subheader(f"Document {i+1}")
44
+
45
+ doc_type = st.radio(
46
+ "Input type",
47
+ ["Images", "PDF"],
48
+ key=f"type_{i}"
49
+ )
50
+
51
+ # -------- Images --------
52
+ if doc_type == "Images":
53
+ uploaded_images = st.file_uploader(
54
+ "Upload images",
55
+ type=["png", "jpg", "jpeg"],
56
+ accept_multiple_files=True,
57
+ key=f"img_{i}"
58
+ )
59
+
60
+ if uploaded_images and st.button(f"Save Images as PDF (Doc {i+1})"):
61
+ unique_key = f"img_{i}_{','.join(img.name for img in uploaded_images)}"
62
+
63
+ if unique_key not in st.session_state.saved_once:
64
+ res = requests.post(
65
+ f"{API_URL}/images-to-pdf",
66
+ files=[
67
+ ("files", (img.name, img.getvalue(), img.type))
68
+ for img in uploaded_images
69
+ ]
70
+ )
71
+
72
+ if res.status_code != 200:
73
+ st.error(res.text)
74
+ st.stop()
75
+
76
+ data = res.json()
77
+ if "error" in data:
78
+ st.error(data["error"])
79
+ st.stop()
80
+
81
+ pdf_path = data["path"]
82
+ saved_docs.append(pdf_path)
83
+ st.session_state.saved_once.add(unique_key)
84
+
85
+ st.success(f"Saved → {pdf_path}")
86
+ else:
87
+ st.info("Images already saved for this document.")
88
+
89
+ # -------- PDF --------
90
+ else:
91
+ uploaded_pdf = st.file_uploader(
92
+ "Upload PDF",
93
+ type=["pdf"],
94
+ key=f"pdf_{i}"
95
+ )
96
+
97
+ if uploaded_pdf:
98
+ unique_key = f"pdf_{i}_{uploaded_pdf.name}"
99
+
100
+ if unique_key not in st.session_state.saved_once:
101
+ res = requests.post(
102
+ f"{API_URL}/save-pdf",
103
+ files={
104
+ "file": (
105
+ uploaded_pdf.name,
106
+ uploaded_pdf.getvalue(),
107
+ "application/pdf"
108
+ )
109
+ }
110
+ )
111
+
112
+ if res.status_code != 200:
113
+ st.error(res.text)
114
+ st.stop()
115
+
116
+ data = res.json()
117
+ if "error" in data:
118
+ st.error(data["error"])
119
+ st.stop()
120
+
121
+ pdf_path = data["path"]
122
+ saved_docs.append(pdf_path)
123
+ st.session_state.saved_once.add(unique_key)
124
+
125
+ st.success(f"Saved → {pdf_path}")
126
+ else:
127
+ st.info("PDF already saved for this document.")
128
+
129
+ # ----------------------------------
130
+ # Run Pipeline
131
+ # ----------------------------------
132
+ import time
133
+ import time
134
+
135
+ if st.button("🚀 Run Full Pipeline"):
136
+
137
+ if not api_key:
138
+ st.error("❌ API key required")
139
+ st.stop()
140
+
141
+ if not saved_docs:
142
+ st.error("❌ Please upload images or PDFs first")
143
+ st.stop()
144
+
145
+ # ---------------- START PIPELINE ----------------
146
+ start_res = requests.post(
147
+ f"{API_URL}/run-pipeline",
148
+ params={"api_key": api_key},
149
+ json=saved_docs
150
+ )
151
+
152
+ if start_res.status_code != 200:
153
+ st.error(start_res.text)
154
+ st.stop()
155
+
156
+ start_data = start_res.json()
157
+ job_id = start_data.get("job_id")
158
+
159
+ if not job_id:
160
+ st.error("❌ Failed to start pipeline")
161
+ st.stop()
162
+
163
+ # ---------------- STATUS POLLING ----------------
164
+ st.subheader("🚀 Pipeline Progress")
165
+ status_box = st.empty()
166
+
167
+ final_result = None
168
+
169
+ while True:
170
+ status_res = requests.get(f"{API_URL}/job-status/{job_id}")
171
+
172
+ if status_res.status_code != 200:
173
+ st.error(status_res.text)
174
+ st.stop()
175
+
176
+ status_data = status_res.json()
177
+ status_text = status_data.get("status", "Unknown status")
178
+
179
+ status_box.info(status_text)
180
+
181
+ # ❌ error case
182
+ if status_text.startswith("❌"):
183
+ st.error(status_text)
184
+ st.stop()
185
+
186
+ # ✅ completed
187
+ if status_text == "✅ Completed":
188
+ final_result = status_data.get("result")
189
+ break
190
+
191
+ time.sleep(1)
192
+
193
+ # ---------------- FINAL OUTPUT ----------------
194
+ if not final_result:
195
+ st.error("Pipeline finished but no result returned")
196
+ st.stop()
197
+
198
+ st.success("✅ Pipeline completed successfully!")
199
+
200
+ final_pdf = final_result["final_pdf"]
201
+ freq_json = final_result["frequency_json"]
202
+
203
+ with open(final_pdf, "rb") as f:
204
+ st.download_button(
205
+ "📥 Download Final PDF",
206
+ f,
207
+ file_name="Exam_Frequency_Report.pdf"
208
+ )
209
+
210
+ with open(freq_json, "rb") as f:
211
+ st.download_button(
212
+ "📥 Download Frequency JSON",
213
+ f,
214
+ file_name="output_frequency.json"
215
+ )
216
+
217
+ # ----------------------------------
218
+ # Debug view (UNCHANGED)
219
+ # ----------------------------------
220
+ st.subheader("📂 PDFs available in queries/")
221
+ st.write([str(p) for p in QUERY_DIR.glob("*.pdf")])
222
+
223
+ st.subheader("📂 Recently Uploaded PDFs (This Session Only)")
224
+ if saved_docs:
225
+ st.write(saved_docs)
226
+ else:
227
+ st.info("No documents uploaded in this session.")
engine.py ADDED
@@ -0,0 +1,149 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # import base64
2
+ # import os
3
+ # import requests
4
+
5
+ # API_URL = "https://j103s9d2e4dccfoc.aistudio-app.com/layout-parsing"
6
+ # TOKEN = "3f77a7dbc0756fef96d9d6791f485b062106ef51"
7
+
8
+ # # file_path = r"C:\Users\shiva\OneDrive\Desktop\ip.pdf"
9
+
10
+ # # ---------- READ PDF ----------
11
+ # def VL_model(file_path: str):
12
+ # with open(file_path, "rb") as file:
13
+ # file_bytes = file.read()
14
+ # file_data = base64.b64encode(file_bytes).decode("ascii")
15
+
16
+ # headers = {
17
+ # "Authorization": f"token {TOKEN}",
18
+ # "Content-Type": "application/json"
19
+ # }
20
+
21
+ # payload = {
22
+ # "file": file_data,
23
+ # "fileType": 0,
24
+ # "useDocOrientationClassify": False,
25
+ # "useDocUnwarping": False,
26
+ # "useChartRecognition": False,
27
+ # }
28
+
29
+ # response = requests.post(API_URL, json=payload, headers=headers)
30
+ # assert response.status_code == 200
31
+
32
+ # result = response.json()["result"]
33
+
34
+ # # ---------- OUTPUT ----------
35
+ # output_dir = "img2"
36
+ # os.makedirs(output_dir, exist_ok=True)
37
+
38
+ # FINAL_MD_PATH = os.path.join(output_dir, "final_document.md")
39
+
40
+ # with open(FINAL_MD_PATH, "w", encoding="utf-8") as final_md:
41
+
42
+ # for i, res in enumerate(result["layoutParsingResults"]):
43
+
44
+ # # Page separator (VERY IMPORTANT for parsing later)
45
+ # final_md.write(f"\n\n---\n## PAGE {i+1}\n---\n\n")
46
+
47
+ # # Append markdown text
48
+ # final_md.write(res["markdown"]["text"])
49
+ # final_md.write("\n")
50
+
51
+ # # Save embedded images
52
+ # for img_path, img_url in res["markdown"]["images"].items():
53
+ # full_img_path = os.path.join(output_dir, img_path)
54
+ # os.makedirs(os.path.dirname(full_img_path), exist_ok=True)
55
+
56
+ # img_bytes = requests.get(img_url).content
57
+ # with open(full_img_path, "wb") as img_file:
58
+ # img_file.write(img_bytes)
59
+
60
+ # # Save detected layout images (figures, tables)
61
+ # for img_name, img_url in res["outputImages"].items():
62
+ # img_response = requests.get(img_url)
63
+ # if img_response.status_code == 200:
64
+ # filename = os.path.join(output_dir, f"{img_name}_page{i+1}.jpg")
65
+ # with open(filename, "wb") as f:
66
+ # f.write(img_response.content)
67
+
68
+ # print(f"✅ Single merged markdown saved at: {FINAL_MD_PATH}")
69
+ # return FINAL_MD_PATH
70
+ import base64
71
+ import os
72
+ import requests
73
+
74
+ API_URL = "https://j103s9d2e4dccfoc.aistudio-app.com/layout-parsing"
75
+
76
+ from dotenv import load_dotenv
77
+ load_dotenv()
78
+ TOKEN = os.getenv("TOKEN")
79
+
80
+ def VL_model(file_path: str, query_id: int):
81
+ # ---------- READ PDF ----------
82
+ with open(file_path, "rb") as file:
83
+ file_data = base64.b64encode(file.read()).decode("ascii")
84
+
85
+ headers = {
86
+ "Authorization": f"token {TOKEN}",
87
+ "Content-Type": "application/json"
88
+ }
89
+
90
+ payload = {
91
+ "file": file_data,
92
+ "fileType": 0,
93
+ "useDocOrientationClassify": False,
94
+ "useDocUnwarping": False,
95
+ "useChartRecognition": False,
96
+ }
97
+
98
+ response = requests.post(API_URL, json=payload, headers=headers)
99
+ response.raise_for_status()
100
+ result = response.json()["result"]
101
+
102
+ # ---------- OUTPUT STRUCTURE ----------
103
+ BASE_DIR = "vl_output_bro"
104
+ IMG_DIR = os.path.join(BASE_DIR, "imgs")
105
+ QUERY_DIR = os.path.join(BASE_DIR, f"query_{query_id}")
106
+
107
+ os.makedirs(IMG_DIR, exist_ok=True)
108
+ os.makedirs(QUERY_DIR, exist_ok=True)
109
+
110
+ FINAL_MD_PATH = os.path.join(QUERY_DIR, "final_document.md")
111
+
112
+ with open(FINAL_MD_PATH, "w", encoding="utf-8") as final_md:
113
+
114
+ for page_no, res in enumerate(result["layoutParsingResults"], start=1):
115
+
116
+ # ---------- PAGE HEADER ----------
117
+ final_md.write(f"\n\n---\n## PAGE {page_no}\n---\n\n")
118
+ final_md.write(res["markdown"]["text"])
119
+ final_md.write("\n")
120
+
121
+ # ---------- EMBEDDED MARKDOWN IMAGES ----------
122
+ for img_path, img_url in res["markdown"]["images"].items():
123
+ # ✅ USE EXACT SAME IMAGE NAME AS HTML
124
+ img_name = os.path.basename(img_path)
125
+ img_file_path = os.path.join(IMG_DIR, img_name)
126
+
127
+ if not os.path.exists(img_file_path):
128
+ img_bytes = requests.get(img_url).content
129
+ with open(img_file_path, "wb") as img_file:
130
+ img_file.write(img_bytes)
131
+
132
+ # ✅ RELATIVE PATH FROM query_X → imgs
133
+ final_md.write(f"\n![img](../imgs/{img_name})\n")
134
+
135
+ # ---------- DETECTED LAYOUT IMAGES ----------
136
+ for img_name, img_url in res["outputImages"].items():
137
+ img_name = f"{img_name}.jpg"
138
+ img_file_path = os.path.join(IMG_DIR, img_name)
139
+
140
+ if not os.path.exists(img_file_path):
141
+ img_bytes = requests.get(img_url).content
142
+ with open(img_file_path, "wb") as f:
143
+ f.write(img_bytes)
144
+
145
+ print(f"✅ VL markdown saved at: {FINAL_MD_PATH}")
146
+ print(f"✅ Images saved in: {IMG_DIR}")
147
+ return FINAL_MD_PATH
148
+ # VL_model(file_path=r"C:\\Users\\shiva\\OneDrive\\Desktop\\mini 2.0\\queries\\1c835fef22ef433288d92f00f24f21aa_daa.pdf", query_id=1)
149
+
frequency.py ADDED
@@ -0,0 +1,187 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ from pathlib import Path
3
+ from sentence_transformers import SentenceTransformer, util
4
+ import re
5
+
6
+
7
+ # -----------------------------
8
+ # normalize subject name (for better grouping)
9
+ # -----------------------------
10
+
11
+ def normalize_subject(subject: str) -> str:
12
+ if not subject:
13
+ return ""
14
+ subject = subject.strip().lower()
15
+ subject = re.sub(r"\s+", " ", subject) # collapse spaces
16
+ subject = re.sub(r"[^\w\s]", "", subject) # remove symbols
17
+ return subject
18
+
19
+
20
+
21
+ # -----------------------------
22
+ # Load all questions from multiple JSONs
23
+ # -----------------------------
24
+ def load_all_questions(json_files):
25
+ part_a = []
26
+ part_b = []
27
+ subject = None
28
+ print("from all loaded question papers spliting into 3 parts subject, part a and part b")
29
+ for file in json_files:
30
+ data = json.loads(Path(file).read_text(encoding="utf-8"))
31
+ # subject = subject or data.get("subject")
32
+
33
+ # 🔐 SUBJECT NORMALIZATION & CHECK (ADD HERE)
34
+ # current_subject_raw = data.get("subject") or ""
35
+
36
+ # current_subject = normalize_subject(current_subject_raw)
37
+
38
+ # if subject is None:
39
+ # subject = current_subject
40
+ # display_subject = current_subject_raw.strip()
41
+ # elif subject != current_subject:
42
+ # raise ValueError(
43
+ # f"❌ Mixed subjects detected: '{subject}' vs '{current_subject}'"
44
+ # )
45
+ current_subject_raw = data.get("subject") or ""
46
+ current_subject = normalize_subject(current_subject_raw)
47
+
48
+ # If current JSON has no subject, ignore it
49
+ if not current_subject:
50
+ pass
51
+
52
+ # First valid subject wins
53
+ elif subject is None:
54
+ subject = current_subject
55
+ display_subject = current_subject_raw.strip()
56
+
57
+ # Conflict only if BOTH are non-empty and different
58
+ elif subject != current_subject:
59
+ raise ValueError(
60
+ f"❌ Mixed subjects detected: '{subject}' vs '{current_subject}'"
61
+ )
62
+ # PART A
63
+ for sq in data.get("PART_A", []):
64
+ question = sq.get("question")
65
+ # ✅ skip if None, empty, or not string
66
+ if not isinstance(question, str):
67
+ continue
68
+ question = question.strip()
69
+ if not question:
70
+ continue
71
+ part_a.append({
72
+ "text": question,
73
+ "images": [sq.get("image")] if sq.get("image") else []
74
+ })
75
+
76
+ # for q in data["PART_A"]:
77
+ # if not q["question"].strip():
78
+ # continue
79
+ # part_a.append({
80
+ # "text": q["question"].strip(),
81
+ # "images": [q["image"]] if q["image"] else []
82
+ # })
83
+
84
+ # PART B
85
+ for block in data["PART_B"]:
86
+ # for sq in block["subquestions"]:
87
+ # if not sq["question"].strip():
88
+ # continue
89
+ # part_b.append({
90
+ # "text": sq["question"].strip(),
91
+ # "images": [sq["image"]] if sq["image"] else []
92
+ # })
93
+ for sq in block.get("subquestions", []):
94
+ question = sq.get("question")
95
+ # ✅ skip if None, empty, or not string
96
+ if not isinstance(question, str):
97
+ continue
98
+ question = question.strip()
99
+ if not question:
100
+ continue
101
+ part_b.append({
102
+ "text": question,
103
+ "images": [sq.get("image")] if sq.get("image") else []
104
+ })
105
+
106
+ print("data splited into 3 parts subject, part a and part b successfully")
107
+ return subject, part_a, part_b
108
+
109
+
110
+ # -----------------------------
111
+ # Semantic clustering + frequency
112
+ # -----------------------------
113
+ def semantic_frequency(questions, threshold=0.70):
114
+ print("clustring started for part using all-mpnet-base-v2 model")
115
+ model = SentenceTransformer("all-mpnet-base-v2") #SentenceTransformer("all-MiniLM-L6-v2")
116
+ texts = [q["text"] for q in questions]
117
+ embeddings = model.encode(texts, convert_to_tensor=True, normalize_embeddings=True)
118
+
119
+ visited = set()
120
+ results = []
121
+
122
+ for i in range(len(texts)):
123
+ if i in visited:
124
+ continue
125
+
126
+ cluster = [i]
127
+ visited.add(i)
128
+
129
+ sims = util.cos_sim(embeddings[i], embeddings)[0]
130
+
131
+ for j in range(len(texts)):
132
+ if j not in visited and sims[j] >= threshold:
133
+ cluster.append(j)
134
+ visited.add(j)
135
+
136
+ # Representative question (NO rewriting)
137
+ rep_question = texts[cluster[0]]
138
+
139
+ # Merge all images
140
+ images = set()
141
+ for idx in cluster:
142
+ images.update(questions[idx]["images"])
143
+
144
+ results.append({
145
+ "question": rep_question,
146
+ "frequency": len(cluster),
147
+ "images": list(images) if images else None
148
+ })
149
+
150
+ return results
151
+
152
+
153
+ # -----------------------------
154
+ # Main runner
155
+ # -----------------------------
156
+ def run_semantic_frequency_multiple(input_jsons, output_json):
157
+ print("in semantic frequency multiple function")
158
+ subject, part_a, part_b = load_all_questions(input_jsons)
159
+
160
+ output = {
161
+ "subject": subject,
162
+ "PART_A": semantic_frequency(part_a),
163
+ "PART_B": semantic_frequency(part_b)
164
+ }
165
+ print("✅ Questions clustered and frequency calculated")
166
+ Path(output_json).write_text(
167
+ json.dumps(output, indent=2),
168
+ encoding="utf-8"
169
+ )
170
+
171
+ print("✅ Semantic Frequency Analysis Completed")
172
+ print(f"📄 Output saved at: {output_json}")
173
+ return output
174
+
175
+
176
+ # -----------------------------
177
+ # Entry point
178
+ # -----------------------------
179
+ # if __name__ == "__main__":
180
+ # INPUT_JSONS = [
181
+ # "vl_output_bro\\query_3\\final_document.json",
182
+ # "vl_output_bro\\query_2\\final_document.json",
183
+
184
+ # ]
185
+
186
+ # OUTPUT_JSON = "frequency_output.json"
187
+ # run_semantic_frequency_multiple(INPUT_JSONS, OUTPUT_JSON)
json_to_pdf.py ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import re
3
+ from pathlib import Path
4
+ from reportlab.lib.pagesizes import A4
5
+ from reportlab.platypus import (
6
+ SimpleDocTemplate,
7
+ Paragraph,
8
+ Spacer,
9
+ ListFlowable,
10
+ ListItem,
11
+ Image as RLImage
12
+ )
13
+ from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
14
+ from reportlab.lib.enums import TA_CENTER
15
+
16
+
17
+ def json_to_pdf_with_images(data, image_base_dir):
18
+ # ---------- Load JSON ----------
19
+ print("loading json data for pdf generation........................")
20
+ subject = data.get("subject", "Unknown Subject")
21
+
22
+ # ---------- Clean subject for filename ----------
23
+ safe_subject = re.sub(r"[^\w]+", "_", subject).strip("_")
24
+
25
+ # ---------- Output directory ----------
26
+ BASE_DIR = Path(__file__).resolve().parent
27
+
28
+ output_dir = BASE_DIR / "results"
29
+
30
+ output_dir.mkdir(parents=True, exist_ok=True)
31
+
32
+ output_pdf = output_dir / f"{safe_subject}.pdf"
33
+
34
+ part_a = sorted(
35
+ data.get("PART_A", []),
36
+ key=lambda x: x.get("frequency", 0),
37
+ reverse=True
38
+ )
39
+
40
+ part_b = sorted(
41
+ data.get("PART_B", []),
42
+ key=lambda x: x.get("frequency", 0),
43
+ reverse=True
44
+ )
45
+
46
+ # ---------- PDF Setup ----------
47
+ doc = SimpleDocTemplate(
48
+ str(output_pdf),
49
+ pagesize=A4,
50
+ rightMargin=40,
51
+ leftMargin=40,
52
+ topMargin=40,
53
+ bottomMargin=40
54
+ )
55
+
56
+ styles = getSampleStyleSheet()
57
+ story = []
58
+
59
+ # ---------- Styles ----------
60
+ subject_style = ParagraphStyle(
61
+ "Subject",
62
+ parent=styles["Title"],
63
+ alignment=TA_CENTER
64
+ )
65
+ part_style = ParagraphStyle("Part", parent=styles["Heading2"])
66
+ question_style = ParagraphStyle("Question", parent=styles["Normal"])
67
+
68
+ # ---------- Subject ----------
69
+ story.append(Paragraph(subject, subject_style))
70
+ story.append(Spacer(1, 20))
71
+
72
+ image_base_dir = Path(image_base_dir).resolve()
73
+
74
+ # ---------- Helper ----------
75
+ def add_part(title, questions):
76
+ story.append(Paragraph(title, part_style))
77
+ story.append(Spacer(1, 10))
78
+
79
+ items = []
80
+
81
+ for q in questions:
82
+ block = []
83
+
84
+ q_text = f"{q['question']} <b>(Frequency: {q['frequency']})</b>"
85
+ block.append(Paragraph(q_text, question_style))
86
+ block.append(Spacer(1, 8))
87
+
88
+ images = q.get("images")
89
+ if images and isinstance(images, list):
90
+ for img in images:
91
+ img_path = (image_base_dir / img).resolve()
92
+ if img_path.exists():
93
+ block.append(
94
+ RLImage(
95
+ str(img_path),
96
+ width=350,
97
+ height=220,
98
+ kind="proportional"
99
+ )
100
+ )
101
+ block.append(Spacer(1, 12))
102
+
103
+ items.append(ListItem(block))
104
+
105
+ story.append(ListFlowable(items, bulletType="1"))
106
+ story.append(Spacer(1, 20))
107
+
108
+ # ---------- Parts ----------
109
+ add_part("PART A", part_a)
110
+ add_part("PART B", part_b)
111
+
112
+ # ---------- Build PDF ----------
113
+ final_style = ParagraphStyle(
114
+ "FinalNote",
115
+ parent=styles["Normal"],
116
+ alignment=TA_CENTER,
117
+ spaceBefore=30,
118
+ fontSize=20)
119
+
120
+ story.append(Spacer(1, 30))
121
+ story.append(Paragraph("<b>All the best for the exam!</b>", final_style))
122
+
123
+ doc.build(story)
124
+ print(f"✅ PDF generated at: {output_pdf}")
125
+ # ✅ RETURN FINAL PDF PATH
126
+ return str(output_pdf.resolve())
127
+
128
+ #json_to_pdf_with_images(data=json.load(open(r"frequency_output.json")), image_base_dir=r"vl_output_bro")
main.py ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI, UploadFile, File
2
+ from fastapi.middleware.cors import CORSMiddleware
3
+ from pathlib import Path
4
+ from typing import List
5
+ import uuid
6
+ import threading
7
+ import time
8
+ import os
9
+ from dotenv import load_dotenv
10
+
11
+ load_dotenv()
12
+ GROQ_API_KEY = os.getenv("GROQ_API_KEY")
13
+ if not GROQ_API_KEY:
14
+ raise RuntimeError("GROQ_API_KEY not set")
15
+
16
+
17
+ # ---------------- YOUR MODULES ----------------
18
+ import engine as vl_engine
19
+ import Image_topdf as img2pdf_engine
20
+ import frequency as freq_engine
21
+ from json_to_pdf import json_to_pdf_with_images
22
+ from VL_output_to_json import extract_exam_questions
23
+
24
+ # ---------------- APP ----------------
25
+ app = FastAPI(title="Exam Pipeline Backend", version="0.1.0")
26
+
27
+ # ---------------- CORS ----------------
28
+ app.add_middleware(
29
+ CORSMiddleware,
30
+ allow_origins=["*"],
31
+ allow_credentials=True,
32
+ allow_methods=["*"],
33
+ allow_headers=["*"],
34
+ )
35
+
36
+ # ---------------- PATHS ----------------
37
+ BASE_DIR = Path(__file__).resolve().parent
38
+ QUERY_DIR = BASE_DIR / "queries"
39
+ QUERY_DIR.mkdir(parents=True, exist_ok=True)
40
+
41
+ # ---------------- JOB STATUS STORE ----------------
42
+ job_status = {} # job_id → status
43
+ job_result = {} # job_id → result
44
+
45
+ # ======================================================
46
+ # SAVE PDF
47
+ # ======================================================
48
+ @app.post("/save-pdf")
49
+ async def save_pdf(file: UploadFile = File(...)):
50
+ pdf_name = f"{uuid.uuid4().hex}_{file.filename}"
51
+ pdf_path = QUERY_DIR / pdf_name
52
+ with open(pdf_path, "wb") as f:
53
+ f.write(await file.read())
54
+ return {"path": str(pdf_path)}
55
+
56
+ # ======================================================
57
+ # IMAGES → PDF
58
+ # ======================================================
59
+ @app.post("/images-to-pdf")
60
+ async def images_to_pdf(files: List[UploadFile] = File(...)):
61
+ pdf_path = QUERY_DIR / f"doc_{uuid.uuid4().hex}.pdf"
62
+ img2pdf_engine.images_to_pdf(files=files, output_pdf_path=pdf_path)
63
+ return {"path": str(pdf_path)}
64
+
65
+ # ======================================================
66
+ # BACKGROUND PIPELINE (DO NOT CHANGE LOGIC)
67
+ # ======================================================
68
+ def pipeline_worker(job_id: str, api_key: str, docs: List[str]):
69
+ try:
70
+ job_status[job_id] = "🔍 Running VL model..."
71
+
72
+ docs = [Path(p) for p in docs]
73
+ vl_results = []
74
+ for i, pdf in enumerate(docs, start=1):
75
+ md = vl_engine.VL_model(str(pdf), query_id=i)
76
+ vl_results.append(md)
77
+
78
+ job_status[job_id] = "🧠 Extracting JSON using LLM..."
79
+
80
+ json_files = []
81
+ for md in vl_results:
82
+ out_json = md.replace(".md", ".json")
83
+ extract_exam_questions(md, api_key, out_json)
84
+ json_files.append(out_json)
85
+
86
+ job_status[job_id] = "📊 Running semantic frequency..."
87
+
88
+ freq_out = freq_engine.run_semantic_frequency_multiple(
89
+ json_files, "output_frequency.json"
90
+ )
91
+
92
+ job_status[job_id] = "📄 Generating final PDF..."
93
+
94
+ final_pdf = json_to_pdf_with_images(
95
+ freq_out, image_base_dir="vl_output_bro"
96
+ )
97
+
98
+ job_result[job_id] = {
99
+ "final_pdf": final_pdf,
100
+ "frequency_json": "output_frequency.json"
101
+ }
102
+
103
+ job_status[job_id] = "✅ Completed"
104
+
105
+ except Exception as e:
106
+ job_status[job_id] = f"❌ Error: {e}"
107
+
108
+ # ======================================================
109
+ # START PIPELINE
110
+ # ======================================================
111
+ @app.post("/run-pipeline")
112
+ async def run_pipeline(docs: List[str]):
113
+ api_key = GROQ_API_KEY
114
+ job_id = uuid.uuid4().hex
115
+ job_status[job_id] = "🚀 Job started"
116
+
117
+ # thread = threading.Thread(
118
+ # target=pipeline_worker,
119
+ # args=(job_id, api_key, docs),
120
+ # daemon=True
121
+ # )
122
+ thread = threading.Thread(
123
+ target=pipeline_worker,
124
+ args=(job_id,api_key, docs),
125
+ daemon=True
126
+ )
127
+ thread.start()
128
+
129
+ return {"job_id": job_id}
130
+
131
+ # ======================================================
132
+ # GET JOB STATUS
133
+ # ======================================================
134
+ @app.get("/job-status/{job_id}")
135
+ async def get_job_status(job_id: str):
136
+ return {
137
+ "status": job_status.get(job_id, "Unknown job"),
138
+ "result": job_result.get(job_id)
139
+ }
140
+ import os
141
+ from fastapi.responses import FileResponse
142
+ # ======================================================
143
+ # DOWNLOAD FILE (FOR VUE FRONTEND)
144
+ # ======================================================
145
+ @app.get("/download")
146
+ async def download_file(path: str):
147
+ if not os.path.exists(path):
148
+ return {"error": "File not found"}
149
+
150
+ return FileResponse(
151
+ path,
152
+ filename=os.path.basename(path),
153
+ media_type="application/octet-stream"
154
+ )
my-vue-app/.gitignore ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Logs
2
+ logs
3
+ *.log
4
+ npm-debug.log*
5
+ yarn-debug.log*
6
+ yarn-error.log*
7
+ pnpm-debug.log*
8
+ lerna-debug.log*
9
+
10
+ node_modules
11
+ dist
12
+ dist-ssr
13
+ *.local
14
+
15
+ # Editor directories and files
16
+ .vscode/*
17
+ !.vscode/extensions.json
18
+ .idea
19
+ .DS_Store
20
+ *.suo
21
+ *.ntvs*
22
+ *.njsproj
23
+ *.sln
24
+ *.sw?
my-vue-app/.vscode/extensions.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ {
2
+ "recommendations": ["Vue.volar"]
3
+ }
my-vue-app/README.md ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ # Vue 3 + Vite
2
+
3
+ This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
4
+
5
+ Learn more about IDE Support for Vue in the [Vue Docs Scaling up Guide](https://vuejs.org/guide/scaling-up/tooling.html#ide-support).
my-vue-app/index.html ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <title>Exam Pipeline</title>
6
+ </head>
7
+ <body>
8
+ <div id="app"></div>
9
+ <script type="module" src="/src/main.js"></script>
10
+ </body>
11
+ </html>
my-vue-app/node_modules/.bin/esbuild ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:020b954fd13a2c5ee8aabd5a73e24c10a4750099ed5e02f07dc7265c6758a054
3
+ size 387
my-vue-app/node_modules/.bin/esbuild.cmd ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b00afc3761267058834ab0968f58748f0422efe0eb0321540544770cafbf7a69
3
+ size 324
my-vue-app/node_modules/.bin/esbuild.ps1 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9a24efc13fb6ef9def6c5aaf7787e7203d0982e2ab8627b64a41eb033945b7f5
3
+ size 801
my-vue-app/node_modules/.bin/nanoid ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:49446fa7e9ea1b36b205bab243f2928f1230d8dbeb09881eef1d039149ad3238
3
+ size 391
my-vue-app/node_modules/.bin/nanoid.cmd ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:65f7afb9e8bf7fd4ff2087803c18e8818334768bfe92b9c1f28346050678c0ca
3
+ size 326
my-vue-app/node_modules/.bin/nanoid.ps1 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c2b48c0422548661c689493b3249b16f93599ca15fc3af5e821f9e6bccbe2aad
3
+ size 809
my-vue-app/node_modules/.bin/parser ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ed60a2b4f36fdf4d46331006ab1323a4c4098ce63a14b254e04dbbe92b579986
3
+ size 415
my-vue-app/node_modules/.bin/parser.cmd ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:18aa582d6ce7a028ddb85a01ef6f5caa997e62744f86a5d1dcf56672890ee2e8
3
+ size 338
my-vue-app/node_modules/.bin/parser.ps1 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:65bf583f795bc6f3458e7f332deab74b979d410645c65ec6b8d21894f9277413
3
+ size 857
my-vue-app/node_modules/.bin/rollup ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5cc55c2746b1a59c588127263b254384b08dd08de5b170c52796453f8a762b46
3
+ size 393
my-vue-app/node_modules/.bin/rollup.cmd ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f3a19226bedbf80c0cdfe75eeaadc21c74c7a58e04bff23a134f809f71ae2210
3
+ size 327
my-vue-app/node_modules/.bin/rollup.ps1 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:095ea547e7dba18c0f9679b21c8237d776916d61cc56967b34cef1cea7bc592b
3
+ size 813
my-vue-app/node_modules/.bin/vite ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fdf31cf5e7b6cbfa65c2111d4fec53a7484c038aeac028f3718ab565c171b7ed
3
+ size 381
my-vue-app/node_modules/.bin/vite.cmd ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e865893c8f57ff153c66cf80aac687f436b457922d9585495becee81c927e910
3
+ size 321
my-vue-app/node_modules/.bin/vite.ps1 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fb22a675c5bf414d459a8b07172d5cc073c7d51520bed1d7d6f1652e3fd1f3ea
3
+ size 789
my-vue-app/node_modules/.package-lock.json ADDED
@@ -0,0 +1,764 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "exam-pipeline-frontend",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "node_modules/@babel/helper-string-parser": {
8
+ "version": "7.27.1",
9
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
10
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
11
+ "license": "MIT",
12
+ "engines": {
13
+ "node": ">=6.9.0"
14
+ }
15
+ },
16
+ "node_modules/@babel/helper-validator-identifier": {
17
+ "version": "7.28.5",
18
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
19
+ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
20
+ "license": "MIT",
21
+ "engines": {
22
+ "node": ">=6.9.0"
23
+ }
24
+ },
25
+ "node_modules/@babel/parser": {
26
+ "version": "7.28.5",
27
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz",
28
+ "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==",
29
+ "license": "MIT",
30
+ "dependencies": {
31
+ "@babel/types": "^7.28.5"
32
+ },
33
+ "bin": {
34
+ "parser": "bin/babel-parser.js"
35
+ },
36
+ "engines": {
37
+ "node": ">=6.0.0"
38
+ }
39
+ },
40
+ "node_modules/@babel/types": {
41
+ "version": "7.28.5",
42
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz",
43
+ "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==",
44
+ "license": "MIT",
45
+ "dependencies": {
46
+ "@babel/helper-string-parser": "^7.27.1",
47
+ "@babel/helper-validator-identifier": "^7.28.5"
48
+ },
49
+ "engines": {
50
+ "node": ">=6.9.0"
51
+ }
52
+ },
53
+ "node_modules/@esbuild/win32-x64": {
54
+ "version": "0.21.5",
55
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
56
+ "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
57
+ "cpu": [
58
+ "x64"
59
+ ],
60
+ "dev": true,
61
+ "license": "MIT",
62
+ "optional": true,
63
+ "os": [
64
+ "win32"
65
+ ],
66
+ "engines": {
67
+ "node": ">=12"
68
+ }
69
+ },
70
+ "node_modules/@jridgewell/sourcemap-codec": {
71
+ "version": "1.5.5",
72
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
73
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
74
+ "license": "MIT"
75
+ },
76
+ "node_modules/@rollup/rollup-win32-x64-gnu": {
77
+ "version": "4.55.1",
78
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz",
79
+ "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==",
80
+ "cpu": [
81
+ "x64"
82
+ ],
83
+ "dev": true,
84
+ "license": "MIT",
85
+ "optional": true,
86
+ "os": [
87
+ "win32"
88
+ ]
89
+ },
90
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
91
+ "version": "4.55.1",
92
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz",
93
+ "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==",
94
+ "cpu": [
95
+ "x64"
96
+ ],
97
+ "dev": true,
98
+ "license": "MIT",
99
+ "optional": true,
100
+ "os": [
101
+ "win32"
102
+ ]
103
+ },
104
+ "node_modules/@types/estree": {
105
+ "version": "1.0.8",
106
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
107
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
108
+ "dev": true,
109
+ "license": "MIT"
110
+ },
111
+ "node_modules/@vitejs/plugin-vue": {
112
+ "version": "5.2.4",
113
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz",
114
+ "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==",
115
+ "dev": true,
116
+ "license": "MIT",
117
+ "engines": {
118
+ "node": "^18.0.0 || >=20.0.0"
119
+ },
120
+ "peerDependencies": {
121
+ "vite": "^5.0.0 || ^6.0.0",
122
+ "vue": "^3.2.25"
123
+ }
124
+ },
125
+ "node_modules/@vue/compiler-core": {
126
+ "version": "3.5.26",
127
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.26.tgz",
128
+ "integrity": "sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==",
129
+ "license": "MIT",
130
+ "dependencies": {
131
+ "@babel/parser": "^7.28.5",
132
+ "@vue/shared": "3.5.26",
133
+ "entities": "^7.0.0",
134
+ "estree-walker": "^2.0.2",
135
+ "source-map-js": "^1.2.1"
136
+ }
137
+ },
138
+ "node_modules/@vue/compiler-dom": {
139
+ "version": "3.5.26",
140
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.26.tgz",
141
+ "integrity": "sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==",
142
+ "license": "MIT",
143
+ "dependencies": {
144
+ "@vue/compiler-core": "3.5.26",
145
+ "@vue/shared": "3.5.26"
146
+ }
147
+ },
148
+ "node_modules/@vue/compiler-sfc": {
149
+ "version": "3.5.26",
150
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.26.tgz",
151
+ "integrity": "sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==",
152
+ "license": "MIT",
153
+ "dependencies": {
154
+ "@babel/parser": "^7.28.5",
155
+ "@vue/compiler-core": "3.5.26",
156
+ "@vue/compiler-dom": "3.5.26",
157
+ "@vue/compiler-ssr": "3.5.26",
158
+ "@vue/shared": "3.5.26",
159
+ "estree-walker": "^2.0.2",
160
+ "magic-string": "^0.30.21",
161
+ "postcss": "^8.5.6",
162
+ "source-map-js": "^1.2.1"
163
+ }
164
+ },
165
+ "node_modules/@vue/compiler-ssr": {
166
+ "version": "3.5.26",
167
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.26.tgz",
168
+ "integrity": "sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==",
169
+ "license": "MIT",
170
+ "dependencies": {
171
+ "@vue/compiler-dom": "3.5.26",
172
+ "@vue/shared": "3.5.26"
173
+ }
174
+ },
175
+ "node_modules/@vue/reactivity": {
176
+ "version": "3.5.26",
177
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.26.tgz",
178
+ "integrity": "sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ==",
179
+ "license": "MIT",
180
+ "dependencies": {
181
+ "@vue/shared": "3.5.26"
182
+ }
183
+ },
184
+ "node_modules/@vue/runtime-core": {
185
+ "version": "3.5.26",
186
+ "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.26.tgz",
187
+ "integrity": "sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q==",
188
+ "license": "MIT",
189
+ "dependencies": {
190
+ "@vue/reactivity": "3.5.26",
191
+ "@vue/shared": "3.5.26"
192
+ }
193
+ },
194
+ "node_modules/@vue/runtime-dom": {
195
+ "version": "3.5.26",
196
+ "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.26.tgz",
197
+ "integrity": "sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ==",
198
+ "license": "MIT",
199
+ "dependencies": {
200
+ "@vue/reactivity": "3.5.26",
201
+ "@vue/runtime-core": "3.5.26",
202
+ "@vue/shared": "3.5.26",
203
+ "csstype": "^3.2.3"
204
+ }
205
+ },
206
+ "node_modules/@vue/server-renderer": {
207
+ "version": "3.5.26",
208
+ "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.26.tgz",
209
+ "integrity": "sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA==",
210
+ "license": "MIT",
211
+ "dependencies": {
212
+ "@vue/compiler-ssr": "3.5.26",
213
+ "@vue/shared": "3.5.26"
214
+ },
215
+ "peerDependencies": {
216
+ "vue": "3.5.26"
217
+ }
218
+ },
219
+ "node_modules/@vue/shared": {
220
+ "version": "3.5.26",
221
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.26.tgz",
222
+ "integrity": "sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A==",
223
+ "license": "MIT"
224
+ },
225
+ "node_modules/asynckit": {
226
+ "version": "0.4.0",
227
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
228
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
229
+ "license": "MIT"
230
+ },
231
+ "node_modules/axios": {
232
+ "version": "1.13.2",
233
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz",
234
+ "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==",
235
+ "license": "MIT",
236
+ "dependencies": {
237
+ "follow-redirects": "^1.15.6",
238
+ "form-data": "^4.0.4",
239
+ "proxy-from-env": "^1.1.0"
240
+ }
241
+ },
242
+ "node_modules/call-bind-apply-helpers": {
243
+ "version": "1.0.2",
244
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
245
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
246
+ "license": "MIT",
247
+ "dependencies": {
248
+ "es-errors": "^1.3.0",
249
+ "function-bind": "^1.1.2"
250
+ },
251
+ "engines": {
252
+ "node": ">= 0.4"
253
+ }
254
+ },
255
+ "node_modules/combined-stream": {
256
+ "version": "1.0.8",
257
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
258
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
259
+ "license": "MIT",
260
+ "dependencies": {
261
+ "delayed-stream": "~1.0.0"
262
+ },
263
+ "engines": {
264
+ "node": ">= 0.8"
265
+ }
266
+ },
267
+ "node_modules/csstype": {
268
+ "version": "3.2.3",
269
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
270
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
271
+ "license": "MIT"
272
+ },
273
+ "node_modules/delayed-stream": {
274
+ "version": "1.0.0",
275
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
276
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
277
+ "license": "MIT",
278
+ "engines": {
279
+ "node": ">=0.4.0"
280
+ }
281
+ },
282
+ "node_modules/dunder-proto": {
283
+ "version": "1.0.1",
284
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
285
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
286
+ "license": "MIT",
287
+ "dependencies": {
288
+ "call-bind-apply-helpers": "^1.0.1",
289
+ "es-errors": "^1.3.0",
290
+ "gopd": "^1.2.0"
291
+ },
292
+ "engines": {
293
+ "node": ">= 0.4"
294
+ }
295
+ },
296
+ "node_modules/entities": {
297
+ "version": "7.0.0",
298
+ "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.0.tgz",
299
+ "integrity": "sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==",
300
+ "license": "BSD-2-Clause",
301
+ "engines": {
302
+ "node": ">=0.12"
303
+ },
304
+ "funding": {
305
+ "url": "https://github.com/fb55/entities?sponsor=1"
306
+ }
307
+ },
308
+ "node_modules/es-define-property": {
309
+ "version": "1.0.1",
310
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
311
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
312
+ "license": "MIT",
313
+ "engines": {
314
+ "node": ">= 0.4"
315
+ }
316
+ },
317
+ "node_modules/es-errors": {
318
+ "version": "1.3.0",
319
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
320
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
321
+ "license": "MIT",
322
+ "engines": {
323
+ "node": ">= 0.4"
324
+ }
325
+ },
326
+ "node_modules/es-object-atoms": {
327
+ "version": "1.1.1",
328
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
329
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
330
+ "license": "MIT",
331
+ "dependencies": {
332
+ "es-errors": "^1.3.0"
333
+ },
334
+ "engines": {
335
+ "node": ">= 0.4"
336
+ }
337
+ },
338
+ "node_modules/es-set-tostringtag": {
339
+ "version": "2.1.0",
340
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
341
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
342
+ "license": "MIT",
343
+ "dependencies": {
344
+ "es-errors": "^1.3.0",
345
+ "get-intrinsic": "^1.2.6",
346
+ "has-tostringtag": "^1.0.2",
347
+ "hasown": "^2.0.2"
348
+ },
349
+ "engines": {
350
+ "node": ">= 0.4"
351
+ }
352
+ },
353
+ "node_modules/esbuild": {
354
+ "version": "0.21.5",
355
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
356
+ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
357
+ "dev": true,
358
+ "hasInstallScript": true,
359
+ "license": "MIT",
360
+ "bin": {
361
+ "esbuild": "bin/esbuild"
362
+ },
363
+ "engines": {
364
+ "node": ">=12"
365
+ },
366
+ "optionalDependencies": {
367
+ "@esbuild/aix-ppc64": "0.21.5",
368
+ "@esbuild/android-arm": "0.21.5",
369
+ "@esbuild/android-arm64": "0.21.5",
370
+ "@esbuild/android-x64": "0.21.5",
371
+ "@esbuild/darwin-arm64": "0.21.5",
372
+ "@esbuild/darwin-x64": "0.21.5",
373
+ "@esbuild/freebsd-arm64": "0.21.5",
374
+ "@esbuild/freebsd-x64": "0.21.5",
375
+ "@esbuild/linux-arm": "0.21.5",
376
+ "@esbuild/linux-arm64": "0.21.5",
377
+ "@esbuild/linux-ia32": "0.21.5",
378
+ "@esbuild/linux-loong64": "0.21.5",
379
+ "@esbuild/linux-mips64el": "0.21.5",
380
+ "@esbuild/linux-ppc64": "0.21.5",
381
+ "@esbuild/linux-riscv64": "0.21.5",
382
+ "@esbuild/linux-s390x": "0.21.5",
383
+ "@esbuild/linux-x64": "0.21.5",
384
+ "@esbuild/netbsd-x64": "0.21.5",
385
+ "@esbuild/openbsd-x64": "0.21.5",
386
+ "@esbuild/sunos-x64": "0.21.5",
387
+ "@esbuild/win32-arm64": "0.21.5",
388
+ "@esbuild/win32-ia32": "0.21.5",
389
+ "@esbuild/win32-x64": "0.21.5"
390
+ }
391
+ },
392
+ "node_modules/estree-walker": {
393
+ "version": "2.0.2",
394
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
395
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
396
+ "license": "MIT"
397
+ },
398
+ "node_modules/follow-redirects": {
399
+ "version": "1.15.11",
400
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
401
+ "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
402
+ "funding": [
403
+ {
404
+ "type": "individual",
405
+ "url": "https://github.com/sponsors/RubenVerborgh"
406
+ }
407
+ ],
408
+ "license": "MIT",
409
+ "engines": {
410
+ "node": ">=4.0"
411
+ },
412
+ "peerDependenciesMeta": {
413
+ "debug": {
414
+ "optional": true
415
+ }
416
+ }
417
+ },
418
+ "node_modules/form-data": {
419
+ "version": "4.0.5",
420
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
421
+ "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
422
+ "license": "MIT",
423
+ "dependencies": {
424
+ "asynckit": "^0.4.0",
425
+ "combined-stream": "^1.0.8",
426
+ "es-set-tostringtag": "^2.1.0",
427
+ "hasown": "^2.0.2",
428
+ "mime-types": "^2.1.12"
429
+ },
430
+ "engines": {
431
+ "node": ">= 6"
432
+ }
433
+ },
434
+ "node_modules/function-bind": {
435
+ "version": "1.1.2",
436
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
437
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
438
+ "license": "MIT",
439
+ "funding": {
440
+ "url": "https://github.com/sponsors/ljharb"
441
+ }
442
+ },
443
+ "node_modules/get-intrinsic": {
444
+ "version": "1.3.0",
445
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
446
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
447
+ "license": "MIT",
448
+ "dependencies": {
449
+ "call-bind-apply-helpers": "^1.0.2",
450
+ "es-define-property": "^1.0.1",
451
+ "es-errors": "^1.3.0",
452
+ "es-object-atoms": "^1.1.1",
453
+ "function-bind": "^1.1.2",
454
+ "get-proto": "^1.0.1",
455
+ "gopd": "^1.2.0",
456
+ "has-symbols": "^1.1.0",
457
+ "hasown": "^2.0.2",
458
+ "math-intrinsics": "^1.1.0"
459
+ },
460
+ "engines": {
461
+ "node": ">= 0.4"
462
+ },
463
+ "funding": {
464
+ "url": "https://github.com/sponsors/ljharb"
465
+ }
466
+ },
467
+ "node_modules/get-proto": {
468
+ "version": "1.0.1",
469
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
470
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
471
+ "license": "MIT",
472
+ "dependencies": {
473
+ "dunder-proto": "^1.0.1",
474
+ "es-object-atoms": "^1.0.0"
475
+ },
476
+ "engines": {
477
+ "node": ">= 0.4"
478
+ }
479
+ },
480
+ "node_modules/gopd": {
481
+ "version": "1.2.0",
482
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
483
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
484
+ "license": "MIT",
485
+ "engines": {
486
+ "node": ">= 0.4"
487
+ },
488
+ "funding": {
489
+ "url": "https://github.com/sponsors/ljharb"
490
+ }
491
+ },
492
+ "node_modules/has-symbols": {
493
+ "version": "1.1.0",
494
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
495
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
496
+ "license": "MIT",
497
+ "engines": {
498
+ "node": ">= 0.4"
499
+ },
500
+ "funding": {
501
+ "url": "https://github.com/sponsors/ljharb"
502
+ }
503
+ },
504
+ "node_modules/has-tostringtag": {
505
+ "version": "1.0.2",
506
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
507
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
508
+ "license": "MIT",
509
+ "dependencies": {
510
+ "has-symbols": "^1.0.3"
511
+ },
512
+ "engines": {
513
+ "node": ">= 0.4"
514
+ },
515
+ "funding": {
516
+ "url": "https://github.com/sponsors/ljharb"
517
+ }
518
+ },
519
+ "node_modules/hasown": {
520
+ "version": "2.0.2",
521
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
522
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
523
+ "license": "MIT",
524
+ "dependencies": {
525
+ "function-bind": "^1.1.2"
526
+ },
527
+ "engines": {
528
+ "node": ">= 0.4"
529
+ }
530
+ },
531
+ "node_modules/magic-string": {
532
+ "version": "0.30.21",
533
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
534
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
535
+ "license": "MIT",
536
+ "dependencies": {
537
+ "@jridgewell/sourcemap-codec": "^1.5.5"
538
+ }
539
+ },
540
+ "node_modules/math-intrinsics": {
541
+ "version": "1.1.0",
542
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
543
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
544
+ "license": "MIT",
545
+ "engines": {
546
+ "node": ">= 0.4"
547
+ }
548
+ },
549
+ "node_modules/mime-db": {
550
+ "version": "1.52.0",
551
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
552
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
553
+ "license": "MIT",
554
+ "engines": {
555
+ "node": ">= 0.6"
556
+ }
557
+ },
558
+ "node_modules/mime-types": {
559
+ "version": "2.1.35",
560
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
561
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
562
+ "license": "MIT",
563
+ "dependencies": {
564
+ "mime-db": "1.52.0"
565
+ },
566
+ "engines": {
567
+ "node": ">= 0.6"
568
+ }
569
+ },
570
+ "node_modules/nanoid": {
571
+ "version": "3.3.11",
572
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
573
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
574
+ "funding": [
575
+ {
576
+ "type": "github",
577
+ "url": "https://github.com/sponsors/ai"
578
+ }
579
+ ],
580
+ "license": "MIT",
581
+ "bin": {
582
+ "nanoid": "bin/nanoid.cjs"
583
+ },
584
+ "engines": {
585
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
586
+ }
587
+ },
588
+ "node_modules/picocolors": {
589
+ "version": "1.1.1",
590
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
591
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
592
+ "license": "ISC"
593
+ },
594
+ "node_modules/postcss": {
595
+ "version": "8.5.6",
596
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
597
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
598
+ "funding": [
599
+ {
600
+ "type": "opencollective",
601
+ "url": "https://opencollective.com/postcss/"
602
+ },
603
+ {
604
+ "type": "tidelift",
605
+ "url": "https://tidelift.com/funding/github/npm/postcss"
606
+ },
607
+ {
608
+ "type": "github",
609
+ "url": "https://github.com/sponsors/ai"
610
+ }
611
+ ],
612
+ "license": "MIT",
613
+ "dependencies": {
614
+ "nanoid": "^3.3.11",
615
+ "picocolors": "^1.1.1",
616
+ "source-map-js": "^1.2.1"
617
+ },
618
+ "engines": {
619
+ "node": "^10 || ^12 || >=14"
620
+ }
621
+ },
622
+ "node_modules/proxy-from-env": {
623
+ "version": "1.1.0",
624
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
625
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
626
+ "license": "MIT"
627
+ },
628
+ "node_modules/rollup": {
629
+ "version": "4.55.1",
630
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz",
631
+ "integrity": "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==",
632
+ "dev": true,
633
+ "license": "MIT",
634
+ "dependencies": {
635
+ "@types/estree": "1.0.8"
636
+ },
637
+ "bin": {
638
+ "rollup": "dist/bin/rollup"
639
+ },
640
+ "engines": {
641
+ "node": ">=18.0.0",
642
+ "npm": ">=8.0.0"
643
+ },
644
+ "optionalDependencies": {
645
+ "@rollup/rollup-android-arm-eabi": "4.55.1",
646
+ "@rollup/rollup-android-arm64": "4.55.1",
647
+ "@rollup/rollup-darwin-arm64": "4.55.1",
648
+ "@rollup/rollup-darwin-x64": "4.55.1",
649
+ "@rollup/rollup-freebsd-arm64": "4.55.1",
650
+ "@rollup/rollup-freebsd-x64": "4.55.1",
651
+ "@rollup/rollup-linux-arm-gnueabihf": "4.55.1",
652
+ "@rollup/rollup-linux-arm-musleabihf": "4.55.1",
653
+ "@rollup/rollup-linux-arm64-gnu": "4.55.1",
654
+ "@rollup/rollup-linux-arm64-musl": "4.55.1",
655
+ "@rollup/rollup-linux-loong64-gnu": "4.55.1",
656
+ "@rollup/rollup-linux-loong64-musl": "4.55.1",
657
+ "@rollup/rollup-linux-ppc64-gnu": "4.55.1",
658
+ "@rollup/rollup-linux-ppc64-musl": "4.55.1",
659
+ "@rollup/rollup-linux-riscv64-gnu": "4.55.1",
660
+ "@rollup/rollup-linux-riscv64-musl": "4.55.1",
661
+ "@rollup/rollup-linux-s390x-gnu": "4.55.1",
662
+ "@rollup/rollup-linux-x64-gnu": "4.55.1",
663
+ "@rollup/rollup-linux-x64-musl": "4.55.1",
664
+ "@rollup/rollup-openbsd-x64": "4.55.1",
665
+ "@rollup/rollup-openharmony-arm64": "4.55.1",
666
+ "@rollup/rollup-win32-arm64-msvc": "4.55.1",
667
+ "@rollup/rollup-win32-ia32-msvc": "4.55.1",
668
+ "@rollup/rollup-win32-x64-gnu": "4.55.1",
669
+ "@rollup/rollup-win32-x64-msvc": "4.55.1",
670
+ "fsevents": "~2.3.2"
671
+ }
672
+ },
673
+ "node_modules/source-map-js": {
674
+ "version": "1.2.1",
675
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
676
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
677
+ "license": "BSD-3-Clause",
678
+ "engines": {
679
+ "node": ">=0.10.0"
680
+ }
681
+ },
682
+ "node_modules/vite": {
683
+ "version": "5.4.21",
684
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz",
685
+ "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==",
686
+ "dev": true,
687
+ "license": "MIT",
688
+ "dependencies": {
689
+ "esbuild": "^0.21.3",
690
+ "postcss": "^8.4.43",
691
+ "rollup": "^4.20.0"
692
+ },
693
+ "bin": {
694
+ "vite": "bin/vite.js"
695
+ },
696
+ "engines": {
697
+ "node": "^18.0.0 || >=20.0.0"
698
+ },
699
+ "funding": {
700
+ "url": "https://github.com/vitejs/vite?sponsor=1"
701
+ },
702
+ "optionalDependencies": {
703
+ "fsevents": "~2.3.3"
704
+ },
705
+ "peerDependencies": {
706
+ "@types/node": "^18.0.0 || >=20.0.0",
707
+ "less": "*",
708
+ "lightningcss": "^1.21.0",
709
+ "sass": "*",
710
+ "sass-embedded": "*",
711
+ "stylus": "*",
712
+ "sugarss": "*",
713
+ "terser": "^5.4.0"
714
+ },
715
+ "peerDependenciesMeta": {
716
+ "@types/node": {
717
+ "optional": true
718
+ },
719
+ "less": {
720
+ "optional": true
721
+ },
722
+ "lightningcss": {
723
+ "optional": true
724
+ },
725
+ "sass": {
726
+ "optional": true
727
+ },
728
+ "sass-embedded": {
729
+ "optional": true
730
+ },
731
+ "stylus": {
732
+ "optional": true
733
+ },
734
+ "sugarss": {
735
+ "optional": true
736
+ },
737
+ "terser": {
738
+ "optional": true
739
+ }
740
+ }
741
+ },
742
+ "node_modules/vue": {
743
+ "version": "3.5.26",
744
+ "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.26.tgz",
745
+ "integrity": "sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==",
746
+ "license": "MIT",
747
+ "dependencies": {
748
+ "@vue/compiler-dom": "3.5.26",
749
+ "@vue/compiler-sfc": "3.5.26",
750
+ "@vue/runtime-dom": "3.5.26",
751
+ "@vue/server-renderer": "3.5.26",
752
+ "@vue/shared": "3.5.26"
753
+ },
754
+ "peerDependencies": {
755
+ "typescript": "*"
756
+ },
757
+ "peerDependenciesMeta": {
758
+ "typescript": {
759
+ "optional": true
760
+ }
761
+ }
762
+ }
763
+ }
764
+ }
my-vue-app/node_modules/.vite/deps/_metadata.json ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "hash": "cfc79767",
3
+ "configHash": "2660ab4f",
4
+ "lockfileHash": "a8e76567",
5
+ "browserHash": "e90e87d1",
6
+ "optimized": {
7
+ "axios": {
8
+ "src": "../../axios/index.js",
9
+ "file": "axios.js",
10
+ "fileHash": "feb5f412",
11
+ "needsInterop": false
12
+ },
13
+ "vue": {
14
+ "src": "../../vue/dist/vue.runtime.esm-bundler.js",
15
+ "file": "vue.js",
16
+ "fileHash": "3cadbf51",
17
+ "needsInterop": false
18
+ }
19
+ },
20
+ "chunks": {
21
+ "chunk-PZ5AY32C": {
22
+ "file": "chunk-PZ5AY32C.js"
23
+ }
24
+ }
25
+ }
my-vue-app/node_modules/.vite/deps/axios.js ADDED
@@ -0,0 +1,2629 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import {
2
+ __export
3
+ } from "./chunk-PZ5AY32C.js";
4
+
5
+ // node_modules/axios/lib/helpers/bind.js
6
+ function bind(fn, thisArg) {
7
+ return function wrap() {
8
+ return fn.apply(thisArg, arguments);
9
+ };
10
+ }
11
+
12
+ // node_modules/axios/lib/utils.js
13
+ var { toString } = Object.prototype;
14
+ var { getPrototypeOf } = Object;
15
+ var { iterator, toStringTag } = Symbol;
16
+ var kindOf = /* @__PURE__ */ ((cache) => (thing) => {
17
+ const str = toString.call(thing);
18
+ return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());
19
+ })(/* @__PURE__ */ Object.create(null));
20
+ var kindOfTest = (type) => {
21
+ type = type.toLowerCase();
22
+ return (thing) => kindOf(thing) === type;
23
+ };
24
+ var typeOfTest = (type) => (thing) => typeof thing === type;
25
+ var { isArray } = Array;
26
+ var isUndefined = typeOfTest("undefined");
27
+ function isBuffer(val) {
28
+ return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);
29
+ }
30
+ var isArrayBuffer = kindOfTest("ArrayBuffer");
31
+ function isArrayBufferView(val) {
32
+ let result;
33
+ if (typeof ArrayBuffer !== "undefined" && ArrayBuffer.isView) {
34
+ result = ArrayBuffer.isView(val);
35
+ } else {
36
+ result = val && val.buffer && isArrayBuffer(val.buffer);
37
+ }
38
+ return result;
39
+ }
40
+ var isString = typeOfTest("string");
41
+ var isFunction = typeOfTest("function");
42
+ var isNumber = typeOfTest("number");
43
+ var isObject = (thing) => thing !== null && typeof thing === "object";
44
+ var isBoolean = (thing) => thing === true || thing === false;
45
+ var isPlainObject = (val) => {
46
+ if (kindOf(val) !== "object") {
47
+ return false;
48
+ }
49
+ const prototype3 = getPrototypeOf(val);
50
+ return (prototype3 === null || prototype3 === Object.prototype || Object.getPrototypeOf(prototype3) === null) && !(toStringTag in val) && !(iterator in val);
51
+ };
52
+ var isEmptyObject = (val) => {
53
+ if (!isObject(val) || isBuffer(val)) {
54
+ return false;
55
+ }
56
+ try {
57
+ return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;
58
+ } catch (e) {
59
+ return false;
60
+ }
61
+ };
62
+ var isDate = kindOfTest("Date");
63
+ var isFile = kindOfTest("File");
64
+ var isBlob = kindOfTest("Blob");
65
+ var isFileList = kindOfTest("FileList");
66
+ var isStream = (val) => isObject(val) && isFunction(val.pipe);
67
+ var isFormData = (thing) => {
68
+ let kind;
69
+ return thing && (typeof FormData === "function" && thing instanceof FormData || isFunction(thing.append) && ((kind = kindOf(thing)) === "formdata" || // detect form-data instance
70
+ kind === "object" && isFunction(thing.toString) && thing.toString() === "[object FormData]"));
71
+ };
72
+ var isURLSearchParams = kindOfTest("URLSearchParams");
73
+ var [isReadableStream, isRequest, isResponse, isHeaders] = ["ReadableStream", "Request", "Response", "Headers"].map(kindOfTest);
74
+ var trim = (str) => str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "");
75
+ function forEach(obj, fn, { allOwnKeys = false } = {}) {
76
+ if (obj === null || typeof obj === "undefined") {
77
+ return;
78
+ }
79
+ let i;
80
+ let l;
81
+ if (typeof obj !== "object") {
82
+ obj = [obj];
83
+ }
84
+ if (isArray(obj)) {
85
+ for (i = 0, l = obj.length; i < l; i++) {
86
+ fn.call(null, obj[i], i, obj);
87
+ }
88
+ } else {
89
+ if (isBuffer(obj)) {
90
+ return;
91
+ }
92
+ const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);
93
+ const len = keys.length;
94
+ let key;
95
+ for (i = 0; i < len; i++) {
96
+ key = keys[i];
97
+ fn.call(null, obj[key], key, obj);
98
+ }
99
+ }
100
+ }
101
+ function findKey(obj, key) {
102
+ if (isBuffer(obj)) {
103
+ return null;
104
+ }
105
+ key = key.toLowerCase();
106
+ const keys = Object.keys(obj);
107
+ let i = keys.length;
108
+ let _key;
109
+ while (i-- > 0) {
110
+ _key = keys[i];
111
+ if (key === _key.toLowerCase()) {
112
+ return _key;
113
+ }
114
+ }
115
+ return null;
116
+ }
117
+ var _global = (() => {
118
+ if (typeof globalThis !== "undefined") return globalThis;
119
+ return typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : global;
120
+ })();
121
+ var isContextDefined = (context) => !isUndefined(context) && context !== _global;
122
+ function merge() {
123
+ const { caseless, skipUndefined } = isContextDefined(this) && this || {};
124
+ const result = {};
125
+ const assignValue = (val, key) => {
126
+ const targetKey = caseless && findKey(result, key) || key;
127
+ if (isPlainObject(result[targetKey]) && isPlainObject(val)) {
128
+ result[targetKey] = merge(result[targetKey], val);
129
+ } else if (isPlainObject(val)) {
130
+ result[targetKey] = merge({}, val);
131
+ } else if (isArray(val)) {
132
+ result[targetKey] = val.slice();
133
+ } else if (!skipUndefined || !isUndefined(val)) {
134
+ result[targetKey] = val;
135
+ }
136
+ };
137
+ for (let i = 0, l = arguments.length; i < l; i++) {
138
+ arguments[i] && forEach(arguments[i], assignValue);
139
+ }
140
+ return result;
141
+ }
142
+ var extend = (a, b, thisArg, { allOwnKeys } = {}) => {
143
+ forEach(b, (val, key) => {
144
+ if (thisArg && isFunction(val)) {
145
+ a[key] = bind(val, thisArg);
146
+ } else {
147
+ a[key] = val;
148
+ }
149
+ }, { allOwnKeys });
150
+ return a;
151
+ };
152
+ var stripBOM = (content) => {
153
+ if (content.charCodeAt(0) === 65279) {
154
+ content = content.slice(1);
155
+ }
156
+ return content;
157
+ };
158
+ var inherits = (constructor, superConstructor, props, descriptors2) => {
159
+ constructor.prototype = Object.create(superConstructor.prototype, descriptors2);
160
+ constructor.prototype.constructor = constructor;
161
+ Object.defineProperty(constructor, "super", {
162
+ value: superConstructor.prototype
163
+ });
164
+ props && Object.assign(constructor.prototype, props);
165
+ };
166
+ var toFlatObject = (sourceObj, destObj, filter2, propFilter) => {
167
+ let props;
168
+ let i;
169
+ let prop;
170
+ const merged = {};
171
+ destObj = destObj || {};
172
+ if (sourceObj == null) return destObj;
173
+ do {
174
+ props = Object.getOwnPropertyNames(sourceObj);
175
+ i = props.length;
176
+ while (i-- > 0) {
177
+ prop = props[i];
178
+ if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {
179
+ destObj[prop] = sourceObj[prop];
180
+ merged[prop] = true;
181
+ }
182
+ }
183
+ sourceObj = filter2 !== false && getPrototypeOf(sourceObj);
184
+ } while (sourceObj && (!filter2 || filter2(sourceObj, destObj)) && sourceObj !== Object.prototype);
185
+ return destObj;
186
+ };
187
+ var endsWith = (str, searchString, position) => {
188
+ str = String(str);
189
+ if (position === void 0 || position > str.length) {
190
+ position = str.length;
191
+ }
192
+ position -= searchString.length;
193
+ const lastIndex = str.indexOf(searchString, position);
194
+ return lastIndex !== -1 && lastIndex === position;
195
+ };
196
+ var toArray = (thing) => {
197
+ if (!thing) return null;
198
+ if (isArray(thing)) return thing;
199
+ let i = thing.length;
200
+ if (!isNumber(i)) return null;
201
+ const arr = new Array(i);
202
+ while (i-- > 0) {
203
+ arr[i] = thing[i];
204
+ }
205
+ return arr;
206
+ };
207
+ var isTypedArray = /* @__PURE__ */ ((TypedArray) => {
208
+ return (thing) => {
209
+ return TypedArray && thing instanceof TypedArray;
210
+ };
211
+ })(typeof Uint8Array !== "undefined" && getPrototypeOf(Uint8Array));
212
+ var forEachEntry = (obj, fn) => {
213
+ const generator = obj && obj[iterator];
214
+ const _iterator = generator.call(obj);
215
+ let result;
216
+ while ((result = _iterator.next()) && !result.done) {
217
+ const pair = result.value;
218
+ fn.call(obj, pair[0], pair[1]);
219
+ }
220
+ };
221
+ var matchAll = (regExp, str) => {
222
+ let matches;
223
+ const arr = [];
224
+ while ((matches = regExp.exec(str)) !== null) {
225
+ arr.push(matches);
226
+ }
227
+ return arr;
228
+ };
229
+ var isHTMLForm = kindOfTest("HTMLFormElement");
230
+ var toCamelCase = (str) => {
231
+ return str.toLowerCase().replace(
232
+ /[-_\s]([a-z\d])(\w*)/g,
233
+ function replacer(m, p1, p2) {
234
+ return p1.toUpperCase() + p2;
235
+ }
236
+ );
237
+ };
238
+ var hasOwnProperty = (({ hasOwnProperty: hasOwnProperty2 }) => (obj, prop) => hasOwnProperty2.call(obj, prop))(Object.prototype);
239
+ var isRegExp = kindOfTest("RegExp");
240
+ var reduceDescriptors = (obj, reducer) => {
241
+ const descriptors2 = Object.getOwnPropertyDescriptors(obj);
242
+ const reducedDescriptors = {};
243
+ forEach(descriptors2, (descriptor, name) => {
244
+ let ret;
245
+ if ((ret = reducer(descriptor, name, obj)) !== false) {
246
+ reducedDescriptors[name] = ret || descriptor;
247
+ }
248
+ });
249
+ Object.defineProperties(obj, reducedDescriptors);
250
+ };
251
+ var freezeMethods = (obj) => {
252
+ reduceDescriptors(obj, (descriptor, name) => {
253
+ if (isFunction(obj) && ["arguments", "caller", "callee"].indexOf(name) !== -1) {
254
+ return false;
255
+ }
256
+ const value = obj[name];
257
+ if (!isFunction(value)) return;
258
+ descriptor.enumerable = false;
259
+ if ("writable" in descriptor) {
260
+ descriptor.writable = false;
261
+ return;
262
+ }
263
+ if (!descriptor.set) {
264
+ descriptor.set = () => {
265
+ throw Error("Can not rewrite read-only method '" + name + "'");
266
+ };
267
+ }
268
+ });
269
+ };
270
+ var toObjectSet = (arrayOrString, delimiter) => {
271
+ const obj = {};
272
+ const define = (arr) => {
273
+ arr.forEach((value) => {
274
+ obj[value] = true;
275
+ });
276
+ };
277
+ isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));
278
+ return obj;
279
+ };
280
+ var noop = () => {
281
+ };
282
+ var toFiniteNumber = (value, defaultValue) => {
283
+ return value != null && Number.isFinite(value = +value) ? value : defaultValue;
284
+ };
285
+ function isSpecCompliantForm(thing) {
286
+ return !!(thing && isFunction(thing.append) && thing[toStringTag] === "FormData" && thing[iterator]);
287
+ }
288
+ var toJSONObject = (obj) => {
289
+ const stack = new Array(10);
290
+ const visit = (source, i) => {
291
+ if (isObject(source)) {
292
+ if (stack.indexOf(source) >= 0) {
293
+ return;
294
+ }
295
+ if (isBuffer(source)) {
296
+ return source;
297
+ }
298
+ if (!("toJSON" in source)) {
299
+ stack[i] = source;
300
+ const target = isArray(source) ? [] : {};
301
+ forEach(source, (value, key) => {
302
+ const reducedValue = visit(value, i + 1);
303
+ !isUndefined(reducedValue) && (target[key] = reducedValue);
304
+ });
305
+ stack[i] = void 0;
306
+ return target;
307
+ }
308
+ }
309
+ return source;
310
+ };
311
+ return visit(obj, 0);
312
+ };
313
+ var isAsyncFn = kindOfTest("AsyncFunction");
314
+ var isThenable = (thing) => thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);
315
+ var _setImmediate = ((setImmediateSupported, postMessageSupported) => {
316
+ if (setImmediateSupported) {
317
+ return setImmediate;
318
+ }
319
+ return postMessageSupported ? ((token, callbacks) => {
320
+ _global.addEventListener("message", ({ source, data }) => {
321
+ if (source === _global && data === token) {
322
+ callbacks.length && callbacks.shift()();
323
+ }
324
+ }, false);
325
+ return (cb) => {
326
+ callbacks.push(cb);
327
+ _global.postMessage(token, "*");
328
+ };
329
+ })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);
330
+ })(
331
+ typeof setImmediate === "function",
332
+ isFunction(_global.postMessage)
333
+ );
334
+ var asap = typeof queueMicrotask !== "undefined" ? queueMicrotask.bind(_global) : typeof process !== "undefined" && process.nextTick || _setImmediate;
335
+ var isIterable = (thing) => thing != null && isFunction(thing[iterator]);
336
+ var utils_default = {
337
+ isArray,
338
+ isArrayBuffer,
339
+ isBuffer,
340
+ isFormData,
341
+ isArrayBufferView,
342
+ isString,
343
+ isNumber,
344
+ isBoolean,
345
+ isObject,
346
+ isPlainObject,
347
+ isEmptyObject,
348
+ isReadableStream,
349
+ isRequest,
350
+ isResponse,
351
+ isHeaders,
352
+ isUndefined,
353
+ isDate,
354
+ isFile,
355
+ isBlob,
356
+ isRegExp,
357
+ isFunction,
358
+ isStream,
359
+ isURLSearchParams,
360
+ isTypedArray,
361
+ isFileList,
362
+ forEach,
363
+ merge,
364
+ extend,
365
+ trim,
366
+ stripBOM,
367
+ inherits,
368
+ toFlatObject,
369
+ kindOf,
370
+ kindOfTest,
371
+ endsWith,
372
+ toArray,
373
+ forEachEntry,
374
+ matchAll,
375
+ isHTMLForm,
376
+ hasOwnProperty,
377
+ hasOwnProp: hasOwnProperty,
378
+ // an alias to avoid ESLint no-prototype-builtins detection
379
+ reduceDescriptors,
380
+ freezeMethods,
381
+ toObjectSet,
382
+ toCamelCase,
383
+ noop,
384
+ toFiniteNumber,
385
+ findKey,
386
+ global: _global,
387
+ isContextDefined,
388
+ isSpecCompliantForm,
389
+ toJSONObject,
390
+ isAsyncFn,
391
+ isThenable,
392
+ setImmediate: _setImmediate,
393
+ asap,
394
+ isIterable
395
+ };
396
+
397
+ // node_modules/axios/lib/core/AxiosError.js
398
+ function AxiosError(message, code, config, request, response) {
399
+ Error.call(this);
400
+ if (Error.captureStackTrace) {
401
+ Error.captureStackTrace(this, this.constructor);
402
+ } else {
403
+ this.stack = new Error().stack;
404
+ }
405
+ this.message = message;
406
+ this.name = "AxiosError";
407
+ code && (this.code = code);
408
+ config && (this.config = config);
409
+ request && (this.request = request);
410
+ if (response) {
411
+ this.response = response;
412
+ this.status = response.status ? response.status : null;
413
+ }
414
+ }
415
+ utils_default.inherits(AxiosError, Error, {
416
+ toJSON: function toJSON() {
417
+ return {
418
+ // Standard
419
+ message: this.message,
420
+ name: this.name,
421
+ // Microsoft
422
+ description: this.description,
423
+ number: this.number,
424
+ // Mozilla
425
+ fileName: this.fileName,
426
+ lineNumber: this.lineNumber,
427
+ columnNumber: this.columnNumber,
428
+ stack: this.stack,
429
+ // Axios
430
+ config: utils_default.toJSONObject(this.config),
431
+ code: this.code,
432
+ status: this.status
433
+ };
434
+ }
435
+ });
436
+ var prototype = AxiosError.prototype;
437
+ var descriptors = {};
438
+ [
439
+ "ERR_BAD_OPTION_VALUE",
440
+ "ERR_BAD_OPTION",
441
+ "ECONNABORTED",
442
+ "ETIMEDOUT",
443
+ "ERR_NETWORK",
444
+ "ERR_FR_TOO_MANY_REDIRECTS",
445
+ "ERR_DEPRECATED",
446
+ "ERR_BAD_RESPONSE",
447
+ "ERR_BAD_REQUEST",
448
+ "ERR_CANCELED",
449
+ "ERR_NOT_SUPPORT",
450
+ "ERR_INVALID_URL"
451
+ // eslint-disable-next-line func-names
452
+ ].forEach((code) => {
453
+ descriptors[code] = { value: code };
454
+ });
455
+ Object.defineProperties(AxiosError, descriptors);
456
+ Object.defineProperty(prototype, "isAxiosError", { value: true });
457
+ AxiosError.from = (error, code, config, request, response, customProps) => {
458
+ const axiosError = Object.create(prototype);
459
+ utils_default.toFlatObject(error, axiosError, function filter2(obj) {
460
+ return obj !== Error.prototype;
461
+ }, (prop) => {
462
+ return prop !== "isAxiosError";
463
+ });
464
+ const msg = error && error.message ? error.message : "Error";
465
+ const errCode = code == null && error ? error.code : code;
466
+ AxiosError.call(axiosError, msg, errCode, config, request, response);
467
+ if (error && axiosError.cause == null) {
468
+ Object.defineProperty(axiosError, "cause", { value: error, configurable: true });
469
+ }
470
+ axiosError.name = error && error.name || "Error";
471
+ customProps && Object.assign(axiosError, customProps);
472
+ return axiosError;
473
+ };
474
+ var AxiosError_default = AxiosError;
475
+
476
+ // node_modules/axios/lib/helpers/null.js
477
+ var null_default = null;
478
+
479
+ // node_modules/axios/lib/helpers/toFormData.js
480
+ function isVisitable(thing) {
481
+ return utils_default.isPlainObject(thing) || utils_default.isArray(thing);
482
+ }
483
+ function removeBrackets(key) {
484
+ return utils_default.endsWith(key, "[]") ? key.slice(0, -2) : key;
485
+ }
486
+ function renderKey(path, key, dots) {
487
+ if (!path) return key;
488
+ return path.concat(key).map(function each(token, i) {
489
+ token = removeBrackets(token);
490
+ return !dots && i ? "[" + token + "]" : token;
491
+ }).join(dots ? "." : "");
492
+ }
493
+ function isFlatArray(arr) {
494
+ return utils_default.isArray(arr) && !arr.some(isVisitable);
495
+ }
496
+ var predicates = utils_default.toFlatObject(utils_default, {}, null, function filter(prop) {
497
+ return /^is[A-Z]/.test(prop);
498
+ });
499
+ function toFormData(obj, formData, options) {
500
+ if (!utils_default.isObject(obj)) {
501
+ throw new TypeError("target must be an object");
502
+ }
503
+ formData = formData || new (null_default || FormData)();
504
+ options = utils_default.toFlatObject(options, {
505
+ metaTokens: true,
506
+ dots: false,
507
+ indexes: false
508
+ }, false, function defined(option, source) {
509
+ return !utils_default.isUndefined(source[option]);
510
+ });
511
+ const metaTokens = options.metaTokens;
512
+ const visitor = options.visitor || defaultVisitor;
513
+ const dots = options.dots;
514
+ const indexes = options.indexes;
515
+ const _Blob = options.Blob || typeof Blob !== "undefined" && Blob;
516
+ const useBlob = _Blob && utils_default.isSpecCompliantForm(formData);
517
+ if (!utils_default.isFunction(visitor)) {
518
+ throw new TypeError("visitor must be a function");
519
+ }
520
+ function convertValue(value) {
521
+ if (value === null) return "";
522
+ if (utils_default.isDate(value)) {
523
+ return value.toISOString();
524
+ }
525
+ if (utils_default.isBoolean(value)) {
526
+ return value.toString();
527
+ }
528
+ if (!useBlob && utils_default.isBlob(value)) {
529
+ throw new AxiosError_default("Blob is not supported. Use a Buffer instead.");
530
+ }
531
+ if (utils_default.isArrayBuffer(value) || utils_default.isTypedArray(value)) {
532
+ return useBlob && typeof Blob === "function" ? new Blob([value]) : Buffer.from(value);
533
+ }
534
+ return value;
535
+ }
536
+ function defaultVisitor(value, key, path) {
537
+ let arr = value;
538
+ if (value && !path && typeof value === "object") {
539
+ if (utils_default.endsWith(key, "{}")) {
540
+ key = metaTokens ? key : key.slice(0, -2);
541
+ value = JSON.stringify(value);
542
+ } else if (utils_default.isArray(value) && isFlatArray(value) || (utils_default.isFileList(value) || utils_default.endsWith(key, "[]")) && (arr = utils_default.toArray(value))) {
543
+ key = removeBrackets(key);
544
+ arr.forEach(function each(el, index) {
545
+ !(utils_default.isUndefined(el) || el === null) && formData.append(
546
+ // eslint-disable-next-line no-nested-ternary
547
+ indexes === true ? renderKey([key], index, dots) : indexes === null ? key : key + "[]",
548
+ convertValue(el)
549
+ );
550
+ });
551
+ return false;
552
+ }
553
+ }
554
+ if (isVisitable(value)) {
555
+ return true;
556
+ }
557
+ formData.append(renderKey(path, key, dots), convertValue(value));
558
+ return false;
559
+ }
560
+ const stack = [];
561
+ const exposedHelpers = Object.assign(predicates, {
562
+ defaultVisitor,
563
+ convertValue,
564
+ isVisitable
565
+ });
566
+ function build(value, path) {
567
+ if (utils_default.isUndefined(value)) return;
568
+ if (stack.indexOf(value) !== -1) {
569
+ throw Error("Circular reference detected in " + path.join("."));
570
+ }
571
+ stack.push(value);
572
+ utils_default.forEach(value, function each(el, key) {
573
+ const result = !(utils_default.isUndefined(el) || el === null) && visitor.call(
574
+ formData,
575
+ el,
576
+ utils_default.isString(key) ? key.trim() : key,
577
+ path,
578
+ exposedHelpers
579
+ );
580
+ if (result === true) {
581
+ build(el, path ? path.concat(key) : [key]);
582
+ }
583
+ });
584
+ stack.pop();
585
+ }
586
+ if (!utils_default.isObject(obj)) {
587
+ throw new TypeError("data must be an object");
588
+ }
589
+ build(obj);
590
+ return formData;
591
+ }
592
+ var toFormData_default = toFormData;
593
+
594
+ // node_modules/axios/lib/helpers/AxiosURLSearchParams.js
595
+ function encode(str) {
596
+ const charMap = {
597
+ "!": "%21",
598
+ "'": "%27",
599
+ "(": "%28",
600
+ ")": "%29",
601
+ "~": "%7E",
602
+ "%20": "+",
603
+ "%00": "\0"
604
+ };
605
+ return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {
606
+ return charMap[match];
607
+ });
608
+ }
609
+ function AxiosURLSearchParams(params, options) {
610
+ this._pairs = [];
611
+ params && toFormData_default(params, this, options);
612
+ }
613
+ var prototype2 = AxiosURLSearchParams.prototype;
614
+ prototype2.append = function append(name, value) {
615
+ this._pairs.push([name, value]);
616
+ };
617
+ prototype2.toString = function toString2(encoder) {
618
+ const _encode = encoder ? function(value) {
619
+ return encoder.call(this, value, encode);
620
+ } : encode;
621
+ return this._pairs.map(function each(pair) {
622
+ return _encode(pair[0]) + "=" + _encode(pair[1]);
623
+ }, "").join("&");
624
+ };
625
+ var AxiosURLSearchParams_default = AxiosURLSearchParams;
626
+
627
+ // node_modules/axios/lib/helpers/buildURL.js
628
+ function encode2(val) {
629
+ return encodeURIComponent(val).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+");
630
+ }
631
+ function buildURL(url, params, options) {
632
+ if (!params) {
633
+ return url;
634
+ }
635
+ const _encode = options && options.encode || encode2;
636
+ if (utils_default.isFunction(options)) {
637
+ options = {
638
+ serialize: options
639
+ };
640
+ }
641
+ const serializeFn = options && options.serialize;
642
+ let serializedParams;
643
+ if (serializeFn) {
644
+ serializedParams = serializeFn(params, options);
645
+ } else {
646
+ serializedParams = utils_default.isURLSearchParams(params) ? params.toString() : new AxiosURLSearchParams_default(params, options).toString(_encode);
647
+ }
648
+ if (serializedParams) {
649
+ const hashmarkIndex = url.indexOf("#");
650
+ if (hashmarkIndex !== -1) {
651
+ url = url.slice(0, hashmarkIndex);
652
+ }
653
+ url += (url.indexOf("?") === -1 ? "?" : "&") + serializedParams;
654
+ }
655
+ return url;
656
+ }
657
+
658
+ // node_modules/axios/lib/core/InterceptorManager.js
659
+ var InterceptorManager = class {
660
+ constructor() {
661
+ this.handlers = [];
662
+ }
663
+ /**
664
+ * Add a new interceptor to the stack
665
+ *
666
+ * @param {Function} fulfilled The function to handle `then` for a `Promise`
667
+ * @param {Function} rejected The function to handle `reject` for a `Promise`
668
+ *
669
+ * @return {Number} An ID used to remove interceptor later
670
+ */
671
+ use(fulfilled, rejected, options) {
672
+ this.handlers.push({
673
+ fulfilled,
674
+ rejected,
675
+ synchronous: options ? options.synchronous : false,
676
+ runWhen: options ? options.runWhen : null
677
+ });
678
+ return this.handlers.length - 1;
679
+ }
680
+ /**
681
+ * Remove an interceptor from the stack
682
+ *
683
+ * @param {Number} id The ID that was returned by `use`
684
+ *
685
+ * @returns {void}
686
+ */
687
+ eject(id) {
688
+ if (this.handlers[id]) {
689
+ this.handlers[id] = null;
690
+ }
691
+ }
692
+ /**
693
+ * Clear all interceptors from the stack
694
+ *
695
+ * @returns {void}
696
+ */
697
+ clear() {
698
+ if (this.handlers) {
699
+ this.handlers = [];
700
+ }
701
+ }
702
+ /**
703
+ * Iterate over all the registered interceptors
704
+ *
705
+ * This method is particularly useful for skipping over any
706
+ * interceptors that may have become `null` calling `eject`.
707
+ *
708
+ * @param {Function} fn The function to call for each interceptor
709
+ *
710
+ * @returns {void}
711
+ */
712
+ forEach(fn) {
713
+ utils_default.forEach(this.handlers, function forEachHandler(h) {
714
+ if (h !== null) {
715
+ fn(h);
716
+ }
717
+ });
718
+ }
719
+ };
720
+ var InterceptorManager_default = InterceptorManager;
721
+
722
+ // node_modules/axios/lib/defaults/transitional.js
723
+ var transitional_default = {
724
+ silentJSONParsing: true,
725
+ forcedJSONParsing: true,
726
+ clarifyTimeoutError: false
727
+ };
728
+
729
+ // node_modules/axios/lib/platform/browser/classes/URLSearchParams.js
730
+ var URLSearchParams_default = typeof URLSearchParams !== "undefined" ? URLSearchParams : AxiosURLSearchParams_default;
731
+
732
+ // node_modules/axios/lib/platform/browser/classes/FormData.js
733
+ var FormData_default = typeof FormData !== "undefined" ? FormData : null;
734
+
735
+ // node_modules/axios/lib/platform/browser/classes/Blob.js
736
+ var Blob_default = typeof Blob !== "undefined" ? Blob : null;
737
+
738
+ // node_modules/axios/lib/platform/browser/index.js
739
+ var browser_default = {
740
+ isBrowser: true,
741
+ classes: {
742
+ URLSearchParams: URLSearchParams_default,
743
+ FormData: FormData_default,
744
+ Blob: Blob_default
745
+ },
746
+ protocols: ["http", "https", "file", "blob", "url", "data"]
747
+ };
748
+
749
+ // node_modules/axios/lib/platform/common/utils.js
750
+ var utils_exports = {};
751
+ __export(utils_exports, {
752
+ hasBrowserEnv: () => hasBrowserEnv,
753
+ hasStandardBrowserEnv: () => hasStandardBrowserEnv,
754
+ hasStandardBrowserWebWorkerEnv: () => hasStandardBrowserWebWorkerEnv,
755
+ navigator: () => _navigator,
756
+ origin: () => origin
757
+ });
758
+ var hasBrowserEnv = typeof window !== "undefined" && typeof document !== "undefined";
759
+ var _navigator = typeof navigator === "object" && navigator || void 0;
760
+ var hasStandardBrowserEnv = hasBrowserEnv && (!_navigator || ["ReactNative", "NativeScript", "NS"].indexOf(_navigator.product) < 0);
761
+ var hasStandardBrowserWebWorkerEnv = (() => {
762
+ return typeof WorkerGlobalScope !== "undefined" && // eslint-disable-next-line no-undef
763
+ self instanceof WorkerGlobalScope && typeof self.importScripts === "function";
764
+ })();
765
+ var origin = hasBrowserEnv && window.location.href || "http://localhost";
766
+
767
+ // node_modules/axios/lib/platform/index.js
768
+ var platform_default = {
769
+ ...utils_exports,
770
+ ...browser_default
771
+ };
772
+
773
+ // node_modules/axios/lib/helpers/toURLEncodedForm.js
774
+ function toURLEncodedForm(data, options) {
775
+ return toFormData_default(data, new platform_default.classes.URLSearchParams(), {
776
+ visitor: function(value, key, path, helpers) {
777
+ if (platform_default.isNode && utils_default.isBuffer(value)) {
778
+ this.append(key, value.toString("base64"));
779
+ return false;
780
+ }
781
+ return helpers.defaultVisitor.apply(this, arguments);
782
+ },
783
+ ...options
784
+ });
785
+ }
786
+
787
+ // node_modules/axios/lib/helpers/formDataToJSON.js
788
+ function parsePropPath(name) {
789
+ return utils_default.matchAll(/\w+|\[(\w*)]/g, name).map((match) => {
790
+ return match[0] === "[]" ? "" : match[1] || match[0];
791
+ });
792
+ }
793
+ function arrayToObject(arr) {
794
+ const obj = {};
795
+ const keys = Object.keys(arr);
796
+ let i;
797
+ const len = keys.length;
798
+ let key;
799
+ for (i = 0; i < len; i++) {
800
+ key = keys[i];
801
+ obj[key] = arr[key];
802
+ }
803
+ return obj;
804
+ }
805
+ function formDataToJSON(formData) {
806
+ function buildPath(path, value, target, index) {
807
+ let name = path[index++];
808
+ if (name === "__proto__") return true;
809
+ const isNumericKey = Number.isFinite(+name);
810
+ const isLast = index >= path.length;
811
+ name = !name && utils_default.isArray(target) ? target.length : name;
812
+ if (isLast) {
813
+ if (utils_default.hasOwnProp(target, name)) {
814
+ target[name] = [target[name], value];
815
+ } else {
816
+ target[name] = value;
817
+ }
818
+ return !isNumericKey;
819
+ }
820
+ if (!target[name] || !utils_default.isObject(target[name])) {
821
+ target[name] = [];
822
+ }
823
+ const result = buildPath(path, value, target[name], index);
824
+ if (result && utils_default.isArray(target[name])) {
825
+ target[name] = arrayToObject(target[name]);
826
+ }
827
+ return !isNumericKey;
828
+ }
829
+ if (utils_default.isFormData(formData) && utils_default.isFunction(formData.entries)) {
830
+ const obj = {};
831
+ utils_default.forEachEntry(formData, (name, value) => {
832
+ buildPath(parsePropPath(name), value, obj, 0);
833
+ });
834
+ return obj;
835
+ }
836
+ return null;
837
+ }
838
+ var formDataToJSON_default = formDataToJSON;
839
+
840
+ // node_modules/axios/lib/defaults/index.js
841
+ function stringifySafely(rawValue, parser, encoder) {
842
+ if (utils_default.isString(rawValue)) {
843
+ try {
844
+ (parser || JSON.parse)(rawValue);
845
+ return utils_default.trim(rawValue);
846
+ } catch (e) {
847
+ if (e.name !== "SyntaxError") {
848
+ throw e;
849
+ }
850
+ }
851
+ }
852
+ return (encoder || JSON.stringify)(rawValue);
853
+ }
854
+ var defaults = {
855
+ transitional: transitional_default,
856
+ adapter: ["xhr", "http", "fetch"],
857
+ transformRequest: [function transformRequest(data, headers) {
858
+ const contentType = headers.getContentType() || "";
859
+ const hasJSONContentType = contentType.indexOf("application/json") > -1;
860
+ const isObjectPayload = utils_default.isObject(data);
861
+ if (isObjectPayload && utils_default.isHTMLForm(data)) {
862
+ data = new FormData(data);
863
+ }
864
+ const isFormData2 = utils_default.isFormData(data);
865
+ if (isFormData2) {
866
+ return hasJSONContentType ? JSON.stringify(formDataToJSON_default(data)) : data;
867
+ }
868
+ if (utils_default.isArrayBuffer(data) || utils_default.isBuffer(data) || utils_default.isStream(data) || utils_default.isFile(data) || utils_default.isBlob(data) || utils_default.isReadableStream(data)) {
869
+ return data;
870
+ }
871
+ if (utils_default.isArrayBufferView(data)) {
872
+ return data.buffer;
873
+ }
874
+ if (utils_default.isURLSearchParams(data)) {
875
+ headers.setContentType("application/x-www-form-urlencoded;charset=utf-8", false);
876
+ return data.toString();
877
+ }
878
+ let isFileList2;
879
+ if (isObjectPayload) {
880
+ if (contentType.indexOf("application/x-www-form-urlencoded") > -1) {
881
+ return toURLEncodedForm(data, this.formSerializer).toString();
882
+ }
883
+ if ((isFileList2 = utils_default.isFileList(data)) || contentType.indexOf("multipart/form-data") > -1) {
884
+ const _FormData = this.env && this.env.FormData;
885
+ return toFormData_default(
886
+ isFileList2 ? { "files[]": data } : data,
887
+ _FormData && new _FormData(),
888
+ this.formSerializer
889
+ );
890
+ }
891
+ }
892
+ if (isObjectPayload || hasJSONContentType) {
893
+ headers.setContentType("application/json", false);
894
+ return stringifySafely(data);
895
+ }
896
+ return data;
897
+ }],
898
+ transformResponse: [function transformResponse(data) {
899
+ const transitional2 = this.transitional || defaults.transitional;
900
+ const forcedJSONParsing = transitional2 && transitional2.forcedJSONParsing;
901
+ const JSONRequested = this.responseType === "json";
902
+ if (utils_default.isResponse(data) || utils_default.isReadableStream(data)) {
903
+ return data;
904
+ }
905
+ if (data && utils_default.isString(data) && (forcedJSONParsing && !this.responseType || JSONRequested)) {
906
+ const silentJSONParsing = transitional2 && transitional2.silentJSONParsing;
907
+ const strictJSONParsing = !silentJSONParsing && JSONRequested;
908
+ try {
909
+ return JSON.parse(data, this.parseReviver);
910
+ } catch (e) {
911
+ if (strictJSONParsing) {
912
+ if (e.name === "SyntaxError") {
913
+ throw AxiosError_default.from(e, AxiosError_default.ERR_BAD_RESPONSE, this, null, this.response);
914
+ }
915
+ throw e;
916
+ }
917
+ }
918
+ }
919
+ return data;
920
+ }],
921
+ /**
922
+ * A timeout in milliseconds to abort a request. If set to 0 (default) a
923
+ * timeout is not created.
924
+ */
925
+ timeout: 0,
926
+ xsrfCookieName: "XSRF-TOKEN",
927
+ xsrfHeaderName: "X-XSRF-TOKEN",
928
+ maxContentLength: -1,
929
+ maxBodyLength: -1,
930
+ env: {
931
+ FormData: platform_default.classes.FormData,
932
+ Blob: platform_default.classes.Blob
933
+ },
934
+ validateStatus: function validateStatus(status) {
935
+ return status >= 200 && status < 300;
936
+ },
937
+ headers: {
938
+ common: {
939
+ "Accept": "application/json, text/plain, */*",
940
+ "Content-Type": void 0
941
+ }
942
+ }
943
+ };
944
+ utils_default.forEach(["delete", "get", "head", "post", "put", "patch"], (method) => {
945
+ defaults.headers[method] = {};
946
+ });
947
+ var defaults_default = defaults;
948
+
949
+ // node_modules/axios/lib/helpers/parseHeaders.js
950
+ var ignoreDuplicateOf = utils_default.toObjectSet([
951
+ "age",
952
+ "authorization",
953
+ "content-length",
954
+ "content-type",
955
+ "etag",
956
+ "expires",
957
+ "from",
958
+ "host",
959
+ "if-modified-since",
960
+ "if-unmodified-since",
961
+ "last-modified",
962
+ "location",
963
+ "max-forwards",
964
+ "proxy-authorization",
965
+ "referer",
966
+ "retry-after",
967
+ "user-agent"
968
+ ]);
969
+ var parseHeaders_default = (rawHeaders) => {
970
+ const parsed = {};
971
+ let key;
972
+ let val;
973
+ let i;
974
+ rawHeaders && rawHeaders.split("\n").forEach(function parser(line) {
975
+ i = line.indexOf(":");
976
+ key = line.substring(0, i).trim().toLowerCase();
977
+ val = line.substring(i + 1).trim();
978
+ if (!key || parsed[key] && ignoreDuplicateOf[key]) {
979
+ return;
980
+ }
981
+ if (key === "set-cookie") {
982
+ if (parsed[key]) {
983
+ parsed[key].push(val);
984
+ } else {
985
+ parsed[key] = [val];
986
+ }
987
+ } else {
988
+ parsed[key] = parsed[key] ? parsed[key] + ", " + val : val;
989
+ }
990
+ });
991
+ return parsed;
992
+ };
993
+
994
+ // node_modules/axios/lib/core/AxiosHeaders.js
995
+ var $internals = Symbol("internals");
996
+ function normalizeHeader(header) {
997
+ return header && String(header).trim().toLowerCase();
998
+ }
999
+ function normalizeValue(value) {
1000
+ if (value === false || value == null) {
1001
+ return value;
1002
+ }
1003
+ return utils_default.isArray(value) ? value.map(normalizeValue) : String(value);
1004
+ }
1005
+ function parseTokens(str) {
1006
+ const tokens = /* @__PURE__ */ Object.create(null);
1007
+ const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;
1008
+ let match;
1009
+ while (match = tokensRE.exec(str)) {
1010
+ tokens[match[1]] = match[2];
1011
+ }
1012
+ return tokens;
1013
+ }
1014
+ var isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());
1015
+ function matchHeaderValue(context, value, header, filter2, isHeaderNameFilter) {
1016
+ if (utils_default.isFunction(filter2)) {
1017
+ return filter2.call(this, value, header);
1018
+ }
1019
+ if (isHeaderNameFilter) {
1020
+ value = header;
1021
+ }
1022
+ if (!utils_default.isString(value)) return;
1023
+ if (utils_default.isString(filter2)) {
1024
+ return value.indexOf(filter2) !== -1;
1025
+ }
1026
+ if (utils_default.isRegExp(filter2)) {
1027
+ return filter2.test(value);
1028
+ }
1029
+ }
1030
+ function formatHeader(header) {
1031
+ return header.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => {
1032
+ return char.toUpperCase() + str;
1033
+ });
1034
+ }
1035
+ function buildAccessors(obj, header) {
1036
+ const accessorName = utils_default.toCamelCase(" " + header);
1037
+ ["get", "set", "has"].forEach((methodName) => {
1038
+ Object.defineProperty(obj, methodName + accessorName, {
1039
+ value: function(arg1, arg2, arg3) {
1040
+ return this[methodName].call(this, header, arg1, arg2, arg3);
1041
+ },
1042
+ configurable: true
1043
+ });
1044
+ });
1045
+ }
1046
+ var AxiosHeaders = class {
1047
+ constructor(headers) {
1048
+ headers && this.set(headers);
1049
+ }
1050
+ set(header, valueOrRewrite, rewrite) {
1051
+ const self2 = this;
1052
+ function setHeader(_value, _header, _rewrite) {
1053
+ const lHeader = normalizeHeader(_header);
1054
+ if (!lHeader) {
1055
+ throw new Error("header name must be a non-empty string");
1056
+ }
1057
+ const key = utils_default.findKey(self2, lHeader);
1058
+ if (!key || self2[key] === void 0 || _rewrite === true || _rewrite === void 0 && self2[key] !== false) {
1059
+ self2[key || _header] = normalizeValue(_value);
1060
+ }
1061
+ }
1062
+ const setHeaders = (headers, _rewrite) => utils_default.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));
1063
+ if (utils_default.isPlainObject(header) || header instanceof this.constructor) {
1064
+ setHeaders(header, valueOrRewrite);
1065
+ } else if (utils_default.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
1066
+ setHeaders(parseHeaders_default(header), valueOrRewrite);
1067
+ } else if (utils_default.isObject(header) && utils_default.isIterable(header)) {
1068
+ let obj = {}, dest, key;
1069
+ for (const entry of header) {
1070
+ if (!utils_default.isArray(entry)) {
1071
+ throw TypeError("Object iterator must return a key-value pair");
1072
+ }
1073
+ obj[key = entry[0]] = (dest = obj[key]) ? utils_default.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]] : entry[1];
1074
+ }
1075
+ setHeaders(obj, valueOrRewrite);
1076
+ } else {
1077
+ header != null && setHeader(valueOrRewrite, header, rewrite);
1078
+ }
1079
+ return this;
1080
+ }
1081
+ get(header, parser) {
1082
+ header = normalizeHeader(header);
1083
+ if (header) {
1084
+ const key = utils_default.findKey(this, header);
1085
+ if (key) {
1086
+ const value = this[key];
1087
+ if (!parser) {
1088
+ return value;
1089
+ }
1090
+ if (parser === true) {
1091
+ return parseTokens(value);
1092
+ }
1093
+ if (utils_default.isFunction(parser)) {
1094
+ return parser.call(this, value, key);
1095
+ }
1096
+ if (utils_default.isRegExp(parser)) {
1097
+ return parser.exec(value);
1098
+ }
1099
+ throw new TypeError("parser must be boolean|regexp|function");
1100
+ }
1101
+ }
1102
+ }
1103
+ has(header, matcher) {
1104
+ header = normalizeHeader(header);
1105
+ if (header) {
1106
+ const key = utils_default.findKey(this, header);
1107
+ return !!(key && this[key] !== void 0 && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
1108
+ }
1109
+ return false;
1110
+ }
1111
+ delete(header, matcher) {
1112
+ const self2 = this;
1113
+ let deleted = false;
1114
+ function deleteHeader(_header) {
1115
+ _header = normalizeHeader(_header);
1116
+ if (_header) {
1117
+ const key = utils_default.findKey(self2, _header);
1118
+ if (key && (!matcher || matchHeaderValue(self2, self2[key], key, matcher))) {
1119
+ delete self2[key];
1120
+ deleted = true;
1121
+ }
1122
+ }
1123
+ }
1124
+ if (utils_default.isArray(header)) {
1125
+ header.forEach(deleteHeader);
1126
+ } else {
1127
+ deleteHeader(header);
1128
+ }
1129
+ return deleted;
1130
+ }
1131
+ clear(matcher) {
1132
+ const keys = Object.keys(this);
1133
+ let i = keys.length;
1134
+ let deleted = false;
1135
+ while (i--) {
1136
+ const key = keys[i];
1137
+ if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {
1138
+ delete this[key];
1139
+ deleted = true;
1140
+ }
1141
+ }
1142
+ return deleted;
1143
+ }
1144
+ normalize(format) {
1145
+ const self2 = this;
1146
+ const headers = {};
1147
+ utils_default.forEach(this, (value, header) => {
1148
+ const key = utils_default.findKey(headers, header);
1149
+ if (key) {
1150
+ self2[key] = normalizeValue(value);
1151
+ delete self2[header];
1152
+ return;
1153
+ }
1154
+ const normalized = format ? formatHeader(header) : String(header).trim();
1155
+ if (normalized !== header) {
1156
+ delete self2[header];
1157
+ }
1158
+ self2[normalized] = normalizeValue(value);
1159
+ headers[normalized] = true;
1160
+ });
1161
+ return this;
1162
+ }
1163
+ concat(...targets) {
1164
+ return this.constructor.concat(this, ...targets);
1165
+ }
1166
+ toJSON(asStrings) {
1167
+ const obj = /* @__PURE__ */ Object.create(null);
1168
+ utils_default.forEach(this, (value, header) => {
1169
+ value != null && value !== false && (obj[header] = asStrings && utils_default.isArray(value) ? value.join(", ") : value);
1170
+ });
1171
+ return obj;
1172
+ }
1173
+ [Symbol.iterator]() {
1174
+ return Object.entries(this.toJSON())[Symbol.iterator]();
1175
+ }
1176
+ toString() {
1177
+ return Object.entries(this.toJSON()).map(([header, value]) => header + ": " + value).join("\n");
1178
+ }
1179
+ getSetCookie() {
1180
+ return this.get("set-cookie") || [];
1181
+ }
1182
+ get [Symbol.toStringTag]() {
1183
+ return "AxiosHeaders";
1184
+ }
1185
+ static from(thing) {
1186
+ return thing instanceof this ? thing : new this(thing);
1187
+ }
1188
+ static concat(first, ...targets) {
1189
+ const computed = new this(first);
1190
+ targets.forEach((target) => computed.set(target));
1191
+ return computed;
1192
+ }
1193
+ static accessor(header) {
1194
+ const internals = this[$internals] = this[$internals] = {
1195
+ accessors: {}
1196
+ };
1197
+ const accessors = internals.accessors;
1198
+ const prototype3 = this.prototype;
1199
+ function defineAccessor(_header) {
1200
+ const lHeader = normalizeHeader(_header);
1201
+ if (!accessors[lHeader]) {
1202
+ buildAccessors(prototype3, _header);
1203
+ accessors[lHeader] = true;
1204
+ }
1205
+ }
1206
+ utils_default.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);
1207
+ return this;
1208
+ }
1209
+ };
1210
+ AxiosHeaders.accessor(["Content-Type", "Content-Length", "Accept", "Accept-Encoding", "User-Agent", "Authorization"]);
1211
+ utils_default.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {
1212
+ let mapped = key[0].toUpperCase() + key.slice(1);
1213
+ return {
1214
+ get: () => value,
1215
+ set(headerValue) {
1216
+ this[mapped] = headerValue;
1217
+ }
1218
+ };
1219
+ });
1220
+ utils_default.freezeMethods(AxiosHeaders);
1221
+ var AxiosHeaders_default = AxiosHeaders;
1222
+
1223
+ // node_modules/axios/lib/core/transformData.js
1224
+ function transformData(fns, response) {
1225
+ const config = this || defaults_default;
1226
+ const context = response || config;
1227
+ const headers = AxiosHeaders_default.from(context.headers);
1228
+ let data = context.data;
1229
+ utils_default.forEach(fns, function transform(fn) {
1230
+ data = fn.call(config, data, headers.normalize(), response ? response.status : void 0);
1231
+ });
1232
+ headers.normalize();
1233
+ return data;
1234
+ }
1235
+
1236
+ // node_modules/axios/lib/cancel/isCancel.js
1237
+ function isCancel(value) {
1238
+ return !!(value && value.__CANCEL__);
1239
+ }
1240
+
1241
+ // node_modules/axios/lib/cancel/CanceledError.js
1242
+ function CanceledError(message, config, request) {
1243
+ AxiosError_default.call(this, message == null ? "canceled" : message, AxiosError_default.ERR_CANCELED, config, request);
1244
+ this.name = "CanceledError";
1245
+ }
1246
+ utils_default.inherits(CanceledError, AxiosError_default, {
1247
+ __CANCEL__: true
1248
+ });
1249
+ var CanceledError_default = CanceledError;
1250
+
1251
+ // node_modules/axios/lib/core/settle.js
1252
+ function settle(resolve, reject, response) {
1253
+ const validateStatus2 = response.config.validateStatus;
1254
+ if (!response.status || !validateStatus2 || validateStatus2(response.status)) {
1255
+ resolve(response);
1256
+ } else {
1257
+ reject(new AxiosError_default(
1258
+ "Request failed with status code " + response.status,
1259
+ [AxiosError_default.ERR_BAD_REQUEST, AxiosError_default.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],
1260
+ response.config,
1261
+ response.request,
1262
+ response
1263
+ ));
1264
+ }
1265
+ }
1266
+
1267
+ // node_modules/axios/lib/helpers/parseProtocol.js
1268
+ function parseProtocol(url) {
1269
+ const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);
1270
+ return match && match[1] || "";
1271
+ }
1272
+
1273
+ // node_modules/axios/lib/helpers/speedometer.js
1274
+ function speedometer(samplesCount, min) {
1275
+ samplesCount = samplesCount || 10;
1276
+ const bytes = new Array(samplesCount);
1277
+ const timestamps = new Array(samplesCount);
1278
+ let head = 0;
1279
+ let tail = 0;
1280
+ let firstSampleTS;
1281
+ min = min !== void 0 ? min : 1e3;
1282
+ return function push(chunkLength) {
1283
+ const now = Date.now();
1284
+ const startedAt = timestamps[tail];
1285
+ if (!firstSampleTS) {
1286
+ firstSampleTS = now;
1287
+ }
1288
+ bytes[head] = chunkLength;
1289
+ timestamps[head] = now;
1290
+ let i = tail;
1291
+ let bytesCount = 0;
1292
+ while (i !== head) {
1293
+ bytesCount += bytes[i++];
1294
+ i = i % samplesCount;
1295
+ }
1296
+ head = (head + 1) % samplesCount;
1297
+ if (head === tail) {
1298
+ tail = (tail + 1) % samplesCount;
1299
+ }
1300
+ if (now - firstSampleTS < min) {
1301
+ return;
1302
+ }
1303
+ const passed = startedAt && now - startedAt;
1304
+ return passed ? Math.round(bytesCount * 1e3 / passed) : void 0;
1305
+ };
1306
+ }
1307
+ var speedometer_default = speedometer;
1308
+
1309
+ // node_modules/axios/lib/helpers/throttle.js
1310
+ function throttle(fn, freq) {
1311
+ let timestamp = 0;
1312
+ let threshold = 1e3 / freq;
1313
+ let lastArgs;
1314
+ let timer;
1315
+ const invoke = (args, now = Date.now()) => {
1316
+ timestamp = now;
1317
+ lastArgs = null;
1318
+ if (timer) {
1319
+ clearTimeout(timer);
1320
+ timer = null;
1321
+ }
1322
+ fn(...args);
1323
+ };
1324
+ const throttled = (...args) => {
1325
+ const now = Date.now();
1326
+ const passed = now - timestamp;
1327
+ if (passed >= threshold) {
1328
+ invoke(args, now);
1329
+ } else {
1330
+ lastArgs = args;
1331
+ if (!timer) {
1332
+ timer = setTimeout(() => {
1333
+ timer = null;
1334
+ invoke(lastArgs);
1335
+ }, threshold - passed);
1336
+ }
1337
+ }
1338
+ };
1339
+ const flush = () => lastArgs && invoke(lastArgs);
1340
+ return [throttled, flush];
1341
+ }
1342
+ var throttle_default = throttle;
1343
+
1344
+ // node_modules/axios/lib/helpers/progressEventReducer.js
1345
+ var progressEventReducer = (listener, isDownloadStream, freq = 3) => {
1346
+ let bytesNotified = 0;
1347
+ const _speedometer = speedometer_default(50, 250);
1348
+ return throttle_default((e) => {
1349
+ const loaded = e.loaded;
1350
+ const total = e.lengthComputable ? e.total : void 0;
1351
+ const progressBytes = loaded - bytesNotified;
1352
+ const rate = _speedometer(progressBytes);
1353
+ const inRange = loaded <= total;
1354
+ bytesNotified = loaded;
1355
+ const data = {
1356
+ loaded,
1357
+ total,
1358
+ progress: total ? loaded / total : void 0,
1359
+ bytes: progressBytes,
1360
+ rate: rate ? rate : void 0,
1361
+ estimated: rate && total && inRange ? (total - loaded) / rate : void 0,
1362
+ event: e,
1363
+ lengthComputable: total != null,
1364
+ [isDownloadStream ? "download" : "upload"]: true
1365
+ };
1366
+ listener(data);
1367
+ }, freq);
1368
+ };
1369
+ var progressEventDecorator = (total, throttled) => {
1370
+ const lengthComputable = total != null;
1371
+ return [(loaded) => throttled[0]({
1372
+ lengthComputable,
1373
+ total,
1374
+ loaded
1375
+ }), throttled[1]];
1376
+ };
1377
+ var asyncDecorator = (fn) => (...args) => utils_default.asap(() => fn(...args));
1378
+
1379
+ // node_modules/axios/lib/helpers/isURLSameOrigin.js
1380
+ var isURLSameOrigin_default = platform_default.hasStandardBrowserEnv ? /* @__PURE__ */ ((origin2, isMSIE) => (url) => {
1381
+ url = new URL(url, platform_default.origin);
1382
+ return origin2.protocol === url.protocol && origin2.host === url.host && (isMSIE || origin2.port === url.port);
1383
+ })(
1384
+ new URL(platform_default.origin),
1385
+ platform_default.navigator && /(msie|trident)/i.test(platform_default.navigator.userAgent)
1386
+ ) : () => true;
1387
+
1388
+ // node_modules/axios/lib/helpers/cookies.js
1389
+ var cookies_default = platform_default.hasStandardBrowserEnv ? (
1390
+ // Standard browser envs support document.cookie
1391
+ {
1392
+ write(name, value, expires, path, domain, secure, sameSite) {
1393
+ if (typeof document === "undefined") return;
1394
+ const cookie = [`${name}=${encodeURIComponent(value)}`];
1395
+ if (utils_default.isNumber(expires)) {
1396
+ cookie.push(`expires=${new Date(expires).toUTCString()}`);
1397
+ }
1398
+ if (utils_default.isString(path)) {
1399
+ cookie.push(`path=${path}`);
1400
+ }
1401
+ if (utils_default.isString(domain)) {
1402
+ cookie.push(`domain=${domain}`);
1403
+ }
1404
+ if (secure === true) {
1405
+ cookie.push("secure");
1406
+ }
1407
+ if (utils_default.isString(sameSite)) {
1408
+ cookie.push(`SameSite=${sameSite}`);
1409
+ }
1410
+ document.cookie = cookie.join("; ");
1411
+ },
1412
+ read(name) {
1413
+ if (typeof document === "undefined") return null;
1414
+ const match = document.cookie.match(new RegExp("(?:^|; )" + name + "=([^;]*)"));
1415
+ return match ? decodeURIComponent(match[1]) : null;
1416
+ },
1417
+ remove(name) {
1418
+ this.write(name, "", Date.now() - 864e5, "/");
1419
+ }
1420
+ }
1421
+ ) : (
1422
+ // Non-standard browser env (web workers, react-native) lack needed support.
1423
+ {
1424
+ write() {
1425
+ },
1426
+ read() {
1427
+ return null;
1428
+ },
1429
+ remove() {
1430
+ }
1431
+ }
1432
+ );
1433
+
1434
+ // node_modules/axios/lib/helpers/isAbsoluteURL.js
1435
+ function isAbsoluteURL(url) {
1436
+ return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
1437
+ }
1438
+
1439
+ // node_modules/axios/lib/helpers/combineURLs.js
1440
+ function combineURLs(baseURL, relativeURL) {
1441
+ return relativeURL ? baseURL.replace(/\/?\/$/, "") + "/" + relativeURL.replace(/^\/+/, "") : baseURL;
1442
+ }
1443
+
1444
+ // node_modules/axios/lib/core/buildFullPath.js
1445
+ function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {
1446
+ let isRelativeUrl = !isAbsoluteURL(requestedURL);
1447
+ if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {
1448
+ return combineURLs(baseURL, requestedURL);
1449
+ }
1450
+ return requestedURL;
1451
+ }
1452
+
1453
+ // node_modules/axios/lib/core/mergeConfig.js
1454
+ var headersToObject = (thing) => thing instanceof AxiosHeaders_default ? { ...thing } : thing;
1455
+ function mergeConfig(config1, config2) {
1456
+ config2 = config2 || {};
1457
+ const config = {};
1458
+ function getMergedValue(target, source, prop, caseless) {
1459
+ if (utils_default.isPlainObject(target) && utils_default.isPlainObject(source)) {
1460
+ return utils_default.merge.call({ caseless }, target, source);
1461
+ } else if (utils_default.isPlainObject(source)) {
1462
+ return utils_default.merge({}, source);
1463
+ } else if (utils_default.isArray(source)) {
1464
+ return source.slice();
1465
+ }
1466
+ return source;
1467
+ }
1468
+ function mergeDeepProperties(a, b, prop, caseless) {
1469
+ if (!utils_default.isUndefined(b)) {
1470
+ return getMergedValue(a, b, prop, caseless);
1471
+ } else if (!utils_default.isUndefined(a)) {
1472
+ return getMergedValue(void 0, a, prop, caseless);
1473
+ }
1474
+ }
1475
+ function valueFromConfig2(a, b) {
1476
+ if (!utils_default.isUndefined(b)) {
1477
+ return getMergedValue(void 0, b);
1478
+ }
1479
+ }
1480
+ function defaultToConfig2(a, b) {
1481
+ if (!utils_default.isUndefined(b)) {
1482
+ return getMergedValue(void 0, b);
1483
+ } else if (!utils_default.isUndefined(a)) {
1484
+ return getMergedValue(void 0, a);
1485
+ }
1486
+ }
1487
+ function mergeDirectKeys(a, b, prop) {
1488
+ if (prop in config2) {
1489
+ return getMergedValue(a, b);
1490
+ } else if (prop in config1) {
1491
+ return getMergedValue(void 0, a);
1492
+ }
1493
+ }
1494
+ const mergeMap = {
1495
+ url: valueFromConfig2,
1496
+ method: valueFromConfig2,
1497
+ data: valueFromConfig2,
1498
+ baseURL: defaultToConfig2,
1499
+ transformRequest: defaultToConfig2,
1500
+ transformResponse: defaultToConfig2,
1501
+ paramsSerializer: defaultToConfig2,
1502
+ timeout: defaultToConfig2,
1503
+ timeoutMessage: defaultToConfig2,
1504
+ withCredentials: defaultToConfig2,
1505
+ withXSRFToken: defaultToConfig2,
1506
+ adapter: defaultToConfig2,
1507
+ responseType: defaultToConfig2,
1508
+ xsrfCookieName: defaultToConfig2,
1509
+ xsrfHeaderName: defaultToConfig2,
1510
+ onUploadProgress: defaultToConfig2,
1511
+ onDownloadProgress: defaultToConfig2,
1512
+ decompress: defaultToConfig2,
1513
+ maxContentLength: defaultToConfig2,
1514
+ maxBodyLength: defaultToConfig2,
1515
+ beforeRedirect: defaultToConfig2,
1516
+ transport: defaultToConfig2,
1517
+ httpAgent: defaultToConfig2,
1518
+ httpsAgent: defaultToConfig2,
1519
+ cancelToken: defaultToConfig2,
1520
+ socketPath: defaultToConfig2,
1521
+ responseEncoding: defaultToConfig2,
1522
+ validateStatus: mergeDirectKeys,
1523
+ headers: (a, b, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true)
1524
+ };
1525
+ utils_default.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {
1526
+ const merge2 = mergeMap[prop] || mergeDeepProperties;
1527
+ const configValue = merge2(config1[prop], config2[prop], prop);
1528
+ utils_default.isUndefined(configValue) && merge2 !== mergeDirectKeys || (config[prop] = configValue);
1529
+ });
1530
+ return config;
1531
+ }
1532
+
1533
+ // node_modules/axios/lib/helpers/resolveConfig.js
1534
+ var resolveConfig_default = (config) => {
1535
+ const newConfig = mergeConfig({}, config);
1536
+ let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;
1537
+ newConfig.headers = headers = AxiosHeaders_default.from(headers);
1538
+ newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);
1539
+ if (auth) {
1540
+ headers.set(
1541
+ "Authorization",
1542
+ "Basic " + btoa((auth.username || "") + ":" + (auth.password ? unescape(encodeURIComponent(auth.password)) : ""))
1543
+ );
1544
+ }
1545
+ if (utils_default.isFormData(data)) {
1546
+ if (platform_default.hasStandardBrowserEnv || platform_default.hasStandardBrowserWebWorkerEnv) {
1547
+ headers.setContentType(void 0);
1548
+ } else if (utils_default.isFunction(data.getHeaders)) {
1549
+ const formHeaders = data.getHeaders();
1550
+ const allowedHeaders = ["content-type", "content-length"];
1551
+ Object.entries(formHeaders).forEach(([key, val]) => {
1552
+ if (allowedHeaders.includes(key.toLowerCase())) {
1553
+ headers.set(key, val);
1554
+ }
1555
+ });
1556
+ }
1557
+ }
1558
+ if (platform_default.hasStandardBrowserEnv) {
1559
+ withXSRFToken && utils_default.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));
1560
+ if (withXSRFToken || withXSRFToken !== false && isURLSameOrigin_default(newConfig.url)) {
1561
+ const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies_default.read(xsrfCookieName);
1562
+ if (xsrfValue) {
1563
+ headers.set(xsrfHeaderName, xsrfValue);
1564
+ }
1565
+ }
1566
+ }
1567
+ return newConfig;
1568
+ };
1569
+
1570
+ // node_modules/axios/lib/adapters/xhr.js
1571
+ var isXHRAdapterSupported = typeof XMLHttpRequest !== "undefined";
1572
+ var xhr_default = isXHRAdapterSupported && function(config) {
1573
+ return new Promise(function dispatchXhrRequest(resolve, reject) {
1574
+ const _config = resolveConfig_default(config);
1575
+ let requestData = _config.data;
1576
+ const requestHeaders = AxiosHeaders_default.from(_config.headers).normalize();
1577
+ let { responseType, onUploadProgress, onDownloadProgress } = _config;
1578
+ let onCanceled;
1579
+ let uploadThrottled, downloadThrottled;
1580
+ let flushUpload, flushDownload;
1581
+ function done() {
1582
+ flushUpload && flushUpload();
1583
+ flushDownload && flushDownload();
1584
+ _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);
1585
+ _config.signal && _config.signal.removeEventListener("abort", onCanceled);
1586
+ }
1587
+ let request = new XMLHttpRequest();
1588
+ request.open(_config.method.toUpperCase(), _config.url, true);
1589
+ request.timeout = _config.timeout;
1590
+ function onloadend() {
1591
+ if (!request) {
1592
+ return;
1593
+ }
1594
+ const responseHeaders = AxiosHeaders_default.from(
1595
+ "getAllResponseHeaders" in request && request.getAllResponseHeaders()
1596
+ );
1597
+ const responseData = !responseType || responseType === "text" || responseType === "json" ? request.responseText : request.response;
1598
+ const response = {
1599
+ data: responseData,
1600
+ status: request.status,
1601
+ statusText: request.statusText,
1602
+ headers: responseHeaders,
1603
+ config,
1604
+ request
1605
+ };
1606
+ settle(function _resolve(value) {
1607
+ resolve(value);
1608
+ done();
1609
+ }, function _reject(err) {
1610
+ reject(err);
1611
+ done();
1612
+ }, response);
1613
+ request = null;
1614
+ }
1615
+ if ("onloadend" in request) {
1616
+ request.onloadend = onloadend;
1617
+ } else {
1618
+ request.onreadystatechange = function handleLoad() {
1619
+ if (!request || request.readyState !== 4) {
1620
+ return;
1621
+ }
1622
+ if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf("file:") === 0)) {
1623
+ return;
1624
+ }
1625
+ setTimeout(onloadend);
1626
+ };
1627
+ }
1628
+ request.onabort = function handleAbort() {
1629
+ if (!request) {
1630
+ return;
1631
+ }
1632
+ reject(new AxiosError_default("Request aborted", AxiosError_default.ECONNABORTED, config, request));
1633
+ request = null;
1634
+ };
1635
+ request.onerror = function handleError(event) {
1636
+ const msg = event && event.message ? event.message : "Network Error";
1637
+ const err = new AxiosError_default(msg, AxiosError_default.ERR_NETWORK, config, request);
1638
+ err.event = event || null;
1639
+ reject(err);
1640
+ request = null;
1641
+ };
1642
+ request.ontimeout = function handleTimeout() {
1643
+ let timeoutErrorMessage = _config.timeout ? "timeout of " + _config.timeout + "ms exceeded" : "timeout exceeded";
1644
+ const transitional2 = _config.transitional || transitional_default;
1645
+ if (_config.timeoutErrorMessage) {
1646
+ timeoutErrorMessage = _config.timeoutErrorMessage;
1647
+ }
1648
+ reject(new AxiosError_default(
1649
+ timeoutErrorMessage,
1650
+ transitional2.clarifyTimeoutError ? AxiosError_default.ETIMEDOUT : AxiosError_default.ECONNABORTED,
1651
+ config,
1652
+ request
1653
+ ));
1654
+ request = null;
1655
+ };
1656
+ requestData === void 0 && requestHeaders.setContentType(null);
1657
+ if ("setRequestHeader" in request) {
1658
+ utils_default.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
1659
+ request.setRequestHeader(key, val);
1660
+ });
1661
+ }
1662
+ if (!utils_default.isUndefined(_config.withCredentials)) {
1663
+ request.withCredentials = !!_config.withCredentials;
1664
+ }
1665
+ if (responseType && responseType !== "json") {
1666
+ request.responseType = _config.responseType;
1667
+ }
1668
+ if (onDownloadProgress) {
1669
+ [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);
1670
+ request.addEventListener("progress", downloadThrottled);
1671
+ }
1672
+ if (onUploadProgress && request.upload) {
1673
+ [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);
1674
+ request.upload.addEventListener("progress", uploadThrottled);
1675
+ request.upload.addEventListener("loadend", flushUpload);
1676
+ }
1677
+ if (_config.cancelToken || _config.signal) {
1678
+ onCanceled = (cancel) => {
1679
+ if (!request) {
1680
+ return;
1681
+ }
1682
+ reject(!cancel || cancel.type ? new CanceledError_default(null, config, request) : cancel);
1683
+ request.abort();
1684
+ request = null;
1685
+ };
1686
+ _config.cancelToken && _config.cancelToken.subscribe(onCanceled);
1687
+ if (_config.signal) {
1688
+ _config.signal.aborted ? onCanceled() : _config.signal.addEventListener("abort", onCanceled);
1689
+ }
1690
+ }
1691
+ const protocol = parseProtocol(_config.url);
1692
+ if (protocol && platform_default.protocols.indexOf(protocol) === -1) {
1693
+ reject(new AxiosError_default("Unsupported protocol " + protocol + ":", AxiosError_default.ERR_BAD_REQUEST, config));
1694
+ return;
1695
+ }
1696
+ request.send(requestData || null);
1697
+ });
1698
+ };
1699
+
1700
+ // node_modules/axios/lib/helpers/composeSignals.js
1701
+ var composeSignals = (signals, timeout) => {
1702
+ const { length } = signals = signals ? signals.filter(Boolean) : [];
1703
+ if (timeout || length) {
1704
+ let controller = new AbortController();
1705
+ let aborted;
1706
+ const onabort = function(reason) {
1707
+ if (!aborted) {
1708
+ aborted = true;
1709
+ unsubscribe();
1710
+ const err = reason instanceof Error ? reason : this.reason;
1711
+ controller.abort(err instanceof AxiosError_default ? err : new CanceledError_default(err instanceof Error ? err.message : err));
1712
+ }
1713
+ };
1714
+ let timer = timeout && setTimeout(() => {
1715
+ timer = null;
1716
+ onabort(new AxiosError_default(`timeout ${timeout} of ms exceeded`, AxiosError_default.ETIMEDOUT));
1717
+ }, timeout);
1718
+ const unsubscribe = () => {
1719
+ if (signals) {
1720
+ timer && clearTimeout(timer);
1721
+ timer = null;
1722
+ signals.forEach((signal2) => {
1723
+ signal2.unsubscribe ? signal2.unsubscribe(onabort) : signal2.removeEventListener("abort", onabort);
1724
+ });
1725
+ signals = null;
1726
+ }
1727
+ };
1728
+ signals.forEach((signal2) => signal2.addEventListener("abort", onabort));
1729
+ const { signal } = controller;
1730
+ signal.unsubscribe = () => utils_default.asap(unsubscribe);
1731
+ return signal;
1732
+ }
1733
+ };
1734
+ var composeSignals_default = composeSignals;
1735
+
1736
+ // node_modules/axios/lib/helpers/trackStream.js
1737
+ var streamChunk = function* (chunk, chunkSize) {
1738
+ let len = chunk.byteLength;
1739
+ if (!chunkSize || len < chunkSize) {
1740
+ yield chunk;
1741
+ return;
1742
+ }
1743
+ let pos = 0;
1744
+ let end;
1745
+ while (pos < len) {
1746
+ end = pos + chunkSize;
1747
+ yield chunk.slice(pos, end);
1748
+ pos = end;
1749
+ }
1750
+ };
1751
+ var readBytes = async function* (iterable, chunkSize) {
1752
+ for await (const chunk of readStream(iterable)) {
1753
+ yield* streamChunk(chunk, chunkSize);
1754
+ }
1755
+ };
1756
+ var readStream = async function* (stream) {
1757
+ if (stream[Symbol.asyncIterator]) {
1758
+ yield* stream;
1759
+ return;
1760
+ }
1761
+ const reader = stream.getReader();
1762
+ try {
1763
+ for (; ; ) {
1764
+ const { done, value } = await reader.read();
1765
+ if (done) {
1766
+ break;
1767
+ }
1768
+ yield value;
1769
+ }
1770
+ } finally {
1771
+ await reader.cancel();
1772
+ }
1773
+ };
1774
+ var trackStream = (stream, chunkSize, onProgress, onFinish) => {
1775
+ const iterator2 = readBytes(stream, chunkSize);
1776
+ let bytes = 0;
1777
+ let done;
1778
+ let _onFinish = (e) => {
1779
+ if (!done) {
1780
+ done = true;
1781
+ onFinish && onFinish(e);
1782
+ }
1783
+ };
1784
+ return new ReadableStream({
1785
+ async pull(controller) {
1786
+ try {
1787
+ const { done: done2, value } = await iterator2.next();
1788
+ if (done2) {
1789
+ _onFinish();
1790
+ controller.close();
1791
+ return;
1792
+ }
1793
+ let len = value.byteLength;
1794
+ if (onProgress) {
1795
+ let loadedBytes = bytes += len;
1796
+ onProgress(loadedBytes);
1797
+ }
1798
+ controller.enqueue(new Uint8Array(value));
1799
+ } catch (err) {
1800
+ _onFinish(err);
1801
+ throw err;
1802
+ }
1803
+ },
1804
+ cancel(reason) {
1805
+ _onFinish(reason);
1806
+ return iterator2.return();
1807
+ }
1808
+ }, {
1809
+ highWaterMark: 2
1810
+ });
1811
+ };
1812
+
1813
+ // node_modules/axios/lib/adapters/fetch.js
1814
+ var DEFAULT_CHUNK_SIZE = 64 * 1024;
1815
+ var { isFunction: isFunction2 } = utils_default;
1816
+ var globalFetchAPI = (({ Request, Response }) => ({
1817
+ Request,
1818
+ Response
1819
+ }))(utils_default.global);
1820
+ var {
1821
+ ReadableStream: ReadableStream2,
1822
+ TextEncoder
1823
+ } = utils_default.global;
1824
+ var test = (fn, ...args) => {
1825
+ try {
1826
+ return !!fn(...args);
1827
+ } catch (e) {
1828
+ return false;
1829
+ }
1830
+ };
1831
+ var factory = (env) => {
1832
+ env = utils_default.merge.call({
1833
+ skipUndefined: true
1834
+ }, globalFetchAPI, env);
1835
+ const { fetch: envFetch, Request, Response } = env;
1836
+ const isFetchSupported = envFetch ? isFunction2(envFetch) : typeof fetch === "function";
1837
+ const isRequestSupported = isFunction2(Request);
1838
+ const isResponseSupported = isFunction2(Response);
1839
+ if (!isFetchSupported) {
1840
+ return false;
1841
+ }
1842
+ const isReadableStreamSupported = isFetchSupported && isFunction2(ReadableStream2);
1843
+ const encodeText = isFetchSupported && (typeof TextEncoder === "function" ? /* @__PURE__ */ ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));
1844
+ const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {
1845
+ let duplexAccessed = false;
1846
+ const hasContentType = new Request(platform_default.origin, {
1847
+ body: new ReadableStream2(),
1848
+ method: "POST",
1849
+ get duplex() {
1850
+ duplexAccessed = true;
1851
+ return "half";
1852
+ }
1853
+ }).headers.has("Content-Type");
1854
+ return duplexAccessed && !hasContentType;
1855
+ });
1856
+ const supportsResponseStream = isResponseSupported && isReadableStreamSupported && test(() => utils_default.isReadableStream(new Response("").body));
1857
+ const resolvers = {
1858
+ stream: supportsResponseStream && ((res) => res.body)
1859
+ };
1860
+ isFetchSupported && (() => {
1861
+ ["text", "arrayBuffer", "blob", "formData", "stream"].forEach((type) => {
1862
+ !resolvers[type] && (resolvers[type] = (res, config) => {
1863
+ let method = res && res[type];
1864
+ if (method) {
1865
+ return method.call(res);
1866
+ }
1867
+ throw new AxiosError_default(`Response type '${type}' is not supported`, AxiosError_default.ERR_NOT_SUPPORT, config);
1868
+ });
1869
+ });
1870
+ })();
1871
+ const getBodyLength = async (body) => {
1872
+ if (body == null) {
1873
+ return 0;
1874
+ }
1875
+ if (utils_default.isBlob(body)) {
1876
+ return body.size;
1877
+ }
1878
+ if (utils_default.isSpecCompliantForm(body)) {
1879
+ const _request = new Request(platform_default.origin, {
1880
+ method: "POST",
1881
+ body
1882
+ });
1883
+ return (await _request.arrayBuffer()).byteLength;
1884
+ }
1885
+ if (utils_default.isArrayBufferView(body) || utils_default.isArrayBuffer(body)) {
1886
+ return body.byteLength;
1887
+ }
1888
+ if (utils_default.isURLSearchParams(body)) {
1889
+ body = body + "";
1890
+ }
1891
+ if (utils_default.isString(body)) {
1892
+ return (await encodeText(body)).byteLength;
1893
+ }
1894
+ };
1895
+ const resolveBodyLength = async (headers, body) => {
1896
+ const length = utils_default.toFiniteNumber(headers.getContentLength());
1897
+ return length == null ? getBodyLength(body) : length;
1898
+ };
1899
+ return async (config) => {
1900
+ let {
1901
+ url,
1902
+ method,
1903
+ data,
1904
+ signal,
1905
+ cancelToken,
1906
+ timeout,
1907
+ onDownloadProgress,
1908
+ onUploadProgress,
1909
+ responseType,
1910
+ headers,
1911
+ withCredentials = "same-origin",
1912
+ fetchOptions
1913
+ } = resolveConfig_default(config);
1914
+ let _fetch = envFetch || fetch;
1915
+ responseType = responseType ? (responseType + "").toLowerCase() : "text";
1916
+ let composedSignal = composeSignals_default([signal, cancelToken && cancelToken.toAbortSignal()], timeout);
1917
+ let request = null;
1918
+ const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {
1919
+ composedSignal.unsubscribe();
1920
+ });
1921
+ let requestContentLength;
1922
+ try {
1923
+ if (onUploadProgress && supportsRequestStream && method !== "get" && method !== "head" && (requestContentLength = await resolveBodyLength(headers, data)) !== 0) {
1924
+ let _request = new Request(url, {
1925
+ method: "POST",
1926
+ body: data,
1927
+ duplex: "half"
1928
+ });
1929
+ let contentTypeHeader;
1930
+ if (utils_default.isFormData(data) && (contentTypeHeader = _request.headers.get("content-type"))) {
1931
+ headers.setContentType(contentTypeHeader);
1932
+ }
1933
+ if (_request.body) {
1934
+ const [onProgress, flush] = progressEventDecorator(
1935
+ requestContentLength,
1936
+ progressEventReducer(asyncDecorator(onUploadProgress))
1937
+ );
1938
+ data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);
1939
+ }
1940
+ }
1941
+ if (!utils_default.isString(withCredentials)) {
1942
+ withCredentials = withCredentials ? "include" : "omit";
1943
+ }
1944
+ const isCredentialsSupported = isRequestSupported && "credentials" in Request.prototype;
1945
+ const resolvedOptions = {
1946
+ ...fetchOptions,
1947
+ signal: composedSignal,
1948
+ method: method.toUpperCase(),
1949
+ headers: headers.normalize().toJSON(),
1950
+ body: data,
1951
+ duplex: "half",
1952
+ credentials: isCredentialsSupported ? withCredentials : void 0
1953
+ };
1954
+ request = isRequestSupported && new Request(url, resolvedOptions);
1955
+ let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));
1956
+ const isStreamResponse = supportsResponseStream && (responseType === "stream" || responseType === "response");
1957
+ if (supportsResponseStream && (onDownloadProgress || isStreamResponse && unsubscribe)) {
1958
+ const options = {};
1959
+ ["status", "statusText", "headers"].forEach((prop) => {
1960
+ options[prop] = response[prop];
1961
+ });
1962
+ const responseContentLength = utils_default.toFiniteNumber(response.headers.get("content-length"));
1963
+ const [onProgress, flush] = onDownloadProgress && progressEventDecorator(
1964
+ responseContentLength,
1965
+ progressEventReducer(asyncDecorator(onDownloadProgress), true)
1966
+ ) || [];
1967
+ response = new Response(
1968
+ trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {
1969
+ flush && flush();
1970
+ unsubscribe && unsubscribe();
1971
+ }),
1972
+ options
1973
+ );
1974
+ }
1975
+ responseType = responseType || "text";
1976
+ let responseData = await resolvers[utils_default.findKey(resolvers, responseType) || "text"](response, config);
1977
+ !isStreamResponse && unsubscribe && unsubscribe();
1978
+ return await new Promise((resolve, reject) => {
1979
+ settle(resolve, reject, {
1980
+ data: responseData,
1981
+ headers: AxiosHeaders_default.from(response.headers),
1982
+ status: response.status,
1983
+ statusText: response.statusText,
1984
+ config,
1985
+ request
1986
+ });
1987
+ });
1988
+ } catch (err) {
1989
+ unsubscribe && unsubscribe();
1990
+ if (err && err.name === "TypeError" && /Load failed|fetch/i.test(err.message)) {
1991
+ throw Object.assign(
1992
+ new AxiosError_default("Network Error", AxiosError_default.ERR_NETWORK, config, request),
1993
+ {
1994
+ cause: err.cause || err
1995
+ }
1996
+ );
1997
+ }
1998
+ throw AxiosError_default.from(err, err && err.code, config, request);
1999
+ }
2000
+ };
2001
+ };
2002
+ var seedCache = /* @__PURE__ */ new Map();
2003
+ var getFetch = (config) => {
2004
+ let env = config && config.env || {};
2005
+ const { fetch: fetch2, Request, Response } = env;
2006
+ const seeds = [
2007
+ Request,
2008
+ Response,
2009
+ fetch2
2010
+ ];
2011
+ let len = seeds.length, i = len, seed, target, map = seedCache;
2012
+ while (i--) {
2013
+ seed = seeds[i];
2014
+ target = map.get(seed);
2015
+ target === void 0 && map.set(seed, target = i ? /* @__PURE__ */ new Map() : factory(env));
2016
+ map = target;
2017
+ }
2018
+ return target;
2019
+ };
2020
+ var adapter = getFetch();
2021
+
2022
+ // node_modules/axios/lib/adapters/adapters.js
2023
+ var knownAdapters = {
2024
+ http: null_default,
2025
+ xhr: xhr_default,
2026
+ fetch: {
2027
+ get: getFetch
2028
+ }
2029
+ };
2030
+ utils_default.forEach(knownAdapters, (fn, value) => {
2031
+ if (fn) {
2032
+ try {
2033
+ Object.defineProperty(fn, "name", { value });
2034
+ } catch (e) {
2035
+ }
2036
+ Object.defineProperty(fn, "adapterName", { value });
2037
+ }
2038
+ });
2039
+ var renderReason = (reason) => `- ${reason}`;
2040
+ var isResolvedHandle = (adapter2) => utils_default.isFunction(adapter2) || adapter2 === null || adapter2 === false;
2041
+ function getAdapter(adapters, config) {
2042
+ adapters = utils_default.isArray(adapters) ? adapters : [adapters];
2043
+ const { length } = adapters;
2044
+ let nameOrAdapter;
2045
+ let adapter2;
2046
+ const rejectedReasons = {};
2047
+ for (let i = 0; i < length; i++) {
2048
+ nameOrAdapter = adapters[i];
2049
+ let id;
2050
+ adapter2 = nameOrAdapter;
2051
+ if (!isResolvedHandle(nameOrAdapter)) {
2052
+ adapter2 = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];
2053
+ if (adapter2 === void 0) {
2054
+ throw new AxiosError_default(`Unknown adapter '${id}'`);
2055
+ }
2056
+ }
2057
+ if (adapter2 && (utils_default.isFunction(adapter2) || (adapter2 = adapter2.get(config)))) {
2058
+ break;
2059
+ }
2060
+ rejectedReasons[id || "#" + i] = adapter2;
2061
+ }
2062
+ if (!adapter2) {
2063
+ const reasons = Object.entries(rejectedReasons).map(
2064
+ ([id, state]) => `adapter ${id} ` + (state === false ? "is not supported by the environment" : "is not available in the build")
2065
+ );
2066
+ let s = length ? reasons.length > 1 ? "since :\n" + reasons.map(renderReason).join("\n") : " " + renderReason(reasons[0]) : "as no adapter specified";
2067
+ throw new AxiosError_default(
2068
+ `There is no suitable adapter to dispatch the request ` + s,
2069
+ "ERR_NOT_SUPPORT"
2070
+ );
2071
+ }
2072
+ return adapter2;
2073
+ }
2074
+ var adapters_default = {
2075
+ /**
2076
+ * Resolve an adapter from a list of adapter names or functions.
2077
+ * @type {Function}
2078
+ */
2079
+ getAdapter,
2080
+ /**
2081
+ * Exposes all known adapters
2082
+ * @type {Object<string, Function|Object>}
2083
+ */
2084
+ adapters: knownAdapters
2085
+ };
2086
+
2087
+ // node_modules/axios/lib/core/dispatchRequest.js
2088
+ function throwIfCancellationRequested(config) {
2089
+ if (config.cancelToken) {
2090
+ config.cancelToken.throwIfRequested();
2091
+ }
2092
+ if (config.signal && config.signal.aborted) {
2093
+ throw new CanceledError_default(null, config);
2094
+ }
2095
+ }
2096
+ function dispatchRequest(config) {
2097
+ throwIfCancellationRequested(config);
2098
+ config.headers = AxiosHeaders_default.from(config.headers);
2099
+ config.data = transformData.call(
2100
+ config,
2101
+ config.transformRequest
2102
+ );
2103
+ if (["post", "put", "patch"].indexOf(config.method) !== -1) {
2104
+ config.headers.setContentType("application/x-www-form-urlencoded", false);
2105
+ }
2106
+ const adapter2 = adapters_default.getAdapter(config.adapter || defaults_default.adapter, config);
2107
+ return adapter2(config).then(function onAdapterResolution(response) {
2108
+ throwIfCancellationRequested(config);
2109
+ response.data = transformData.call(
2110
+ config,
2111
+ config.transformResponse,
2112
+ response
2113
+ );
2114
+ response.headers = AxiosHeaders_default.from(response.headers);
2115
+ return response;
2116
+ }, function onAdapterRejection(reason) {
2117
+ if (!isCancel(reason)) {
2118
+ throwIfCancellationRequested(config);
2119
+ if (reason && reason.response) {
2120
+ reason.response.data = transformData.call(
2121
+ config,
2122
+ config.transformResponse,
2123
+ reason.response
2124
+ );
2125
+ reason.response.headers = AxiosHeaders_default.from(reason.response.headers);
2126
+ }
2127
+ }
2128
+ return Promise.reject(reason);
2129
+ });
2130
+ }
2131
+
2132
+ // node_modules/axios/lib/env/data.js
2133
+ var VERSION = "1.13.2";
2134
+
2135
+ // node_modules/axios/lib/helpers/validator.js
2136
+ var validators = {};
2137
+ ["object", "boolean", "number", "function", "string", "symbol"].forEach((type, i) => {
2138
+ validators[type] = function validator(thing) {
2139
+ return typeof thing === type || "a" + (i < 1 ? "n " : " ") + type;
2140
+ };
2141
+ });
2142
+ var deprecatedWarnings = {};
2143
+ validators.transitional = function transitional(validator, version, message) {
2144
+ function formatMessage(opt, desc) {
2145
+ return "[Axios v" + VERSION + "] Transitional option '" + opt + "'" + desc + (message ? ". " + message : "");
2146
+ }
2147
+ return (value, opt, opts) => {
2148
+ if (validator === false) {
2149
+ throw new AxiosError_default(
2150
+ formatMessage(opt, " has been removed" + (version ? " in " + version : "")),
2151
+ AxiosError_default.ERR_DEPRECATED
2152
+ );
2153
+ }
2154
+ if (version && !deprecatedWarnings[opt]) {
2155
+ deprecatedWarnings[opt] = true;
2156
+ console.warn(
2157
+ formatMessage(
2158
+ opt,
2159
+ " has been deprecated since v" + version + " and will be removed in the near future"
2160
+ )
2161
+ );
2162
+ }
2163
+ return validator ? validator(value, opt, opts) : true;
2164
+ };
2165
+ };
2166
+ validators.spelling = function spelling(correctSpelling) {
2167
+ return (value, opt) => {
2168
+ console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);
2169
+ return true;
2170
+ };
2171
+ };
2172
+ function assertOptions(options, schema, allowUnknown) {
2173
+ if (typeof options !== "object") {
2174
+ throw new AxiosError_default("options must be an object", AxiosError_default.ERR_BAD_OPTION_VALUE);
2175
+ }
2176
+ const keys = Object.keys(options);
2177
+ let i = keys.length;
2178
+ while (i-- > 0) {
2179
+ const opt = keys[i];
2180
+ const validator = schema[opt];
2181
+ if (validator) {
2182
+ const value = options[opt];
2183
+ const result = value === void 0 || validator(value, opt, options);
2184
+ if (result !== true) {
2185
+ throw new AxiosError_default("option " + opt + " must be " + result, AxiosError_default.ERR_BAD_OPTION_VALUE);
2186
+ }
2187
+ continue;
2188
+ }
2189
+ if (allowUnknown !== true) {
2190
+ throw new AxiosError_default("Unknown option " + opt, AxiosError_default.ERR_BAD_OPTION);
2191
+ }
2192
+ }
2193
+ }
2194
+ var validator_default = {
2195
+ assertOptions,
2196
+ validators
2197
+ };
2198
+
2199
+ // node_modules/axios/lib/core/Axios.js
2200
+ var validators2 = validator_default.validators;
2201
+ var Axios = class {
2202
+ constructor(instanceConfig) {
2203
+ this.defaults = instanceConfig || {};
2204
+ this.interceptors = {
2205
+ request: new InterceptorManager_default(),
2206
+ response: new InterceptorManager_default()
2207
+ };
2208
+ }
2209
+ /**
2210
+ * Dispatch a request
2211
+ *
2212
+ * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)
2213
+ * @param {?Object} config
2214
+ *
2215
+ * @returns {Promise} The Promise to be fulfilled
2216
+ */
2217
+ async request(configOrUrl, config) {
2218
+ try {
2219
+ return await this._request(configOrUrl, config);
2220
+ } catch (err) {
2221
+ if (err instanceof Error) {
2222
+ let dummy = {};
2223
+ Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = new Error();
2224
+ const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, "") : "";
2225
+ try {
2226
+ if (!err.stack) {
2227
+ err.stack = stack;
2228
+ } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\n.+\n/, ""))) {
2229
+ err.stack += "\n" + stack;
2230
+ }
2231
+ } catch (e) {
2232
+ }
2233
+ }
2234
+ throw err;
2235
+ }
2236
+ }
2237
+ _request(configOrUrl, config) {
2238
+ if (typeof configOrUrl === "string") {
2239
+ config = config || {};
2240
+ config.url = configOrUrl;
2241
+ } else {
2242
+ config = configOrUrl || {};
2243
+ }
2244
+ config = mergeConfig(this.defaults, config);
2245
+ const { transitional: transitional2, paramsSerializer, headers } = config;
2246
+ if (transitional2 !== void 0) {
2247
+ validator_default.assertOptions(transitional2, {
2248
+ silentJSONParsing: validators2.transitional(validators2.boolean),
2249
+ forcedJSONParsing: validators2.transitional(validators2.boolean),
2250
+ clarifyTimeoutError: validators2.transitional(validators2.boolean)
2251
+ }, false);
2252
+ }
2253
+ if (paramsSerializer != null) {
2254
+ if (utils_default.isFunction(paramsSerializer)) {
2255
+ config.paramsSerializer = {
2256
+ serialize: paramsSerializer
2257
+ };
2258
+ } else {
2259
+ validator_default.assertOptions(paramsSerializer, {
2260
+ encode: validators2.function,
2261
+ serialize: validators2.function
2262
+ }, true);
2263
+ }
2264
+ }
2265
+ if (config.allowAbsoluteUrls !== void 0) {
2266
+ } else if (this.defaults.allowAbsoluteUrls !== void 0) {
2267
+ config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;
2268
+ } else {
2269
+ config.allowAbsoluteUrls = true;
2270
+ }
2271
+ validator_default.assertOptions(config, {
2272
+ baseUrl: validators2.spelling("baseURL"),
2273
+ withXsrfToken: validators2.spelling("withXSRFToken")
2274
+ }, true);
2275
+ config.method = (config.method || this.defaults.method || "get").toLowerCase();
2276
+ let contextHeaders = headers && utils_default.merge(
2277
+ headers.common,
2278
+ headers[config.method]
2279
+ );
2280
+ headers && utils_default.forEach(
2281
+ ["delete", "get", "head", "post", "put", "patch", "common"],
2282
+ (method) => {
2283
+ delete headers[method];
2284
+ }
2285
+ );
2286
+ config.headers = AxiosHeaders_default.concat(contextHeaders, headers);
2287
+ const requestInterceptorChain = [];
2288
+ let synchronousRequestInterceptors = true;
2289
+ this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
2290
+ if (typeof interceptor.runWhen === "function" && interceptor.runWhen(config) === false) {
2291
+ return;
2292
+ }
2293
+ synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;
2294
+ requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
2295
+ });
2296
+ const responseInterceptorChain = [];
2297
+ this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
2298
+ responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
2299
+ });
2300
+ let promise;
2301
+ let i = 0;
2302
+ let len;
2303
+ if (!synchronousRequestInterceptors) {
2304
+ const chain = [dispatchRequest.bind(this), void 0];
2305
+ chain.unshift(...requestInterceptorChain);
2306
+ chain.push(...responseInterceptorChain);
2307
+ len = chain.length;
2308
+ promise = Promise.resolve(config);
2309
+ while (i < len) {
2310
+ promise = promise.then(chain[i++], chain[i++]);
2311
+ }
2312
+ return promise;
2313
+ }
2314
+ len = requestInterceptorChain.length;
2315
+ let newConfig = config;
2316
+ while (i < len) {
2317
+ const onFulfilled = requestInterceptorChain[i++];
2318
+ const onRejected = requestInterceptorChain[i++];
2319
+ try {
2320
+ newConfig = onFulfilled(newConfig);
2321
+ } catch (error) {
2322
+ onRejected.call(this, error);
2323
+ break;
2324
+ }
2325
+ }
2326
+ try {
2327
+ promise = dispatchRequest.call(this, newConfig);
2328
+ } catch (error) {
2329
+ return Promise.reject(error);
2330
+ }
2331
+ i = 0;
2332
+ len = responseInterceptorChain.length;
2333
+ while (i < len) {
2334
+ promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);
2335
+ }
2336
+ return promise;
2337
+ }
2338
+ getUri(config) {
2339
+ config = mergeConfig(this.defaults, config);
2340
+ const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);
2341
+ return buildURL(fullPath, config.params, config.paramsSerializer);
2342
+ }
2343
+ };
2344
+ utils_default.forEach(["delete", "get", "head", "options"], function forEachMethodNoData(method) {
2345
+ Axios.prototype[method] = function(url, config) {
2346
+ return this.request(mergeConfig(config || {}, {
2347
+ method,
2348
+ url,
2349
+ data: (config || {}).data
2350
+ }));
2351
+ };
2352
+ });
2353
+ utils_default.forEach(["post", "put", "patch"], function forEachMethodWithData(method) {
2354
+ function generateHTTPMethod(isForm) {
2355
+ return function httpMethod(url, data, config) {
2356
+ return this.request(mergeConfig(config || {}, {
2357
+ method,
2358
+ headers: isForm ? {
2359
+ "Content-Type": "multipart/form-data"
2360
+ } : {},
2361
+ url,
2362
+ data
2363
+ }));
2364
+ };
2365
+ }
2366
+ Axios.prototype[method] = generateHTTPMethod();
2367
+ Axios.prototype[method + "Form"] = generateHTTPMethod(true);
2368
+ });
2369
+ var Axios_default = Axios;
2370
+
2371
+ // node_modules/axios/lib/cancel/CancelToken.js
2372
+ var CancelToken = class _CancelToken {
2373
+ constructor(executor) {
2374
+ if (typeof executor !== "function") {
2375
+ throw new TypeError("executor must be a function.");
2376
+ }
2377
+ let resolvePromise;
2378
+ this.promise = new Promise(function promiseExecutor(resolve) {
2379
+ resolvePromise = resolve;
2380
+ });
2381
+ const token = this;
2382
+ this.promise.then((cancel) => {
2383
+ if (!token._listeners) return;
2384
+ let i = token._listeners.length;
2385
+ while (i-- > 0) {
2386
+ token._listeners[i](cancel);
2387
+ }
2388
+ token._listeners = null;
2389
+ });
2390
+ this.promise.then = (onfulfilled) => {
2391
+ let _resolve;
2392
+ const promise = new Promise((resolve) => {
2393
+ token.subscribe(resolve);
2394
+ _resolve = resolve;
2395
+ }).then(onfulfilled);
2396
+ promise.cancel = function reject() {
2397
+ token.unsubscribe(_resolve);
2398
+ };
2399
+ return promise;
2400
+ };
2401
+ executor(function cancel(message, config, request) {
2402
+ if (token.reason) {
2403
+ return;
2404
+ }
2405
+ token.reason = new CanceledError_default(message, config, request);
2406
+ resolvePromise(token.reason);
2407
+ });
2408
+ }
2409
+ /**
2410
+ * Throws a `CanceledError` if cancellation has been requested.
2411
+ */
2412
+ throwIfRequested() {
2413
+ if (this.reason) {
2414
+ throw this.reason;
2415
+ }
2416
+ }
2417
+ /**
2418
+ * Subscribe to the cancel signal
2419
+ */
2420
+ subscribe(listener) {
2421
+ if (this.reason) {
2422
+ listener(this.reason);
2423
+ return;
2424
+ }
2425
+ if (this._listeners) {
2426
+ this._listeners.push(listener);
2427
+ } else {
2428
+ this._listeners = [listener];
2429
+ }
2430
+ }
2431
+ /**
2432
+ * Unsubscribe from the cancel signal
2433
+ */
2434
+ unsubscribe(listener) {
2435
+ if (!this._listeners) {
2436
+ return;
2437
+ }
2438
+ const index = this._listeners.indexOf(listener);
2439
+ if (index !== -1) {
2440
+ this._listeners.splice(index, 1);
2441
+ }
2442
+ }
2443
+ toAbortSignal() {
2444
+ const controller = new AbortController();
2445
+ const abort = (err) => {
2446
+ controller.abort(err);
2447
+ };
2448
+ this.subscribe(abort);
2449
+ controller.signal.unsubscribe = () => this.unsubscribe(abort);
2450
+ return controller.signal;
2451
+ }
2452
+ /**
2453
+ * Returns an object that contains a new `CancelToken` and a function that, when called,
2454
+ * cancels the `CancelToken`.
2455
+ */
2456
+ static source() {
2457
+ let cancel;
2458
+ const token = new _CancelToken(function executor(c) {
2459
+ cancel = c;
2460
+ });
2461
+ return {
2462
+ token,
2463
+ cancel
2464
+ };
2465
+ }
2466
+ };
2467
+ var CancelToken_default = CancelToken;
2468
+
2469
+ // node_modules/axios/lib/helpers/spread.js
2470
+ function spread(callback) {
2471
+ return function wrap(arr) {
2472
+ return callback.apply(null, arr);
2473
+ };
2474
+ }
2475
+
2476
+ // node_modules/axios/lib/helpers/isAxiosError.js
2477
+ function isAxiosError(payload) {
2478
+ return utils_default.isObject(payload) && payload.isAxiosError === true;
2479
+ }
2480
+
2481
+ // node_modules/axios/lib/helpers/HttpStatusCode.js
2482
+ var HttpStatusCode = {
2483
+ Continue: 100,
2484
+ SwitchingProtocols: 101,
2485
+ Processing: 102,
2486
+ EarlyHints: 103,
2487
+ Ok: 200,
2488
+ Created: 201,
2489
+ Accepted: 202,
2490
+ NonAuthoritativeInformation: 203,
2491
+ NoContent: 204,
2492
+ ResetContent: 205,
2493
+ PartialContent: 206,
2494
+ MultiStatus: 207,
2495
+ AlreadyReported: 208,
2496
+ ImUsed: 226,
2497
+ MultipleChoices: 300,
2498
+ MovedPermanently: 301,
2499
+ Found: 302,
2500
+ SeeOther: 303,
2501
+ NotModified: 304,
2502
+ UseProxy: 305,
2503
+ Unused: 306,
2504
+ TemporaryRedirect: 307,
2505
+ PermanentRedirect: 308,
2506
+ BadRequest: 400,
2507
+ Unauthorized: 401,
2508
+ PaymentRequired: 402,
2509
+ Forbidden: 403,
2510
+ NotFound: 404,
2511
+ MethodNotAllowed: 405,
2512
+ NotAcceptable: 406,
2513
+ ProxyAuthenticationRequired: 407,
2514
+ RequestTimeout: 408,
2515
+ Conflict: 409,
2516
+ Gone: 410,
2517
+ LengthRequired: 411,
2518
+ PreconditionFailed: 412,
2519
+ PayloadTooLarge: 413,
2520
+ UriTooLong: 414,
2521
+ UnsupportedMediaType: 415,
2522
+ RangeNotSatisfiable: 416,
2523
+ ExpectationFailed: 417,
2524
+ ImATeapot: 418,
2525
+ MisdirectedRequest: 421,
2526
+ UnprocessableEntity: 422,
2527
+ Locked: 423,
2528
+ FailedDependency: 424,
2529
+ TooEarly: 425,
2530
+ UpgradeRequired: 426,
2531
+ PreconditionRequired: 428,
2532
+ TooManyRequests: 429,
2533
+ RequestHeaderFieldsTooLarge: 431,
2534
+ UnavailableForLegalReasons: 451,
2535
+ InternalServerError: 500,
2536
+ NotImplemented: 501,
2537
+ BadGateway: 502,
2538
+ ServiceUnavailable: 503,
2539
+ GatewayTimeout: 504,
2540
+ HttpVersionNotSupported: 505,
2541
+ VariantAlsoNegotiates: 506,
2542
+ InsufficientStorage: 507,
2543
+ LoopDetected: 508,
2544
+ NotExtended: 510,
2545
+ NetworkAuthenticationRequired: 511,
2546
+ WebServerIsDown: 521,
2547
+ ConnectionTimedOut: 522,
2548
+ OriginIsUnreachable: 523,
2549
+ TimeoutOccurred: 524,
2550
+ SslHandshakeFailed: 525,
2551
+ InvalidSslCertificate: 526
2552
+ };
2553
+ Object.entries(HttpStatusCode).forEach(([key, value]) => {
2554
+ HttpStatusCode[value] = key;
2555
+ });
2556
+ var HttpStatusCode_default = HttpStatusCode;
2557
+
2558
+ // node_modules/axios/lib/axios.js
2559
+ function createInstance(defaultConfig) {
2560
+ const context = new Axios_default(defaultConfig);
2561
+ const instance = bind(Axios_default.prototype.request, context);
2562
+ utils_default.extend(instance, Axios_default.prototype, context, { allOwnKeys: true });
2563
+ utils_default.extend(instance, context, null, { allOwnKeys: true });
2564
+ instance.create = function create(instanceConfig) {
2565
+ return createInstance(mergeConfig(defaultConfig, instanceConfig));
2566
+ };
2567
+ return instance;
2568
+ }
2569
+ var axios = createInstance(defaults_default);
2570
+ axios.Axios = Axios_default;
2571
+ axios.CanceledError = CanceledError_default;
2572
+ axios.CancelToken = CancelToken_default;
2573
+ axios.isCancel = isCancel;
2574
+ axios.VERSION = VERSION;
2575
+ axios.toFormData = toFormData_default;
2576
+ axios.AxiosError = AxiosError_default;
2577
+ axios.Cancel = axios.CanceledError;
2578
+ axios.all = function all(promises) {
2579
+ return Promise.all(promises);
2580
+ };
2581
+ axios.spread = spread;
2582
+ axios.isAxiosError = isAxiosError;
2583
+ axios.mergeConfig = mergeConfig;
2584
+ axios.AxiosHeaders = AxiosHeaders_default;
2585
+ axios.formToJSON = (thing) => formDataToJSON_default(utils_default.isHTMLForm(thing) ? new FormData(thing) : thing);
2586
+ axios.getAdapter = adapters_default.getAdapter;
2587
+ axios.HttpStatusCode = HttpStatusCode_default;
2588
+ axios.default = axios;
2589
+ var axios_default = axios;
2590
+
2591
+ // node_modules/axios/index.js
2592
+ var {
2593
+ Axios: Axios2,
2594
+ AxiosError: AxiosError2,
2595
+ CanceledError: CanceledError2,
2596
+ isCancel: isCancel2,
2597
+ CancelToken: CancelToken2,
2598
+ VERSION: VERSION2,
2599
+ all: all2,
2600
+ Cancel,
2601
+ isAxiosError: isAxiosError2,
2602
+ spread: spread2,
2603
+ toFormData: toFormData2,
2604
+ AxiosHeaders: AxiosHeaders2,
2605
+ HttpStatusCode: HttpStatusCode2,
2606
+ formToJSON,
2607
+ getAdapter: getAdapter2,
2608
+ mergeConfig: mergeConfig2
2609
+ } = axios_default;
2610
+ export {
2611
+ Axios2 as Axios,
2612
+ AxiosError2 as AxiosError,
2613
+ AxiosHeaders2 as AxiosHeaders,
2614
+ Cancel,
2615
+ CancelToken2 as CancelToken,
2616
+ CanceledError2 as CanceledError,
2617
+ HttpStatusCode2 as HttpStatusCode,
2618
+ VERSION2 as VERSION,
2619
+ all2 as all,
2620
+ axios_default as default,
2621
+ formToJSON,
2622
+ getAdapter2 as getAdapter,
2623
+ isAxiosError2 as isAxiosError,
2624
+ isCancel2 as isCancel,
2625
+ mergeConfig2 as mergeConfig,
2626
+ spread2 as spread,
2627
+ toFormData2 as toFormData
2628
+ };
2629
+ //# sourceMappingURL=axios.js.map
my-vue-app/node_modules/.vite/deps/axios.js.map ADDED
The diff for this file is too large to render. See raw diff
 
my-vue-app/node_modules/.vite/deps/chunk-PZ5AY32C.js ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ export {
8
+ __export
9
+ };
10
+ //# sourceMappingURL=chunk-PZ5AY32C.js.map
my-vue-app/node_modules/.vite/deps/chunk-PZ5AY32C.js.map ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
my-vue-app/node_modules/.vite/deps/package.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ {
2
+ "type": "module"
3
+ }
my-vue-app/node_modules/.vite/deps/vue.js ADDED
The diff for this file is too large to render. See raw diff
 
my-vue-app/node_modules/.vite/deps/vue.js.map ADDED
The diff for this file is too large to render. See raw diff
 
my-vue-app/node_modules/@babel/helper-string-parser/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.
my-vue-app/node_modules/@babel/helper-string-parser/README.md ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # @babel/helper-string-parser
2
+
3
+ > A utility package to parse strings
4
+
5
+ See our website [@babel/helper-string-parser](https://babeljs.io/docs/babel-helper-string-parser) for more information.
6
+
7
+ ## Install
8
+
9
+ Using npm:
10
+
11
+ ```sh
12
+ npm install --save @babel/helper-string-parser
13
+ ```
14
+
15
+ or using yarn:
16
+
17
+ ```sh
18
+ yarn add @babel/helper-string-parser
19
+ ```
my-vue-app/node_modules/@babel/helper-string-parser/lib/index.js ADDED
@@ -0,0 +1,295 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.readCodePoint = readCodePoint;
7
+ exports.readInt = readInt;
8
+ exports.readStringContents = readStringContents;
9
+ var _isDigit = function isDigit(code) {
10
+ return code >= 48 && code <= 57;
11
+ };
12
+ const forbiddenNumericSeparatorSiblings = {
13
+ decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]),
14
+ hex: new Set([46, 88, 95, 120])
15
+ };
16
+ const isAllowedNumericSeparatorSibling = {
17
+ bin: ch => ch === 48 || ch === 49,
18
+ oct: ch => ch >= 48 && ch <= 55,
19
+ dec: ch => ch >= 48 && ch <= 57,
20
+ hex: ch => ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102
21
+ };
22
+ function readStringContents(type, input, pos, lineStart, curLine, errors) {
23
+ const initialPos = pos;
24
+ const initialLineStart = lineStart;
25
+ const initialCurLine = curLine;
26
+ let out = "";
27
+ let firstInvalidLoc = null;
28
+ let chunkStart = pos;
29
+ const {
30
+ length
31
+ } = input;
32
+ for (;;) {
33
+ if (pos >= length) {
34
+ errors.unterminated(initialPos, initialLineStart, initialCurLine);
35
+ out += input.slice(chunkStart, pos);
36
+ break;
37
+ }
38
+ const ch = input.charCodeAt(pos);
39
+ if (isStringEnd(type, ch, input, pos)) {
40
+ out += input.slice(chunkStart, pos);
41
+ break;
42
+ }
43
+ if (ch === 92) {
44
+ out += input.slice(chunkStart, pos);
45
+ const res = readEscapedChar(input, pos, lineStart, curLine, type === "template", errors);
46
+ if (res.ch === null && !firstInvalidLoc) {
47
+ firstInvalidLoc = {
48
+ pos,
49
+ lineStart,
50
+ curLine
51
+ };
52
+ } else {
53
+ out += res.ch;
54
+ }
55
+ ({
56
+ pos,
57
+ lineStart,
58
+ curLine
59
+ } = res);
60
+ chunkStart = pos;
61
+ } else if (ch === 8232 || ch === 8233) {
62
+ ++pos;
63
+ ++curLine;
64
+ lineStart = pos;
65
+ } else if (ch === 10 || ch === 13) {
66
+ if (type === "template") {
67
+ out += input.slice(chunkStart, pos) + "\n";
68
+ ++pos;
69
+ if (ch === 13 && input.charCodeAt(pos) === 10) {
70
+ ++pos;
71
+ }
72
+ ++curLine;
73
+ chunkStart = lineStart = pos;
74
+ } else {
75
+ errors.unterminated(initialPos, initialLineStart, initialCurLine);
76
+ }
77
+ } else {
78
+ ++pos;
79
+ }
80
+ }
81
+ return {
82
+ pos,
83
+ str: out,
84
+ firstInvalidLoc,
85
+ lineStart,
86
+ curLine,
87
+ containsInvalid: !!firstInvalidLoc
88
+ };
89
+ }
90
+ function isStringEnd(type, ch, input, pos) {
91
+ if (type === "template") {
92
+ return ch === 96 || ch === 36 && input.charCodeAt(pos + 1) === 123;
93
+ }
94
+ return ch === (type === "double" ? 34 : 39);
95
+ }
96
+ function readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) {
97
+ const throwOnInvalid = !inTemplate;
98
+ pos++;
99
+ const res = ch => ({
100
+ pos,
101
+ ch,
102
+ lineStart,
103
+ curLine
104
+ });
105
+ const ch = input.charCodeAt(pos++);
106
+ switch (ch) {
107
+ case 110:
108
+ return res("\n");
109
+ case 114:
110
+ return res("\r");
111
+ case 120:
112
+ {
113
+ let code;
114
+ ({
115
+ code,
116
+ pos
117
+ } = readHexChar(input, pos, lineStart, curLine, 2, false, throwOnInvalid, errors));
118
+ return res(code === null ? null : String.fromCharCode(code));
119
+ }
120
+ case 117:
121
+ {
122
+ let code;
123
+ ({
124
+ code,
125
+ pos
126
+ } = readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors));
127
+ return res(code === null ? null : String.fromCodePoint(code));
128
+ }
129
+ case 116:
130
+ return res("\t");
131
+ case 98:
132
+ return res("\b");
133
+ case 118:
134
+ return res("\u000b");
135
+ case 102:
136
+ return res("\f");
137
+ case 13:
138
+ if (input.charCodeAt(pos) === 10) {
139
+ ++pos;
140
+ }
141
+ case 10:
142
+ lineStart = pos;
143
+ ++curLine;
144
+ case 8232:
145
+ case 8233:
146
+ return res("");
147
+ case 56:
148
+ case 57:
149
+ if (inTemplate) {
150
+ return res(null);
151
+ } else {
152
+ errors.strictNumericEscape(pos - 1, lineStart, curLine);
153
+ }
154
+ default:
155
+ if (ch >= 48 && ch <= 55) {
156
+ const startPos = pos - 1;
157
+ const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2));
158
+ let octalStr = match[0];
159
+ let octal = parseInt(octalStr, 8);
160
+ if (octal > 255) {
161
+ octalStr = octalStr.slice(0, -1);
162
+ octal = parseInt(octalStr, 8);
163
+ }
164
+ pos += octalStr.length - 1;
165
+ const next = input.charCodeAt(pos);
166
+ if (octalStr !== "0" || next === 56 || next === 57) {
167
+ if (inTemplate) {
168
+ return res(null);
169
+ } else {
170
+ errors.strictNumericEscape(startPos, lineStart, curLine);
171
+ }
172
+ }
173
+ return res(String.fromCharCode(octal));
174
+ }
175
+ return res(String.fromCharCode(ch));
176
+ }
177
+ }
178
+ function readHexChar(input, pos, lineStart, curLine, len, forceLen, throwOnInvalid, errors) {
179
+ const initialPos = pos;
180
+ let n;
181
+ ({
182
+ n,
183
+ pos
184
+ } = readInt(input, pos, lineStart, curLine, 16, len, forceLen, false, errors, !throwOnInvalid));
185
+ if (n === null) {
186
+ if (throwOnInvalid) {
187
+ errors.invalidEscapeSequence(initialPos, lineStart, curLine);
188
+ } else {
189
+ pos = initialPos - 1;
190
+ }
191
+ }
192
+ return {
193
+ code: n,
194
+ pos
195
+ };
196
+ }
197
+ function readInt(input, pos, lineStart, curLine, radix, len, forceLen, allowNumSeparator, errors, bailOnError) {
198
+ const start = pos;
199
+ const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct;
200
+ const isAllowedSibling = radix === 16 ? isAllowedNumericSeparatorSibling.hex : radix === 10 ? isAllowedNumericSeparatorSibling.dec : radix === 8 ? isAllowedNumericSeparatorSibling.oct : isAllowedNumericSeparatorSibling.bin;
201
+ let invalid = false;
202
+ let total = 0;
203
+ for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {
204
+ const code = input.charCodeAt(pos);
205
+ let val;
206
+ if (code === 95 && allowNumSeparator !== "bail") {
207
+ const prev = input.charCodeAt(pos - 1);
208
+ const next = input.charCodeAt(pos + 1);
209
+ if (!allowNumSeparator) {
210
+ if (bailOnError) return {
211
+ n: null,
212
+ pos
213
+ };
214
+ errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);
215
+ } else if (Number.isNaN(next) || !isAllowedSibling(next) || forbiddenSiblings.has(prev) || forbiddenSiblings.has(next)) {
216
+ if (bailOnError) return {
217
+ n: null,
218
+ pos
219
+ };
220
+ errors.unexpectedNumericSeparator(pos, lineStart, curLine);
221
+ }
222
+ ++pos;
223
+ continue;
224
+ }
225
+ if (code >= 97) {
226
+ val = code - 97 + 10;
227
+ } else if (code >= 65) {
228
+ val = code - 65 + 10;
229
+ } else if (_isDigit(code)) {
230
+ val = code - 48;
231
+ } else {
232
+ val = Infinity;
233
+ }
234
+ if (val >= radix) {
235
+ if (val <= 9 && bailOnError) {
236
+ return {
237
+ n: null,
238
+ pos
239
+ };
240
+ } else if (val <= 9 && errors.invalidDigit(pos, lineStart, curLine, radix)) {
241
+ val = 0;
242
+ } else if (forceLen) {
243
+ val = 0;
244
+ invalid = true;
245
+ } else {
246
+ break;
247
+ }
248
+ }
249
+ ++pos;
250
+ total = total * radix + val;
251
+ }
252
+ if (pos === start || len != null && pos - start !== len || invalid) {
253
+ return {
254
+ n: null,
255
+ pos
256
+ };
257
+ }
258
+ return {
259
+ n: total,
260
+ pos
261
+ };
262
+ }
263
+ function readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) {
264
+ const ch = input.charCodeAt(pos);
265
+ let code;
266
+ if (ch === 123) {
267
+ ++pos;
268
+ ({
269
+ code,
270
+ pos
271
+ } = readHexChar(input, pos, lineStart, curLine, input.indexOf("}", pos) - pos, true, throwOnInvalid, errors));
272
+ ++pos;
273
+ if (code !== null && code > 0x10ffff) {
274
+ if (throwOnInvalid) {
275
+ errors.invalidCodePoint(pos, lineStart, curLine);
276
+ } else {
277
+ return {
278
+ code: null,
279
+ pos
280
+ };
281
+ }
282
+ }
283
+ } else {
284
+ ({
285
+ code,
286
+ pos
287
+ } = readHexChar(input, pos, lineStart, curLine, 4, false, throwOnInvalid, errors));
288
+ }
289
+ return {
290
+ code,
291
+ pos
292
+ };
293
+ }
294
+
295
+ //# sourceMappingURL=index.js.map
my-vue-app/node_modules/@babel/helper-string-parser/lib/index.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"names":["isDigit","code","forbiddenNumericSeparatorSiblings","decBinOct","Set","hex","isAllowedNumericSeparatorSibling","bin","ch","oct","dec","readStringContents","type","input","pos","lineStart","curLine","errors","initialPos","initialLineStart","initialCurLine","out","firstInvalidLoc","chunkStart","length","unterminated","slice","charCodeAt","isStringEnd","res","readEscapedChar","str","containsInvalid","inTemplate","throwOnInvalid","readHexChar","String","fromCharCode","readCodePoint","fromCodePoint","strictNumericEscape","startPos","match","exec","octalStr","octal","parseInt","next","len","forceLen","n","readInt","invalidEscapeSequence","radix","allowNumSeparator","bailOnError","start","forbiddenSiblings","isAllowedSibling","invalid","total","i","e","Infinity","val","prev","numericSeparatorInEscapeSequence","Number","isNaN","has","unexpectedNumericSeparator","_isDigit","invalidDigit","indexOf","invalidCodePoint"],"sources":["../src/index.ts"],"sourcesContent":["// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\nconst forbiddenNumericSeparatorSiblings = {\n decBinOct: new Set<number>([\n charCodes.dot,\n charCodes.uppercaseB,\n charCodes.uppercaseE,\n charCodes.uppercaseO,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseB,\n charCodes.lowercaseE,\n charCodes.lowercaseO,\n ]),\n hex: new Set<number>([\n charCodes.dot,\n charCodes.uppercaseX,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseX,\n ]),\n};\n\nconst isAllowedNumericSeparatorSibling = {\n // 0 - 1\n bin: (ch: number) => ch === charCodes.digit0 || ch === charCodes.digit1,\n\n // 0 - 7\n oct: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit7,\n\n // 0 - 9\n dec: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit9,\n\n // 0 - 9, A - F, a - f,\n hex: (ch: number) =>\n (ch >= charCodes.digit0 && ch <= charCodes.digit9) ||\n (ch >= charCodes.uppercaseA && ch <= charCodes.uppercaseF) ||\n (ch >= charCodes.lowercaseA && ch <= charCodes.lowercaseF),\n};\n\nexport type StringContentsErrorHandlers = EscapedCharErrorHandlers & {\n unterminated(\n initialPos: number,\n initialLineStart: number,\n initialCurLine: number,\n ): void;\n};\n\nexport function readStringContents(\n type: \"single\" | \"double\" | \"template\",\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n errors: StringContentsErrorHandlers,\n) {\n const initialPos = pos;\n const initialLineStart = lineStart;\n const initialCurLine = curLine;\n\n let out = \"\";\n let firstInvalidLoc = null;\n let chunkStart = pos;\n const { length } = input;\n for (;;) {\n if (pos >= length) {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n out += input.slice(chunkStart, pos);\n break;\n }\n const ch = input.charCodeAt(pos);\n if (isStringEnd(type, ch, input, pos)) {\n out += input.slice(chunkStart, pos);\n break;\n }\n if (ch === charCodes.backslash) {\n out += input.slice(chunkStart, pos);\n const res = readEscapedChar(\n input,\n pos,\n lineStart,\n curLine,\n type === \"template\",\n errors,\n );\n if (res.ch === null && !firstInvalidLoc) {\n firstInvalidLoc = { pos, lineStart, curLine };\n } else {\n out += res.ch;\n }\n ({ pos, lineStart, curLine } = res);\n chunkStart = pos;\n } else if (\n ch === charCodes.lineSeparator ||\n ch === charCodes.paragraphSeparator\n ) {\n ++pos;\n ++curLine;\n lineStart = pos;\n } else if (ch === charCodes.lineFeed || ch === charCodes.carriageReturn) {\n if (type === \"template\") {\n out += input.slice(chunkStart, pos) + \"\\n\";\n ++pos;\n if (\n ch === charCodes.carriageReturn &&\n input.charCodeAt(pos) === charCodes.lineFeed\n ) {\n ++pos;\n }\n ++curLine;\n chunkStart = lineStart = pos;\n } else {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n }\n } else {\n ++pos;\n }\n }\n return process.env.BABEL_8_BREAKING\n ? { pos, str: out, firstInvalidLoc, lineStart, curLine }\n : {\n pos,\n str: out,\n firstInvalidLoc,\n lineStart,\n curLine,\n containsInvalid: !!firstInvalidLoc,\n };\n}\n\nfunction isStringEnd(\n type: \"single\" | \"double\" | \"template\",\n ch: number,\n input: string,\n pos: number,\n) {\n if (type === \"template\") {\n return (\n ch === charCodes.graveAccent ||\n (ch === charCodes.dollarSign &&\n input.charCodeAt(pos + 1) === charCodes.leftCurlyBrace)\n );\n }\n return (\n ch === (type === \"double\" ? charCodes.quotationMark : charCodes.apostrophe)\n );\n}\n\ntype EscapedCharErrorHandlers = HexCharErrorHandlers &\n CodePointErrorHandlers & {\n strictNumericEscape(pos: number, lineStart: number, curLine: number): void;\n };\n\nfunction readEscapedChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n inTemplate: boolean,\n errors: EscapedCharErrorHandlers,\n) {\n const throwOnInvalid = !inTemplate;\n pos++; // skip '\\'\n\n const res = (ch: string | null) => ({ pos, ch, lineStart, curLine });\n\n const ch = input.charCodeAt(pos++);\n switch (ch) {\n case charCodes.lowercaseN:\n return res(\"\\n\");\n case charCodes.lowercaseR:\n return res(\"\\r\");\n case charCodes.lowercaseX: {\n let code;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 2,\n false,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCharCode(code));\n }\n case charCodes.lowercaseU: {\n let code;\n ({ code, pos } = readCodePoint(\n input,\n pos,\n lineStart,\n curLine,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCodePoint(code));\n }\n case charCodes.lowercaseT:\n return res(\"\\t\");\n case charCodes.lowercaseB:\n return res(\"\\b\");\n case charCodes.lowercaseV:\n return res(\"\\u000b\");\n case charCodes.lowercaseF:\n return res(\"\\f\");\n case charCodes.carriageReturn:\n if (input.charCodeAt(pos) === charCodes.lineFeed) {\n ++pos;\n }\n // fall through\n case charCodes.lineFeed:\n lineStart = pos;\n ++curLine;\n // fall through\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n return res(\"\");\n case charCodes.digit8:\n case charCodes.digit9:\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(pos - 1, lineStart, curLine);\n }\n // fall through\n default:\n if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n const startPos = pos - 1;\n const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2));\n\n let octalStr = match[0];\n\n let octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n pos += octalStr.length - 1;\n const next = input.charCodeAt(pos);\n if (\n octalStr !== \"0\" ||\n next === charCodes.digit8 ||\n next === charCodes.digit9\n ) {\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(startPos, lineStart, curLine);\n }\n }\n\n return res(String.fromCharCode(octal));\n }\n\n return res(String.fromCharCode(ch));\n }\n}\n\ntype HexCharErrorHandlers = IntErrorHandlers & {\n invalidEscapeSequence(pos: number, lineStart: number, curLine: number): void;\n};\n\n// Used to read character escape sequences ('\\x', '\\u').\nfunction readHexChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n len: number,\n forceLen: boolean,\n throwOnInvalid: boolean,\n errors: HexCharErrorHandlers,\n) {\n const initialPos = pos;\n let n;\n ({ n, pos } = readInt(\n input,\n pos,\n lineStart,\n curLine,\n 16,\n len,\n forceLen,\n false,\n errors,\n /* bailOnError */ !throwOnInvalid,\n ));\n if (n === null) {\n if (throwOnInvalid) {\n errors.invalidEscapeSequence(initialPos, lineStart, curLine);\n } else {\n pos = initialPos - 1;\n }\n }\n return { code: n, pos };\n}\n\nexport type IntErrorHandlers = {\n numericSeparatorInEscapeSequence(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n unexpectedNumericSeparator(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n // It can return \"true\" to indicate that the error was handled\n // and the int parsing should continue.\n invalidDigit(\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n ): boolean;\n};\n\nexport function readInt(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n len: number | undefined,\n forceLen: boolean,\n allowNumSeparator: boolean | \"bail\",\n errors: IntErrorHandlers,\n bailOnError: boolean,\n) {\n const start = pos;\n const forbiddenSiblings =\n radix === 16\n ? forbiddenNumericSeparatorSiblings.hex\n : forbiddenNumericSeparatorSiblings.decBinOct;\n const isAllowedSibling =\n radix === 16\n ? isAllowedNumericSeparatorSibling.hex\n : radix === 10\n ? isAllowedNumericSeparatorSibling.dec\n : radix === 8\n ? isAllowedNumericSeparatorSibling.oct\n : isAllowedNumericSeparatorSibling.bin;\n\n let invalid = false;\n let total = 0;\n\n for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n const code = input.charCodeAt(pos);\n let val;\n\n if (code === charCodes.underscore && allowNumSeparator !== \"bail\") {\n const prev = input.charCodeAt(pos - 1);\n const next = input.charCodeAt(pos + 1);\n\n if (!allowNumSeparator) {\n if (bailOnError) return { n: null, pos };\n errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);\n } else if (\n Number.isNaN(next) ||\n !isAllowedSibling(next) ||\n forbiddenSiblings.has(prev) ||\n forbiddenSiblings.has(next)\n ) {\n if (bailOnError) return { n: null, pos };\n errors.unexpectedNumericSeparator(pos, lineStart, curLine);\n }\n\n // Ignore this _ character\n ++pos;\n continue;\n }\n\n if (code >= charCodes.lowercaseA) {\n val = code - charCodes.lowercaseA + charCodes.lineFeed;\n } else if (code >= charCodes.uppercaseA) {\n val = code - charCodes.uppercaseA + charCodes.lineFeed;\n } else if (charCodes.isDigit(code)) {\n val = code - charCodes.digit0; // 0-9\n } else {\n val = Infinity;\n }\n if (val >= radix) {\n // If we found a digit which is too big, errors.invalidDigit can return true to avoid\n // breaking the loop (this is used for error recovery).\n if (val <= 9 && bailOnError) {\n return { n: null, pos };\n } else if (\n val <= 9 &&\n errors.invalidDigit(pos, lineStart, curLine, radix)\n ) {\n val = 0;\n } else if (forceLen) {\n val = 0;\n invalid = true;\n } else {\n break;\n }\n }\n ++pos;\n total = total * radix + val;\n }\n if (pos === start || (len != null && pos - start !== len) || invalid) {\n return { n: null, pos };\n }\n\n return { n: total, pos };\n}\n\nexport type CodePointErrorHandlers = HexCharErrorHandlers & {\n invalidCodePoint(pos: number, lineStart: number, curLine: number): void;\n};\n\nexport function readCodePoint(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n throwOnInvalid: boolean,\n errors: CodePointErrorHandlers,\n) {\n const ch = input.charCodeAt(pos);\n let code;\n\n if (ch === charCodes.leftCurlyBrace) {\n ++pos;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n input.indexOf(\"}\", pos) - pos,\n true,\n throwOnInvalid,\n errors,\n ));\n ++pos;\n if (code !== null && code > 0x10ffff) {\n if (throwOnInvalid) {\n errors.invalidCodePoint(pos, lineStart, curLine);\n } else {\n return { code: null, pos };\n }\n }\n } else {\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 4,\n false,\n throwOnInvalid,\n errors,\n ));\n }\n return { code, pos };\n}\n"],"mappings":"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","ignoreList":[]}
my-vue-app/node_modules/@babel/helper-string-parser/package.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "@babel/helper-string-parser",
3
+ "version": "7.27.1",
4
+ "description": "A utility package to parse strings",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/babel/babel.git",
8
+ "directory": "packages/babel-helper-string-parser"
9
+ },
10
+ "homepage": "https://babel.dev/docs/en/next/babel-helper-string-parser",
11
+ "license": "MIT",
12
+ "publishConfig": {
13
+ "access": "public"
14
+ },
15
+ "main": "./lib/index.js",
16
+ "devDependencies": {
17
+ "charcodes": "^0.2.0"
18
+ },
19
+ "engines": {
20
+ "node": ">=6.9.0"
21
+ },
22
+ "author": "The Babel Team (https://babel.dev/team)",
23
+ "exports": {
24
+ ".": {
25
+ "types": "./lib/index.d.ts",
26
+ "default": "./lib/index.js"
27
+ },
28
+ "./package.json": "./package.json"
29
+ },
30
+ "type": "commonjs"
31
+ }
my-vue-app/node_modules/@babel/helper-validator-identifier/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.
my-vue-app/node_modules/@babel/helper-validator-identifier/README.md ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # @babel/helper-validator-identifier
2
+
3
+ > Validate identifier/keywords name
4
+
5
+ See our website [@babel/helper-validator-identifier](https://babeljs.io/docs/babel-helper-validator-identifier) for more information.
6
+
7
+ ## Install
8
+
9
+ Using npm:
10
+
11
+ ```sh
12
+ npm install --save @babel/helper-validator-identifier
13
+ ```
14
+
15
+ or using yarn:
16
+
17
+ ```sh
18
+ yarn add @babel/helper-validator-identifier
19
+ ```
my-vue-app/node_modules/@babel/helper-validator-identifier/lib/identifier.js ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isIdentifierChar = isIdentifierChar;
7
+ exports.isIdentifierName = isIdentifierName;
8
+ exports.isIdentifierStart = isIdentifierStart;
9
+ let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088f\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5c\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7dc\ua7f1-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
10
+ let nonASCIIidentifierChars = "\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1add\u1ae0-\u1aeb\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65";
11
+ const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
12
+ const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
13
+ nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
14
+ const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 7, 25, 39, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489];
15
+ const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 78, 5, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 199, 7, 137, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
16
+ function isInAstralSet(code, set) {
17
+ let pos = 0x10000;
18
+ for (let i = 0, length = set.length; i < length; i += 2) {
19
+ pos += set[i];
20
+ if (pos > code) return false;
21
+ pos += set[i + 1];
22
+ if (pos >= code) return true;
23
+ }
24
+ return false;
25
+ }
26
+ function isIdentifierStart(code) {
27
+ if (code < 65) return code === 36;
28
+ if (code <= 90) return true;
29
+ if (code < 97) return code === 95;
30
+ if (code <= 122) return true;
31
+ if (code <= 0xffff) {
32
+ return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));
33
+ }
34
+ return isInAstralSet(code, astralIdentifierStartCodes);
35
+ }
36
+ function isIdentifierChar(code) {
37
+ if (code < 48) return code === 36;
38
+ if (code < 58) return true;
39
+ if (code < 65) return false;
40
+ if (code <= 90) return true;
41
+ if (code < 97) return code === 95;
42
+ if (code <= 122) return true;
43
+ if (code <= 0xffff) {
44
+ return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));
45
+ }
46
+ return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);
47
+ }
48
+ function isIdentifierName(name) {
49
+ let isFirst = true;
50
+ for (let i = 0; i < name.length; i++) {
51
+ let cp = name.charCodeAt(i);
52
+ if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {
53
+ const trail = name.charCodeAt(++i);
54
+ if ((trail & 0xfc00) === 0xdc00) {
55
+ cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);
56
+ }
57
+ }
58
+ if (isFirst) {
59
+ isFirst = false;
60
+ if (!isIdentifierStart(cp)) {
61
+ return false;
62
+ }
63
+ } else if (!isIdentifierChar(cp)) {
64
+ return false;
65
+ }
66
+ }
67
+ return !isFirst;
68
+ }
69
+
70
+ //# sourceMappingURL=identifier.js.map
my-vue-app/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"names":["nonASCIIidentifierStartChars","nonASCIIidentifierChars","nonASCIIidentifierStart","RegExp","nonASCIIidentifier","astralIdentifierStartCodes","astralIdentifierCodes","isInAstralSet","code","set","pos","i","length","isIdentifierStart","test","String","fromCharCode","isIdentifierChar","isIdentifierName","name","isFirst","cp","charCodeAt","trail"],"sources":["../src/identifier.ts"],"sourcesContent":["// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.cjs`.\n\n/* prettier-ignore */\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u0870-\\u0887\\u0889-\\u088f\\u08a0-\\u08c9\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c5c\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdc-\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u1711\\u171f-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4c\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c8a\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7dc\\ua7f1-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u0897-\\u089f\\u08ca-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3c\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0cf3\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ece\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u180f-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf-\\u1add\\u1ae0-\\u1aeb\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1dff\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\u30fb\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\\uff65\";\n\nconst nonASCIIidentifierStart = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.cjs`.\n/* prettier-ignore */\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,7,25,39,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,5,57,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,24,43,261,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,33,24,3,24,45,74,6,0,67,12,65,1,2,0,15,4,10,7381,42,31,98,114,8702,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,208,30,2,2,2,1,2,6,3,4,10,1,225,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4381,3,5773,3,7472,16,621,2467,541,1507,4938,6,8489];\n/* prettier-ignore */\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,78,5,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,199,7,137,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,55,9,266,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,233,0,3,0,8,1,6,0,475,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: readonly number[]): boolean {\n let pos = 0x10000;\n for (let i = 0, length = set.length; i < length; i += 2) {\n pos += set[i];\n if (pos > code) return false;\n\n pos += set[i + 1];\n if (pos >= code) return true;\n }\n return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return (\n code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n );\n }\n return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n if (code < charCodes.digit0) return code === charCodes.dollarSign;\n if (code < charCodes.colon) return true;\n if (code < charCodes.uppercaseA) return false;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n }\n return (\n isInAstralSet(code, astralIdentifierStartCodes) ||\n isInAstralSet(code, astralIdentifierCodes)\n );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n let isFirst = true;\n for (let i = 0; i < name.length; i++) {\n // The implementation is based on\n // https://source.chromium.org/chromium/chromium/src/+/master:v8/src/builtins/builtins-string-gen.cc;l=1455;drc=221e331b49dfefadbc6fa40b0c68e6f97606d0b3;bpv=0;bpt=1\n // We reimplement `codePointAt` because `codePointAt` is a V8 builtin which is not inlined by TurboFan (as of M91)\n // since `name` is mostly ASCII, an inlined `charCodeAt` wins here\n let cp = name.charCodeAt(i);\n if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {\n const trail = name.charCodeAt(++i);\n if ((trail & 0xfc00) === 0xdc00) {\n cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);\n }\n }\n if (isFirst) {\n isFirst = false;\n if (!isIdentifierStart(cp)) {\n return false;\n }\n } else if (!isIdentifierChar(cp)) {\n return false;\n }\n }\n return !isFirst;\n}\n"],"mappings":";;;;;;;;AAaA,IAAIA,4BAA4B,GAAG,spIAAspI;AAEzrI,IAAIC,uBAAuB,GAAG,4lFAA4lF;AAE1nF,MAAMC,uBAAuB,GAAG,IAAIC,MAAM,CACxC,GAAG,GAAGH,4BAA4B,GAAG,GACvC,CAAC;AACD,MAAMI,kBAAkB,GAAG,IAAID,MAAM,CACnC,GAAG,GAAGH,4BAA4B,GAAGC,uBAAuB,GAAG,GACjE,CAAC;AAEDD,4BAA4B,GAAGC,uBAAuB,GAAG,IAAI;AAQ7D,MAAMI,0BAA0B,GAAG,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,CAAC;AAEjnD,MAAMC,qBAAqB,GAAG,CAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAA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","ignoreList":[]}
my-vue-app/node_modules/@babel/helper-validator-identifier/lib/index.js ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "isIdentifierChar", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _identifier.isIdentifierChar;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "isIdentifierName", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _identifier.isIdentifierName;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "isIdentifierStart", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _identifier.isIdentifierStart;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "isKeyword", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _keyword.isKeyword;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "isReservedWord", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _keyword.isReservedWord;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "isStrictBindOnlyReservedWord", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _keyword.isStrictBindOnlyReservedWord;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "isStrictBindReservedWord", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _keyword.isStrictBindReservedWord;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "isStrictReservedWord", {
49
+ enumerable: true,
50
+ get: function () {
51
+ return _keyword.isStrictReservedWord;
52
+ }
53
+ });
54
+ var _identifier = require("./identifier.js");
55
+ var _keyword = require("./keyword.js");
56
+
57
+ //# sourceMappingURL=index.js.map
my-vue-app/node_modules/@babel/helper-validator-identifier/lib/index.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"names":["_identifier","require","_keyword"],"sources":["../src/index.ts"],"sourcesContent":["export {\n isIdentifierName,\n isIdentifierChar,\n isIdentifierStart,\n} from \"./identifier.ts\";\nexport {\n isReservedWord,\n isStrictBindOnlyReservedWord,\n isStrictBindReservedWord,\n isStrictReservedWord,\n isKeyword,\n} from \"./keyword.ts\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA","ignoreList":[]}
my-vue-app/node_modules/@babel/helper-validator-identifier/lib/keyword.js ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isKeyword = isKeyword;
7
+ exports.isReservedWord = isReservedWord;
8
+ exports.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord;
9
+ exports.isStrictBindReservedWord = isStrictBindReservedWord;
10
+ exports.isStrictReservedWord = isStrictReservedWord;
11
+ const reservedWords = {
12
+ keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"],
13
+ strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"],
14
+ strictBind: ["eval", "arguments"]
15
+ };
16
+ const keywords = new Set(reservedWords.keyword);
17
+ const reservedWordsStrictSet = new Set(reservedWords.strict);
18
+ const reservedWordsStrictBindSet = new Set(reservedWords.strictBind);
19
+ function isReservedWord(word, inModule) {
20
+ return inModule && word === "await" || word === "enum";
21
+ }
22
+ function isStrictReservedWord(word, inModule) {
23
+ return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);
24
+ }
25
+ function isStrictBindOnlyReservedWord(word) {
26
+ return reservedWordsStrictBindSet.has(word);
27
+ }
28
+ function isStrictBindReservedWord(word, inModule) {
29
+ return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word);
30
+ }
31
+ function isKeyword(word) {
32
+ return keywords.has(word);
33
+ }
34
+
35
+ //# sourceMappingURL=keyword.js.map
my-vue-app/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"names":["reservedWords","keyword","strict","strictBind","keywords","Set","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","has","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword"],"sources":["../src/keyword.ts"],"sourcesContent":["const reservedWords = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n ],\n strict: [\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n ],\n strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n word: string,\n inModule: boolean,\n): boolean {\n return (\n isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n );\n}\n\nexport function isKeyword(word: string): boolean {\n return keywords.has(word);\n}\n"],"mappings":";;;;;;;;;;AAAA,MAAMA,aAAa,GAAG;EACpBC,OAAO,EAAE,CACP,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,IAAI,EACJ,MAAM,EACN,SAAS,EACT,KAAK,EACL,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,KAAK,EACL,KAAK,EACL,OAAO,EACP,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,QAAQ,CACT;EACDC,MAAM,EAAE,CACN,YAAY,EACZ,WAAW,EACX,KAAK,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,CACR;EACDC,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW;AAClC,CAAC;AACD,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAACL,aAAa,CAACC,OAAO,CAAC;AAC/C,MAAMK,sBAAsB,GAAG,IAAID,GAAG,CAACL,aAAa,CAACE,MAAM,CAAC;AAC5D,MAAMK,0BAA0B,GAAG,IAAIF,GAAG,CAACL,aAAa,CAACG,UAAU,CAAC;AAK7D,SAASK,cAAcA,CAACC,IAAY,EAAEC,QAAiB,EAAW;EACvE,OAAQA,QAAQ,IAAID,IAAI,KAAK,OAAO,IAAKA,IAAI,KAAK,MAAM;AAC1D;AAOO,SAASE,oBAAoBA,CAACF,IAAY,EAAEC,QAAiB,EAAW;EAC7E,OAAOF,cAAc,CAACC,IAAI,EAAEC,QAAQ,CAAC,IAAIJ,sBAAsB,CAACM,GAAG,CAACH,IAAI,CAAC;AAC3E;AAMO,SAASI,4BAA4BA,CAACJ,IAAY,EAAW;EAClE,OAAOF,0BAA0B,CAACK,GAAG,CAACH,IAAI,CAAC;AAC7C;AAOO,SAASK,wBAAwBA,CACtCL,IAAY,EACZC,QAAiB,EACR;EACT,OACEC,oBAAoB,CAACF,IAAI,EAAEC,QAAQ,CAAC,IAAIG,4BAA4B,CAACJ,IAAI,CAAC;AAE9E;AAEO,SAASM,SAASA,CAACN,IAAY,EAAW;EAC/C,OAAOL,QAAQ,CAACQ,GAAG,CAACH,IAAI,CAAC;AAC3B","ignoreList":[]}
my-vue-app/node_modules/@babel/helper-validator-identifier/package.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "@babel/helper-validator-identifier",
3
+ "version": "7.28.5",
4
+ "description": "Validate identifier/keywords name",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/babel/babel.git",
8
+ "directory": "packages/babel-helper-validator-identifier"
9
+ },
10
+ "license": "MIT",
11
+ "publishConfig": {
12
+ "access": "public"
13
+ },
14
+ "main": "./lib/index.js",
15
+ "exports": {
16
+ ".": {
17
+ "types": "./lib/index.d.ts",
18
+ "default": "./lib/index.js"
19
+ },
20
+ "./package.json": "./package.json"
21
+ },
22
+ "devDependencies": {
23
+ "@unicode/unicode-17.0.0": "^1.6.10",
24
+ "charcodes": "^0.2.0"
25
+ },
26
+ "engines": {
27
+ "node": ">=6.9.0"
28
+ },
29
+ "author": "The Babel Team (https://babel.dev/team)",
30
+ "type": "commonjs"
31
+ }