作者 202304001

增加思维导图页面

1 import { ControlParamItem } from "../sd"; 1 import { ControlParamItem } from "../sd";
2 import { IconButton } from "../button"; 2 import { IconButton } from "../button";
3 import styles from "./bg-removal-panel.module.scss"; 3 import styles from "./bg-removal-panel.module.scss";
4 -import { useEffect, useState } from "react";  
5 -import { Select } from "@/app/components/ui-lib";  
6 -import { message } from 'antd';  
7 -import type { LocalData, FileProps } from '@/app/types/zuotang';  
8 -import { ApiPath } from '@/app/constant';  
9 -import { useAccessStore } from '@/app/store';  
10 -import Locale from '@/app/locales'; 4 +import { useState } from "react";
  5 +import { message } from "antd";
  6 +import type { LocalData, FileProps } from "@/app/types/zuotang";
  7 +import { ApiPath } from "@/app/constant";
  8 +import { useAccessStore } from "@/app/store";
  9 +import Locale from "@/app/locales";
11 import LoadingIcon from "@/app/icons/three-dots.svg"; 10 import LoadingIcon from "@/app/icons/three-dots.svg";
12 -import WriteIcon from '@/app/icons/write.svg' 11 +import WriteIcon from "@/app/icons/write.svg";
13 import { useChatStore } from "@/app/store"; 12 import { useChatStore } from "@/app/store";
  13 +import { getBgPrompt } from "@/app/utils/prompt";
  14 +
14 // 错误消息映射函数 15 // 错误消息映射函数
15 const getErrorMessage = (state: number): string => { 16 const getErrorMessage = (state: number): string => {
16 const errorMap: { [key: number]: string } = { 17 const errorMap: { [key: number]: string } = {
17 - [-8]: '处理超时,最长处理时间30秒',  
18 - [-7]: '无效图片文件(可能已损坏或格式错误)',  
19 - [-5]: '图片大小超过15MB限制',  
20 - [-3]: '服务器下载图片失败,请检查URL有效性',  
21 - [-2]: '处理结果上传失败',  
22 - [-1]: '任务处理失败' 18 + [-8]: "处理超时,最长处理时间30秒",
  19 + [-7]: "无效图片文件(可能已损坏或格式错误)",
  20 + [-5]: "图片大小超过15MB限制",
  21 + [-3]: "服务器下载图片失败,请检查URL有效性",
  22 + [-2]: "处理结果上传失败",
  23 + [-1]: "任务处理失败",
23 }; 24 };
24 return errorMap[state] || `未知错误(状态码:${state})`; 25 return errorMap[state] || `未知错误(状态码:${state})`;
25 }; 26 };
@@ -37,7 +38,7 @@ const useTaskPoller = () => { @@ -37,7 +38,7 @@ const useTaskPoller = () => {
37 taskId: string, 38 taskId: string,
38 endpoint: string, 39 endpoint: string,
39 onSuccess: (data: any) => void, 40 onSuccess: (data: any) => void,
40 - onError: (message: string) => void 41 + onError: (message: string) => void,
41 ) => { 42 ) => {
42 const pollInterval = 1000; 43 const pollInterval = 1000;
43 const maxAttempts = 60; 44 const maxAttempts = 60;
@@ -70,15 +71,20 @@ const useTaskPoller = () => { @@ -70,15 +71,20 @@ const useTaskPoller = () => {
70 break; 71 break;
71 default: // 处理错误状态 72 default: // 处理错误状态
72 clearInterval(intervalId); 73 clearInterval(intervalId);
73 - if (taskResult.data?.state < 0) { // 所有负数状态均为错误 74 + if (taskResult.data?.state < 0) {
  75 + // 所有负数状态均为错误
74 onError(getErrorMessage(taskResult.data.state)); 76 onError(getErrorMessage(taskResult.data.state));
75 } else { 77 } else {
76 - onError('未知任务状态'); 78 + onError("未知任务状态");
77 } 79 }
78 } 80 }
79 } catch (error) { 81 } catch (error) {
80 clearInterval(intervalId); 82 clearInterval(intervalId);
81 - onError(error instanceof Error ? error.message : Locale.BgRemoval.error.reqErr); 83 + onError(
  84 + error instanceof Error
  85 + ? error.message
  86 + : Locale.BgRemoval.error.reqErr,
  87 + );
82 } 88 }
83 }, pollInterval); 89 }, pollInterval);
84 90
@@ -92,7 +98,7 @@ const useTaskPoller = () => { @@ -92,7 +98,7 @@ const useTaskPoller = () => {
92 const useDateUtils = () => { 98 const useDateUtils = () => {
93 const getFormattedToday = (): string => { 99 const getFormattedToday = (): string => {
94 const today = new Date(); 100 const today = new Date();
95 - return today.toISOString().split('T')[0].replace(/-/g, ''); 101 + return today.toISOString().split("T")[0].replace(/-/g, "");
96 }; 102 };
97 103
98 const isToday = (dateStr: string): boolean => { 104 const isToday = (dateStr: string): boolean => {
@@ -116,7 +122,7 @@ const useLocalStorage = () => { @@ -116,7 +122,7 @@ const useLocalStorage = () => {
116 122
117 return { 123 return {
118 date: parsed.date || getFormattedToday(), 124 date: parsed.date || getFormattedToday(),
119 - maxDailyUses: parsed.maxDailyUses || 'first' 125 + maxDailyUses: parsed.maxDailyUses || "first",
120 }; 126 };
121 } catch (e) { 127 } catch (e) {
122 return defaultLocalData(); 128 return defaultLocalData();
@@ -126,20 +132,19 @@ const useLocalStorage = () => { @@ -126,20 +132,19 @@ const useLocalStorage = () => {
126 const updateLocalUsage = (accessCode: string, maxDailyUses: number) => { 132 const updateLocalUsage = (accessCode: string, maxDailyUses: number) => {
127 const saveData: LocalData = { 133 const saveData: LocalData = {
128 date: getFormattedToday(), 134 date: getFormattedToday(),
129 - maxDailyUses: maxDailyUses.toString() 135 + maxDailyUses: maxDailyUses.toString(),
130 }; 136 };
131 localStorage.setItem(accessCode, JSON.stringify(saveData)); 137 localStorage.setItem(accessCode, JSON.stringify(saveData));
132 }; 138 };
133 139
134 const defaultLocalData = (): LocalData => ({ 140 const defaultLocalData = (): LocalData => ({
135 date: getFormattedToday(), 141 date: getFormattedToday(),
136 - maxDailyUses: 'first' 142 + maxDailyUses: "first",
137 }); 143 });
138 144
139 return { getLocalData, updateLocalUsage }; 145 return { getLocalData, updateLocalUsage };
140 }; 146 };
141 147
142 -  
143 // 定义组件的 props 类型 148 // 定义组件的 props 类型
144 interface PromptListProps { 149 interface PromptListProps {
145 promptList: string[]; 150 promptList: string[];
@@ -154,42 +159,42 @@ const PromptListComponent: React.FC<PromptListProps> = ({ @@ -154,42 +159,42 @@ const PromptListComponent: React.FC<PromptListProps> = ({
154 // 删除处理函数 159 // 删除处理函数
155 const handleDelete = (index: number, e: React.MouseEvent) => { 160 const handleDelete = (index: number, e: React.MouseEvent) => {
156 e.stopPropagation(); // 阻止冒泡 161 e.stopPropagation(); // 阻止冒泡
157 - setPromptList(prev => prev.filter((_, i) => i !== index)); 162 + setPromptList((prev) => prev.filter((_, i) => i !== index));
158 }; 163 };
159 164
160 // 响应式样式配置 165 // 响应式样式配置
161 const containerStyle: React.CSSProperties = { 166 const containerStyle: React.CSSProperties = {
162 - maxWidth: '90%',  
163 - margin: '0 auto',  
164 - padding: '0.6rem', 167 + maxWidth: "90%",
  168 + margin: "0 auto",
  169 + padding: "0.6rem",
165 }; 170 };
166 171
167 const itemStyle: React.CSSProperties = { 172 const itemStyle: React.CSSProperties = {
168 - position: 'relative',  
169 - backgroundColor: '#f8f9fa',  
170 - padding: '0.5rem',  
171 - margin: '0.5rem 0',  
172 - borderRadius: '12px',  
173 - cursor: 'pointer',  
174 - boxShadow: '0 2px 8px rgba(0,0,0,0.1)',  
175 - transition: 'all 0.3s ease', 173 + position: "relative",
  174 + backgroundColor: "#f8f9fa",
  175 + padding: "0.5rem",
  176 + margin: "0.5rem 0",
  177 + borderRadius: "12px",
  178 + cursor: "pointer",
  179 + boxShadow: "0 2px 8px rgba(0,0,0,0.1)",
  180 + transition: "all 0.3s ease",
176 }; 181 };
177 182
178 const deleteButtonStyle: React.CSSProperties = { 183 const deleteButtonStyle: React.CSSProperties = {
179 - position: 'absolute',  
180 - top: '0.2rem',  
181 - right: '0.5rem',  
182 - width: '15px',  
183 - height: '15px',  
184 - borderRadius: '50%',  
185 - backgroundColor: '#ff4444',  
186 - color: 'white',  
187 - display: 'flex',  
188 - alignItems: 'center',  
189 - justifyContent: 'center',  
190 - cursor: 'pointer',  
191 - transition: 'all 0.2s ease',  
192 - visibility: 'hidden', // 默认隐藏 184 + position: "absolute",
  185 + top: "0.2rem",
  186 + right: "0.5rem",
  187 + width: "15px",
  188 + height: "15px",
  189 + borderRadius: "50%",
  190 + backgroundColor: "#ff4444",
  191 + color: "white",
  192 + display: "flex",
  193 + alignItems: "center",
  194 + justifyContent: "center",
  195 + cursor: "pointer",
  196 + transition: "all 0.2s ease",
  197 + visibility: "hidden", // 默认隐藏
193 }; 198 };
194 199
195 return ( 200 return (
@@ -200,22 +205,22 @@ const PromptListComponent: React.FC<PromptListProps> = ({ @@ -200,22 +205,22 @@ const PromptListComponent: React.FC<PromptListProps> = ({
200 style={itemStyle} 205 style={itemStyle}
201 onMouseEnter={(e) => { 206 onMouseEnter={(e) => {
202 const currentTarget = e.currentTarget as HTMLElement; 207 const currentTarget = e.currentTarget as HTMLElement;
203 - currentTarget.style.transform = 'translateY(-3px)';  
204 - currentTarget.style.boxShadow = '0 4px 12px rgba(0,0,0,0.15)'; 208 + currentTarget.style.transform = "translateY(-3px)";
  209 + currentTarget.style.boxShadow = "0 4px 12px rgba(0,0,0,0.15)";
205 // 显示删除按钮 210 // 显示删除按钮
206 - const button = currentTarget.querySelector('.delete-btn'); 211 + const button = currentTarget.querySelector(".delete-btn");
207 if (button) { 212 if (button) {
208 - (button as HTMLElement).style.visibility = 'visible'; 213 + (button as HTMLElement).style.visibility = "visible";
209 } 214 }
210 }} 215 }}
211 onMouseLeave={(e) => { 216 onMouseLeave={(e) => {
212 const currentTarget = e.currentTarget as HTMLElement; 217 const currentTarget = e.currentTarget as HTMLElement;
213 - currentTarget.style.transform = 'translateY(0)';  
214 - currentTarget.style.boxShadow = '0 2px 8px rgba(0,0,0,0.1)'; 218 + currentTarget.style.transform = "translateY(0)";
  219 + currentTarget.style.boxShadow = "0 2px 8px rgba(0,0,0,0.1)";
215 // 隐藏删除按钮 220 // 隐藏删除按钮
216 - const button = currentTarget.querySelector('.delete-btn'); 221 + const button = currentTarget.querySelector(".delete-btn");
217 if (button) { 222 if (button) {
218 - (button as HTMLElement).style.visibility = 'hidden'; 223 + (button as HTMLElement).style.visibility = "hidden";
219 } 224 }
220 }} 225 }}
221 onClick={() => setPrompt(item)} 226 onClick={() => setPrompt(item)}
@@ -226,24 +231,26 @@ const PromptListComponent: React.FC<PromptListProps> = ({ @@ -226,24 +231,26 @@ const PromptListComponent: React.FC<PromptListProps> = ({
226 style={deleteButtonStyle} 231 style={deleteButtonStyle}
227 onClick={(e) => handleDelete(index, e)} 232 onClick={(e) => handleDelete(index, e)}
228 onMouseEnter={(e) => { 233 onMouseEnter={(e) => {
229 - e.currentTarget.style.backgroundColor = '#cc0000';  
230 - e.currentTarget.style.transform = 'scale(1.1)'; 234 + e.currentTarget.style.backgroundColor = "#cc0000";
  235 + e.currentTarget.style.transform = "scale(1.1)";
231 }} 236 }}
232 onMouseLeave={(e) => { 237 onMouseLeave={(e) => {
233 - e.currentTarget.style.backgroundColor = '#ff4444';  
234 - e.currentTarget.style.transform = 'scale(1)'; 238 + e.currentTarget.style.backgroundColor = "#ff4444";
  239 + e.currentTarget.style.transform = "scale(1)";
235 }} 240 }}
236 > 241 >
237 × 242 ×
238 </div> 243 </div>
239 244
240 {/* 内容区域 */} 245 {/* 内容区域 */}
241 - <div style={{  
242 - fontSize: 'clamp(12px, 2vw, 14px)',  
243 - color: '#343a40', 246 + <div
  247 + style={{
  248 + fontSize: "clamp(12px, 2vw, 14px)",
  249 + color: "#343a40",
244 lineHeight: 1.6, 250 lineHeight: 1.6,
245 - paddingRight: '2rem', // 为删除按钮留出空间  
246 - }}> 251 + paddingRight: "2rem", // 为删除按钮留出空间
  252 + }}
  253 + >
247 {item} 254 {item}
248 </div> 255 </div>
249 </div> 256 </div>
@@ -252,20 +259,25 @@ const PromptListComponent: React.FC<PromptListProps> = ({ @@ -252,20 +259,25 @@ const PromptListComponent: React.FC<PromptListProps> = ({
252 ); 259 );
253 }; 260 };
254 261
255 -  
256 export function BgPanel(props: FileProps) { 262 export function BgPanel(props: FileProps) {
257 - const [prompt, setPrompt] = useState('') //背景提示词  
258 - const [promptList, setPromptList] = useState<string[]>([]) //背景提示词优化列表  
259 - const [isGenerate, setIsGenerate] = useState(false)  
260 - const [sceneTypeList, setSceneTypeList] = useState([]) 263 + const [prompt, setPrompt] = useState(""); //背景提示词
  264 + const [promptList, setPromptList] = useState<string[]>([]); //背景提示词优化列表
  265 + const [isGenerate, setIsGenerate] = useState(false);
  266 + const [sceneTypeList, setSceneTypeList] = useState([]);
261 const chatStore = useChatStore(); 267 const chatStore = useChatStore();
262 - const [loading, setLoading] = useState(false) //是否优化文案  
263 - const { previewUrl, setPreviewUrl, fileData, setFileData, isLoading, setIsLoading } = props; 268 + const [loading, setLoading] = useState(false); //是否优化文案
  269 + const {
  270 + previewUrl,
  271 + setPreviewUrl,
  272 + fileData,
  273 + setFileData,
  274 + isLoading,
  275 + setIsLoading,
  276 + } = props;
264 const accessStore = useAccessStore(); 277 const accessStore = useAccessStore();
265 const { pollTask } = useTaskPoller(); 278 const { pollTask } = useTaskPoller();
266 const { updateLocalUsage, getLocalData } = useLocalStorage(); 279 const { updateLocalUsage, getLocalData } = useLocalStorage();
267 280
268 -  
269 const handleApiRequest = async (endpoint: string) => { 281 const handleApiRequest = async (endpoint: string) => {
270 if (!previewUrl) { 282 if (!previewUrl) {
271 message.error(Locale.BgRemoval.error.selectImg); 283 message.error(Locale.BgRemoval.error.selectImg);
@@ -275,7 +287,7 @@ export function BgPanel(props: FileProps) { @@ -275,7 +287,7 @@ export function BgPanel(props: FileProps) {
275 message.error(Locale.BgRemoval.error.code); 287 message.error(Locale.BgRemoval.error.code);
276 throw new Error(`VALIDATION_ERROR: ${Locale.BgRemoval.error.code}`); 288 throw new Error(`VALIDATION_ERROR: ${Locale.BgRemoval.error.code}`);
277 } 289 }
278 - if (endpoint === 'visual/r-background' && !prompt.trim()) { 290 + if (endpoint === "visual/r-background" && !prompt.trim()) {
279 message.error(Locale.BgRemoval.error.prompt); 291 message.error(Locale.BgRemoval.error.prompt);
280 setIsLoading(false); 292 setIsLoading(false);
281 throw new Error(`VALIDATION_ERROR: ${Locale.BgRemoval.error.prompt}`); 293 throw new Error(`VALIDATION_ERROR: ${Locale.BgRemoval.error.prompt}`);
@@ -286,10 +298,12 @@ export function BgPanel(props: FileProps) { @@ -286,10 +298,12 @@ export function BgPanel(props: FileProps) {
286 formData.append("accessCode", accessStore.accessCode); 298 formData.append("accessCode", accessStore.accessCode);
287 formData.append("localData", JSON.stringify(localData)); // 序列化后添加 299 formData.append("localData", JSON.stringify(localData)); // 序列化后添加
288 formData.append("image_file", fileData as Blob); 300 formData.append("image_file", fileData as Blob);
289 - if (endpoint === 'visual/r-background') { formData.append("prompt", prompt) } //生成背景添加提示词 301 + if (endpoint === "visual/r-background") {
  302 + formData.append("prompt", prompt);
  303 + } //生成背景添加提示词
290 const res = await fetch(`${ApiPath.ZuoTang}/${endpoint}`, { 304 const res = await fetch(`${ApiPath.ZuoTang}/${endpoint}`, {
291 - method: 'POST',  
292 - body: formData 305 + method: "POST",
  306 + body: formData,
293 }); 307 });
294 if (!res.ok) { 308 if (!res.ok) {
295 const errorData = await res.json(); 309 const errorData = await res.json();
@@ -303,10 +317,10 @@ export function BgPanel(props: FileProps) { @@ -303,10 +317,10 @@ export function BgPanel(props: FileProps) {
303 throw new Error(responseData.message); 317 throw new Error(responseData.message);
304 } 318 }
305 return responseData; 319 return responseData;
306 - } finally {} 320 + } finally {
  321 + }
307 }; 322 };
308 323
309 -  
310 const handleProcessImage = async (endpoint: string) => { 324 const handleProcessImage = async (endpoint: string) => {
311 setIsLoading(true); 325 setIsLoading(true);
312 try { 326 try {
@@ -335,11 +349,11 @@ export function BgPanel(props: FileProps) { @@ -335,11 +349,11 @@ export function BgPanel(props: FileProps) {
335 (errorMsg) => { 349 (errorMsg) => {
336 message.error(errorMsg); 350 message.error(errorMsg);
337 setIsLoading(false); 351 setIsLoading(false);
338 - } 352 + },
339 ); 353 );
340 } catch (error) { 354 } catch (error) {
341 - const errorMessage = error instanceof Error ? error.message : '';  
342 - if (!errorMessage.startsWith('VALIDATION_ERROR:')) { 355 + const errorMessage = error instanceof Error ? error.message : "";
  356 + if (!errorMessage.startsWith("VALIDATION_ERROR:")) {
343 message.error(Locale.BgRemoval.error.reqErr); 357 message.error(Locale.BgRemoval.error.reqErr);
344 } 358 }
345 setIsLoading(false); 359 setIsLoading(false);
@@ -348,7 +362,7 @@ export function BgPanel(props: FileProps) { @@ -348,7 +362,7 @@ export function BgPanel(props: FileProps) {
348 362
349 const handleDownload = () => { 363 const handleDownload = () => {
350 if (!previewUrl) return message.error(Locale.BgRemoval.error.downLoadErr); 364 if (!previewUrl) return message.error(Locale.BgRemoval.error.downLoadErr);
351 - const link = document.createElement('a'); 365 + const link = document.createElement("a");
352 link.href = previewUrl; 366 link.href = previewUrl;
353 link.download = `processed-${Date.now()}.png`; 367 link.download = `processed-${Date.now()}.png`;
354 document.body.appendChild(link); 368 document.body.appendChild(link);
@@ -361,17 +375,17 @@ export function BgPanel(props: FileProps) { @@ -361,17 +375,17 @@ export function BgPanel(props: FileProps) {
361 if (!prompt.trim()) { 375 if (!prompt.trim()) {
362 return message.error(Locale.BgRemoval.error.prompt); 376 return message.error(Locale.BgRemoval.error.prompt);
363 } 377 }
364 - const input = `你现扮演生成创意思图片的提示词工程师,参考我的描述“${prompt}”帮我做优化润色5组,返回的数据用''分割,直接输出结果,不要做解释`  
365 - setLoading(true)  
366 - const response = await chatStore.directLlmInvoke(input,'gpt-4o-mini');  
367 - const items = response.split("'").filter(item => item.trim() !== ''); 378 + const input = getBgPrompt(prompt);
  379 + setLoading(true);
  380 + const response = await chatStore.directLlmInvoke(input, "gpt-4o-mini");
  381 + const items = response.split("'").filter((item) => item.trim() !== "");
368 setPromptList(items); 382 setPromptList(items);
369 } catch (error) { 383 } catch (error) {
370 - message.error("优化失败,请重试") 384 + message.error("优化失败,请重试");
371 } finally { 385 } finally {
372 - setLoading(false)  
373 - } 386 + setLoading(false);
374 } 387 }
  388 + };
375 return ( 389 return (
376 <> 390 <>
377 <ControlParamItem title={Locale.BgRemoval.subTitle}> 391 <ControlParamItem title={Locale.BgRemoval.subTitle}>
@@ -380,7 +394,7 @@ export function BgPanel(props: FileProps) { @@ -380,7 +394,7 @@ export function BgPanel(props: FileProps) {
380 text={Locale.BgRemoval.bgRemoveBtn} 394 text={Locale.BgRemoval.bgRemoveBtn}
381 type="primary" 395 type="primary"
382 shadow 396 shadow
383 - onClick={() => handleProcessImage('visual/segmentation')} 397 + onClick={() => handleProcessImage("visual/segmentation")}
384 disabled={isLoading} 398 disabled={isLoading}
385 /> 399 />
386 <IconButton 400 <IconButton
@@ -394,35 +408,48 @@ export function BgPanel(props: FileProps) { @@ -394,35 +408,48 @@ export function BgPanel(props: FileProps) {
394 text={Locale.BgRemoval.generateBg} 408 text={Locale.BgRemoval.generateBg}
395 type="primary" 409 type="primary"
396 shadow 410 shadow
397 - onClick={() => handleProcessImage('visual/r-background')} 411 + onClick={() => handleProcessImage("visual/r-background")}
398 disabled={isLoading} 412 disabled={isLoading}
399 /> 413 />
400 </div> 414 </div>
401 </ControlParamItem> 415 </ControlParamItem>
402 - <ControlParamItem  
403 - title={Locale.BgRemoval.promptTitle}  
404 - required={true}  
405 - > 416 + <ControlParamItem title={Locale.BgRemoval.promptTitle} required={true}>
406 <div className={styles["prompt"]}> 417 <div className={styles["prompt"]}>
407 <textarea 418 <textarea
408 rows={3} 419 rows={3}
409 className={styles["tx"]} 420 className={styles["tx"]}
410 placeholder={Locale.BgRemoval.error.prompt} 421 placeholder={Locale.BgRemoval.error.prompt}
411 - onChange={(e) => { setPrompt(e.target.value) }} 422 + onChange={(e) => {
  423 + setPrompt(e.target.value);
  424 + }}
412 value={prompt} 425 value={prompt}
413 ></textarea> 426 ></textarea>
414 - <div className={styles["ai-prompt"]} onClick={optimizePrompt}> 427 + <div
  428 + className={styles["ai-prompt"]}
  429 + onClick={(e) => {
  430 + if (loading) {
  431 + e.stopPropagation();
  432 + return;
  433 + }
  434 + optimizePrompt();
  435 + }}
  436 + >
415 <WriteIcon /> 437 <WriteIcon />
416 AI优化文案 438 AI优化文案
417 </div> 439 </div>
418 </div> 440 </div>
419 - {loading ?  
420 - (<div className={styles["loading-content"]}> 441 + {loading ? (
  442 + <div className={styles["loading-content"]}>
421 <LoadingIcon /> 443 <LoadingIcon />
422 - </div>)  
423 - : (<PromptListComponent promptList={promptList} setPromptList={setPromptList} setPrompt={setPrompt} />)}  
424 - 444 + </div>
  445 + ) : (
  446 + <PromptListComponent
  447 + promptList={promptList}
  448 + setPromptList={setPromptList}
  449 + setPrompt={setPrompt}
  450 + />
  451 + )}
425 </ControlParamItem> 452 </ControlParamItem>
426 </> 453 </>
427 - ) 454 + );
428 } 455 }
@@ -45,7 +45,6 @@ export function Loading(props: { noLogo?: boolean }) { @@ -45,7 +45,6 @@ export function Loading(props: { noLogo?: boolean }) {
45 ); 45 );
46 } 46 }
47 47
48 -  
49 const Artifacts = dynamic(async () => (await import("./artifacts")).Artifacts, { 48 const Artifacts = dynamic(async () => (await import("./artifacts")).Artifacts, {
50 loading: () => <Loading noLogo />, 49 loading: () => <Loading noLogo />,
51 }); 50 });
@@ -88,19 +87,13 @@ const McpMarketPage = dynamic( @@ -88,19 +87,13 @@ const McpMarketPage = dynamic(
88 }, 87 },
89 ); 88 );
90 //以下新增思维导图路由,抠图路由 20250319 89 //以下新增思维导图路由,抠图路由 20250319
91 -const Mind = dynamic(  
92 - async () => (await import("./mind")).Mind,  
93 - { 90 +const Mind = dynamic(async () => (await import("./mind")).MindPage, {
94 loading: () => <Loading noLogo />, 91 loading: () => <Loading noLogo />,
95 - },  
96 -); 92 +});
97 93
98 -const BgRemoval = dynamic(  
99 - async () => (await import("./bgRemoval")).BgRemoval,  
100 - { 94 +const BgRemoval = dynamic(async () => (await import("./bgRemoval")).BgRemoval, {
101 loading: () => <Loading noLogo />, 95 loading: () => <Loading noLogo />,
102 - },  
103 -); 96 +});
104 97
105 const WritingPage = dynamic( 98 const WritingPage = dynamic(
106 async () => (await import("./writing")).WritingPage, 99 async () => (await import("./writing")).WritingPage,
@@ -109,7 +102,6 @@ const WritingPage = dynamic( @@ -109,7 +102,6 @@ const WritingPage = dynamic(
109 }, 102 },
110 ); 103 );
111 104
112 -  
113 export function useSwitchTheme() { 105 export function useSwitchTheme() {
114 const config = useAppConfig(); 106 const config = useAppConfig();
115 107
@@ -198,7 +190,6 @@ function Screen() { @@ -198,7 +190,6 @@ function Screen() {
198 const isBgRemoval = location.pathname === Path.BgRemoval; 190 const isBgRemoval = location.pathname === Path.BgRemoval;
199 const isWrting = location.pathname === Path.Writing; 191 const isWrting = location.pathname === Path.Writing;
200 192
201 -  
202 const isMobileScreen = useMobileScreen(); 193 const isMobileScreen = useMobileScreen();
203 const shouldTightBorder = 194 const shouldTightBorder =
204 getClientConfig()?.isApp || (config.tightBorder && !isMobileScreen); 195 getClientConfig()?.isApp || (config.tightBorder && !isMobileScreen);
@@ -221,9 +212,9 @@ function Screen() { @@ -221,9 +212,9 @@ function Screen() {
221 // 20250317新增思维导图 212 // 20250317新增思维导图
222 if (isMind) return <Mind />; 213 if (isMind) return <Mind />;
223 //20250322新增抠图界面 214 //20250322新增抠图界面
224 - if (isBgRemoval) return <BgRemoval /> 215 + if (isBgRemoval) return <BgRemoval />;
225 //20250325新增AI写作界面 216 //20250325新增AI写作界面
226 - if(isWrting)return <WritingPage/> 217 + if (isWrting) return <WritingPage />;
227 218
228 return ( 219 return (
229 <> 220 <>
1 -.minder-container {  
2 - position: absolute;  
3 - width: 100%;  
4 - height: 100%;  
5 - background: transparent !important;  
6 - z-index: 1;  
7 -}  
8 -  
9 -.minder-tools {  
10 - width: 950px;  
11 - position: absolute;  
12 - z-index: 2;  
13 - background: #f7f7f8;  
14 - border-radius: 10px;  
15 - left: 50%;  
16 - transform: translateX(-50%);  
17 - top: 0;  
18 - display: flex;  
19 - align-items: center;  
20 - padding: 4px 9px;  
21 - box-shadow: 0 0 20px rgba(100, 100, 100, 0.1);  
22 -  
23 - .split {  
24 - height: 14px;  
25 - width: 1px;  
26 - background: #ddd;  
27 - margin: 0 10px;  
28 - padding: 0;  
29 - }  
30 -  
31 - .tools-item {  
32 - padding: 4px 8px;  
33 - border-radius: 5px;  
34 - color: #666 !important;  
35 - margin: 0 3px;  
36 - font-size: 14px;  
37 - cursor: pointer;  
38 -  
39 - .icon {  
40 - font-size: 18px;  
41 - }  
42 -  
43 - .color-block {  
44 - display: block;  
45 - width: 16px;  
46 - height: 16px;  
47 - border-radius: 4px;  
48 - }  
49 -  
50 - &:hover,  
51 - &:active {  
52 - background: #eff0f0;  
53 - }  
54 -  
55 - &.active {  
56 - background: #e3e4e4;  
57 - }  
58 -  
59 - &.disabled {  
60 - color: #ccc !important;  
61 -  
62 - .icon {  
63 - color: #ccc !important;  
64 - }  
65 - }  
66 -  
67 - &.btn-primary {  
68 - //background: linear-gradient(108deg, #a561ff 0, #ff6060 96%), linear-gradient(69deg, #ffa100 14%, #f95757 49%) !important;  
69 - background: linear-gradient(108deg, #35b1d9 0, #1adca9 96%) !important;  
70 - color: #fff !important;  
71 -  
72 - &:hover {  
73 - background: linear-gradient(108deg, #289dc2 0, #15bb8f 96%) !important;  
74 - }  
75 - }  
76 - }  
77 -}  
78 -  
79 -.el-popover {  
80 - padding: 0;  
81 -}  
1 -import React from 'react';  
2 -import { ReactFlow } from '@xyflow/react';  
3 -  
4 -import '@xyflow/react/dist/style.css';  
5 -  
6 -const initialNodes = [  
7 - { id: '1', position: { x: 0, y: 0 }, data: { label: 'jsadisahsaa' } },  
8 - { id: '2', position: { x: 0, y: 100 }, data: { label: 'sohidhso' } },  
9 - { id: '3', position: { x: 0, y: 100 }, data: { label: 'sohidhso' } },  
10 - { id: '2', position: { x: 0, y: 100 }, data: { label: 'sohidhso' } },  
11 -];  
12 -const initialEdges = [{ id: 'e1-2', source: '1', target: '2' }];  
13 -  
14 -export function Mind() {  
15 - return (  
16 - <div style={{ width: '100vw', height: '100vh' }}>  
17 - <ReactFlow nodes={initialNodes} edges={initialEdges} />  
18 - </div>  
19 - );  
20 -}  
  1 +export * from "./mind";
  2 +export * from "./mind-panel";
  1 +import { useState } from "react";
  2 +import { ControlParamItem } from "../sd";
  3 +import { SideBarTail } from "@/app/components/sidebar";
  4 +import { IconButton } from "../button";
  5 +import { getMindPrompt } from "@/app/utils/prompt";
  6 +import { useChatStore } from "@/app/store";
  7 +import { type MindElixirData } from "mind-elixir";
  8 +import { message } from "antd";
  9 +
  10 +export interface MindPanelProps {
  11 + setData: React.Dispatch<React.SetStateAction<MindElixirData>>;
  12 + isLoading: boolean;
  13 + setIsLoading: React.Dispatch<React.SetStateAction<boolean>>;
  14 +}
  15 +
  16 +export function MindPanel(props: MindPanelProps) {
  17 + const { setData, isLoading, setIsLoading } = props;
  18 + const [inputValue, setInputValue] = useState("");
  19 + const [loading, setLoading] = useState(false);
  20 + const chatStore = useChatStore();
  21 + const submit = async () => {
  22 + if (!inputValue.trim()) return message.error("请输入提示词!");
  23 + setIsLoading(true);
  24 + try {
  25 + const prompt = getMindPrompt(inputValue);
  26 + const response = await chatStore.directLlmInvoke(prompt, "gpt-4o-mini");
  27 + console.log("原始响应:", response);
  28 + const parsedData: MindElixirData = JSON.parse(response);
  29 + console.log("解析后响应:", parsedData);
  30 + // 增强校验逻辑
  31 + if (
  32 + !parsedData?.nodeData?.id ||
  33 + !Array.isArray(parsedData.nodeData.children)
  34 + ) {
  35 + throw new Error("数据结构不完整");
  36 + }
  37 + setData(parsedData);
  38 + } catch (error) {
  39 + console.log(error);
  40 + message.error("请求失败,请重试");
  41 + } finally {
  42 + setIsLoading(false); // 确保关闭加载状态‌:ml-citation{ref="2,5" data="citationList"}
  43 + }
  44 + };
  45 + return (
  46 + <>
  47 + <div>
  48 + <ControlParamItem title="提示词" required={true}>
  49 + <textarea
  50 + rows={3}
  51 + style={{ maxWidth: "100%", width: "100%", padding: "10px" }}
  52 + placeholder="请输入"
  53 + value={inputValue}
  54 + onChange={(e) => {
  55 + setInputValue(e.target.value);
  56 + }}
  57 + ></textarea>
  58 + </ControlParamItem>
  59 + <SideBarTail
  60 + secondaryAction={
  61 + <IconButton
  62 + text="提交生成"
  63 + type="primary"
  64 + shadow
  65 + onClick={submit}
  66 + disabled={isLoading}
  67 + ></IconButton>
  68 + }
  69 + />
  70 + </div>
  71 + </>
  72 + );
  73 +}
  1 +import { useMobileScreen } from "@/app/utils";
  2 +import dynamic from "next/dynamic";
  3 +import {
  4 + SideBarContainer,
  5 + SideBarBody,
  6 + SideBarHeader,
  7 + useDragSideBar,
  8 + useHotKey,
  9 +} from "@/app/components/sidebar";
  10 +import { type MindElixirData } from "mind-elixir";
  11 +import { IconButton } from "@/app/components/button";
  12 +import ReturnIcon from "@/app/icons/return.svg";
  13 +import HistoryIcon from "@/app/icons/history.svg";
  14 +import Locale from "@/app/locales";
  15 +import { Path } from "@/app/constant";
  16 +import { useNavigate } from "react-router-dom";
  17 +import SDIcon from "@/app/icons/sd.svg";
  18 +
  19 +const MindPanel = dynamic(
  20 + async () => (await import("@/app/components/mind")).MindPanel,
  21 + {
  22 + loading: () => null,
  23 + },
  24 +);
  25 +
  26 +export interface MindSiderBarProps {
  27 + className?: string;
  28 + setData: React.Dispatch<React.SetStateAction<MindElixirData>>;
  29 + isLoading: boolean;
  30 + setIsLoading: React.Dispatch<React.SetStateAction<boolean>>;
  31 +}
  32 +
  33 +export function MindSiderBar(props: MindSiderBarProps) {
  34 + const { className, setData, isLoading, setIsLoading } = props;
  35 + const isMobileScreen = useMobileScreen();
  36 + const { onDragStart, shouldNarrow } = useDragSideBar();
  37 + const navigate = useNavigate();
  38 + useHotKey();
  39 + return (
  40 + <>
  41 + <SideBarContainer
  42 + onDragStart={onDragStart}
  43 + shouldNarrow={shouldNarrow}
  44 + {...props}
  45 + >
  46 + {isMobileScreen ? (
  47 + <div
  48 + className="window-header"
  49 + data-tauri-drag-region
  50 + style={{
  51 + paddingLeft: 0,
  52 + paddingRight: 0,
  53 + }}
  54 + >
  55 + <div className="window-actions">
  56 + <div className="window-action-button">
  57 + <IconButton
  58 + icon={<ReturnIcon />}
  59 + bordered
  60 + title={Locale.Sd.Actions.ReturnHome}
  61 + onClick={() => navigate(Path.Home)}
  62 + />
  63 + </div>
  64 + </div>
  65 + <SDIcon width={50} height={50} />
  66 + <div className="window-actions">
  67 + <div className="window-action-button">
  68 + <IconButton
  69 + icon={<HistoryIcon />}
  70 + bordered
  71 + title={Locale.Sd.Actions.History}
  72 + onClick={() => navigate(Path.SdNew)}
  73 + />
  74 + </div>
  75 + </div>
  76 + </div>
  77 + ) : (
  78 + <SideBarHeader
  79 + title={
  80 + <IconButton
  81 + icon={<ReturnIcon />}
  82 + bordered
  83 + title={Locale.Sd.Actions.ReturnHome}
  84 + onClick={() => navigate(Path.Home)}
  85 + />
  86 + }
  87 + logo={<SDIcon width={38} height={"100%"} />}
  88 + ></SideBarHeader>
  89 + )}
  90 + <SideBarBody>
  91 + <MindPanel
  92 + setData={setData}
  93 + isLoading={isLoading}
  94 + setIsLoading={setIsLoading}
  95 + />
  96 + </SideBarBody>
  97 + </SideBarContainer>
  98 + </>
  99 + );
  100 +}
  1 +.loading-content {
  2 + display: flex;
  3 + flex-direction: column;
  4 + justify-content: center;
  5 + align-items: center;
  6 + height: 100%;
  7 + width: 100%;
  8 + gap: 5px;
  9 +}
  1 +import chatStyles from "@/app/components/chat.module.scss";
  2 +import homeStyles from "@/app/components/home.module.scss";
  3 +
  4 +import { MindSiderBar } from "./mind-siderBar";
  5 +import MindElixir, { type Options, type MindElixirData } from "mind-elixir";
  6 +import { WindowContent } from "@/app/components/home";
  7 +import { useMobileScreen } from "@/app/utils";
  8 +import { IconButton } from "../button";
  9 +import Locale from "@/app/locales";
  10 +import { Path } from "@/app/constant";
  11 +import { useNavigate } from "react-router-dom";
  12 +import clsx from "clsx";
  13 +import { getClientConfig } from "@/app/config/client";
  14 +import React, { useEffect, useMemo, useRef, useState } from "react";
  15 +import { useAppConfig } from "@/app/store";
  16 +
  17 +import ReturnIcon from "@/app/icons/return.svg";
  18 +import MinIcon from "@/app/icons/min.svg";
  19 +import MaxIcon from "@/app/icons/max.svg";
  20 +import SDIcon from "@/app/icons/sd.svg";
  21 +
  22 +export function MindPage() {
  23 + const isMobileScreen = useMobileScreen();
  24 + const navigate = useNavigate();
  25 + const clientConfig = useMemo(() => getClientConfig(), []);
  26 + const showMaxIcon = !isMobileScreen && !clientConfig?.isApp;
  27 + const config = useAppConfig();
  28 + const scrollRef = useRef<HTMLDivElement>(null);
  29 + const isWriting = location.pathname === Path.Writing;
  30 + const [isLoading, setIsLoading] = useState(false);
  31 + const containerRef = useRef<HTMLDivElement>(null);
  32 + const mindInstance = useRef<InstanceType<typeof MindElixir> | null>(null);
  33 + const [data, setData] = useState<MindElixirData>({
  34 + nodeData: {
  35 + id: "root",
  36 + topic: "中心主题",
  37 + },
  38 + });
  39 +
  40 + useEffect(() => {
  41 + // 确保容器元素已挂载
  42 + if (!containerRef.current) return;
  43 + // 初始化配置项
  44 + const options: Options = {
  45 + el: containerRef.current,
  46 + contextMenu: true,
  47 + toolBar: true,
  48 + nodeMenu: true,
  49 + };
  50 + // 创建实例
  51 + mindInstance.current = new MindElixir(options);
  52 + mindInstance.current.init(data);
  53 +
  54 + return () => {
  55 + if (mindInstance.current) {
  56 + mindInstance.current.destroy();
  57 + // 移除事件监听器
  58 + document.removeEventListener("mousemove", () => {});
  59 + document.removeEventListener("mouseup", () => {});
  60 + }
  61 + };
  62 + }, []);
  63 +
  64 + useEffect(() => {
  65 + mindInstance.current?.refresh(data);
  66 + }, [data]);
  67 +
  68 + useEffect(() => {
  69 + if (isLoading) {
  70 + mindInstance.current?.refresh({
  71 + nodeData: {
  72 + id: "root",
  73 + topic: "生成中....",
  74 + },
  75 + });
  76 + }
  77 + }, [isLoading]);
  78 +
  79 + // const meNode=document.querySelector('me-nodes')
  80 + // const draggableElement = meNode?.querySelector('me-root') as HTMLElement | null;
  81 + // if (draggableElement) {
  82 + // let isDragging = false; // 是否正在拖拽
  83 + // let startX = 0; // 鼠标按下时的 X 坐标
  84 + // let startY = 0; // 鼠标按下时的 Y 坐标
  85 + // let initialLeft = 0; // 元素初始的左偏移量
  86 + // let initialTop = 0; // 元素初始的上偏移量
  87 + // // 鼠标按下事件
  88 + // draggableElement.addEventListener('mousedown', (e) => {
  89 + // isDragging = true;
  90 + // startX = e.clientX;
  91 + // startY = e.clientY;
  92 + // // 获取 me-root 元素当前的位置
  93 + // const draggableStyle = window.getComputedStyle(draggableElement);
  94 + // initialLeft = parseInt(draggableStyle.left) || 0;
  95 + // initialTop = parseInt(draggableStyle.top) || 0;
  96 + // // 确保元素可以移动
  97 + // draggableElement.style.position = 'absolute';
  98 + // });
  99 + // // 鼠标移动事件
  100 + // document.addEventListener('mousemove', (e) => {
  101 + // if (isDragging) {
  102 + // const currentX = e.clientX;
  103 + // const currentY = e.clientY;
  104 + // // 计算偏移量
  105 + // const diffX = currentX - startX;
  106 + // const diffY = currentY - startY;
  107 + // // 更新 me-root 元素位置
  108 + // draggableElement.style.left = `${initialLeft + diffX}px`;
  109 + // draggableElement.style.top = `${initialTop + diffY}px`;
  110 + // // 检查 meMain 是否存在,如果存在则更新其位置
  111 + // const meMain = meNode?.querySelector('me-main') as HTMLElement | null;
  112 + // if (meMain) {
  113 + // // 获取 meMain 元素当前的位置
  114 + // const meMainStyle = window.getComputedStyle(meMain);
  115 + // const meMainInitialLeft = parseInt(meMainStyle.left) || 0;
  116 + // const meMainInitialTop = parseInt(meMainStyle.top) || 0;
  117 + // // 更新 meMain 元素位置
  118 + // meMain.style.position = 'absolute';
  119 + // meMain.style.left = `${meMainInitialLeft + diffX}px`;
  120 + // meMain.style.top = `${meMainInitialTop + diffY}px`;
  121 + // }
  122 + // }
  123 + // });
  124 +
  125 + // // 鼠标释放事件
  126 + // document.addEventListener('mouseup', () => {
  127 + // isDragging = false;
  128 + // });
  129 + // } else {
  130 + // console.error('未找到 me-root 元素');
  131 + // }
  132 +
  133 + return (
  134 + <>
  135 + <MindSiderBar
  136 + className={clsx({ [homeStyles["sidebar-show"]]: isWriting })}
  137 + setData={setData}
  138 + isLoading={isLoading}
  139 + setIsLoading={setIsLoading}
  140 + />
  141 + <WindowContent>
  142 + <div className={chatStyles.chat} key={"1"}>
  143 + <div className="window-header" data-tauri-drag-region>
  144 + {isMobileScreen && (
  145 + <div className="window-actions">
  146 + <div className={"window-action-button"}>
  147 + <IconButton
  148 + icon={<ReturnIcon />}
  149 + bordered
  150 + title={Locale.Chat.Actions.ChatList}
  151 + onClick={() => navigate(Path.BgRemoval)}
  152 + />
  153 + </div>
  154 + </div>
  155 + )}
  156 + <div
  157 + className={clsx(
  158 + "window-header-title",
  159 + chatStyles["chat-body-title"],
  160 + )}
  161 + >
  162 + <div className={`window-header-main-title`}>生成思维导图</div>
  163 + </div>
  164 + <div className={chatStyles["chat-message-actions"]}>
  165 + <div className={chatStyles["chat-input-actions"]}>
  166 + {/* <ChatAction
  167 + text={Locale.Chat.Actions.ReWrite}
  168 + icon={<ReloadIcon />}
  169 + onClick={() => { }
  170 + }
  171 + /> */}
  172 + </div>
  173 + </div>
  174 + <div className="window-actions">
  175 + {showMaxIcon && (
  176 + <div className="window-action-button">
  177 + <IconButton
  178 + aria={Locale.Chat.Actions.FullScreen}
  179 + icon={config.tightBorder ? <MinIcon /> : <MaxIcon />}
  180 + bordered
  181 + onClick={() => {
  182 + config.update(
  183 + (config) => (config.tightBorder = !config.tightBorder),
  184 + );
  185 + }}
  186 + />
  187 + </div>
  188 + )}
  189 + {isMobileScreen && <SDIcon width={50} height={50} />}
  190 + </div>
  191 + </div>
  192 + <div className={chatStyles["chat-body"]} ref={scrollRef}>
  193 + <div ref={containerRef} style={{ width: "100%", height: "100%" }} />
  194 + </div>
  195 + </div>
  196 + </WindowContent>
  197 + </>
  198 + );
  199 +}
@@ -38,7 +38,8 @@ const DISCOVERY = [ @@ -38,7 +38,8 @@ const DISCOVERY = [
38 { name: "Stable Diffusion", path: Path.Sd }, 38 { name: "Stable Diffusion", path: Path.Sd },
39 { name: Locale.SearchChat.Page.Title, path: Path.SearchChat }, 39 { name: Locale.SearchChat.Page.Title, path: Path.SearchChat },
40 { name: "智能抠图", path: Path.BgRemoval }, 40 { name: "智能抠图", path: Path.BgRemoval },
41 - { name: "AI-writing", path: Path.Writing } 41 + { name: "AI-writing", path: Path.Writing },
  42 + { name: "思维导图", path: Path.Mind },
42 ]; 43 ];
43 44
44 const ChatList = dynamic(async () => (await import("./chat-list")).ChatList, { 45 const ChatList = dynamic(async () => (await import("./chat-list")).ChatList, {
@@ -4,7 +4,6 @@ import { @@ -4,7 +4,6 @@ import {
4 SideBarContainer, 4 SideBarContainer,
5 SideBarBody, 5 SideBarBody,
6 SideBarHeader, 6 SideBarHeader,
7 - SideBarTail,  
8 useDragSideBar, 7 useDragSideBar,
9 useHotKey, 8 useHotKey,
10 } from "@/app/components/sidebar"; 9 } from "@/app/components/sidebar";
@@ -15,16 +14,15 @@ import Locale from "@/app/locales"; @@ -15,16 +14,15 @@ import Locale from "@/app/locales";
15 import { Path } from "@/app/constant"; 14 import { Path } from "@/app/constant";
16 import { useNavigate } from "react-router-dom"; 15 import { useNavigate } from "react-router-dom";
17 import SDIcon from "@/app/icons/sd.svg"; 16 import SDIcon from "@/app/icons/sd.svg";
18 -import { ApiPath } from '@/app/constant';  
19 -import { message } from 'antd';  
20 17
21 export interface WriteSiderBarProps { 18 export interface WriteSiderBarProps {
22 className?: string; 19 className?: string;
23 htmlCode: string; 20 htmlCode: string;
24 setHtmlCode: React.Dispatch<React.SetStateAction<string>>; 21 setHtmlCode: React.Dispatch<React.SetStateAction<string>>;
  22 + loading: boolean;
  23 + setLoading: React.Dispatch<React.SetStateAction<boolean>>;
25 } 24 }
26 25
27 -  
28 const WritingPanel = dynamic( 26 const WritingPanel = dynamic(
29 async () => (await import("@/app/components/writing")).WritingPanel, 27 async () => (await import("@/app/components/writing")).WritingPanel,
30 { 28 {
@@ -32,8 +30,8 @@ const WritingPanel = dynamic( @@ -32,8 +30,8 @@ const WritingPanel = dynamic(
32 }, 30 },
33 ); 31 );
34 32
35 -export function WriteSiderBar(props:WriteSiderBarProps) {  
36 - const {className,htmlCode,setHtmlCode}=props 33 +export function WriteSiderBar(props: WriteSiderBarProps) {
  34 + const { className, htmlCode, setHtmlCode, loading, setLoading } = props;
37 const isMobileScreen = useMobileScreen(); 35 const isMobileScreen = useMobileScreen();
38 const { onDragStart, shouldNarrow } = useDragSideBar(); 36 const { onDragStart, shouldNarrow } = useDragSideBar();
39 const navigate = useNavigate(); 37 const navigate = useNavigate();
@@ -90,9 +88,14 @@ export function WriteSiderBar(props:WriteSiderBarProps) { @@ -90,9 +88,14 @@ export function WriteSiderBar(props:WriteSiderBarProps) {
90 ></SideBarHeader> 88 ></SideBarHeader>
91 )} 89 )}
92 <SideBarBody> 90 <SideBarBody>
93 - <WritingPanel htmlCode={htmlCode} setHtmlCode={setHtmlCode}/> 91 + <WritingPanel
  92 + htmlCode={htmlCode}
  93 + setHtmlCode={setHtmlCode}
  94 + loading={loading}
  95 + setLoading={setLoading}
  96 + />
94 </SideBarBody> 97 </SideBarBody>
95 </SideBarContainer> 98 </SideBarContainer>
96 </> 99 </>
97 - ) 100 + );
98 } 101 }
1 import { Select } from "@/app/components/ui-lib"; 1 import { Select } from "@/app/components/ui-lib";
2 import { ControlParamItem } from "../sd"; 2 import { ControlParamItem } from "../sd";
3 import { SideBarTail } from "@/app/components/sidebar"; 3 import { SideBarTail } from "@/app/components/sidebar";
4 -import { useEffect, useState } from "react"; 4 +import { useState } from "react";
5 import { IconButton } from "../button"; 5 import { IconButton } from "../button";
6 import { message } from "antd"; 6 import { message } from "antd";
7 import { useChatStore } from "@/app/store"; 7 import { useChatStore } from "@/app/store";
  8 +import { getWrtingPrompt } from "@/app/utils/prompt";
  9 +import type { writePromptParam } from "@/app/types/prompt";
  10 +
8 // 定义mergedData数据结构 11 // 定义mergedData数据结构
9 const mergedData = [ 12 const mergedData = [
10 { 13 {
@@ -13,12 +16,12 @@ const mergedData = [ @@ -13,12 +16,12 @@ const mergedData = [
13 type: "select", 16 type: "select",
14 default: "公司官网", 17 default: "公司官网",
15 options: [ 18 options: [
16 - { name: '公司官网', value: '1' },  
17 - { name: '小红书', value: '2' },  
18 - { name: '微信', value: '3' },  
19 - { name: '公众号', value: '4' },  
20 - { name: '今日头条', value: '5' },  
21 - ] 19 + { name: "公司官网", value: "1" },
  20 + { name: "小红书", value: "2" },
  21 + { name: "微信", value: "3" },
  22 + { name: "公众号", value: "4" },
  23 + { name: "今日头条", value: "5" },
  24 + ],
22 }, 25 },
23 { 26 {
24 title: "图片模式", 27 title: "图片模式",
@@ -26,9 +29,9 @@ const mergedData = [ @@ -26,9 +29,9 @@ const mergedData = [
26 required: false, 29 required: false,
27 default: "免费配图", 30 default: "免费配图",
28 options: [ 31 options: [
29 - { name: '免费配图', value: 'free' },  
30 - { name: '收费配图', value: 'paid' }  
31 - ] 32 + { name: "免费配图", value: "free" },
  33 + { name: "收费配图", value: "paid" },
  34 + ],
32 }, 35 },
33 { 36 {
34 title: "写作风格", 37 title: "写作风格",
@@ -36,10 +39,10 @@ const mergedData = [ @@ -36,10 +39,10 @@ const mergedData = [
36 required: false, 39 required: false,
37 default: "专业", 40 default: "专业",
38 options: [ 41 options: [
39 - { name: '专业', value: 'professional' },  
40 - { name: '活泼', value: 'lively' },  
41 - { name: '严谨', value: 'strict' },  
42 - ] 42 + { name: "专业", value: "professional" },
  43 + { name: "活泼", value: "lively" },
  44 + { name: "严谨", value: "strict" },
  45 + ],
43 }, 46 },
44 { 47 {
45 title: "写作语言", 48 title: "写作语言",
@@ -47,11 +50,11 @@ const mergedData = [ @@ -47,11 +50,11 @@ const mergedData = [
47 required: false, 50 required: false,
48 default: "中文", 51 default: "中文",
49 options: [ 52 options: [
50 - { name: '中文', value: 'Chinese' },  
51 - { name: '英文', value: 'English' },  
52 - { name: '法文', value: 'French' },  
53 - { name: '德文', value: 'German' },  
54 - ] 53 + { name: "中文", value: "Chinese" },
  54 + { name: "英文", value: "English" },
  55 + { name: "法文", value: "French" },
  56 + { name: "德文", value: "German" },
  57 + ],
55 }, 58 },
56 { 59 {
57 title: "写作类型", 60 title: "写作类型",
@@ -59,11 +62,11 @@ const mergedData = [ @@ -59,11 +62,11 @@ const mergedData = [
59 required: false, 62 required: false,
60 default: "产品推广文案", 63 default: "产品推广文案",
61 options: [ 64 options: [
62 - { name: '产品推广文案', value: '产品推广文案' },  
63 - { name: '品牌宣传文案', value: '品牌宣传文案' },  
64 - { name: '产品说明书', value: '产品说明书' },  
65 - { name: '产品介绍', value: '产品介绍' },  
66 - ] 65 + { name: "产品推广文案", value: "产品推广文案" },
  66 + { name: "品牌宣传文案", value: "品牌宣传文案" },
  67 + { name: "产品说明书", value: "产品说明书" },
  68 + { name: "产品介绍", value: "产品介绍" },
  69 + ],
67 }, 70 },
68 { 71 {
69 title: "是否图文", 72 title: "是否图文",
@@ -71,34 +74,36 @@ const mergedData = [ @@ -71,34 +74,36 @@ const mergedData = [
71 required: false, 74 required: false,
72 default: "是", 75 default: "是",
73 options: [ 76 options: [
74 - { name: '是', value: 'true' },  
75 - { name: '否', value: 'false' },  
76 - ] 77 + { name: "是", value: "true" },
  78 + { name: "否", value: "false" },
  79 + ],
77 }, 80 },
78 ]; 81 ];
79 82
80 export interface WritePanelProps { 83 export interface WritePanelProps {
81 htmlCode: string; 84 htmlCode: string;
82 setHtmlCode: React.Dispatch<React.SetStateAction<string>>; 85 setHtmlCode: React.Dispatch<React.SetStateAction<string>>;
  86 + loading: boolean;
  87 + setLoading: React.Dispatch<React.SetStateAction<boolean>>;
83 } 88 }
84 export function WritingPanel(props: WritePanelProps) { 89 export function WritingPanel(props: WritePanelProps) {
85 - const { htmlCode, setHtmlCode } = props; 90 + const { htmlCode, setHtmlCode, setLoading, loading } = props;
86 // 为每个选择框单独声明状态,存储name 91 // 为每个选择框单独声明状态,存储name
87 const chatStore = useChatStore(); 92 const chatStore = useChatStore();
88 - const [writingPurposeName, setWritingPurposeName] = useState('公司官网'); // 写作用途  
89 - const [imageModeName, setImageModeName] = useState('免费配图'); // 图片模式  
90 - const [writingStyleName, setWritingStyleName] = useState('专业'); // 写作风格  
91 - const [writingLanguageName, setWritingLanguageName] = useState('中文'); // 写作语言  
92 - const [writingTypeName, setWritingTypeName] = useState('产品推广文案'); // 写作类型  
93 - const [isImgName, setIsImgName] = useState('是'); // 是否图文 93 + const [writingPurposeName, setWritingPurposeName] = useState("公司官网"); // 写作用途
  94 + const [imageModeName, setImageModeName] = useState("免费配图"); // 图片模式
  95 + const [writingStyleName, setWritingStyleName] = useState("专业"); // 写作风格
  96 + const [writingLanguageName, setWritingLanguageName] = useState("中文"); // 写作语言
  97 + const [writingTypeName, setWritingTypeName] = useState("产品推广文案"); // 写作类型
  98 + const [isImgName, setIsImgName] = useState("是"); // 是否图文
94 // 为输入框和文本区域单独声明状态 99 // 为输入框和文本区域单独声明状态
95 - const [writingCount, setWritingCount] = useState('200'); // 写作字数  
96 - const [prompt, setPrompt] = useState(''); // 提示词  
97 - const [isLoading, setIsLoading] = useState(false) 100 + const [writingCount, setWritingCount] = useState("200"); // 写作字数
  101 + const [prompt, setPrompt] = useState(""); // 提示词
  102 + const [isLoading, setIsLoading] = useState(false);
98 // 处理选择框变更事件 103 // 处理选择框变更事件
99 const handleSelectChange = (index: number, value: string) => { 104 const handleSelectChange = (index: number, value: string) => {
100 const options = mergedData[index].options; 105 const options = mergedData[index].options;
101 - const selectedName = options.find(opt => opt.value === value)?.name || ''; 106 + const selectedName = options.find((opt) => opt.value === value)?.name || "";
102 107
103 switch (index) { 108 switch (index) {
104 case 0: 109 case 0:
@@ -136,39 +141,42 @@ export function WritingPanel(props: WritePanelProps) { @@ -136,39 +141,42 @@ export function WritingPanel(props: WritePanelProps) {
136 141
137 // 提交表单时的处理函数 142 // 提交表单时的处理函数
138 const handleSubmit = async () => { 143 const handleSubmit = async () => {
139 - if (!prompt.trim()) { return message.error('请输入提示词') } 144 + if (!prompt.trim()) {
  145 + return message.error("请输入提示词");
  146 + }
140 try { 147 try {
141 - const isImg = `文案要配上图片,实现图文混排,要美观,  
142 - 要符合${writingPurposeName}的排版标准和写作风格,写作风格要${writingStyleName},  
143 - 你没有图片没关系,把图文混排的效果实现,  
144 - 并在你认为要插入图片的地方将图片的Prompt用英文输出给:  
145 - ![description](https://image.pollinations.ai/prompt/description?nologo=true),记得图片地址后面的?nologo=true一定不能去掉了,  
146 - 因为这个语法可以自动按照提示生成并渲染图片。你可以帮我大幅提高生成图片质量和丰富程度,  
147 - 比如增加相机光圈、具体场景描述等内容,注意图片一定要用<img,  
148 - 否则在HTML下图片可能显示不了`  
149 - const input = `帮我使用${writingLanguageName}写一篇主题是${prompt}的${writingTypeName},  
150 - ${isImgName ? isImg : ''},字数要求不少于${writingCount}字,字数不包括html代码和图片Prompt。输出成标准的html,直接给结果,不要做任何解释`  
151 - setIsLoading(true)  
152 - console.log("------------------------" + input)  
153 - const response = await chatStore.directLlmInvoke(input, 'gpt-4o-mini');  
154 - let cleanedContent = response.startsWith('```html') ? response.substring(8) : response;  
155 - if (cleanedContent.endsWith('```')) { 148 + const param: writePromptParam = {
  149 + writingPurposeName,
  150 + writingStyleName,
  151 + writingLanguageName,
  152 + prompt,
  153 + writingTypeName,
  154 + isImgName,
  155 + writingCount,
  156 + };
  157 + const input = getWrtingPrompt(param);
  158 + setLoading(true);
  159 + console.log("------------------------" + input);
  160 + const response = await chatStore.directLlmInvoke(input, "gpt-4o-mini");
  161 + let cleanedContent = response.startsWith("```html")
  162 + ? response.substring(8)
  163 + : response;
  164 + if (cleanedContent.endsWith("```")) {
156 cleanedContent = cleanedContent.substring(0, cleanedContent.length - 4); 165 cleanedContent = cleanedContent.substring(0, cleanedContent.length - 4);
157 } 166 }
158 - setHtmlCode(cleanedContent) 167 + setHtmlCode(cleanedContent);
159 } catch (error) { 168 } catch (error) {
160 - message.error("生成失败,请重试") 169 + message.error("生成失败,请重试");
161 } finally { 170 } finally {
162 - setIsLoading(false) 171 + setLoading(false);
163 } 172 }
164 -  
165 }; 173 };
166 174
167 return ( 175 return (
168 <div> 176 <div>
169 {/* 动态渲染选择框 */} 177 {/* 动态渲染选择框 */}
170 {mergedData.map((item, index) => { 178 {mergedData.map((item, index) => {
171 - let currentValue = ''; 179 + let currentValue = "";
172 switch (index) { 180 switch (index) {
173 case 0: 181 case 0:
174 currentValue = writingPurposeName; 182 currentValue = writingPurposeName;
@@ -189,7 +197,7 @@ export function WritingPanel(props: WritePanelProps) { @@ -189,7 +197,7 @@ export function WritingPanel(props: WritePanelProps) {
189 currentValue = isImgName; 197 currentValue = isImgName;
190 break; 198 break;
191 default: 199 default:
192 - currentValue = ''; 200 + currentValue = "";
193 break; 201 break;
194 } 202 }
195 203
@@ -201,7 +209,10 @@ export function WritingPanel(props: WritePanelProps) { @@ -201,7 +209,10 @@ export function WritingPanel(props: WritePanelProps) {
201 > 209 >
202 <Select 210 <Select
203 aria-label={item.title} 211 aria-label={item.title}
204 - value={item.options.find(opt => opt.name === currentValue)?.value || ''} 212 + value={
  213 + item.options.find((opt) => opt.name === currentValue)?.value ||
  214 + ""
  215 + }
205 onChange={(e) => handleSelectChange(index, e.target.value)} 216 onChange={(e) => handleSelectChange(index, e.target.value)}
206 > 217 >
207 {item.options.map((opt) => ( 218 {item.options.map((opt) => (
@@ -215,10 +226,7 @@ export function WritingPanel(props: WritePanelProps) { @@ -215,10 +226,7 @@ export function WritingPanel(props: WritePanelProps) {
215 })} 226 })}
216 227
217 {/* 写作字数输入框 */} 228 {/* 写作字数输入框 */}
218 - <ControlParamItem  
219 - title="写作字数"  
220 - required={true}  
221 - > 229 + <ControlParamItem title="写作字数" required={true}>
222 <input 230 <input
223 aria-label="写作字数" 231 aria-label="写作字数"
224 type="number" 232 type="number"
@@ -231,10 +239,7 @@ export function WritingPanel(props: WritePanelProps) { @@ -231,10 +239,7 @@ export function WritingPanel(props: WritePanelProps) {
231 </ControlParamItem> 239 </ControlParamItem>
232 240
233 {/* 提示词文本区域 */} 241 {/* 提示词文本区域 */}
234 - <ControlParamItem  
235 - title="提示词"  
236 - required={true}  
237 - > 242 + <ControlParamItem title="提示词" required={true}>
238 <textarea 243 <textarea
239 rows={3} 244 rows={3}
240 style={{ maxWidth: "100%", width: "100%", padding: "10px" }} 245 style={{ maxWidth: "100%", width: "100%", padding: "10px" }}
@@ -252,6 +257,7 @@ export function WritingPanel(props: WritePanelProps) { @@ -252,6 +257,7 @@ export function WritingPanel(props: WritePanelProps) {
252 type="primary" 257 type="primary"
253 shadow 258 shadow
254 onClick={handleSubmit} 259 onClick={handleSubmit}
  260 + disabled={loading}
255 ></IconButton> 261 ></IconButton>
256 } 262 }
257 /> 263 />
  1 +.loading-content {
  2 + display: flex;
  3 + flex-direction: column;
  4 + justify-content: center;
  5 + align-items: center;
  6 + height: 100%;
  7 + width: 100%;
  8 + gap: 5px;
  9 +}
1 import chatStyles from "@/app/components/chat.module.scss"; 1 import chatStyles from "@/app/components/chat.module.scss";
2 import homeStyles from "@/app/components/home.module.scss"; 2 import homeStyles from "@/app/components/home.module.scss";
  3 +import styles from "@/app/components/writing/writing.module.scss";
3 import clsx from "clsx"; 4 import clsx from "clsx";
4 5
5 import { WriteSiderBar } from "./write-siderBar"; 6 import { WriteSiderBar } from "./write-siderBar";
6 import { WindowContent } from "@/app/components/home"; 7 import { WindowContent } from "@/app/components/home";
7 -import { useMobileScreen, copyToClipboard } from "@/app/utils"; 8 +import { useMobileScreen } from "@/app/utils";
8 import { IconButton } from "../button"; 9 import { IconButton } from "../button";
9 import Locale from "@/app/locales"; 10 import Locale from "@/app/locales";
10 import { Path } from "@/app/constant"; 11 import { Path } from "@/app/constant";
11 import { useNavigate } from "react-router-dom"; 12 import { useNavigate } from "react-router-dom";
12 import { getClientConfig } from "@/app/config/client"; 13 import { getClientConfig } from "@/app/config/client";
13 -import React, { MutableRefObject, useEffect, useMemo, useRef, useState } from "react"; 14 +import React, { useMemo, useRef, useState } from "react";
14 import { useAppConfig } from "@/app/store"; 15 import { useAppConfig } from "@/app/store";
15 import { ChatAction } from "../chat"; 16 import { ChatAction } from "../chat";
16 import { useWindowSize } from "@/app/utils"; 17 import { useWindowSize } from "@/app/utils";
17 import { exportWord } from "@/app/utils/excelAndWordUtils/word"; 18 import { exportWord } from "@/app/utils/excelAndWordUtils/word";
18 import { HTMLPreview } from "../artifacts"; 19 import { HTMLPreview } from "../artifacts";
19 -import ReactQuill from 'react-quill';  
20 -import 'react-quill/dist/quill.snow.css'; 20 +import ReactQuill from "react-quill";
  21 +import "react-quill/dist/quill.snow.css";
21 22
22 import ReturnIcon from "@/app/icons/return.svg"; 23 import ReturnIcon from "@/app/icons/return.svg";
23 import MinIcon from "@/app/icons/min.svg"; 24 import MinIcon from "@/app/icons/min.svg";
@@ -25,13 +26,12 @@ import MaxIcon from "@/app/icons/max.svg"; @@ -25,13 +26,12 @@ import MaxIcon from "@/app/icons/max.svg";
25 import SDIcon from "@/app/icons/sd.svg"; 26 import SDIcon from "@/app/icons/sd.svg";
26 import LoadingIcon from "@/app/icons/loading.svg"; 27 import LoadingIcon from "@/app/icons/loading.svg";
27 import BotIcon from "@/app/icons/bot.svg"; 28 import BotIcon from "@/app/icons/bot.svg";
28 -import CloseIcon from "@/app/icons/close.svg";  
29 import EditIcon from "@/app/icons/rename.svg"; 29 import EditIcon from "@/app/icons/rename.svg";
30 import ReloadIcon from "@/app/icons/reload.svg"; 30 import ReloadIcon from "@/app/icons/reload.svg";
31 import CopyIcon from "@/app/icons/copy.svg"; 31 import CopyIcon from "@/app/icons/copy.svg";
32 import ExcelIcon from "@/app/icons/excel.svg"; 32 import ExcelIcon from "@/app/icons/excel.svg";
33 import WordIcon from "@/app/icons/word.svg"; 33 import WordIcon from "@/app/icons/word.svg";
34 -import MindIcon from "@/app/icons/mind.svg" 34 +import MindIcon from "@/app/icons/mind.svg";
35 import PptIcon from "@/app/icons/ppt.svg"; 35 import PptIcon from "@/app/icons/ppt.svg";
36 import PdfIcon from "@/app/icons/pdf.svg"; 36 import PdfIcon from "@/app/icons/pdf.svg";
37 import { message } from "antd"; 37 import { message } from "antd";
@@ -45,19 +45,19 @@ export function WritingPage() { @@ -45,19 +45,19 @@ export function WritingPage() {
45 const scrollRef = useRef<HTMLDivElement>(null); 45 const scrollRef = useRef<HTMLDivElement>(null);
46 const isWriting = location.pathname === Path.Writing; 46 const isWriting = location.pathname === Path.Writing;
47 const { height } = useWindowSize(); 47 const { height } = useWindowSize();
48 - const [isEdit, setIsEdit] = useState(false)  
49 - 48 + const [isEdit, setIsEdit] = useState(false);
  49 + const [loading, setLoading] = useState(false);
50 const quillRef = useRef<ReactQuill | null>(null); 50 const quillRef = useRef<ReactQuill | null>(null);
  51 + const [htmlCode, setHtmlCode] = useState("");
51 52
52 - const [htmlCode, setHtmlCode] = useState('');  
53 //编辑器 53 //编辑器
54 const toolbarOptions = [ 54 const toolbarOptions = [
55 - [{ 'font': [] }, { 'size': ['small', false, 'large', 'huge'] }],  
56 - [{ 'header': [1, 2, 3, 4, 5, 6, false] }],  
57 - ['bold', 'italic', 'underline', 'strike'],  
58 - [{ 'list': 'ordered' }, { 'list': 'bullet' }, { 'align': [] }],  
59 - [{ 'color': [] }, { 'background': [] }],  
60 - ['link', 'image'], 55 + [{ font: [] }, { size: ["small", false, "large", "huge"] }],
  56 + [{ header: [1, 2, 3, 4, 5, 6, false] }],
  57 + ["bold", "italic", "underline", "strike"],
  58 + [{ list: "ordered" }, { list: "bullet" }, { align: [] }],
  59 + [{ color: [] }, { background: [] }],
  60 + ["link", "image"],
61 ]; 61 ];
62 62
63 const copyToClipboard = () => { 63 const copyToClipboard = () => {
@@ -69,32 +69,43 @@ export function WritingPage() { @@ -69,32 +69,43 @@ export function WritingPage() {
69 69
70 if (range && range.length > 0) { 70 if (range && range.length > 0) {
71 // 如果有选中的文本,复制选中的内容 71 // 如果有选中的文本,复制选中的内容
72 - const selectedText = text.substring(range.index, range.index + range.length);  
73 - navigator.clipboard.writeText(selectedText) 72 + const selectedText = text.substring(
  73 + range.index,
  74 + range.index + range.length,
  75 + );
  76 + navigator.clipboard
  77 + .writeText(selectedText)
74 .then(() => { 78 .then(() => {
75 - message.success("复制成功") 79 + message.success("复制成功");
76 }) 80 })
77 .catch((err) => { 81 .catch((err) => {
78 - message.error('复制失败:'); 82 + message.error("复制失败:");
79 }); 83 });
80 } else { 84 } else {
81 // 如果没有选择文本,就复制全部内容 85 // 如果没有选择文本,就复制全部内容
82 - navigator.clipboard.writeText(text) 86 + navigator.clipboard
  87 + .writeText(text)
83 .then(() => { 88 .then(() => {
84 - message.success("复制成功") 89 + message.success("复制成功");
85 }) 90 })
86 .catch((err) => { 91 .catch((err) => {
87 - message.error('复制失败:'); 92 + message.error("复制失败:");
88 }); 93 });
89 } 94 }
90 } else { 95 } else {
91 - console.error('Quill编辑器尚未初始化'); 96 + console.error("Quill编辑器尚未初始化");
92 } 97 }
93 }; 98 };
94 99
95 return ( 100 return (
96 <> 101 <>
97 - <WriteSiderBar className={clsx({ [homeStyles["sidebar-show"]]: isWriting })} htmlCode={htmlCode} setHtmlCode={setHtmlCode}/> 102 + <WriteSiderBar
  103 + className={clsx({ [homeStyles["sidebar-show"]]: isWriting })}
  104 + htmlCode={htmlCode}
  105 + setHtmlCode={setHtmlCode}
  106 + loading={loading}
  107 + setLoading={setLoading}
  108 + />
98 <WindowContent> 109 <WindowContent>
99 <div className={chatStyles.chat} key={"1"}> 110 <div className={chatStyles.chat} key={"1"}>
100 <div className="window-header" data-tauri-drag-region> 111 <div className="window-header" data-tauri-drag-region>
@@ -123,8 +134,7 @@ export function WritingPage() { @@ -123,8 +134,7 @@ export function WritingPage() {
123 <ChatAction 134 <ChatAction
124 text={Locale.Chat.Actions.ReWrite} 135 text={Locale.Chat.Actions.ReWrite}
125 icon={<ReloadIcon />} 136 icon={<ReloadIcon />}
126 - onClick={() => { }  
127 - } 137 + onClick={() => {}}
128 /> 138 />
129 <ChatAction 139 <ChatAction
130 text={Locale.Chat.Actions.Copy} 140 text={Locale.Chat.Actions.Copy}
@@ -135,42 +145,48 @@ export function WritingPage() { @@ -135,42 +145,48 @@ export function WritingPage() {
135 <ChatAction 145 <ChatAction
136 text={Locale.Chat.Actions.Edit} 146 text={Locale.Chat.Actions.Edit}
137 icon={<EditIcon />} 147 icon={<EditIcon />}
138 - onClick={() => { setIsEdit(true) }} 148 + onClick={() => {
  149 + setIsEdit(true);
  150 + }}
139 /> 151 />
140 ) : ( 152 ) : (
141 <ChatAction 153 <ChatAction
142 text="取消编辑" 154 text="取消编辑"
143 icon={<EditIcon />} 155 icon={<EditIcon />}
144 - onClick={() => { setIsEdit(false) }} 156 + onClick={() => {
  157 + setIsEdit(false);
  158 + }}
145 /> 159 />
146 )} 160 )}
147 161
148 <ChatAction 162 <ChatAction
149 text={Locale.Chat.Actions.Pdf} 163 text={Locale.Chat.Actions.Pdf}
150 icon={<PdfIcon />} 164 icon={<PdfIcon />}
151 - onClick={() => { }} 165 + onClick={() => {}}
152 /> 166 />
153 - {htmlCode&& 167 + {htmlCode && (
154 <ChatAction 168 <ChatAction
155 text={Locale.Chat.Actions.Word} 169 text={Locale.Chat.Actions.Word}
156 icon={<WordIcon />} 170 icon={<WordIcon />}
157 - onClick={()=>{exportWord(htmlCode)}} 171 + onClick={() => {
  172 + exportWord(htmlCode);
  173 + }}
158 /> 174 />
159 - } 175 + )}
160 <ChatAction 176 <ChatAction
161 text={Locale.Chat.Actions.Excel} 177 text={Locale.Chat.Actions.Excel}
162 icon={<ExcelIcon />} 178 icon={<ExcelIcon />}
163 - onClick={() => { }} 179 + onClick={() => {}}
164 /> 180 />
165 <ChatAction 181 <ChatAction
166 text={Locale.Chat.Actions.Ppt} 182 text={Locale.Chat.Actions.Ppt}
167 icon={<PptIcon />} 183 icon={<PptIcon />}
168 - onClick={() => { }} 184 + onClick={() => {}}
169 /> 185 />
170 <ChatAction 186 <ChatAction
171 text={Locale.Chat.Actions.Mind} 187 text={Locale.Chat.Actions.Mind}
172 icon={<MindIcon />} 188 icon={<MindIcon />}
173 - onClick={() => { }} 189 + onClick={() => {}}
174 /> 190 />
175 </div> 191 </div>
176 </div> 192 </div>
@@ -193,15 +209,21 @@ export function WritingPage() { @@ -193,15 +209,21 @@ export function WritingPage() {
193 </div> 209 </div>
194 </div> 210 </div>
195 <div className={chatStyles["chat-body"]} ref={scrollRef}> 211 <div className={chatStyles["chat-body"]} ref={scrollRef}>
196 - {htmlCode && (  
197 - isEdit ? ( 212 + {loading ? (
  213 + <div className={clsx("no-dark", styles["loading-content"])}>
  214 + <BotIcon />
  215 + <LoadingIcon />
  216 + </div>
  217 + ) : (
  218 + htmlCode &&
  219 + (isEdit ? (
198 <ReactQuill 220 <ReactQuill
199 ref={quillRef} 221 ref={quillRef}
200 theme="snow" 222 theme="snow"
201 value={htmlCode} 223 value={htmlCode}
202 onChange={setHtmlCode} 224 onChange={setHtmlCode}
203 modules={{ 225 modules={{
204 - toolbar: toolbarOptions 226 + toolbar: toolbarOptions,
205 }} 227 }}
206 /> 228 />
207 ) : ( 229 ) : (
@@ -210,11 +232,11 @@ export function WritingPage() { @@ -210,11 +232,11 @@ export function WritingPage() {
210 autoHeight={!document.fullscreenElement} 232 autoHeight={!document.fullscreenElement}
211 height={!document.fullscreenElement ? 600 : height} 233 height={!document.fullscreenElement ? 600 : height}
212 /> 234 />
213 - ) 235 + ))
214 )} 236 )}
215 </div> 237 </div>
216 </div> 238 </div>
217 </WindowContent> 239 </WindowContent>
218 </> 240 </>
219 - ) 241 + );
220 } 242 }
  1 +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1742974696172" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4604" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"><path d="M870.4 204.8c-18.6368 0-36.1472 5.0176-51.2 13.7728V153.6a102.5024 102.5024 0 0 0-159.3856-85.0432C645.7856 28.672 607.7952 0 563.2 0S480.5632 28.672 466.5856 68.5568A102.5024 102.5024 0 0 0 307.2 153.6v377.4976L238.2848 411.648a99.6864 99.6864 0 0 0-61.3888-48.7936 95.5392 95.5392 0 0 0-74.8544 10.3424c-46.4384 27.8528-64.1536 90.8288-39.424 140.3904 1.536 3.1232 34.2016 70.0416 136.192 273.92 48.0256 96 100.7104 164.6592 156.6208 203.9808 43.8784 30.8736 74.1888 32.4608 79.8208 32.4608h256c43.5712 0 84.0704-14.1824 120.4224-42.0864 34.1504-26.2656 63.7952-64.256 88.064-112.8448 47.8208-95.6416 73.1136-227.9424 73.1136-382.6688v-179.2c0-56.4736-45.9264-102.4-102.4-102.4z m51.2 281.6c0 146.7904-23.3984 271.1552-67.6864 359.7312C825.0368 903.8848 773.3248 972.8 691.2 972.8H435.712c-1.9968-0.1536-23.552-2.56-56.064-26.88-32.4096-24.2688-82.176-75.3664-135.0656-181.248-103.7824-207.5648-135.68-272.9472-135.9872-273.5616l-0.1024-0.2048c-12.8512-25.7536-3.7376-59.4944 19.9168-73.6768a44.8512 44.8512 0 0 1 35.072-4.864 48.9472 48.9472 0 0 1 30.0544 24.1664l0.3072 0.512 79.9232 138.496c16.3328 29.8496 34.7136 42.3936 54.6304 37.3248 19.968-5.0688 30.0544-25.0368 30.0544-59.2384V153.6c0-28.2112 22.9888-51.2 51.2-51.2s51.2 22.9888 51.2 51.2v332.8a25.6 25.6 0 0 0 51.2 0V102.4c0-28.2112 22.9888-51.2 51.2-51.2s51.2 22.9888 51.2 51.2v384a25.6 25.6 0 0 0 51.2 0V153.6c0-28.2112 22.9888-51.2 51.2-51.2s51.2 22.9888 51.2 51.2v384a25.6 25.6 0 0 0 51.2 0V307.2c0-28.2112 22.9888-51.2 51.2-51.2s51.2 22.9888 51.2 51.2v179.2z" fill="" p-id="4605"></path></svg>
  1 +export type writePromptParam = {
  2 + writingPurposeName: string;
  3 + writingStyleName: string;
  4 + writingLanguageName: string;
  5 + prompt: string;
  6 + writingTypeName: string;
  7 + isImgName: string;
  8 + writingCount: string;
  9 +};
  1 +import type { writePromptParam } from "@/app/types/prompt";
  2 +
  3 +export function getWrtingPrompt(param: writePromptParam) {
  4 + const isImg = `文案要配上图片,实现图文混排,要美观,要符合${param.writingPurposeName}的排版标准和写作风格,写作风格要${param.writingStyleName},
  5 + 你没有图片没关系,把图文混排的效果实现,并在你认为要插入图片的地方将图片的Prompt用英文输出给:![description](https://image.pollinations.ai/prompt/description?nologo=true),记得图片地址后面的?nologo=true一定不能去掉了,
  6 + 因为这个语法可以自动按照提示生成并渲染图片。你可以帮我大幅提高生成图片质量和丰富程度,比如增加相机光圈、具体场景描述等内容,注意图片一定要用<img,否则在HTML下图片可能显示不了`;
  7 + const input = `帮我使用${param.writingLanguageName}写一篇主题是${
  8 + param.prompt
  9 + }的${param.writingTypeName},${
  10 + param.isImgName === "是" ? isImg : ""
  11 + },字数要求不少于${
  12 + param.writingCount
  13 + }字,字数不包括html代码和图片Prompt。输出成标准的html,直接给结果,不要做任何解释`;
  14 + return input;
  15 +}
  16 +
  17 +export function getBgPrompt(content: string) {
  18 + const input = `你现扮演生成创意思图片的提示词工程师,参考我的描述“${content}”帮我做优化润色5组,返回的数据用''分割,直接输出结果,不要做解释`;
  19 + return input;
  20 +}
  21 +
  22 +export function getMindPrompt(content: string) {
  23 + return `请你帮我生成一份以"${content}"为主题的思维导图数据,请严格遵循以下要求生成思维导图数据:
  24 + 1. 所有键名必须使用双引号
  25 + 2. 所有字符串值必须使用双引号
  26 + 3. 确保没有尾随逗号
  27 + 4. 按这个模板结构生成::{
  28 + "nodeData": {
  29 + "id": "root",
  30 + "topic": "中心主题",
  31 + "children": [
  32 + {
  33 + "id": "d451a724b7c10970",
  34 + "topic": "sub1",
  35 + "children": [
  36 + {
  37 + "id": "d451a77ca7348eae",
  38 + "topic": "sub2",
  39 + },],
  40 + },
  41 + ],
  42 + },}
  43 + 只需要返回数据,不要做任何解释
  44 + `;
  45 +}
1 import webpack from "webpack"; 1 import webpack from "webpack";
2 -  
3 const mode = process.env.BUILD_MODE ?? "standalone"; 2 const mode = process.env.BUILD_MODE ?? "standalone";
4 console.log("[Next] build mode", mode); 3 console.log("[Next] build mode", mode);
5 4
@@ -13,7 +12,6 @@ const nextConfig = { @@ -13,7 +12,6 @@ const nextConfig = {
13 test: /\.svg$/, 12 test: /\.svg$/,
14 use: ["@svgr/webpack"], 13 use: ["@svgr/webpack"],
15 }); 14 });
16 -  
17 if (disableChunk) { 15 if (disableChunk) {
18 config.plugins.push( 16 config.plugins.push(
19 new webpack.optimize.LimitChunkCountPlugin({ maxChunks: 1 }), 17 new webpack.optimize.LimitChunkCountPlugin({ maxChunks: 1 }),
此 diff 太大无法显示。
@@ -25,6 +25,7 @@ @@ -25,6 +25,7 @@
25 "@hello-pangea/dnd": "^16.5.0", 25 "@hello-pangea/dnd": "^16.5.0",
26 "@modelcontextprotocol/sdk": "^1.0.4", 26 "@modelcontextprotocol/sdk": "^1.0.4",
27 "@next/third-parties": "^14.1.0", 27 "@next/third-parties": "^14.1.0",
  28 + "@radix-ui/react-slot": "^1.1.2",
28 "@svgr/webpack": "^6.5.1", 29 "@svgr/webpack": "^6.5.1",
29 "@vercel/analytics": "^0.1.11", 30 "@vercel/analytics": "^0.1.11",
30 "@vercel/speed-insights": "^1.0.2", 31 "@vercel/speed-insights": "^1.0.2",
@@ -44,8 +45,10 @@ @@ -44,8 +45,10 @@
44 "html-to-image": "^1.11.11", 45 "html-to-image": "^1.11.11",
45 "idb-keyval": "^6.2.1", 46 "idb-keyval": "^6.2.1",
46 "lodash-es": "^4.17.21", 47 "lodash-es": "^4.17.21",
  48 + "lucide-react": "^0.484.0",
47 "markdown-to-txt": "^2.0.1", 49 "markdown-to-txt": "^2.0.1",
48 "mermaid": "^10.6.1", 50 "mermaid": "^10.6.1",
  51 + "mind-elixir": "^4.4.3",
49 "nanoid": "^5.0.3", 52 "nanoid": "^5.0.3",
50 "next": "^14.1.1", 53 "next": "^14.1.1",
51 "node-fetch": "^3.3.1", 54 "node-fetch": "^3.3.1",
@@ -66,8 +69,7 @@ @@ -66,8 +69,7 @@
66 "spark-md5": "^3.0.2", 69 "spark-md5": "^3.0.2",
67 "use-debounce": "^9.0.4", 70 "use-debounce": "^9.0.4",
68 "xlsx": "^0.18.5", 71 "xlsx": "^0.18.5",
69 - "zod": "^3.24.1",  
70 - "zustand": "^4.3.8" 72 + "zod": "^3.24.1"
71 }, 73 },
72 "devDependencies": { 74 "devDependencies": {
73 "@tauri-apps/api": "^2.1.1", 75 "@tauri-apps/api": "^2.1.1",
@@ -103,8 +105,9 @@ @@ -103,8 +105,9 @@
103 "ts-node": "^10.9.2", 105 "ts-node": "^10.9.2",
104 "tsx": "^4.16.0", 106 "tsx": "^4.16.0",
105 "typescript": "5.2.2", 107 "typescript": "5.2.2",
  108 + "vue-loader": "^17.3.1",
106 "watch": "^1.0.2", 109 "watch": "^1.0.2",
107 - "webpack": "^5.88.1" 110 + "webpack": "^5.0.0-rc.6"
108 }, 111 },
109 "resolutions": { 112 "resolutions": {
110 "lint-staged/yaml": "^2.2.2" 113 "lint-staged/yaml": "^2.2.2"
@@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
21 ], 21 ],
22 "paths": { 22 "paths": {
23 "@/*": ["./*"] 23 "@/*": ["./*"]
24 - }, 24 + }
25 }, 25 },
26 "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 26 "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
27 "exclude": ["node_modules"] 27 "exclude": ["node_modules"]
@@ -1533,6 +1533,11 @@ @@ -1533,6 +1533,11 @@
1533 resolved "https://registry.npmmirror.com/@fortaine/fetch-event-source/-/fetch-event-source-3.0.6.tgz" 1533 resolved "https://registry.npmmirror.com/@fortaine/fetch-event-source/-/fetch-event-source-3.0.6.tgz"
1534 integrity sha512-621GAuLMvKtyZQ3IA6nlDWhV1V/7PGOTNIGLUifxt0KzM+dZIweJ6F3XvQF3QnqeNfS1N7WQ0Kil1Di/lhChEw== 1534 integrity sha512-621GAuLMvKtyZQ3IA6nlDWhV1V/7PGOTNIGLUifxt0KzM+dZIweJ6F3XvQF3QnqeNfS1N7WQ0Kil1Di/lhChEw==
1535 1535
  1536 +"@gar/promisify@^1.0.1":
  1537 + version "1.1.3"
  1538 + resolved "https://registry.npmmirror.com/@gar/promisify/-/promisify-1.1.3.tgz"
  1539 + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==
  1540 +
1536 "@hello-pangea/dnd@^16.5.0": 1541 "@hello-pangea/dnd@^16.5.0":
1537 version "16.5.0" 1542 version "16.5.0"
1538 resolved "https://registry.npmjs.org/@hello-pangea/dnd/-/dnd-16.5.0.tgz" 1543 resolved "https://registry.npmjs.org/@hello-pangea/dnd/-/dnd-16.5.0.tgz"
@@ -1781,71 +1786,38 @@ @@ -1781,71 +1786,38 @@
1781 "@jridgewell/set-array" "^1.0.0" 1786 "@jridgewell/set-array" "^1.0.0"
1782 "@jridgewell/sourcemap-codec" "^1.4.10" 1787 "@jridgewell/sourcemap-codec" "^1.4.10"
1783 1788
1784 -"@jridgewell/gen-mapping@^0.3.0":  
1785 - version "0.3.3"  
1786 - resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz"  
1787 - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==  
1788 - dependencies:  
1789 - "@jridgewell/set-array" "^1.0.1"  
1790 - "@jridgewell/sourcemap-codec" "^1.4.10"  
1791 - "@jridgewell/trace-mapping" "^0.3.9"  
1792 -  
1793 -"@jridgewell/gen-mapping@^0.3.2":  
1794 - version "0.3.2"  
1795 - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz"  
1796 - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==  
1797 - dependencies:  
1798 - "@jridgewell/set-array" "^1.0.1"  
1799 - "@jridgewell/sourcemap-codec" "^1.4.10"  
1800 - "@jridgewell/trace-mapping" "^0.3.9"  
1801 -  
1802 -"@jridgewell/gen-mapping@^0.3.5":  
1803 - version "0.3.5"  
1804 - resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz"  
1805 - integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== 1789 +"@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5":
  1790 + version "0.3.8"
  1791 + resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz"
  1792 + integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==
1806 dependencies: 1793 dependencies:
1807 "@jridgewell/set-array" "^1.2.1" 1794 "@jridgewell/set-array" "^1.2.1"
1808 "@jridgewell/sourcemap-codec" "^1.4.10" 1795 "@jridgewell/sourcemap-codec" "^1.4.10"
1809 "@jridgewell/trace-mapping" "^0.3.24" 1796 "@jridgewell/trace-mapping" "^0.3.24"
1810 1797
1811 -"@jridgewell/resolve-uri@3.1.0":  
1812 - version "3.1.0"  
1813 - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz"  
1814 - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==  
1815 -  
1816 "@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": 1798 "@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0":
1817 version "3.1.2" 1799 version "3.1.2"
1818 resolved "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" 1800 resolved "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz"
1819 integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== 1801 integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
1820 1802
1821 -"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":  
1822 - version "1.1.2"  
1823 - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz"  
1824 - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==  
1825 -  
1826 -"@jridgewell/set-array@^1.2.1": 1803 +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.2.1":
1827 version "1.2.1" 1804 version "1.2.1"
1828 resolved "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz" 1805 resolved "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz"
1829 integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== 1806 integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
1830 1807
1831 "@jridgewell/source-map@^0.3.3": 1808 "@jridgewell/source-map@^0.3.3":
1832 - version "0.3.3"  
1833 - resolved "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.3.tgz"  
1834 - integrity sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg== 1809 + version "0.3.6"
  1810 + resolved "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.6.tgz"
  1811 + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==
1835 dependencies: 1812 dependencies:
1836 - "@jridgewell/gen-mapping" "^0.3.0"  
1837 - "@jridgewell/trace-mapping" "^0.3.9" 1813 + "@jridgewell/gen-mapping" "^0.3.5"
  1814 + "@jridgewell/trace-mapping" "^0.3.25"
1838 1815
1839 -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": 1816 +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
1840 version "1.4.14" 1817 version "1.4.14"
1841 resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" 1818 resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz"
1842 integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== 1819 integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
1843 1820
1844 -"@jridgewell/sourcemap-codec@^1.4.14":  
1845 - version "1.5.0"  
1846 - resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz"  
1847 - integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==  
1848 -  
1849 "@jridgewell/trace-mapping@0.3.9": 1821 "@jridgewell/trace-mapping@0.3.9":
1850 version "0.3.9" 1822 version "0.3.9"
1851 resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" 1823 resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz"
@@ -1854,7 +1826,7 @@ @@ -1854,7 +1826,7 @@
1854 "@jridgewell/resolve-uri" "^3.0.3" 1826 "@jridgewell/resolve-uri" "^3.0.3"
1855 "@jridgewell/sourcemap-codec" "^1.4.10" 1827 "@jridgewell/sourcemap-codec" "^1.4.10"
1856 1828
1857 -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": 1829 +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.9":
1858 version "0.3.25" 1830 version "0.3.25"
1859 resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" 1831 resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz"
1860 integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== 1832 integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
@@ -1862,14 +1834,6 @@ @@ -1862,14 +1834,6 @@
1862 "@jridgewell/resolve-uri" "^3.1.0" 1834 "@jridgewell/resolve-uri" "^3.1.0"
1863 "@jridgewell/sourcemap-codec" "^1.4.14" 1835 "@jridgewell/sourcemap-codec" "^1.4.14"
1864 1836
1865 -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":  
1866 - version "0.3.17"  
1867 - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz"  
1868 - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==  
1869 - dependencies:  
1870 - "@jridgewell/resolve-uri" "3.1.0"  
1871 - "@jridgewell/sourcemap-codec" "1.4.14"  
1872 -  
1873 "@modelcontextprotocol/sdk@^1.0.4": 1837 "@modelcontextprotocol/sdk@^1.0.4":
1874 version "1.0.4" 1838 version "1.0.4"
1875 resolved "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.0.4.tgz" 1839 resolved "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.0.4.tgz"
@@ -1964,11 +1928,39 @@ @@ -1964,11 +1928,39 @@
1964 "@nodelib/fs.scandir" "2.1.5" 1928 "@nodelib/fs.scandir" "2.1.5"
1965 fastq "^1.6.0" 1929 fastq "^1.6.0"
1966 1930
  1931 +"@npmcli/fs@^1.0.0":
  1932 + version "1.1.1"
  1933 + resolved "https://registry.npmmirror.com/@npmcli/fs/-/fs-1.1.1.tgz"
  1934 + integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==
  1935 + dependencies:
  1936 + "@gar/promisify" "^1.0.1"
  1937 + semver "^7.3.5"
  1938 +
  1939 +"@npmcli/move-file@^1.0.1":
  1940 + version "1.1.2"
  1941 + resolved "https://registry.npmmirror.com/@npmcli/move-file/-/move-file-1.1.2.tgz"
  1942 + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==
  1943 + dependencies:
  1944 + mkdirp "^1.0.4"
  1945 + rimraf "^3.0.2"
  1946 +
1967 "@pkgr/core@^0.1.0": 1947 "@pkgr/core@^0.1.0":
1968 version "0.1.0" 1948 version "0.1.0"
1969 resolved "https://registry.npmjs.org/@pkgr/core/-/core-0.1.0.tgz" 1949 resolved "https://registry.npmjs.org/@pkgr/core/-/core-0.1.0.tgz"
1970 integrity sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ== 1950 integrity sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==
1971 1951
  1952 +"@radix-ui/react-compose-refs@1.1.1":
  1953 + version "1.1.1"
  1954 + resolved "https://registry.npmmirror.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz"
  1955 + integrity sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==
  1956 +
  1957 +"@radix-ui/react-slot@^1.1.2":
  1958 + version "1.1.2"
  1959 + resolved "https://registry.npmmirror.com/@radix-ui/react-slot/-/react-slot-1.1.2.tgz"
  1960 + integrity sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==
  1961 + dependencies:
  1962 + "@radix-ui/react-compose-refs" "1.1.1"
  1963 +
1972 "@rc-component/async-validator@^5.0.3": 1964 "@rc-component/async-validator@^5.0.3":
1973 version "5.0.4" 1965 version "5.0.4"
1974 resolved "https://registry.npmmirror.com/@rc-component/async-validator/-/async-validator-5.0.4.tgz" 1966 resolved "https://registry.npmmirror.com/@rc-component/async-validator/-/async-validator-5.0.4.tgz"
@@ -2437,10 +2429,10 @@ @@ -2437,10 +2429,10 @@
2437 "@types/react" "*" 2429 "@types/react" "*"
2438 immutable "~3.7.4" 2430 immutable "~3.7.4"
2439 2431
2440 -"@types/eslint-scope@^3.7.3":  
2441 - version "3.7.4"  
2442 - resolved "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz"  
2443 - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== 2432 +"@types/eslint-scope@^3.7.0":
  2433 + version "3.7.7"
  2434 + resolved "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz"
  2435 + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==
2444 dependencies: 2436 dependencies:
2445 "@types/eslint" "*" 2437 "@types/eslint" "*"
2446 "@types/estree" "*" 2438 "@types/estree" "*"
@@ -2453,11 +2445,16 @@ @@ -2453,11 +2445,16 @@
2453 "@types/estree" "*" 2445 "@types/estree" "*"
2454 "@types/json-schema" "*" 2446 "@types/json-schema" "*"
2455 2447
2456 -"@types/estree@*", "@types/estree@^1.0.0": 2448 +"@types/estree@*":
2457 version "1.0.1" 2449 version "1.0.1"
2458 resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.1.tgz" 2450 resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.1.tgz"
2459 integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== 2451 integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==
2460 2452
  2453 +"@types/estree@^0.0.45":
  2454 + version "0.0.45"
  2455 + resolved "https://registry.npmmirror.com/@types/estree/-/estree-0.0.45.tgz"
  2456 + integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==
  2457 +
2461 "@types/file-saver@^2.0.7": 2458 "@types/file-saver@^2.0.7":
2462 version "2.0.7" 2459 version "2.0.7"
2463 resolved "https://registry.npmmirror.com/@types/file-saver/-/file-saver-2.0.7.tgz" 2460 resolved "https://registry.npmmirror.com/@types/file-saver/-/file-saver-2.0.7.tgz"
@@ -2617,7 +2614,7 @@ @@ -2617,7 +2614,7 @@
2617 2614
2618 "@types/quill@^1.3.10": 2615 "@types/quill@^1.3.10":
2619 version "1.3.10" 2616 version "1.3.10"
2620 - resolved "https://registry.npmmirror.com/@types/quill/-/quill-1.3.10.tgz#dc1f7b6587f7ee94bdf5291bc92289f6f0497613" 2617 + resolved "https://registry.npmmirror.com/@types/quill/-/quill-1.3.10.tgz"
2621 integrity sha512-IhW3fPW+bkt9MLNlycw8u8fWb7oO7W5URC9MfZYHBlA24rex9rs23D5DETChu1zvgVdc5ka64ICjJOgQMr6Shw== 2618 integrity sha512-IhW3fPW+bkt9MLNlycw8u8fWb7oO7W5URC9MfZYHBlA24rex9rs23D5DETChu1zvgVdc5ka64ICjJOgQMr6Shw==
2622 dependencies: 2619 dependencies:
2623 parchment "^1.1.2" 2620 parchment "^1.1.2"
@@ -2749,125 +2746,149 @@ @@ -2749,125 +2746,149 @@
2749 resolved "https://registry.npmjs.org/@vercel/speed-insights/-/speed-insights-1.0.2.tgz" 2746 resolved "https://registry.npmjs.org/@vercel/speed-insights/-/speed-insights-1.0.2.tgz"
2750 integrity sha512-y5HWeB6RmlyVYxJAMrjiDEz8qAIy2cit0fhBq+MD78WaUwQvuBnQlX4+5MuwVTWi46bV3klaRMq83u9zUy1KOg== 2747 integrity sha512-y5HWeB6RmlyVYxJAMrjiDEz8qAIy2cit0fhBq+MD78WaUwQvuBnQlX4+5MuwVTWi46bV3klaRMq83u9zUy1KOg==
2751 2748
2752 -"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5":  
2753 - version "1.11.6"  
2754 - resolved "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.6.tgz"  
2755 - integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== 2749 +"@webassemblyjs/ast@1.9.0":
  2750 + version "1.9.0"
  2751 + resolved "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.9.0.tgz"
  2752 + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==
2756 dependencies: 2753 dependencies:
2757 - "@webassemblyjs/helper-numbers" "1.11.6"  
2758 - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" 2754 + "@webassemblyjs/helper-module-context" "1.9.0"
  2755 + "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
  2756 + "@webassemblyjs/wast-parser" "1.9.0"
2759 2757
2760 -"@webassemblyjs/floating-point-hex-parser@1.11.6":  
2761 - version "1.11.6"  
2762 - resolved "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz"  
2763 - integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== 2758 +"@webassemblyjs/floating-point-hex-parser@1.9.0":
  2759 + version "1.9.0"
  2760 + resolved "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz"
  2761 + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==
2764 2762
2765 -"@webassemblyjs/helper-api-error@1.11.6":  
2766 - version "1.11.6"  
2767 - resolved "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz"  
2768 - integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== 2763 +"@webassemblyjs/helper-api-error@1.9.0":
  2764 + version "1.9.0"
  2765 + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz"
  2766 + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==
2769 2767
2770 -"@webassemblyjs/helper-buffer@1.11.6":  
2771 - version "1.11.6"  
2772 - resolved "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz"  
2773 - integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== 2768 +"@webassemblyjs/helper-buffer@1.9.0":
  2769 + version "1.9.0"
  2770 + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz"
  2771 + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==
2774 2772
2775 -"@webassemblyjs/helper-numbers@1.11.6":  
2776 - version "1.11.6"  
2777 - resolved "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz"  
2778 - integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== 2773 +"@webassemblyjs/helper-code-frame@1.9.0":
  2774 + version "1.9.0"
  2775 + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz"
  2776 + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==
2779 dependencies: 2777 dependencies:
2780 - "@webassemblyjs/floating-point-hex-parser" "1.11.6"  
2781 - "@webassemblyjs/helper-api-error" "1.11.6"  
2782 - "@xtuc/long" "4.2.2" 2778 + "@webassemblyjs/wast-printer" "1.9.0"
  2779 +
  2780 +"@webassemblyjs/helper-fsm@1.9.0":
  2781 + version "1.9.0"
  2782 + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz"
  2783 + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==
  2784 +
  2785 +"@webassemblyjs/helper-module-context@1.9.0":
  2786 + version "1.9.0"
  2787 + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz"
  2788 + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==
  2789 + dependencies:
  2790 + "@webassemblyjs/ast" "1.9.0"
2783 2791
2784 -"@webassemblyjs/helper-wasm-bytecode@1.11.6":  
2785 - version "1.11.6"  
2786 - resolved "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz"  
2787 - integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== 2792 +"@webassemblyjs/helper-wasm-bytecode@1.9.0":
  2793 + version "1.9.0"
  2794 + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz"
  2795 + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==
2788 2796
2789 -"@webassemblyjs/helper-wasm-section@1.11.6":  
2790 - version "1.11.6"  
2791 - resolved "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz"  
2792 - integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== 2797 +"@webassemblyjs/helper-wasm-section@1.9.0":
  2798 + version "1.9.0"
  2799 + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz"
  2800 + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==
2793 dependencies: 2801 dependencies:
2794 - "@webassemblyjs/ast" "1.11.6"  
2795 - "@webassemblyjs/helper-buffer" "1.11.6"  
2796 - "@webassemblyjs/helper-wasm-bytecode" "1.11.6"  
2797 - "@webassemblyjs/wasm-gen" "1.11.6" 2802 + "@webassemblyjs/ast" "1.9.0"
  2803 + "@webassemblyjs/helper-buffer" "1.9.0"
  2804 + "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
  2805 + "@webassemblyjs/wasm-gen" "1.9.0"
2798 2806
2799 -"@webassemblyjs/ieee754@1.11.6":  
2800 - version "1.11.6"  
2801 - resolved "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz"  
2802 - integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== 2807 +"@webassemblyjs/ieee754@1.9.0":
  2808 + version "1.9.0"
  2809 + resolved "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz"
  2810 + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==
2803 dependencies: 2811 dependencies:
2804 "@xtuc/ieee754" "^1.2.0" 2812 "@xtuc/ieee754" "^1.2.0"
2805 2813
2806 -"@webassemblyjs/leb128@1.11.6":  
2807 - version "1.11.6"  
2808 - resolved "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz"  
2809 - integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== 2814 +"@webassemblyjs/leb128@1.9.0":
  2815 + version "1.9.0"
  2816 + resolved "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz"
  2817 + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==
2810 dependencies: 2818 dependencies:
2811 "@xtuc/long" "4.2.2" 2819 "@xtuc/long" "4.2.2"
2812 2820
2813 -"@webassemblyjs/utf8@1.11.6":  
2814 - version "1.11.6"  
2815 - resolved "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz"  
2816 - integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==  
2817 -  
2818 -"@webassemblyjs/wasm-edit@^1.11.5":  
2819 - version "1.11.6"  
2820 - resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz"  
2821 - integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==  
2822 - dependencies:  
2823 - "@webassemblyjs/ast" "1.11.6"  
2824 - "@webassemblyjs/helper-buffer" "1.11.6"  
2825 - "@webassemblyjs/helper-wasm-bytecode" "1.11.6"  
2826 - "@webassemblyjs/helper-wasm-section" "1.11.6"  
2827 - "@webassemblyjs/wasm-gen" "1.11.6"  
2828 - "@webassemblyjs/wasm-opt" "1.11.6"  
2829 - "@webassemblyjs/wasm-parser" "1.11.6"  
2830 - "@webassemblyjs/wast-printer" "1.11.6"  
2831 -  
2832 -"@webassemblyjs/wasm-gen@1.11.6":  
2833 - version "1.11.6"  
2834 - resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz"  
2835 - integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==  
2836 - dependencies:  
2837 - "@webassemblyjs/ast" "1.11.6"  
2838 - "@webassemblyjs/helper-wasm-bytecode" "1.11.6"  
2839 - "@webassemblyjs/ieee754" "1.11.6"  
2840 - "@webassemblyjs/leb128" "1.11.6"  
2841 - "@webassemblyjs/utf8" "1.11.6"  
2842 -  
2843 -"@webassemblyjs/wasm-opt@1.11.6":  
2844 - version "1.11.6"  
2845 - resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz"  
2846 - integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==  
2847 - dependencies:  
2848 - "@webassemblyjs/ast" "1.11.6"  
2849 - "@webassemblyjs/helper-buffer" "1.11.6"  
2850 - "@webassemblyjs/wasm-gen" "1.11.6"  
2851 - "@webassemblyjs/wasm-parser" "1.11.6"  
2852 -  
2853 -"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5":  
2854 - version "1.11.6"  
2855 - resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz"  
2856 - integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==  
2857 - dependencies:  
2858 - "@webassemblyjs/ast" "1.11.6"  
2859 - "@webassemblyjs/helper-api-error" "1.11.6"  
2860 - "@webassemblyjs/helper-wasm-bytecode" "1.11.6"  
2861 - "@webassemblyjs/ieee754" "1.11.6"  
2862 - "@webassemblyjs/leb128" "1.11.6"  
2863 - "@webassemblyjs/utf8" "1.11.6"  
2864 -  
2865 -"@webassemblyjs/wast-printer@1.11.6":  
2866 - version "1.11.6"  
2867 - resolved "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz"  
2868 - integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==  
2869 - dependencies:  
2870 - "@webassemblyjs/ast" "1.11.6" 2821 +"@webassemblyjs/utf8@1.9.0":
  2822 + version "1.9.0"
  2823 + resolved "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz"
  2824 + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==
  2825 +
  2826 +"@webassemblyjs/wasm-edit@1.9.0":
  2827 + version "1.9.0"
  2828 + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz"
  2829 + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==
  2830 + dependencies:
  2831 + "@webassemblyjs/ast" "1.9.0"
  2832 + "@webassemblyjs/helper-buffer" "1.9.0"
  2833 + "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
  2834 + "@webassemblyjs/helper-wasm-section" "1.9.0"
  2835 + "@webassemblyjs/wasm-gen" "1.9.0"
  2836 + "@webassemblyjs/wasm-opt" "1.9.0"
  2837 + "@webassemblyjs/wasm-parser" "1.9.0"
  2838 + "@webassemblyjs/wast-printer" "1.9.0"
  2839 +
  2840 +"@webassemblyjs/wasm-gen@1.9.0":
  2841 + version "1.9.0"
  2842 + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz"
  2843 + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==
  2844 + dependencies:
  2845 + "@webassemblyjs/ast" "1.9.0"
  2846 + "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
  2847 + "@webassemblyjs/ieee754" "1.9.0"
  2848 + "@webassemblyjs/leb128" "1.9.0"
  2849 + "@webassemblyjs/utf8" "1.9.0"
  2850 +
  2851 +"@webassemblyjs/wasm-opt@1.9.0":
  2852 + version "1.9.0"
  2853 + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz"
  2854 + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==
  2855 + dependencies:
  2856 + "@webassemblyjs/ast" "1.9.0"
  2857 + "@webassemblyjs/helper-buffer" "1.9.0"
  2858 + "@webassemblyjs/wasm-gen" "1.9.0"
  2859 + "@webassemblyjs/wasm-parser" "1.9.0"
  2860 +
  2861 +"@webassemblyjs/wasm-parser@1.9.0":
  2862 + version "1.9.0"
  2863 + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz"
  2864 + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==
  2865 + dependencies:
  2866 + "@webassemblyjs/ast" "1.9.0"
  2867 + "@webassemblyjs/helper-api-error" "1.9.0"
  2868 + "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
  2869 + "@webassemblyjs/ieee754" "1.9.0"
  2870 + "@webassemblyjs/leb128" "1.9.0"
  2871 + "@webassemblyjs/utf8" "1.9.0"
  2872 +
  2873 +"@webassemblyjs/wast-parser@1.9.0":
  2874 + version "1.9.0"
  2875 + resolved "https://registry.npmmirror.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz"
  2876 + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==
  2877 + dependencies:
  2878 + "@webassemblyjs/ast" "1.9.0"
  2879 + "@webassemblyjs/floating-point-hex-parser" "1.9.0"
  2880 + "@webassemblyjs/helper-api-error" "1.9.0"
  2881 + "@webassemblyjs/helper-code-frame" "1.9.0"
  2882 + "@webassemblyjs/helper-fsm" "1.9.0"
  2883 + "@xtuc/long" "4.2.2"
  2884 +
  2885 +"@webassemblyjs/wast-printer@1.9.0":
  2886 + version "1.9.0"
  2887 + resolved "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz"
  2888 + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==
  2889 + dependencies:
  2890 + "@webassemblyjs/ast" "1.9.0"
  2891 + "@webassemblyjs/wast-parser" "1.9.0"
2871 "@xtuc/long" "4.2.2" 2892 "@xtuc/long" "4.2.2"
2872 2893
2873 "@xmldom/xmldom@^0.9.7": 2894 "@xmldom/xmldom@^0.9.7":
@@ -2920,11 +2941,6 @@ acorn-globals@^7.0.0: @@ -2920,11 +2941,6 @@ acorn-globals@^7.0.0:
2920 acorn "^8.1.0" 2941 acorn "^8.1.0"
2921 acorn-walk "^8.0.2" 2942 acorn-walk "^8.0.2"
2922 2943
2923 -acorn-import-assertions@^1.9.0:  
2924 - version "1.9.0"  
2925 - resolved "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz"  
2926 - integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==  
2927 -  
2928 acorn-jsx@^5.3.2: 2944 acorn-jsx@^5.3.2:
2929 version "5.3.2" 2945 version "5.3.2"
2930 resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" 2946 resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
@@ -2937,20 +2953,10 @@ acorn-walk@^8.0.2, acorn-walk@^8.1.1: @@ -2937,20 +2953,10 @@ acorn-walk@^8.0.2, acorn-walk@^8.1.1:
2937 dependencies: 2953 dependencies:
2938 acorn "^8.11.0" 2954 acorn "^8.11.0"
2939 2955
2940 -acorn@^8.1.0, acorn@^8.11.0, acorn@^8.4.1, acorn@^8.8.1:  
2941 - version "8.12.1"  
2942 - resolved "https://registry.npmmirror.com/acorn/-/acorn-8.12.1.tgz"  
2943 - integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==  
2944 -  
2945 -acorn@^8.7.1, acorn@^8.8.2:  
2946 - version "8.9.0"  
2947 - resolved "https://registry.npmmirror.com/acorn/-/acorn-8.9.0.tgz"  
2948 - integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==  
2949 -  
2950 -acorn@^8.9.0:  
2951 - version "8.10.0"  
2952 - resolved "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz"  
2953 - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== 2956 +acorn@^8.0.3, acorn@^8.1.0, acorn@^8.11.0, acorn@^8.4.1, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0:
  2957 + version "8.14.1"
  2958 + resolved "https://registry.npmmirror.com/acorn/-/acorn-8.14.1.tgz"
  2959 + integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==
2954 2960
2955 adler-32@~1.3.0: 2961 adler-32@~1.3.0:
2956 version "1.3.1" 2962 version "1.3.1"
@@ -3340,35 +3346,15 @@ browser-or-node@^1.2.1: @@ -3340,35 +3346,15 @@ browser-or-node@^1.2.1:
3340 resolved "https://registry.npmmirror.com/browser-or-node/-/browser-or-node-1.3.0.tgz" 3346 resolved "https://registry.npmmirror.com/browser-or-node/-/browser-or-node-1.3.0.tgz"
3341 integrity sha512-0F2z/VSnLbmEeBcUrSuDH5l0HxTXdQQzLjkmBR4cYfvg1zJrKSlmIZFqyFR8oX0NrwPhy3c3HQ6i3OxMbew4Tg== 3347 integrity sha512-0F2z/VSnLbmEeBcUrSuDH5l0HxTXdQQzLjkmBR4cYfvg1zJrKSlmIZFqyFR8oX0NrwPhy3c3HQ6i3OxMbew4Tg==
3342 3348
3343 -browserslist@^4.14.5:  
3344 - version "4.21.9"  
3345 - resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.9.tgz"  
3346 - integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==  
3347 - dependencies:  
3348 - caniuse-lite "^1.0.30001503"  
3349 - electron-to-chromium "^1.4.431"  
3350 - node-releases "^2.0.12"  
3351 - update-browserslist-db "^1.0.11"  
3352 -  
3353 -browserslist@^4.21.3, browserslist@^4.21.5:  
3354 - version "4.21.5"  
3355 - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz"  
3356 - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==  
3357 - dependencies:  
3358 - caniuse-lite "^1.0.30001449"  
3359 - electron-to-chromium "^1.4.284"  
3360 - node-releases "^2.0.8"  
3361 - update-browserslist-db "^1.0.10"  
3362 -  
3363 -browserslist@^4.23.1:  
3364 - version "4.23.3"  
3365 - resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.3.tgz"  
3366 - integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== 3349 +browserslist@^4.14.3, browserslist@^4.21.3, browserslist@^4.21.5, browserslist@^4.23.1:
  3350 + version "4.24.4"
  3351 + resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.24.4.tgz"
  3352 + integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==
3367 dependencies: 3353 dependencies:
3368 - caniuse-lite "^1.0.30001646"  
3369 - electron-to-chromium "^1.5.4"  
3370 - node-releases "^2.0.18"  
3371 - update-browserslist-db "^1.1.0" 3354 + caniuse-lite "^1.0.30001688"
  3355 + electron-to-chromium "^1.5.73"
  3356 + node-releases "^2.0.19"
  3357 + update-browserslist-db "^1.1.1"
3372 3358
3373 bser@2.1.1: 3359 bser@2.1.1:
3374 version "2.1.1" 3360 version "2.1.1"
@@ -3394,25 +3380,41 @@ bytes@3.1.2: @@ -3394,25 +3380,41 @@ bytes@3.1.2:
3394 resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" 3380 resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
3395 integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== 3381 integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
3396 3382
  3383 +cacache@^15.0.5:
  3384 + version "15.3.0"
  3385 + resolved "https://registry.npmmirror.com/cacache/-/cacache-15.3.0.tgz"
  3386 + integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==
  3387 + dependencies:
  3388 + "@npmcli/fs" "^1.0.0"
  3389 + "@npmcli/move-file" "^1.0.1"
  3390 + chownr "^2.0.0"
  3391 + fs-minipass "^2.0.0"
  3392 + glob "^7.1.4"
  3393 + infer-owner "^1.0.4"
  3394 + lru-cache "^6.0.0"
  3395 + minipass "^3.1.1"
  3396 + minipass-collect "^1.0.2"
  3397 + minipass-flush "^1.0.5"
  3398 + minipass-pipeline "^1.2.2"
  3399 + mkdirp "^1.0.3"
  3400 + p-map "^4.0.0"
  3401 + promise-inflight "^1.0.1"
  3402 + rimraf "^3.0.2"
  3403 + ssri "^8.0.1"
  3404 + tar "^6.0.2"
  3405 + unique-filename "^1.1.1"
  3406 +
3397 call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: 3407 call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
3398 version "1.0.2" 3408 version "1.0.2"
3399 - resolved "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" 3409 + resolved "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz"
3400 integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== 3410 integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
3401 dependencies: 3411 dependencies:
3402 es-errors "^1.3.0" 3412 es-errors "^1.3.0"
3403 function-bind "^1.1.2" 3413 function-bind "^1.1.2"
3404 3414
3405 -call-bind@^1.0.0, call-bind@^1.0.2:  
3406 - version "1.0.2"  
3407 - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"  
3408 - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==  
3409 - dependencies:  
3410 - function-bind "^1.1.1"  
3411 - get-intrinsic "^1.0.2"  
3412 -  
3413 -call-bind@^1.0.8: 3415 +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.8:
3414 version "1.0.8" 3416 version "1.0.8"
3415 - resolved "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" 3417 + resolved "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.8.tgz"
3416 integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== 3418 integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==
3417 dependencies: 3419 dependencies:
3418 call-bind-apply-helpers "^1.0.0" 3420 call-bind-apply-helpers "^1.0.0"
@@ -3435,7 +3437,7 @@ camelcase@^6.2.0: @@ -3435,7 +3437,7 @@ camelcase@^6.2.0:
3435 resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" 3437 resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz"
3436 integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== 3438 integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
3437 3439
3438 -caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001503, caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001646: 3440 +caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001688:
3439 version "1.0.30001692" 3441 version "1.0.30001692"
3440 resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz" 3442 resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz"
3441 integrity sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A== 3443 integrity sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==
@@ -3495,7 +3497,7 @@ character-entities@^2.0.0: @@ -3495,7 +3497,7 @@ character-entities@^2.0.0:
3495 3497
3496 cheerio-select@^2.1.0: 3498 cheerio-select@^2.1.0:
3497 version "2.1.0" 3499 version "2.1.0"
3498 - resolved "https://registry.npmmirror.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" 3500 + resolved "https://registry.npmmirror.com/cheerio-select/-/cheerio-select-2.1.0.tgz"
3499 integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== 3501 integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==
3500 dependencies: 3502 dependencies:
3501 boolbase "^1.0.0" 3503 boolbase "^1.0.0"
@@ -3507,7 +3509,7 @@ cheerio-select@^2.1.0: @@ -3507,7 +3509,7 @@ cheerio-select@^2.1.0:
3507 3509
3508 cheerio@^1.0.0: 3510 cheerio@^1.0.0:
3509 version "1.0.0" 3511 version "1.0.0"
3510 - resolved "https://registry.npmmirror.com/cheerio/-/cheerio-1.0.0.tgz#1ede4895a82f26e8af71009f961a9b8cb60d6a81" 3512 + resolved "https://registry.npmmirror.com/cheerio/-/cheerio-1.0.0.tgz"
3511 integrity sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww== 3513 integrity sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==
3512 dependencies: 3514 dependencies:
3513 cheerio-select "^2.1.0" 3515 cheerio-select "^2.1.0"
@@ -3537,6 +3539,11 @@ cheerio@^1.0.0: @@ -3537,6 +3539,11 @@ cheerio@^1.0.0:
3537 optionalDependencies: 3539 optionalDependencies:
3538 fsevents "~2.3.2" 3540 fsevents "~2.3.2"
3539 3541
  3542 +chownr@^2.0.0:
  3543 + version "2.0.0"
  3544 + resolved "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz"
  3545 + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
  3546 +
3540 chrome-trace-event@^1.0.2: 3547 chrome-trace-event@^1.0.2:
3541 version "1.0.3" 3548 version "1.0.3"
3542 resolved "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" 3549 resolved "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz"
@@ -3606,7 +3613,7 @@ cliui@^8.0.1: @@ -3606,7 +3613,7 @@ cliui@^8.0.1:
3606 3613
3607 clone@^2.1.1: 3614 clone@^2.1.1:
3608 version "2.1.2" 3615 version "2.1.2"
3609 - resolved "https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" 3616 + resolved "https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz"
3610 integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== 3617 integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==
3611 3618
3612 clsx@^2.1.1: 3619 clsx@^2.1.1:
@@ -3690,6 +3697,11 @@ commander@^8.0.0, commander@^8.3.0: @@ -3690,6 +3697,11 @@ commander@^8.0.0, commander@^8.3.0:
3690 resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" 3697 resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz"
3691 integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== 3698 integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
3692 3699
  3700 +commondir@^1.0.1:
  3701 + version "1.0.1"
  3702 + resolved "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz"
  3703 + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==
  3704 +
3693 compute-scroll-into-view@^3.0.2: 3705 compute-scroll-into-view@^3.0.2:
3694 version "3.1.1" 3706 version "3.1.1"
3695 resolved "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz" 3707 resolved "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz"
@@ -3833,7 +3845,7 @@ css-select@^4.1.3: @@ -3833,7 +3845,7 @@ css-select@^4.1.3:
3833 3845
3834 css-select@^5.1.0: 3846 css-select@^5.1.0:
3835 version "5.1.0" 3847 version "5.1.0"
3836 - resolved "https://registry.npmmirror.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" 3848 + resolved "https://registry.npmmirror.com/css-select/-/css-select-5.1.0.tgz"
3837 integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== 3849 integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==
3838 dependencies: 3850 dependencies:
3839 boolbase "^1.0.0" 3851 boolbase "^1.0.0"
@@ -4261,7 +4273,7 @@ dedent@^1.0.0: @@ -4261,7 +4273,7 @@ dedent@^1.0.0:
4261 4273
4262 deep-equal@^1.0.1: 4274 deep-equal@^1.0.1:
4263 version "1.1.2" 4275 version "1.1.2"
4264 - resolved "https://registry.npmmirror.com/deep-equal/-/deep-equal-1.1.2.tgz#78a561b7830eef3134c7f6f3a3d6af272a678761" 4276 + resolved "https://registry.npmmirror.com/deep-equal/-/deep-equal-1.1.2.tgz"
4265 integrity sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg== 4277 integrity sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==
4266 dependencies: 4278 dependencies:
4267 is-arguments "^1.1.1" 4279 is-arguments "^1.1.1"
@@ -4306,24 +4318,16 @@ deepmerge@^4.2.2: @@ -4306,24 +4318,16 @@ deepmerge@^4.2.2:
4306 4318
4307 define-data-property@^1.0.1, define-data-property@^1.1.4: 4319 define-data-property@^1.0.1, define-data-property@^1.1.4:
4308 version "1.1.4" 4320 version "1.1.4"
4309 - resolved "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" 4321 + resolved "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz"
4310 integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== 4322 integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
4311 dependencies: 4323 dependencies:
4312 es-define-property "^1.0.0" 4324 es-define-property "^1.0.0"
4313 es-errors "^1.3.0" 4325 es-errors "^1.3.0"
4314 gopd "^1.0.1" 4326 gopd "^1.0.1"
4315 4327
4316 -define-properties@^1.1.3, define-properties@^1.1.4:  
4317 - version "1.2.0"  
4318 - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz"  
4319 - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==  
4320 - dependencies:  
4321 - has-property-descriptors "^1.0.0"  
4322 - object-keys "^1.1.1"  
4323 -  
4324 -define-properties@^1.2.1: 4328 +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.1:
4325 version "1.2.1" 4329 version "1.2.1"
4326 - resolved "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" 4330 + resolved "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz"
4327 integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== 4331 integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
4328 dependencies: 4332 dependencies:
4329 define-data-property "^1.0.1" 4333 define-data-property "^1.0.1"
@@ -4438,7 +4442,7 @@ dom-serializer@^1.0.1: @@ -4438,7 +4442,7 @@ dom-serializer@^1.0.1:
4438 4442
4439 dom-serializer@^2.0.0: 4443 dom-serializer@^2.0.0:
4440 version "2.0.0" 4444 version "2.0.0"
4441 - resolved "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" 4445 + resolved "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz"
4442 integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== 4446 integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==
4443 dependencies: 4447 dependencies:
4444 domelementtype "^2.3.0" 4448 domelementtype "^2.3.0"
@@ -4466,7 +4470,7 @@ domhandler@^4.2.0, domhandler@^4.3.1: @@ -4466,7 +4470,7 @@ domhandler@^4.2.0, domhandler@^4.3.1:
4466 4470
4467 domhandler@^5.0.2, domhandler@^5.0.3: 4471 domhandler@^5.0.2, domhandler@^5.0.3:
4468 version "5.0.3" 4472 version "5.0.3"
4469 - resolved "https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" 4473 + resolved "https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz"
4470 integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== 4474 integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==
4471 dependencies: 4475 dependencies:
4472 domelementtype "^2.3.0" 4476 domelementtype "^2.3.0"
@@ -4487,7 +4491,7 @@ domutils@^2.8.0: @@ -4487,7 +4491,7 @@ domutils@^2.8.0:
4487 4491
4488 domutils@^3.0.1, domutils@^3.1.0: 4492 domutils@^3.0.1, domutils@^3.1.0:
4489 version "3.2.2" 4493 version "3.2.2"
4490 - resolved "https://registry.npmmirror.com/domutils/-/domutils-3.2.2.tgz#edbfe2b668b0c1d97c24baf0f1062b132221bc78" 4494 + resolved "https://registry.npmmirror.com/domutils/-/domutils-3.2.2.tgz"
4491 integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== 4495 integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==
4492 dependencies: 4496 dependencies:
4493 dom-serializer "^2.0.0" 4497 dom-serializer "^2.0.0"
@@ -4496,7 +4500,7 @@ domutils@^3.0.1, domutils@^3.1.0: @@ -4496,7 +4500,7 @@ domutils@^3.0.1, domutils@^3.1.0:
4496 4500
4497 dunder-proto@^1.0.1: 4501 dunder-proto@^1.0.1:
4498 version "1.0.1" 4502 version "1.0.1"
4499 - resolved "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" 4503 + resolved "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz"
4500 integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== 4504 integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
4501 dependencies: 4505 dependencies:
4502 call-bind-apply-helpers "^1.0.1" 4506 call-bind-apply-helpers "^1.0.1"
@@ -4508,20 +4512,10 @@ eastasianwidth@^0.2.0: @@ -4508,20 +4512,10 @@ eastasianwidth@^0.2.0:
4508 resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" 4512 resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz"
4509 integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== 4513 integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
4510 4514
4511 -electron-to-chromium@^1.4.284:  
4512 - version "1.4.345"  
4513 - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.345.tgz"  
4514 - integrity sha512-znGhOQK2TUYLICgS25uaM0a7pHy66rSxbre7l762vg9AUoCcJK+Bu+HCPWpjL/U/kK8/Hf+6E0szAUJSyVYb3Q==  
4515 -  
4516 -electron-to-chromium@^1.4.431:  
4517 - version "1.4.445"  
4518 - resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.445.tgz"  
4519 - integrity sha512-++DB+9VK8SBJwC+X1zlMfJ1tMA3F0ipi39GdEp+x3cV2TyBihqAgad8cNMWtLDEkbH39nlDQP7PfGrDr3Dr7HA==  
4520 -  
4521 -electron-to-chromium@^1.5.4:  
4522 - version "1.5.5"  
4523 - resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.5.tgz"  
4524 - integrity sha512-QR7/A7ZkMS8tZuoftC/jfqNkZLQO779SSW3YuZHP4eXpj3EffGLFcB/Xu9AAZQzLccTiCV+EmUo3ha4mQ9wnlA== 4515 +electron-to-chromium@^1.5.73:
  4516 + version "1.5.124"
  4517 + resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.124.tgz"
  4518 + integrity sha512-riELkpDUqBi00gqreV3RIGoowxGrfueEKBd6zPdOk/I8lvuFpBGNkYoHof3zUHbiTBsIU8oxdIIL/WNrAG1/7A==
4525 4519
4526 elkjs@^0.8.2: 4520 elkjs@^0.8.2:
4527 version "0.8.2" 4521 version "0.8.2"
@@ -4552,24 +4546,16 @@ emoji-regex@^9.2.2: @@ -4552,24 +4546,16 @@ emoji-regex@^9.2.2:
4552 4546
4553 encoding-sniffer@^0.2.0: 4547 encoding-sniffer@^0.2.0:
4554 version "0.2.0" 4548 version "0.2.0"
4555 - resolved "https://registry.npmmirror.com/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz#799569d66d443babe82af18c9f403498365ef1d5" 4549 + resolved "https://registry.npmmirror.com/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz"
4556 integrity sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg== 4550 integrity sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==
4557 dependencies: 4551 dependencies:
4558 iconv-lite "^0.6.3" 4552 iconv-lite "^0.6.3"
4559 whatwg-encoding "^3.1.1" 4553 whatwg-encoding "^3.1.1"
4560 4554
4561 -enhanced-resolve@^5.12.0:  
4562 - version "5.12.0"  
4563 - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz"  
4564 - integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==  
4565 - dependencies:  
4566 - graceful-fs "^4.2.4"  
4567 - tapable "^2.2.0"  
4568 -  
4569 -enhanced-resolve@^5.15.0:  
4570 - version "5.15.0"  
4571 - resolved "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz"  
4572 - integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== 4555 +enhanced-resolve@^5.12.0, enhanced-resolve@^5.2.0:
  4556 + version "5.18.1"
  4557 + resolved "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz"
  4558 + integrity sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==
4573 dependencies: 4559 dependencies:
4574 graceful-fs "^4.2.4" 4560 graceful-fs "^4.2.4"
4575 tapable "^2.2.0" 4561 tapable "^2.2.0"
@@ -4579,16 +4565,11 @@ entities@^2.0.0: @@ -4579,16 +4565,11 @@ entities@^2.0.0:
4579 resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" 4565 resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz"
4580 integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== 4566 integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
4581 4567
4582 -entities@^4.2.0, entities@^4.5.0: 4568 +entities@^4.2.0, entities@^4.4.0, entities@^4.5.0:
4583 version "4.5.0" 4569 version "4.5.0"
4584 - resolved "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" 4570 + resolved "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz"
4585 integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== 4571 integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
4586 4572
4587 -entities@^4.4.0:  
4588 - version "4.4.0"  
4589 - resolved "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz"  
4590 - integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==  
4591 -  
4592 error-ex@^1.3.1: 4573 error-ex@^1.3.1:
4593 version "1.3.2" 4574 version "1.3.2"
4594 resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" 4575 resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"
@@ -4638,12 +4619,12 @@ es-abstract@^1.19.0, es-abstract@^1.20.4: @@ -4638,12 +4619,12 @@ es-abstract@^1.19.0, es-abstract@^1.20.4:
4638 4619
4639 es-define-property@^1.0.0, es-define-property@^1.0.1: 4620 es-define-property@^1.0.0, es-define-property@^1.0.1:
4640 version "1.0.1" 4621 version "1.0.1"
4641 - resolved "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" 4622 + resolved "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz"
4642 integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== 4623 integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
4643 4624
4644 es-errors@^1.3.0: 4625 es-errors@^1.3.0:
4645 version "1.3.0" 4626 version "1.3.0"
4646 - resolved "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" 4627 + resolved "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz"
4647 integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== 4628 integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
4648 4629
4649 es-get-iterator@^1.1.2: 4630 es-get-iterator@^1.1.2:
@@ -4661,14 +4642,9 @@ es-get-iterator@^1.1.2: @@ -4661,14 +4642,9 @@ es-get-iterator@^1.1.2:
4661 isarray "^2.0.5" 4642 isarray "^2.0.5"
4662 stop-iteration-iterator "^1.0.0" 4643 stop-iteration-iterator "^1.0.0"
4663 4644
4664 -es-module-lexer@^1.2.1:  
4665 - version "1.3.0"  
4666 - resolved "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz"  
4667 - integrity sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==  
4668 -  
4669 es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: 4645 es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
4670 version "1.1.1" 4646 version "1.1.1"
4671 - resolved "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" 4647 + resolved "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz"
4672 integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== 4648 integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
4673 dependencies: 4649 dependencies:
4674 es-errors "^1.3.0" 4650 es-errors "^1.3.0"
@@ -4727,15 +4703,10 @@ esbuild@~0.21.5: @@ -4727,15 +4703,10 @@ esbuild@~0.21.5:
4727 "@esbuild/win32-ia32" "0.21.5" 4703 "@esbuild/win32-ia32" "0.21.5"
4728 "@esbuild/win32-x64" "0.21.5" 4704 "@esbuild/win32-x64" "0.21.5"
4729 4705
4730 -escalade@^3.1.1:  
4731 - version "3.1.1"  
4732 - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"  
4733 - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==  
4734 -  
4735 -escalade@^3.1.2:  
4736 - version "3.1.2"  
4737 - resolved "https://registry.npmmirror.com/escalade/-/escalade-3.1.2.tgz"  
4738 - integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== 4706 +escalade@^3.1.1, escalade@^3.2.0:
  4707 + version "3.2.0"
  4708 + resolved "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz"
  4709 + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
4739 4710
4740 escape-string-regexp@^1.0.5: 4711 escape-string-regexp@^1.0.5:
4741 version "1.0.5" 4712 version "1.0.5"
@@ -4906,7 +4877,7 @@ eslint-rule-composer@^0.3.0: @@ -4906,7 +4877,7 @@ eslint-rule-composer@^0.3.0:
4906 resolved "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz" 4877 resolved "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz"
4907 integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== 4878 integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==
4908 4879
4909 -eslint-scope@5.1.1: 4880 +eslint-scope@^5.1.0:
4910 version "5.1.1" 4881 version "5.1.1"
4911 resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz" 4882 resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz"
4912 integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 4883 integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
@@ -5015,7 +4986,7 @@ esutils@^2.0.2: @@ -5015,7 +4986,7 @@ esutils@^2.0.2:
5015 4986
5016 eventemitter3@^2.0.3: 4987 eventemitter3@^2.0.3:
5017 version "2.0.3" 4988 version "2.0.3"
5018 - resolved "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba" 4989 + resolved "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-2.0.3.tgz"
5019 integrity sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg== 4990 integrity sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==
5020 4991
5021 events@^3.2.0: 4992 events@^3.2.0:
@@ -5088,7 +5059,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: @@ -5088,7 +5059,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
5088 5059
5089 fast-diff@1.1.2: 5060 fast-diff@1.1.2:
5090 version "1.1.2" 5061 version "1.1.2"
5091 - resolved "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154" 5062 + resolved "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.1.2.tgz"
5092 integrity sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig== 5063 integrity sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==
5093 5064
5094 fast-diff@^1.1.2: 5065 fast-diff@^1.1.2:
@@ -5165,6 +5136,15 @@ fill-range@^7.0.1: @@ -5165,6 +5136,15 @@ fill-range@^7.0.1:
5165 dependencies: 5136 dependencies:
5166 to-regex-range "^5.0.1" 5137 to-regex-range "^5.0.1"
5167 5138
  5139 +find-cache-dir@^3.3.1:
  5140 + version "3.3.2"
  5141 + resolved "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz"
  5142 + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==
  5143 + dependencies:
  5144 + commondir "^1.0.1"
  5145 + make-dir "^3.0.2"
  5146 + pkg-dir "^4.1.0"
  5147 +
5168 find-up@^4.0.0, find-up@^4.1.0: 5148 find-up@^4.0.0, find-up@^4.1.0:
5169 version "4.1.0" 5149 version "4.1.0"
5170 resolved "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz" 5150 resolved "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz"
@@ -5237,6 +5217,13 @@ frac@~1.1.2: @@ -5237,6 +5217,13 @@ frac@~1.1.2:
5237 resolved "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz" 5217 resolved "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz"
5238 integrity sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA== 5218 integrity sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==
5239 5219
  5220 +fs-minipass@^2.0.0:
  5221 + version "2.1.0"
  5222 + resolved "https://registry.npmmirror.com/fs-minipass/-/fs-minipass-2.1.0.tgz"
  5223 + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
  5224 + dependencies:
  5225 + minipass "^3.0.0"
  5226 +
5240 fs.realpath@^1.0.0: 5227 fs.realpath@^1.0.0:
5241 version "1.0.0" 5228 version "1.0.0"
5242 resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" 5229 resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
@@ -5247,12 +5234,7 @@ fsevents@^2.3.2, fsevents@~2.3.2, fsevents@~2.3.3: @@ -5247,12 +5234,7 @@ fsevents@^2.3.2, fsevents@~2.3.2, fsevents@~2.3.3:
5247 resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" 5234 resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
5248 integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 5235 integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
5249 5236
5250 -function-bind@^1.1.1:  
5251 - version "1.1.1"  
5252 - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"  
5253 - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==  
5254 -  
5255 -function-bind@^1.1.2: 5237 +function-bind@^1.1.1, function-bind@^1.1.2:
5256 version "1.1.2" 5238 version "1.1.2"
5257 resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz" 5239 resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz"
5258 integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== 5240 integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
@@ -5287,18 +5269,9 @@ get-caller-file@^2.0.5: @@ -5287,18 +5269,9 @@ get-caller-file@^2.0.5:
5287 resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" 5269 resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
5288 integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 5270 integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
5289 5271
5290 -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0:  
5291 - version "1.2.0"  
5292 - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz"  
5293 - integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==  
5294 - dependencies:  
5295 - function-bind "^1.1.1"  
5296 - has "^1.0.3"  
5297 - has-symbols "^1.0.3"  
5298 -  
5299 -get-intrinsic@^1.2.4: 5272 +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.4:
5300 version "1.3.0" 5273 version "1.3.0"
5301 - resolved "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" 5274 + resolved "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz"
5302 integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== 5275 integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
5303 dependencies: 5276 dependencies:
5304 call-bind-apply-helpers "^1.0.2" 5277 call-bind-apply-helpers "^1.0.2"
@@ -5319,7 +5292,7 @@ get-package-type@^0.1.0: @@ -5319,7 +5292,7 @@ get-package-type@^0.1.0:
5319 5292
5320 get-proto@^1.0.1: 5293 get-proto@^1.0.1:
5321 version "1.0.1" 5294 version "1.0.1"
5322 - resolved "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" 5295 + resolved "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz"
5323 integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== 5296 integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
5324 dependencies: 5297 dependencies:
5325 dunder-proto "^1.0.1" 5298 dunder-proto "^1.0.1"
@@ -5435,16 +5408,9 @@ globby@^13.1.3: @@ -5435,16 +5408,9 @@ globby@^13.1.3:
5435 merge2 "^1.4.1" 5408 merge2 "^1.4.1"
5436 slash "^4.0.0" 5409 slash "^4.0.0"
5437 5410
5438 -gopd@^1.0.1:  
5439 - version "1.0.1"  
5440 - resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz"  
5441 - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==  
5442 - dependencies:  
5443 - get-intrinsic "^1.1.3"  
5444 -  
5445 -gopd@^1.2.0: 5411 +gopd@^1.0.1, gopd@^1.2.0:
5446 version "1.2.0" 5412 version "1.2.0"
5447 - resolved "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" 5413 + resolved "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz"
5448 integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== 5414 integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
5449 5415
5450 graceful-fs@^4.1.2, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.9: 5416 graceful-fs@^4.1.2, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.9:
@@ -5472,16 +5438,9 @@ has-flag@^4.0.0: @@ -5472,16 +5438,9 @@ has-flag@^4.0.0:
5472 resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" 5438 resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
5473 integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 5439 integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
5474 5440
5475 -has-property-descriptors@^1.0.0:  
5476 - version "1.0.0"  
5477 - resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz"  
5478 - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==  
5479 - dependencies:  
5480 - get-intrinsic "^1.1.1"  
5481 -  
5482 -has-property-descriptors@^1.0.2: 5441 +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2:
5483 version "1.0.2" 5442 version "1.0.2"
5484 - resolved "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" 5443 + resolved "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz"
5485 integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== 5444 integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
5486 dependencies: 5445 dependencies:
5487 es-define-property "^1.0.0" 5446 es-define-property "^1.0.0"
@@ -5491,14 +5450,9 @@ has-proto@^1.0.1: @@ -5491,14 +5450,9 @@ has-proto@^1.0.1:
5491 resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" 5450 resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz"
5492 integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== 5451 integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==
5493 5452
5494 -has-symbols@^1.0.2, has-symbols@^1.0.3:  
5495 - version "1.0.3"  
5496 - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"  
5497 - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==  
5498 -  
5499 -has-symbols@^1.1.0: 5453 +has-symbols@^1.0.2, has-symbols@^1.0.3, has-symbols@^1.1.0:
5500 version "1.1.0" 5454 version "1.1.0"
5501 - resolved "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" 5455 + resolved "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz"
5502 integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== 5456 integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
5503 5457
5504 has-tostringtag@^1.0.0: 5458 has-tostringtag@^1.0.0:
@@ -5515,6 +5469,11 @@ has@^1.0.3: @@ -5515,6 +5469,11 @@ has@^1.0.3:
5515 dependencies: 5469 dependencies:
5516 function-bind "^1.1.1" 5470 function-bind "^1.1.1"
5517 5471
  5472 +hash-sum@^2.0.0:
  5473 + version "2.0.0"
  5474 + resolved "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz"
  5475 + integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==
  5476 +
5518 hash.js@^1.1.7: 5477 hash.js@^1.1.7:
5519 version "1.1.7" 5478 version "1.1.7"
5520 resolved "https://registry.npmmirror.com/hash.js/-/hash.js-1.1.7.tgz" 5479 resolved "https://registry.npmmirror.com/hash.js/-/hash.js-1.1.7.tgz"
@@ -5646,7 +5605,7 @@ html-docx-js-typescript@^0.1.5: @@ -5646,7 +5605,7 @@ html-docx-js-typescript@^0.1.5:
5646 5605
5647 html-docx-js@^0.3.1: 5606 html-docx-js@^0.3.1:
5648 version "0.3.1" 5607 version "0.3.1"
5649 - resolved "https://registry.npmmirror.com/html-docx-js/-/html-docx-js-0.3.1.tgz#9713f6587a08d1f0c87a801fe7649a4d0ab07d76" 5608 + resolved "https://registry.npmmirror.com/html-docx-js/-/html-docx-js-0.3.1.tgz"
5650 integrity sha512-QSrMiRhxesqxYCa3f+2Z3ttIHPzSjDOL1tCOmIDIEET7HdabxXND6tAbsFMXAgRG4RADQ3wbl74ydMmjidaDPA== 5609 integrity sha512-QSrMiRhxesqxYCa3f+2Z3ttIHPzSjDOL1tCOmIDIEET7HdabxXND6tAbsFMXAgRG4RADQ3wbl74ydMmjidaDPA==
5651 dependencies: 5610 dependencies:
5652 jszip "^2.3.0" 5611 jszip "^2.3.0"
@@ -5672,7 +5631,7 @@ html-to-image@^1.11.11: @@ -5672,7 +5631,7 @@ html-to-image@^1.11.11:
5672 5631
5673 htmlparser2@^9.1.0: 5632 htmlparser2@^9.1.0:
5674 version "9.1.0" 5633 version "9.1.0"
5675 - resolved "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-9.1.0.tgz#cdb498d8a75a51f739b61d3f718136c369bc8c23" 5634 + resolved "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-9.1.0.tgz"
5676 integrity sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ== 5635 integrity sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==
5677 dependencies: 5636 dependencies:
5678 domelementtype "^2.3.0" 5637 domelementtype "^2.3.0"
@@ -5781,6 +5740,11 @@ indent-string@^4.0.0: @@ -5781,6 +5740,11 @@ indent-string@^4.0.0:
5781 resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" 5740 resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz"
5782 integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== 5741 integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
5783 5742
  5743 +infer-owner@^1.0.4:
  5744 + version "1.0.4"
  5745 + resolved "https://registry.npmmirror.com/infer-owner/-/infer-owner-1.0.4.tgz"
  5746 + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
  5747 +
5784 inflight@^1.0.4: 5748 inflight@^1.0.4:
5785 version "1.0.6" 5749 version "1.0.6"
5786 resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" 5750 resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
@@ -6452,14 +6416,14 @@ jest-watcher@^29.7.0: @@ -6452,14 +6416,14 @@ jest-watcher@^29.7.0:
6452 jest-util "^29.7.0" 6416 jest-util "^29.7.0"
6453 string-length "^4.0.1" 6417 string-length "^4.0.1"
6454 6418
6455 -jest-worker@^27.4.5:  
6456 - version "27.5.1"  
6457 - resolved "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz"  
6458 - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== 6419 +jest-worker@^26.5.0:
  6420 + version "26.6.2"
  6421 + resolved "https://registry.npmmirror.com/jest-worker/-/jest-worker-26.6.2.tgz"
  6422 + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==
6459 dependencies: 6423 dependencies:
6460 "@types/node" "*" 6424 "@types/node" "*"
6461 merge-stream "^2.0.0" 6425 merge-stream "^2.0.0"
6462 - supports-color "^8.0.0" 6426 + supports-color "^7.0.0"
6463 6427
6464 jest-worker@^29.7.0: 6428 jest-worker@^29.7.0:
6465 version "29.7.0" 6429 version "29.7.0"
@@ -6543,7 +6507,12 @@ jsesc@~0.5.0: @@ -6543,7 +6507,12 @@ jsesc@~0.5.0:
6543 resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" 6507 resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz"
6544 integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== 6508 integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==
6545 6509
6546 -json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: 6510 +json-parse-better-errors@^1.0.2:
  6511 + version "1.0.2"
  6512 + resolved "https://registry.npmmirror.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz"
  6513 + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
  6514 +
  6515 +json-parse-even-better-errors@^2.3.0:
6547 version "2.3.1" 6516 version "2.3.1"
6548 resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" 6517 resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz"
6549 integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 6518 integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
@@ -6597,7 +6566,7 @@ jszip@*, jszip@^3.10.1, jszip@^3.4.0: @@ -6597,7 +6566,7 @@ jszip@*, jszip@^3.10.1, jszip@^3.4.0:
6597 6566
6598 jszip@^2.3.0: 6567 jszip@^2.3.0:
6599 version "2.7.0" 6568 version "2.7.0"
6600 - resolved "https://registry.npmmirror.com/jszip/-/jszip-2.7.0.tgz#c420b1e1aa800490724a0dd277e8cca950bc2c41" 6569 + resolved "https://registry.npmmirror.com/jszip/-/jszip-2.7.0.tgz"
6601 integrity sha512-JIsRKRVC3gTRo2vM4Wy9WBC3TRcfnIZU8k65Phi3izkvPH975FowRYtKGT6PxevA0XnJ/yO8b0QwV0ydVyQwfw== 6570 integrity sha512-JIsRKRVC3gTRo2vM4Wy9WBC3TRcfnIZU8k65Phi3izkvPH975FowRYtKGT6PxevA0XnJ/yO8b0QwV0ydVyQwfw==
6602 dependencies: 6571 dependencies:
6603 pako "~1.0.2" 6572 pako "~1.0.2"
@@ -6716,7 +6685,7 @@ listr2@^5.0.7: @@ -6716,7 +6685,7 @@ listr2@^5.0.7:
6716 through "^2.3.8" 6685 through "^2.3.8"
6717 wrap-ansi "^7.0.0" 6686 wrap-ansi "^7.0.0"
6718 6687
6719 -loader-runner@^4.2.0: 6688 +loader-runner@^4.1.0:
6720 version "4.3.0" 6689 version "4.3.0"
6721 resolved "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz" 6690 resolved "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz"
6722 integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== 6691 integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==
@@ -6742,32 +6711,32 @@ lodash-es@^4.17.21: @@ -6742,32 +6711,32 @@ lodash-es@^4.17.21:
6742 6711
6743 lodash._arraycopy@^3.0.0: 6712 lodash._arraycopy@^3.0.0:
6744 version "3.0.0" 6713 version "3.0.0"
6745 - resolved "https://registry.npmmirror.com/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz#76e7b7c1f1fb92547374878a562ed06a3e50f6e1" 6714 + resolved "https://registry.npmmirror.com/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz"
6746 integrity sha512-RHShTDnPKP7aWxlvXKiDT6IX2jCs6YZLCtNhOru/OX2Q/tzX295vVBK5oX1ECtN+2r86S0Ogy8ykP1sgCZAN0A== 6715 integrity sha512-RHShTDnPKP7aWxlvXKiDT6IX2jCs6YZLCtNhOru/OX2Q/tzX295vVBK5oX1ECtN+2r86S0Ogy8ykP1sgCZAN0A==
6747 6716
6748 lodash._arrayeach@^3.0.0: 6717 lodash._arrayeach@^3.0.0:
6749 version "3.0.0" 6718 version "3.0.0"
6750 - resolved "https://registry.npmmirror.com/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz#bab156b2a90d3f1bbd5c653403349e5e5933ef9e" 6719 + resolved "https://registry.npmmirror.com/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz"
6751 integrity sha512-Mn7HidOVcl3mkQtbPsuKR0Fj0N6Q6DQB77CtYncZcJc0bx5qv2q4Gl6a0LC1AN+GSxpnBDNnK3CKEm9XNA4zqQ== 6720 integrity sha512-Mn7HidOVcl3mkQtbPsuKR0Fj0N6Q6DQB77CtYncZcJc0bx5qv2q4Gl6a0LC1AN+GSxpnBDNnK3CKEm9XNA4zqQ==
6752 6721
6753 lodash._basecopy@^3.0.0: 6722 lodash._basecopy@^3.0.0:
6754 version "3.0.1" 6723 version "3.0.1"
6755 - resolved "https://registry.npmmirror.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" 6724 + resolved "https://registry.npmmirror.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz"
6756 integrity sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ== 6725 integrity sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==
6757 6726
6758 lodash._basefor@^3.0.0: 6727 lodash._basefor@^3.0.0:
6759 version "3.0.3" 6728 version "3.0.3"
6760 - resolved "https://registry.npmmirror.com/lodash._basefor/-/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2" 6729 + resolved "https://registry.npmmirror.com/lodash._basefor/-/lodash._basefor-3.0.3.tgz"
6761 integrity sha512-6bc3b8grkpMgDcVJv9JYZAk/mHgcqMljzm7OsbmcE2FGUMmmLQTPHlh/dFqR8LA0GQ7z4K67JSotVKu5058v1A== 6730 integrity sha512-6bc3b8grkpMgDcVJv9JYZAk/mHgcqMljzm7OsbmcE2FGUMmmLQTPHlh/dFqR8LA0GQ7z4K67JSotVKu5058v1A==
6762 6731
6763 lodash._bindcallback@^3.0.0: 6732 lodash._bindcallback@^3.0.0:
6764 version "3.0.1" 6733 version "3.0.1"
6765 - resolved "https://registry.npmmirror.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" 6734 + resolved "https://registry.npmmirror.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz"
6766 integrity sha512-2wlI0JRAGX8WEf4Gm1p/mv/SZ+jLijpj0jyaE/AXeuQphzCgD8ZQW4oSpoN8JAopujOFGU3KMuq7qfHBWlGpjQ== 6735 integrity sha512-2wlI0JRAGX8WEf4Gm1p/mv/SZ+jLijpj0jyaE/AXeuQphzCgD8ZQW4oSpoN8JAopujOFGU3KMuq7qfHBWlGpjQ==
6767 6736
6768 lodash._createassigner@^3.0.0: 6737 lodash._createassigner@^3.0.0:
6769 version "3.1.1" 6738 version "3.1.1"
6770 - resolved "https://registry.npmmirror.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" 6739 + resolved "https://registry.npmmirror.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz"
6771 integrity sha512-LziVL7IDnJjQeeV95Wvhw6G28Z8Q6da87LWKOPWmzBLv4u6FAT/x5v00pyGW0u38UoogNF2JnD3bGgZZDaNEBw== 6740 integrity sha512-LziVL7IDnJjQeeV95Wvhw6G28Z8Q6da87LWKOPWmzBLv4u6FAT/x5v00pyGW0u38UoogNF2JnD3bGgZZDaNEBw==
6772 dependencies: 6741 dependencies:
6773 lodash._bindcallback "^3.0.0" 6742 lodash._bindcallback "^3.0.0"
@@ -6776,17 +6745,17 @@ lodash._createassigner@^3.0.0: @@ -6776,17 +6745,17 @@ lodash._createassigner@^3.0.0:
6776 6745
6777 lodash._getnative@^3.0.0: 6746 lodash._getnative@^3.0.0:
6778 version "3.9.1" 6747 version "3.9.1"
6779 - resolved "https://registry.npmmirror.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" 6748 + resolved "https://registry.npmmirror.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz"
6780 integrity sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA== 6749 integrity sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==
6781 6750
6782 lodash._isiterateecall@^3.0.0: 6751 lodash._isiterateecall@^3.0.0:
6783 version "3.0.9" 6752 version "3.0.9"
6784 - resolved "https://registry.npmmirror.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" 6753 + resolved "https://registry.npmmirror.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz"
6785 integrity sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ== 6754 integrity sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ==
6786 6755
6787 lodash._root@^3.0.0: 6756 lodash._root@^3.0.0:
6788 version "3.0.1" 6757 version "3.0.1"
6789 - resolved "https://registry.npmmirror.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" 6758 + resolved "https://registry.npmmirror.com/lodash._root/-/lodash._root-3.0.1.tgz"
6790 integrity sha512-O0pWuFSK6x4EXhM1dhZ8gchNtG7JMqBtrHdoUFUWXD7dJnNSUze1GuyQr5sOs0aCvgGeI3o/OJW8f4ca7FDxmQ== 6759 integrity sha512-O0pWuFSK6x4EXhM1dhZ8gchNtG7JMqBtrHdoUFUWXD7dJnNSUze1GuyQr5sOs0aCvgGeI3o/OJW8f4ca7FDxmQ==
6791 6760
6792 lodash.debounce@^4.0.8: 6761 lodash.debounce@^4.0.8:
@@ -6796,7 +6765,7 @@ lodash.debounce@^4.0.8: @@ -6796,7 +6765,7 @@ lodash.debounce@^4.0.8:
6796 6765
6797 lodash.escape@^3.0.0: 6766 lodash.escape@^3.0.0:
6798 version "3.2.0" 6767 version "3.2.0"
6799 - resolved "https://registry.npmmirror.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" 6768 + resolved "https://registry.npmmirror.com/lodash.escape/-/lodash.escape-3.2.0.tgz"
6800 integrity sha512-n1PZMXgaaDWZDSvuNZ/8XOcYO2hOKDqZel5adtR30VKQAtoWs/5AOeFA0vPV8moiPzlqe7F4cP2tzpFewQyelQ== 6769 integrity sha512-n1PZMXgaaDWZDSvuNZ/8XOcYO2hOKDqZel5adtR30VKQAtoWs/5AOeFA0vPV8moiPzlqe7F4cP2tzpFewQyelQ==
6801 dependencies: 6770 dependencies:
6802 lodash._root "^3.0.0" 6771 lodash._root "^3.0.0"
@@ -6808,17 +6777,17 @@ lodash.escape@^4.0.1: @@ -6808,17 +6777,17 @@ lodash.escape@^4.0.1:
6808 6777
6809 lodash.isarguments@^3.0.0: 6778 lodash.isarguments@^3.0.0:
6810 version "3.1.0" 6779 version "3.1.0"
6811 - resolved "https://registry.npmmirror.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" 6780 + resolved "https://registry.npmmirror.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz"
6812 integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== 6781 integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==
6813 6782
6814 lodash.isarray@^3.0.0: 6783 lodash.isarray@^3.0.0:
6815 version "3.0.4" 6784 version "3.0.4"
6816 - resolved "https://registry.npmmirror.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" 6785 + resolved "https://registry.npmmirror.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz"
6817 integrity sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ== 6786 integrity sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==
6818 6787
6819 lodash.isplainobject@^3.0.0: 6788 lodash.isplainobject@^3.0.0:
6820 version "3.2.0" 6789 version "3.2.0"
6821 - resolved "https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz#9a8238ae16b200432960cd7346512d0123fbf4c5" 6790 + resolved "https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz"
6822 integrity sha512-P4wZnho5curNqeEq/x292Pb57e1v+woR7DJ84DURelKB46lby8aDEGVobSaYtzHdQBWQrJSdxcCwjlGOvvdIyg== 6791 integrity sha512-P4wZnho5curNqeEq/x292Pb57e1v+woR7DJ84DURelKB46lby8aDEGVobSaYtzHdQBWQrJSdxcCwjlGOvvdIyg==
6823 dependencies: 6792 dependencies:
6824 lodash._basefor "^3.0.0" 6793 lodash._basefor "^3.0.0"
@@ -6827,12 +6796,12 @@ lodash.isplainobject@^3.0.0: @@ -6827,12 +6796,12 @@ lodash.isplainobject@^3.0.0:
6827 6796
6828 lodash.istypedarray@^3.0.0: 6797 lodash.istypedarray@^3.0.0:
6829 version "3.0.6" 6798 version "3.0.6"
6830 - resolved "https://registry.npmmirror.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62" 6799 + resolved "https://registry.npmmirror.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz"
6831 integrity sha512-lGWJ6N8AA3KSv+ZZxlTdn4f6A7kMfpJboeyvbFdE7IU9YAgweODqmOgdUHOA+c6lVWeVLysdaxciFXi+foVsWw== 6800 integrity sha512-lGWJ6N8AA3KSv+ZZxlTdn4f6A7kMfpJboeyvbFdE7IU9YAgweODqmOgdUHOA+c6lVWeVLysdaxciFXi+foVsWw==
6832 6801
6833 lodash.keys@^3.0.0: 6802 lodash.keys@^3.0.0:
6834 version "3.1.2" 6803 version "3.1.2"
6835 - resolved "https://registry.npmmirror.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" 6804 + resolved "https://registry.npmmirror.com/lodash.keys/-/lodash.keys-3.1.2.tgz"
6836 integrity sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ== 6805 integrity sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ==
6837 dependencies: 6806 dependencies:
6838 lodash._getnative "^3.0.0" 6807 lodash._getnative "^3.0.0"
@@ -6841,7 +6810,7 @@ lodash.keys@^3.0.0: @@ -6841,7 +6810,7 @@ lodash.keys@^3.0.0:
6841 6810
6842 lodash.keysin@^3.0.0: 6811 lodash.keysin@^3.0.0:
6843 version "3.0.8" 6812 version "3.0.8"
6844 - resolved "https://registry.npmmirror.com/lodash.keysin/-/lodash.keysin-3.0.8.tgz#22c4493ebbedb1427962a54b445b2c8a767fb47f" 6813 + resolved "https://registry.npmmirror.com/lodash.keysin/-/lodash.keysin-3.0.8.tgz"
6845 integrity sha512-YDB/5xkL3fBKFMDaC+cfGV00pbiJ6XoJIfRmBhv7aR6wWtbCW6IzkiWnTfkiHTF6ALD7ff83dAtB3OEaSoyQPg== 6814 integrity sha512-YDB/5xkL3fBKFMDaC+cfGV00pbiJ6XoJIfRmBhv7aR6wWtbCW6IzkiWnTfkiHTF6ALD7ff83dAtB3OEaSoyQPg==
6846 dependencies: 6815 dependencies:
6847 lodash.isarguments "^3.0.0" 6816 lodash.isarguments "^3.0.0"
@@ -6849,7 +6818,7 @@ lodash.keysin@^3.0.0: @@ -6849,7 +6818,7 @@ lodash.keysin@^3.0.0:
6849 6818
6850 lodash.merge@^3.2.0: 6819 lodash.merge@^3.2.0:
6851 version "3.3.2" 6820 version "3.3.2"
6852 - resolved "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-3.3.2.tgz#0d90d93ed637b1878437bb3e21601260d7afe994" 6821 + resolved "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-3.3.2.tgz"
6853 integrity sha512-ZgGZpRhWLjivGUbjtApZR4HyLv/UAyoYqESVYkK4aLBJVHRrbFpG+GNnE9JPijliME4LkKM0SFI/WyOiBiv1+w== 6822 integrity sha512-ZgGZpRhWLjivGUbjtApZR4HyLv/UAyoYqESVYkK4aLBJVHRrbFpG+GNnE9JPijliME4LkKM0SFI/WyOiBiv1+w==
6854 dependencies: 6823 dependencies:
6855 lodash._arraycopy "^3.0.0" 6824 lodash._arraycopy "^3.0.0"
@@ -6871,12 +6840,12 @@ lodash.merge@^4.6.2: @@ -6871,12 +6840,12 @@ lodash.merge@^4.6.2:
6871 6840
6872 lodash.restparam@^3.0.0: 6841 lodash.restparam@^3.0.0:
6873 version "3.6.1" 6842 version "3.6.1"
6874 - resolved "https://registry.npmmirror.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" 6843 + resolved "https://registry.npmmirror.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz"
6875 integrity sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw== 6844 integrity sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw==
6876 6845
6877 lodash.toplainobject@^3.0.0: 6846 lodash.toplainobject@^3.0.0:
6878 version "3.0.0" 6847 version "3.0.0"
6879 - resolved "https://registry.npmmirror.com/lodash.toplainobject/-/lodash.toplainobject-3.0.0.tgz#28790ad942d293d78aa663a07ecf7f52ca04198d" 6848 + resolved "https://registry.npmmirror.com/lodash.toplainobject/-/lodash.toplainobject-3.0.0.tgz"
6880 integrity sha512-wMI0Ju1bvSmnBS3EcRRH/3zDnZOPpDtMtNDzbbNMKuTrEpALsf+sPyMeogmv63Y11qZQO7H1xFzohIEGRMjPYA== 6849 integrity sha512-wMI0Ju1bvSmnBS3EcRRH/3zDnZOPpDtMtNDzbbNMKuTrEpALsf+sPyMeogmv63Y11qZQO7H1xFzohIEGRMjPYA==
6881 dependencies: 6850 dependencies:
6882 lodash._basecopy "^3.0.0" 6851 lodash._basecopy "^3.0.0"
@@ -6937,11 +6906,23 @@ lru-cache@^6.0.0: @@ -6937,11 +6906,23 @@ lru-cache@^6.0.0:
6937 dependencies: 6906 dependencies:
6938 yallist "^4.0.0" 6907 yallist "^4.0.0"
6939 6908
  6909 +lucide-react@^0.484.0:
  6910 + version "0.484.0"
  6911 + resolved "https://registry.npmmirror.com/lucide-react/-/lucide-react-0.484.0.tgz"
  6912 + integrity sha512-oZy8coK9kZzvqhSgfbGkPtTgyjpBvs3ukLgDPv14dSOZtBtboryWF5o8i3qen7QbGg7JhiJBz5mK1p8YoMZTLQ==
  6913 +
6940 lz-string@^1.5.0: 6914 lz-string@^1.5.0:
6941 version "1.5.0" 6915 version "1.5.0"
6942 resolved "https://registry.npmmirror.com/lz-string/-/lz-string-1.5.0.tgz" 6916 resolved "https://registry.npmmirror.com/lz-string/-/lz-string-1.5.0.tgz"
6943 integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== 6917 integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==
6944 6918
  6919 +make-dir@^3.0.2:
  6920 + version "3.1.0"
  6921 + resolved "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz"
  6922 + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
  6923 + dependencies:
  6924 + semver "^6.0.0"
  6925 +
6945 make-dir@^4.0.0: 6926 make-dir@^4.0.0:
6946 version "4.0.0" 6927 version "4.0.0"
6947 resolved "https://registry.npmmirror.com/make-dir/-/make-dir-4.0.0.tgz" 6928 resolved "https://registry.npmmirror.com/make-dir/-/make-dir-4.0.0.tgz"
@@ -6982,7 +6963,7 @@ marked@^4.0.14: @@ -6982,7 +6963,7 @@ marked@^4.0.14:
6982 6963
6983 math-intrinsics@^1.1.0: 6964 math-intrinsics@^1.1.0:
6984 version "1.1.0" 6965 version "1.1.0"
6985 - resolved "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" 6966 + resolved "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz"
6986 integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== 6967 integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
6987 6968
6988 mdast-util-definitions@^5.0.0: 6969 mdast-util-definitions@^5.0.0:
@@ -7506,6 +7487,11 @@ min-indent@^1.0.0: @@ -7506,6 +7487,11 @@ min-indent@^1.0.0:
7506 resolved "https://registry.npmmirror.com/min-indent/-/min-indent-1.0.1.tgz" 7487 resolved "https://registry.npmmirror.com/min-indent/-/min-indent-1.0.1.tgz"
7507 integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== 7488 integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
7508 7489
  7490 +mind-elixir@^4.4.3:
  7491 + version "4.4.3"
  7492 + resolved "https://registry.npmmirror.com/mind-elixir/-/mind-elixir-4.4.3.tgz#bef5650a29276856bef089bc54576048c87eeabd"
  7493 + integrity sha512-i2GBFtZ4Z6pv5z5/QcfQFrbVTNa0OWayfx7OvQpzNn7X62l6xJn0y3dKxQ/KuT50HxgZiyRptY5J0xBc2qeuZw==
  7494 +
7509 minimalistic-assert@^1.0.1: 7495 minimalistic-assert@^1.0.1:
7510 version "1.0.1" 7496 version "1.0.1"
7511 resolved "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" 7497 resolved "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"
@@ -7523,6 +7509,52 @@ minimist@^1.2.0, minimist@^1.2.6: @@ -7523,6 +7509,52 @@ minimist@^1.2.0, minimist@^1.2.6:
7523 resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" 7509 resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz"
7524 integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== 7510 integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
7525 7511
  7512 +minipass-collect@^1.0.2:
  7513 + version "1.0.2"
  7514 + resolved "https://registry.npmmirror.com/minipass-collect/-/minipass-collect-1.0.2.tgz"
  7515 + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==
  7516 + dependencies:
  7517 + minipass "^3.0.0"
  7518 +
  7519 +minipass-flush@^1.0.5:
  7520 + version "1.0.5"
  7521 + resolved "https://registry.npmmirror.com/minipass-flush/-/minipass-flush-1.0.5.tgz"
  7522 + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==
  7523 + dependencies:
  7524 + minipass "^3.0.0"
  7525 +
  7526 +minipass-pipeline@^1.2.2:
  7527 + version "1.2.4"
  7528 + resolved "https://registry.npmmirror.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz"
  7529 + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==
  7530 + dependencies:
  7531 + minipass "^3.0.0"
  7532 +
  7533 +minipass@^3.0.0, minipass@^3.1.1:
  7534 + version "3.3.6"
  7535 + resolved "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz"
  7536 + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==
  7537 + dependencies:
  7538 + yallist "^4.0.0"
  7539 +
  7540 +minipass@^5.0.0:
  7541 + version "5.0.0"
  7542 + resolved "https://registry.npmmirror.com/minipass/-/minipass-5.0.0.tgz"
  7543 + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==
  7544 +
  7545 +minizlib@^2.1.1:
  7546 + version "2.1.2"
  7547 + resolved "https://registry.npmmirror.com/minizlib/-/minizlib-2.1.2.tgz"
  7548 + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==
  7549 + dependencies:
  7550 + minipass "^3.0.0"
  7551 + yallist "^4.0.0"
  7552 +
  7553 +mkdirp@^1.0.3, mkdirp@^1.0.4:
  7554 + version "1.0.4"
  7555 + resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz"
  7556 + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
  7557 +
7526 mri@^1.1.0: 7558 mri@^1.1.0:
7527 version "1.2.0" 7559 version "1.2.0"
7528 resolved "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz" 7560 resolved "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz"
@@ -7600,20 +7632,10 @@ node-int64@^0.4.0: @@ -7600,20 +7632,10 @@ node-int64@^0.4.0:
7600 resolved "https://registry.npmmirror.com/node-int64/-/node-int64-0.4.0.tgz" 7632 resolved "https://registry.npmmirror.com/node-int64/-/node-int64-0.4.0.tgz"
7601 integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== 7633 integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
7602 7634
7603 -node-releases@^2.0.12:  
7604 - version "2.0.12"  
7605 - resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.12.tgz"  
7606 - integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==  
7607 -  
7608 -node-releases@^2.0.18:  
7609 - version "2.0.18"  
7610 - resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.18.tgz"  
7611 - integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==  
7612 -  
7613 -node-releases@^2.0.8:  
7614 - version "2.0.10"  
7615 - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz"  
7616 - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== 7635 +node-releases@^2.0.19:
  7636 + version "2.0.19"
  7637 + resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.19.tgz"
  7638 + integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==
7617 7639
7618 non-layered-tidy-tree-layout@^2.0.2: 7640 non-layered-tidy-tree-layout@^2.0.2:
7619 version "2.0.2" 7641 version "2.0.2"
@@ -7813,7 +7835,7 @@ pako@~1.0.2: @@ -7813,7 +7835,7 @@ pako@~1.0.2:
7813 7835
7814 parchment@^1.1.2, parchment@^1.1.4: 7836 parchment@^1.1.2, parchment@^1.1.4:
7815 version "1.1.4" 7837 version "1.1.4"
7816 - resolved "https://registry.npmmirror.com/parchment/-/parchment-1.1.4.tgz#aeded7ab938fe921d4c34bc339ce1168bc2ffde5" 7838 + resolved "https://registry.npmmirror.com/parchment/-/parchment-1.1.4.tgz"
7817 integrity sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg== 7839 integrity sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==
7818 7840
7819 parent-module@^1.0.0: 7841 parent-module@^1.0.0:
@@ -7835,7 +7857,7 @@ parse-json@^5.0.0, parse-json@^5.2.0: @@ -7835,7 +7857,7 @@ parse-json@^5.0.0, parse-json@^5.2.0:
7835 7857
7836 parse5-htmlparser2-tree-adapter@^7.0.0: 7858 parse5-htmlparser2-tree-adapter@^7.0.0:
7837 version "7.1.0" 7859 version "7.1.0"
7838 - resolved "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz#b5a806548ed893a43e24ccb42fbb78069311e81b" 7860 + resolved "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz"
7839 integrity sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g== 7861 integrity sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==
7840 dependencies: 7862 dependencies:
7841 domhandler "^5.0.3" 7863 domhandler "^5.0.3"
@@ -7843,25 +7865,18 @@ parse5-htmlparser2-tree-adapter@^7.0.0: @@ -7843,25 +7865,18 @@ parse5-htmlparser2-tree-adapter@^7.0.0:
7843 7865
7844 parse5-parser-stream@^7.1.2: 7866 parse5-parser-stream@^7.1.2:
7845 version "7.1.2" 7867 version "7.1.2"
7846 - resolved "https://registry.npmmirror.com/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz#d7c20eadc37968d272e2c02660fff92dd27e60e1" 7868 + resolved "https://registry.npmmirror.com/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz"
7847 integrity sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow== 7869 integrity sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==
7848 dependencies: 7870 dependencies:
7849 parse5 "^7.0.0" 7871 parse5 "^7.0.0"
7850 7872
7851 -parse5@^7.0.0, parse5@^7.1.1: 7873 +parse5@^7.0.0, parse5@^7.1.1, parse5@^7.1.2:
7852 version "7.1.2" 7874 version "7.1.2"
7853 resolved "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz" 7875 resolved "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz"
7854 integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== 7876 integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==
7855 dependencies: 7877 dependencies:
7856 entities "^4.4.0" 7878 entities "^4.4.0"
7857 7879
7858 -parse5@^7.1.2:  
7859 - version "7.2.1"  
7860 - resolved "https://registry.npmmirror.com/parse5/-/parse5-7.2.1.tgz#8928f55915e6125f430cc44309765bf17556a33a"  
7861 - integrity sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==  
7862 - dependencies:  
7863 - entities "^4.5.0"  
7864 -  
7865 path-exists@^4.0.0: 7880 path-exists@^4.0.0:
7866 version "4.0.0" 7881 version "4.0.0"
7867 resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" 7882 resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
@@ -7892,15 +7907,10 @@ path-type@^4.0.0: @@ -7892,15 +7907,10 @@ path-type@^4.0.0:
7892 resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" 7907 resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"
7893 integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 7908 integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
7894 7909
7895 -picocolors@^1.0.0:  
7896 - version "1.0.0"  
7897 - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"  
7898 - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==  
7899 -  
7900 -picocolors@^1.0.1:  
7901 - version "1.0.1"  
7902 - resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz"  
7903 - integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== 7910 +picocolors@^1.0.0, picocolors@^1.1.1:
  7911 + version "1.1.1"
  7912 + resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz"
  7913 + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
7904 7914
7905 picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: 7915 picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1:
7906 version "2.3.1" 7916 version "2.3.1"
@@ -7917,7 +7927,7 @@ pirates@^4.0.4: @@ -7917,7 +7927,7 @@ pirates@^4.0.4:
7917 resolved "https://registry.npmmirror.com/pirates/-/pirates-4.0.6.tgz" 7927 resolved "https://registry.npmmirror.com/pirates/-/pirates-4.0.6.tgz"
7918 integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== 7928 integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
7919 7929
7920 -pkg-dir@^4.2.0: 7930 +pkg-dir@^4.1.0, pkg-dir@^4.2.0:
7921 version "4.2.0" 7931 version "4.2.0"
7922 resolved "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz" 7932 resolved "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz"
7923 integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== 7933 integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
@@ -7973,6 +7983,11 @@ process-nextick-args@~2.0.0: @@ -7973,6 +7983,11 @@ process-nextick-args@~2.0.0:
7973 resolved "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz" 7983 resolved "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz"
7974 integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 7984 integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
7975 7985
  7986 +promise-inflight@^1.0.1:
  7987 + version "1.0.1"
  7988 + resolved "https://registry.npmmirror.com/promise-inflight/-/promise-inflight-1.0.1.tgz"
  7989 + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==
  7990 +
7976 prompts@^2.0.1: 7991 prompts@^2.0.1:
7977 version "2.4.2" 7992 version "2.4.2"
7978 resolved "https://registry.npmmirror.com/prompts/-/prompts-2.4.2.tgz" 7993 resolved "https://registry.npmmirror.com/prompts/-/prompts-2.4.2.tgz"
@@ -8032,7 +8047,7 @@ queue-microtask@^1.2.2: @@ -8032,7 +8047,7 @@ queue-microtask@^1.2.2:
8032 8047
8033 quill-delta@^3.6.2: 8048 quill-delta@^3.6.2:
8034 version "3.6.3" 8049 version "3.6.3"
8035 - resolved "https://registry.npmmirror.com/quill-delta/-/quill-delta-3.6.3.tgz#b19fd2b89412301c60e1ff213d8d860eac0f1032" 8050 + resolved "https://registry.npmmirror.com/quill-delta/-/quill-delta-3.6.3.tgz"
8036 integrity sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg== 8051 integrity sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==
8037 dependencies: 8052 dependencies:
8038 deep-equal "^1.0.1" 8053 deep-equal "^1.0.1"
@@ -8041,7 +8056,7 @@ quill-delta@^3.6.2: @@ -8041,7 +8056,7 @@ quill-delta@^3.6.2:
8041 8056
8042 quill@^1.3.7: 8057 quill@^1.3.7:
8043 version "1.3.7" 8058 version "1.3.7"
8044 - resolved "https://registry.npmmirror.com/quill/-/quill-1.3.7.tgz#da5b2f3a2c470e932340cdbf3668c9f21f9286e8" 8059 + resolved "https://registry.npmmirror.com/quill/-/quill-1.3.7.tgz"
8045 integrity sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g== 8060 integrity sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==
8046 dependencies: 8061 dependencies:
8047 clone "^2.1.1" 8062 clone "^2.1.1"
@@ -8470,7 +8485,7 @@ react-markdown@^8.0.7: @@ -8470,7 +8485,7 @@ react-markdown@^8.0.7:
8470 8485
8471 react-quill@^2.0.0: 8486 react-quill@^2.0.0:
8472 version "2.0.0" 8487 version "2.0.0"
8473 - resolved "https://registry.npmmirror.com/react-quill/-/react-quill-2.0.0.tgz#67a0100f58f96a246af240c9fa6841b363b3e017" 8488 + resolved "https://registry.npmmirror.com/react-quill/-/react-quill-2.0.0.tgz"
8474 integrity sha512-4qQtv1FtCfLgoD3PXAur5RyxuUbPXQGOHgTlFie3jtxp43mXDtzCKaOgQ3mLyZfi1PUlyjycfivKelFhy13QUg== 8489 integrity sha512-4qQtv1FtCfLgoD3PXAur5RyxuUbPXQGOHgTlFie3jtxp43mXDtzCKaOgQ3mLyZfi1PUlyjycfivKelFhy13QUg==
8475 dependencies: 8490 dependencies:
8476 "@types/quill" "^1.3.10" 8491 "@types/quill" "^1.3.10"
@@ -8570,18 +8585,9 @@ regenerator-transform@^0.15.1: @@ -8570,18 +8585,9 @@ regenerator-transform@^0.15.1:
8570 dependencies: 8585 dependencies:
8571 "@babel/runtime" "^7.8.4" 8586 "@babel/runtime" "^7.8.4"
8572 8587
8573 -regexp.prototype.flags@^1.4.3:  
8574 - version "1.4.3"  
8575 - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz"  
8576 - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==  
8577 - dependencies:  
8578 - call-bind "^1.0.2"  
8579 - define-properties "^1.1.3"  
8580 - functions-have-names "^1.2.2"  
8581 -  
8582 -regexp.prototype.flags@^1.5.1: 8588 +regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.1:
8583 version "1.5.4" 8589 version "1.5.4"
8584 - resolved "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz#1ad6c62d44a259007e55b3970e00f746efbcaa19" 8590 + resolved "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz"
8585 integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== 8591 integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==
8586 dependencies: 8592 dependencies:
8587 call-bind "^1.0.8" 8593 call-bind "^1.0.8"
@@ -8820,12 +8826,7 @@ sade@^1.7.3: @@ -8820,12 +8826,7 @@ sade@^1.7.3:
8820 dependencies: 8826 dependencies:
8821 mri "^1.1.0" 8827 mri "^1.1.0"
8822 8828
8823 -safe-buffer@^5.1.0:  
8824 - version "5.2.1"  
8825 - resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz"  
8826 - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==  
8827 -  
8828 -safe-buffer@~5.1.0, safe-buffer@~5.1.1: 8829 +safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
8829 version "5.1.2" 8830 version "5.1.2"
8830 resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz" 8831 resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz"
8831 integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 8832 integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
@@ -8872,7 +8873,7 @@ scheduler@^0.23.0: @@ -8872,7 +8873,7 @@ scheduler@^0.23.0:
8872 dependencies: 8873 dependencies:
8873 loose-envify "^1.1.0" 8874 loose-envify "^1.1.0"
8874 8875
8875 -schema-utils@^3.1.1, schema-utils@^3.2.0: 8876 +schema-utils@^3.0.0:
8876 version "3.3.0" 8877 version "3.3.0"
8877 resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz" 8878 resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz"
8878 integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== 8879 integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==
@@ -8888,11 +8889,16 @@ scroll-into-view-if-needed@^3.1.0: @@ -8888,11 +8889,16 @@ scroll-into-view-if-needed@^3.1.0:
8888 dependencies: 8889 dependencies:
8889 compute-scroll-into-view "^3.0.2" 8890 compute-scroll-into-view "^3.0.2"
8890 8891
8891 -semver@^6.1.1, semver@^6.1.2, semver@^6.3.0, semver@^6.3.1: 8892 +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0, semver@^6.3.1:
8892 version "6.3.1" 8893 version "6.3.1"
8893 resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" 8894 resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
8894 integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== 8895 integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
8895 8896
  8897 +semver@^7.3.5:
  8898 + version "7.7.1"
  8899 + resolved "https://registry.npmmirror.com/semver/-/semver-7.7.1.tgz"
  8900 + integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==
  8901 +
8896 semver@^7.5.3: 8902 semver@^7.5.3:
8897 version "7.6.3" 8903 version "7.6.3"
8898 resolved "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz" 8904 resolved "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz"
@@ -8905,16 +8911,16 @@ semver@^7.5.4: @@ -8905,16 +8911,16 @@ semver@^7.5.4:
8905 dependencies: 8911 dependencies:
8906 lru-cache "^6.0.0" 8912 lru-cache "^6.0.0"
8907 8913
8908 -serialize-javascript@^6.0.1:  
8909 - version "6.0.1"  
8910 - resolved "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz"  
8911 - integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== 8914 +serialize-javascript@^5.0.1:
  8915 + version "5.0.1"
  8916 + resolved "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz"
  8917 + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==
8912 dependencies: 8918 dependencies:
8913 randombytes "^2.1.0" 8919 randombytes "^2.1.0"
8914 8920
8915 set-function-length@^1.2.2: 8921 set-function-length@^1.2.2:
8916 version "1.2.2" 8922 version "1.2.2"
8917 - resolved "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" 8923 + resolved "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz"
8918 integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== 8924 integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==
8919 dependencies: 8925 dependencies:
8920 define-data-property "^1.1.4" 8926 define-data-property "^1.1.4"
@@ -8926,7 +8932,7 @@ set-function-length@^1.2.2: @@ -8926,7 +8932,7 @@ set-function-length@^1.2.2:
8926 8932
8927 set-function-name@^2.0.2: 8933 set-function-name@^2.0.2:
8928 version "2.0.2" 8934 version "2.0.2"
8929 - resolved "https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" 8935 + resolved "https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.2.tgz"
8930 integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== 8936 integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==
8931 dependencies: 8937 dependencies:
8932 define-data-property "^1.1.4" 8938 define-data-property "^1.1.4"
@@ -9016,10 +9022,15 @@ slice-ansi@^5.0.0: @@ -9016,10 +9022,15 @@ slice-ansi@^5.0.0:
9016 ansi-styles "^6.0.0" 9022 ansi-styles "^6.0.0"
9017 is-fullwidth-code-point "^4.0.0" 9023 is-fullwidth-code-point "^4.0.0"
9018 9024
  9025 +source-list-map@^2.0.0, source-list-map@^2.0.1:
  9026 + version "2.0.1"
  9027 + resolved "https://registry.npmmirror.com/source-list-map/-/source-list-map-2.0.1.tgz"
  9028 + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
  9029 +
9019 "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: 9030 "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2:
9020 - version "1.0.2"  
9021 - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz"  
9022 - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 9031 + version "1.2.1"
  9032 + resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz"
  9033 + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
9023 9034
9024 source-map-support@0.5.13: 9035 source-map-support@0.5.13:
9025 version "0.5.13" 9036 version "0.5.13"
@@ -9069,6 +9080,13 @@ ssf@~0.11.2: @@ -9069,6 +9080,13 @@ ssf@~0.11.2:
9069 dependencies: 9080 dependencies:
9070 frac "~1.1.2" 9081 frac "~1.1.2"
9071 9082
  9083 +ssri@^8.0.1:
  9084 + version "8.0.1"
  9085 + resolved "https://registry.npmmirror.com/ssri/-/ssri-8.0.1.tgz"
  9086 + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==
  9087 + dependencies:
  9088 + minipass "^3.1.1"
  9089 +
9072 stable@^0.1.8: 9090 stable@^0.1.8:
9073 version "0.1.8" 9091 version "0.1.8"
9074 resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" 9092 resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz"
@@ -9254,7 +9272,7 @@ supports-color@^5.3.0: @@ -9254,7 +9272,7 @@ supports-color@^5.3.0:
9254 dependencies: 9272 dependencies:
9255 has-flag "^3.0.0" 9273 has-flag "^3.0.0"
9256 9274
9257 -supports-color@^7.1.0: 9275 +supports-color@^7.0.0, supports-color@^7.1.0:
9258 version "7.2.0" 9276 version "7.2.0"
9259 resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" 9277 resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
9260 integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 9278 integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
@@ -9304,26 +9322,42 @@ synckit@^0.8.5, synckit@^0.8.6: @@ -9304,26 +9322,42 @@ synckit@^0.8.5, synckit@^0.8.6:
9304 "@pkgr/core" "^0.1.0" 9322 "@pkgr/core" "^0.1.0"
9305 tslib "^2.6.2" 9323 tslib "^2.6.2"
9306 9324
9307 -tapable@^2.1.1, tapable@^2.2.0: 9325 +tapable@^2.0.0, tapable@^2.2.0:
9308 version "2.2.1" 9326 version "2.2.1"
9309 resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" 9327 resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz"
9310 integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== 9328 integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
9311 9329
9312 -terser-webpack-plugin@^5.3.7:  
9313 - version "5.3.9"  
9314 - resolved "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz"  
9315 - integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== 9330 +tar@^6.0.2:
  9331 + version "6.2.1"
  9332 + resolved "https://registry.npmmirror.com/tar/-/tar-6.2.1.tgz"
  9333 + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==
  9334 + dependencies:
  9335 + chownr "^2.0.0"
  9336 + fs-minipass "^2.0.0"
  9337 + minipass "^5.0.0"
  9338 + minizlib "^2.1.1"
  9339 + mkdirp "^1.0.3"
  9340 + yallist "^4.0.0"
  9341 +
  9342 +terser-webpack-plugin@^4.1.0:
  9343 + version "4.2.3"
  9344 + resolved "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz"
  9345 + integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==
9316 dependencies: 9346 dependencies:
9317 - "@jridgewell/trace-mapping" "^0.3.17"  
9318 - jest-worker "^27.4.5"  
9319 - schema-utils "^3.1.1"  
9320 - serialize-javascript "^6.0.1"  
9321 - terser "^5.16.8" 9347 + cacache "^15.0.5"
  9348 + find-cache-dir "^3.3.1"
  9349 + jest-worker "^26.5.0"
  9350 + p-limit "^3.0.2"
  9351 + schema-utils "^3.0.0"
  9352 + serialize-javascript "^5.0.1"
  9353 + source-map "^0.6.1"
  9354 + terser "^5.3.4"
  9355 + webpack-sources "^1.4.3"
9322 9356
9323 -terser@^5.16.8:  
9324 - version "5.18.2"  
9325 - resolved "https://registry.npmmirror.com/terser/-/terser-5.18.2.tgz"  
9326 - integrity sha512-Ah19JS86ypbJzTzvUCX7KOsEIhDaRONungA4aYBjEP3JZRf4ocuDzTg4QWZnPn9DEMiMYGJPiSOy7aykoCc70w== 9357 +terser@^5.3.4:
  9358 + version "5.39.0"
  9359 + resolved "https://registry.npmmirror.com/terser/-/terser-5.39.0.tgz"
  9360 + integrity sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==
9327 dependencies: 9361 dependencies:
9328 "@jridgewell/source-map" "^0.3.3" 9362 "@jridgewell/source-map" "^0.3.3"
9329 acorn "^8.8.2" 9363 acorn "^8.8.2"
@@ -9545,7 +9579,7 @@ undici-types@~6.20.0: @@ -9545,7 +9579,7 @@ undici-types@~6.20.0:
9545 9579
9546 undici@^6.19.5: 9580 undici@^6.19.5:
9547 version "6.21.2" 9581 version "6.21.2"
9548 - resolved "https://registry.npmmirror.com/undici/-/undici-6.21.2.tgz#49c5884e8f9039c65a89ee9018ef3c8e2f1f4928" 9582 + resolved "https://registry.npmmirror.com/undici/-/undici-6.21.2.tgz"
9549 integrity sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g== 9583 integrity sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g==
9550 9584
9551 unicode-canonical-property-names-ecmascript@^2.0.0: 9585 unicode-canonical-property-names-ecmascript@^2.0.0:
@@ -9584,6 +9618,20 @@ unified@^10.0.0: @@ -9584,6 +9618,20 @@ unified@^10.0.0:
9584 trough "^2.0.0" 9618 trough "^2.0.0"
9585 vfile "^5.0.0" 9619 vfile "^5.0.0"
9586 9620
  9621 +unique-filename@^1.1.1:
  9622 + version "1.1.1"
  9623 + resolved "https://registry.npmmirror.com/unique-filename/-/unique-filename-1.1.1.tgz"
  9624 + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==
  9625 + dependencies:
  9626 + unique-slug "^2.0.0"
  9627 +
  9628 +unique-slug@^2.0.0:
  9629 + version "2.0.2"
  9630 + resolved "https://registry.npmmirror.com/unique-slug/-/unique-slug-2.0.2.tgz"
  9631 + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==
  9632 + dependencies:
  9633 + imurmurhash "^0.1.4"
  9634 +
9587 unist-util-find-after@^4.0.0: 9635 unist-util-find-after@^4.0.0:
9588 version "4.0.1" 9636 version "4.0.1"
9589 resolved "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-4.0.1.tgz" 9637 resolved "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-4.0.1.tgz"
@@ -9653,29 +9701,13 @@ unpipe@1.0.0: @@ -9653,29 +9701,13 @@ unpipe@1.0.0:
9653 resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" 9701 resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
9654 integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== 9702 integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
9655 9703
9656 -update-browserslist-db@^1.0.10:  
9657 - version "1.0.10"  
9658 - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz"  
9659 - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==  
9660 - dependencies:  
9661 - escalade "^3.1.1"  
9662 - picocolors "^1.0.0"  
9663 -  
9664 -update-browserslist-db@^1.0.11:  
9665 - version "1.0.11"  
9666 - resolved "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz"  
9667 - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==  
9668 - dependencies:  
9669 - escalade "^3.1.1"  
9670 - picocolors "^1.0.0"  
9671 -  
9672 -update-browserslist-db@^1.1.0:  
9673 - version "1.1.0"  
9674 - resolved "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz"  
9675 - integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== 9704 +update-browserslist-db@^1.1.1:
  9705 + version "1.1.3"
  9706 + resolved "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz"
  9707 + integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==
9676 dependencies: 9708 dependencies:
9677 - escalade "^3.1.2"  
9678 - picocolors "^1.0.1" 9709 + escalade "^3.2.0"
  9710 + picocolors "^1.1.1"
9679 9711
9680 uri-js@^4.2.2: 9712 uri-js@^4.2.2:
9681 version "4.4.1" 9713 version "4.4.1"
@@ -9767,6 +9799,15 @@ vfile@^5.0.0: @@ -9767,6 +9799,15 @@ vfile@^5.0.0:
9767 unist-util-stringify-position "^3.0.0" 9799 unist-util-stringify-position "^3.0.0"
9768 vfile-message "^3.0.0" 9800 vfile-message "^3.0.0"
9769 9801
  9802 +vue-loader@^17.3.1:
  9803 + version "17.3.1"
  9804 + resolved "https://registry.npmmirror.com/vue-loader/-/vue-loader-17.3.1.tgz"
  9805 + integrity sha512-nmVu7KU8geOyzsStyyaxID/uBGDMS8BkPXb6Lu2SNkMawriIbb+hYrNtgftHMKxOSkjjjTF5OSSwPo3KP59egg==
  9806 + dependencies:
  9807 + chalk "^4.1.0"
  9808 + hash-sum "^2.0.0"
  9809 + watchpack "^2.4.0"
  9810 +
9770 w3c-xmlserializer@^4.0.0: 9811 w3c-xmlserializer@^4.0.0:
9771 version "4.0.0" 9812 version "4.0.0"
9772 resolved "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz" 9813 resolved "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz"
@@ -9789,10 +9830,10 @@ watch@^1.0.2: @@ -9789,10 +9830,10 @@ watch@^1.0.2:
9789 exec-sh "^0.2.0" 9830 exec-sh "^0.2.0"
9790 minimist "^1.2.0" 9831 minimist "^1.2.0"
9791 9832
9792 -watchpack@^2.4.0:  
9793 - version "2.4.0"  
9794 - resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz"  
9795 - integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== 9833 +watchpack@^2.0.0, watchpack@^2.4.0:
  9834 + version "2.4.2"
  9835 + resolved "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.2.tgz"
  9836 + integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==
9796 dependencies: 9837 dependencies:
9797 glob-to-regexp "^0.4.1" 9838 glob-to-regexp "^0.4.1"
9798 graceful-fs "^4.1.2" 9839 graceful-fs "^4.1.2"
@@ -9817,40 +9858,51 @@ webidl-conversions@^7.0.0: @@ -9817,40 +9858,51 @@ webidl-conversions@^7.0.0:
9817 resolved "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz" 9858 resolved "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz"
9818 integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== 9859 integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==
9819 9860
9820 -webpack-sources@^3.2.3:  
9821 - version "3.2.3"  
9822 - resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz"  
9823 - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==  
9824 -  
9825 -webpack@^5.88.1:  
9826 - version "5.88.1"  
9827 - resolved "https://registry.npmmirror.com/webpack/-/webpack-5.88.1.tgz"  
9828 - integrity sha512-FROX3TxQnC/ox4N+3xQoWZzvGXSuscxR32rbzjpXgEzWudJFEJBpdlkkob2ylrv5yzzufD1zph1OoFsLtm6stQ==  
9829 - dependencies:  
9830 - "@types/eslint-scope" "^3.7.3"  
9831 - "@types/estree" "^1.0.0"  
9832 - "@webassemblyjs/ast" "^1.11.5"  
9833 - "@webassemblyjs/wasm-edit" "^1.11.5"  
9834 - "@webassemblyjs/wasm-parser" "^1.11.5"  
9835 - acorn "^8.7.1"  
9836 - acorn-import-assertions "^1.9.0"  
9837 - browserslist "^4.14.5" 9861 +webpack-sources@^1.4.3:
  9862 + version "1.4.3"
  9863 + resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-1.4.3.tgz"
  9864 + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==
  9865 + dependencies:
  9866 + source-list-map "^2.0.0"
  9867 + source-map "~0.6.1"
  9868 +
  9869 +webpack-sources@^2.0.1:
  9870 + version "2.3.1"
  9871 + resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-2.3.1.tgz"
  9872 + integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==
  9873 + dependencies:
  9874 + source-list-map "^2.0.1"
  9875 + source-map "^0.6.1"
  9876 +
  9877 +webpack@^5.0.0-rc.6:
  9878 + version "5.0.0-rc.6"
  9879 + resolved "https://registry.npmmirror.com/webpack/-/webpack-5.0.0-rc.6.tgz"
  9880 + integrity sha512-UeZzugQFKpfqwv4e908rNnXxHILh/+MhNZtGg3hDrLaGpRaagZpVfu2wyrcbyRFhEGNKjJSb5USUOi/kQbNwqA==
  9881 + dependencies:
  9882 + "@types/eslint-scope" "^3.7.0"
  9883 + "@types/estree" "^0.0.45"
  9884 + "@webassemblyjs/ast" "1.9.0"
  9885 + "@webassemblyjs/helper-module-context" "1.9.0"
  9886 + "@webassemblyjs/wasm-edit" "1.9.0"
  9887 + "@webassemblyjs/wasm-parser" "1.9.0"
  9888 + acorn "^8.0.3"
  9889 + browserslist "^4.14.3"
9838 chrome-trace-event "^1.0.2" 9890 chrome-trace-event "^1.0.2"
9839 - enhanced-resolve "^5.15.0"  
9840 - es-module-lexer "^1.2.1"  
9841 - eslint-scope "5.1.1" 9891 + enhanced-resolve "^5.2.0"
  9892 + eslint-scope "^5.1.0"
9842 events "^3.2.0" 9893 events "^3.2.0"
9843 glob-to-regexp "^0.4.1" 9894 glob-to-regexp "^0.4.1"
9844 - graceful-fs "^4.2.9"  
9845 - json-parse-even-better-errors "^2.3.1"  
9846 - loader-runner "^4.2.0" 9895 + graceful-fs "^4.2.4"
  9896 + json-parse-better-errors "^1.0.2"
  9897 + loader-runner "^4.1.0"
9847 mime-types "^2.1.27" 9898 mime-types "^2.1.27"
9848 neo-async "^2.6.2" 9899 neo-async "^2.6.2"
9849 - schema-utils "^3.2.0"  
9850 - tapable "^2.1.1"  
9851 - terser-webpack-plugin "^5.3.7"  
9852 - watchpack "^2.4.0"  
9853 - webpack-sources "^3.2.3" 9900 + pkg-dir "^4.2.0"
  9901 + schema-utils "^3.0.0"
  9902 + tapable "^2.0.0"
  9903 + terser-webpack-plugin "^4.1.0"
  9904 + watchpack "^2.0.0"
  9905 + webpack-sources "^2.0.1"
9854 9906
9855 whatwg-encoding@^2.0.0: 9907 whatwg-encoding@^2.0.0:
9856 version "2.0.0" 9908 version "2.0.0"
@@ -9861,7 +9913,7 @@ whatwg-encoding@^2.0.0: @@ -9861,7 +9913,7 @@ whatwg-encoding@^2.0.0:
9861 9913
9862 whatwg-encoding@^3.1.1: 9914 whatwg-encoding@^3.1.1:
9863 version "3.1.1" 9915 version "3.1.1"
9864 - resolved "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz#d0f4ef769905d426e1688f3e34381a99b60b76e5" 9916 + resolved "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz"
9865 integrity sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ== 9917 integrity sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==
9866 dependencies: 9918 dependencies:
9867 iconv-lite "0.6.3" 9919 iconv-lite "0.6.3"
@@ -9873,7 +9925,7 @@ whatwg-mimetype@^3.0.0: @@ -9873,7 +9925,7 @@ whatwg-mimetype@^3.0.0:
9873 9925
9874 whatwg-mimetype@^4.0.0: 9926 whatwg-mimetype@^4.0.0:
9875 version "4.0.0" 9927 version "4.0.0"
9876 - resolved "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz#bc1bf94a985dc50388d54a9258ac405c3ca2fc0a" 9928 + resolved "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz"
9877 integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg== 9929 integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==
9878 9930
9879 whatwg-url@^11.0.0: 9931 whatwg-url@^11.0.0:
@@ -10017,7 +10069,7 @@ yallist@^3.0.2: @@ -10017,7 +10069,7 @@ yallist@^3.0.2:
10017 10069
10018 yallist@^4.0.0: 10070 yallist@^4.0.0:
10019 version "4.0.0" 10071 version "4.0.0"
10020 - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" 10072 + resolved "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz"
10021 integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 10073 integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
10022 10074
10023 yaml@^1.10.0: 10075 yaml@^1.10.0:
@@ -10063,7 +10115,7 @@ zod@^3.23.8, zod@^3.24.1: @@ -10063,7 +10115,7 @@ zod@^3.23.8, zod@^3.24.1:
10063 resolved "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz" 10115 resolved "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz"
10064 integrity sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A== 10116 integrity sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==
10065 10117
10066 -zustand@^4.3.8, zustand@^4.4.0: 10118 +zustand@^4.4.0:
10067 version "4.5.6" 10119 version "4.5.6"
10068 resolved "https://registry.npmmirror.com/zustand/-/zustand-4.5.6.tgz" 10120 resolved "https://registry.npmmirror.com/zustand/-/zustand-4.5.6.tgz"
10069 integrity sha512-ibr/n1hBzLLj5Y+yUcU7dYw8p6WnIVzdJbnX+1YpaScvZVF2ziugqHs+LAmHw4lWO9c/zRj+K1ncgWDQuthEdQ== 10121 integrity sha512-ibr/n1hBzLLj5Y+yUcU7dYw8p6WnIVzdJbnX+1YpaScvZVF2ziugqHs+LAmHw4lWO9c/zRj+K1ncgWDQuthEdQ==