From 5cdb42e1ac9023ead485b375e68f17bea3d5c1f0 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期二, 24 三月 2026 11:17:46 +0800
Subject: [PATCH] 去除无用文件
---
Code/WMS/CLAUDE.md | 187 +++++++++++++
Code/WCS/.omc/state/subagent-tracking.json | 7
.omc/project-memory.json | 203 ++++++++++++++
Code/WMS/.omc/state/subagent-tracking.json | 7
Code/WCS/.omc/state/idle-notif-cooldown.json | 3
Code/WMS/.omc/state/agent-replay-4cd1f4b9-ad6a-4b8f-8a01-8260579d1f66.jsonl | 2
Code/WCS/AGENTS.md | 62 ++++
Code/WMS/AGENTS.md | 70 +++++
/dev/null | 55 ---
.omc/state/hud-stdin-cache.json | 1
Code/WMS/.omc/state/idle-notif-cooldown.json | 3
Code/WCS/.omc/state/agent-replay-607da09d-2c9a-4405-bfb9-46c9b0d2c05f.jsonl | 1
.omc/state/hud-state.json | 6
Code/WCS/CLAUDE.md | 183 +++++++++++++
14 files changed, 735 insertions(+), 55 deletions(-)
diff --git a/.omc/project-memory.json b/.omc/project-memory.json
new file mode 100644
index 0000000..d41fb24
--- /dev/null
+++ b/.omc/project-memory.json
@@ -0,0 +1,203 @@
+{
+ "version": "1.0.0",
+ "lastScanned": 1774319550302,
+ "projectRoot": "D:\\Git\\ShanMeiXinNengYuan",
+ "techStack": {
+ "languages": [],
+ "frameworks": [],
+ "packageManager": null,
+ "runtime": null
+ },
+ "build": {
+ "buildCommand": null,
+ "testCommand": null,
+ "lintCommand": null,
+ "devCommand": null,
+ "scripts": {}
+ },
+ "conventions": {
+ "namingStyle": null,
+ "importStyle": null,
+ "testPattern": null,
+ "fileOrganization": null
+ },
+ "structure": {
+ "isMonorepo": false,
+ "workspaces": [],
+ "mainDirectories": [],
+ "gitBranches": {
+ "defaultBranch": "master",
+ "branchingStrategy": null
+ }
+ },
+ "customNotes": [],
+ "directoryMap": {
+ "Code": {
+ "path": "Code",
+ "purpose": null,
+ "fileCount": 0,
+ "lastAccessed": 1774319550279,
+ "keyFiles": []
+ },
+ "椤圭洰璧勬枡": {
+ "path": "椤圭洰璧勬枡",
+ "purpose": null,
+ "fileCount": 0,
+ "lastAccessed": 1774319550280,
+ "keyFiles": []
+ }
+ },
+ "hotPaths": [
+ {
+ "path": "Code\\WCS\\CLAUDE.md",
+ "accessCount": 4,
+ "lastAccessed": 1774319832508,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WMS\\CLAUDE.md",
+ "accessCount": 4,
+ "lastAccessed": 1774320014175,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WMS",
+ "accessCount": 2,
+ "lastAccessed": 1774319685208,
+ "type": "directory"
+ },
+ {
+ "path": "Code\\WCS\\WIDESEAWCS_Client\\package.json",
+ "accessCount": 1,
+ "lastAccessed": 1774319589861,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WCS\\WIDESEAWCS_Server\\CLAUDE.md",
+ "accessCount": 1,
+ "lastAccessed": 1774319589915,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WCS\\WIDESEAWCS_Client\\README.md",
+ "accessCount": 1,
+ "lastAccessed": 1774319589977,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WCS\\WIDESEAWCS_Client\\src\\main.js",
+ "accessCount": 1,
+ "lastAccessed": 1774319604017,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WCS\\WIDESEAWCS_Client\\src\\router\\index.js",
+ "accessCount": 1,
+ "lastAccessed": 1774319604071,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
+ "accessCount": 1,
+ "lastAccessed": 1774319604091,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WCS\\WIDESEAWCS_Client\\src\\store\\index.js",
+ "accessCount": 1,
+ "lastAccessed": 1774319611661,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WCS\\WIDESEAWCS_Client\\src\\api\\http.js",
+ "accessCount": 1,
+ "lastAccessed": 1774319611675,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WMS\\WIDESEA_WMSClient\\package.json",
+ "accessCount": 1,
+ "lastAccessed": 1774319652164,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WMS\\WIDESEA_WMSClient\\vite.config.js",
+ "accessCount": 1,
+ "lastAccessed": 1774319656371,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WMS\\WIDESEA_WMSClient\\src\\main.js",
+ "accessCount": 1,
+ "lastAccessed": 1774319656381,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Program.cs",
+ "accessCount": 1,
+ "lastAccessed": 1774319656394,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj",
+ "accessCount": 1,
+ "lastAccessed": 1774319656456,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\WIDESEA_Core.csproj",
+ "accessCount": 1,
+ "lastAccessed": 1774319664837,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Extensions\\AutofacModuleRegister.cs",
+ "accessCount": 1,
+ "lastAccessed": 1774319668135,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WMS\\WIDESEA_WMSClient\\src\\router\\index.js",
+ "accessCount": 1,
+ "lastAccessed": 1774319668167,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseServices\\IService.cs",
+ "accessCount": 1,
+ "lastAccessed": 1774319668191,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Basic\\MaterielInfoController.cs",
+ "accessCount": 1,
+ "lastAccessed": 1774319671555,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IBasicService\\IMaterielInfoService.cs",
+ "accessCount": 1,
+ "lastAccessed": 1774319671580,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\WIDESEA_Model.csproj",
+ "accessCount": 1,
+ "lastAccessed": 1774319671631,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
+ "accessCount": 1,
+ "lastAccessed": 1774319685049,
+ "type": "file"
+ },
+ {
+ "path": "Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseController\\ApiBaseController.cs",
+ "accessCount": 1,
+ "lastAccessed": 1774319685114,
+ "type": "file"
+ }
+ ],
+ "userDirectives": []
+}
\ No newline at end of file
diff --git a/.omc/state/hud-state.json b/.omc/state/hud-state.json
new file mode 100644
index 0000000..c1a86d9
--- /dev/null
+++ b/.omc/state/hud-state.json
@@ -0,0 +1,6 @@
+{
+ "timestamp": "2026-03-24T02:39:49.050Z",
+ "backgroundTasks": [],
+ "sessionStartTimestamp": "2026-03-24T02:33:23.593Z",
+ "sessionId": "4cd1f4b9-ad6a-4b8f-8a01-8260579d1f66"
+}
\ No newline at end of file
diff --git a/.omc/state/hud-stdin-cache.json b/.omc/state/hud-stdin-cache.json
new file mode 100644
index 0000000..e02c35e
--- /dev/null
+++ b/.omc/state/hud-stdin-cache.json
@@ -0,0 +1 @@
+{"session_id":"4cd1f4b9-ad6a-4b8f-8a01-8260579d1f66","transcript_path":"C:\\Users\\29028\\.claude\\projects\\D--Git-ShanMeiXinNengYuan-Code-WMS\\4cd1f4b9-ad6a-4b8f-8a01-8260579d1f66.jsonl","cwd":"D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS","model":{"id":"glm-4.7","display_name":"glm-4.7"},"workspace":{"current_dir":"D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS","project_dir":"D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS","added_dirs":[]},"version":"2.1.72","output_style":{"name":"default"},"cost":{"total_cost_usd":1.441715,"total_duration_ms":453632,"total_api_duration_ms":376045,"total_lines_added":298,"total_lines_removed":110},"context_window":{"total_input_tokens":153210,"total_output_tokens":8441,"context_window_size":200000,"current_usage":{"input_tokens":3040,"output_tokens":292,"cache_creation_input_tokens":0,"cache_read_input_tokens":96384},"used_percentage":50,"remaining_percentage":50},"exceeds_200k_tokens":false}
\ No newline at end of file
diff --git a/Code/WCS/.omc/state/agent-replay-607da09d-2c9a-4405-bfb9-46c9b0d2c05f.jsonl b/Code/WCS/.omc/state/agent-replay-607da09d-2c9a-4405-bfb9-46c9b0d2c05f.jsonl
new file mode 100644
index 0000000..5079599
--- /dev/null
+++ b/Code/WCS/.omc/state/agent-replay-607da09d-2c9a-4405-bfb9-46c9b0d2c05f.jsonl
@@ -0,0 +1 @@
+{"t":0,"agent":"a7f1459","agent_type":"unknown","event":"agent_stop","success":true}
diff --git a/Code/WCS/.omc/state/idle-notif-cooldown.json b/Code/WCS/.omc/state/idle-notif-cooldown.json
new file mode 100644
index 0000000..88cae56
--- /dev/null
+++ b/Code/WCS/.omc/state/idle-notif-cooldown.json
@@ -0,0 +1,3 @@
+{
+ "lastSentAt": "2026-03-24T02:37:21.000Z"
+}
\ No newline at end of file
diff --git a/Code/WCS/.omc/state/subagent-tracking.json b/Code/WCS/.omc/state/subagent-tracking.json
new file mode 100644
index 0000000..e379105
--- /dev/null
+++ b/Code/WCS/.omc/state/subagent-tracking.json
@@ -0,0 +1,7 @@
+{
+ "agents": [],
+ "total_spawned": 0,
+ "total_completed": 0,
+ "total_failed": 0,
+ "last_updated": "2026-03-24T02:38:41.486Z"
+}
\ No newline at end of file
diff --git a/Code/WCS/AGENTS.md b/Code/WCS/AGENTS.md
new file mode 100644
index 0000000..8ecf800
--- /dev/null
+++ b/Code/WCS/AGENTS.md
@@ -0,0 +1,62 @@
+锘�# Repository Guidelines
+
+## 椤圭洰缁撴瀯涓庢ā鍧楃粍缁�
+鏈粨搴撳寘鍚袱涓牳蹇冨簲鐢細
+- `WIDESEAWCS_Client/`锛歏ue 3 + Vite 鍓嶇锛屼富瑕佺洰褰曞寘鎷� `src/views`銆乣src/components`銆乣src/api`銆乣src/router`銆乣src/store`銆�
+- `WIDESEAWCS_Server/`锛欰SP.NET Core 鍚庣瑙e喅鏂规锛坄WIDESEAWCS_Server.sln`锛夛紝鎸夊垎灞傜粍缁囦负 `WIDESEAWCS_*Service`銆乣WIDESEAWCS_*Repository`銆乣WIDESEAWCS_Core`銆乣WIDESEAWCS_Domain`锛岃皟搴︿笌璁惧鐩稿叧浠g爜鍦� `WIDESEAWCS_Tasks` 涓� `WIDESEAWCS_QuartzJob`銆�
+
+娴嬭瘯涓昏浣嶄簬 `WIDESEAWCS_Server/WIDESEAWCS_Tests`锛坸Unit锛夛紝鍙﹀杩樻湁棰嗗煙涓庨泦鎴愭祴璇曢」鐩��
+
+## 鏋勫缓銆佹祴璇曚笌鏈湴寮�鍙戝懡浠�
+- 鍓嶇锛堝湪 `WIDESEAWCS_Client/` 鎵ц锛夛細
+ - `npm install`锛氬畨瑁呬緷璧栥��
+ - `npm run serve`锛氬惎鍔ㄦ湰鍦板紑鍙戞湇鍔★紙Vite锛夈��
+ - `npm run build`锛氭瀯寤虹敓浜ц祫婧愩��
+ - `npm run lint`锛氭墽琛� ESLint 妫�鏌ャ��
+- 鍚庣锛堝湪 `WIDESEAWCS_Server/` 鎵ц锛夛細
+ - `dotnet restore WIDESEAWCS_Server.sln`锛氳繕鍘� NuGet 渚濊禆銆�
+ - `dotnet build WIDESEAWCS_Server.sln`锛氱紪璇戝叏閮ㄥ悗绔」鐩��
+ - `dotnet run --project WIDESEAWCS_Server`锛氭湰鍦板惎鍔� API銆�
+ - `dotnet test WIDESEAWCS_Tests/WIDESEAWCS_Tests.csproj`锛氳繍琛屽崟鍏冩祴璇曘��
+
+## 寮�鍙戞祦绋嬪己鍒惰鑼�
+- 鎵�鏈変换鍔″繀椤诲湪 `Code/WCS/.worktrees/<task-name>` 鐙珛 worktree 涓紑鍙戯紝涓嶇洿鎺ュ湪涓诲伐浣滃尯鏀瑰姩銆�
+- 鍒嗘敮鍛藉悕缁熶竴锛歚feat/<妯″潡>-<涓婚>`銆乣fix/<妯″潡>-<闂>`銆乣refactor/<妯″潡>-<涓婚>`銆乣docs/<涓婚>`銆�
+- 姣忔鎻愪氦鍓嶈嚦灏戞墽琛屼笌鏀瑰姩鐩稿叧鐨勬渶灏忛獙璇侊紙鍓嶇鏀瑰姩璺� `npm run lint`锛涘悗绔敼鍔ㄨ窇 `dotnet test` 鎴栨渶灏忓彲杩愯楠岃瘉锛夈��
+- 绂佹涓�娆℃彁浜ゆ贩鍏ユ棤鍏抽噸鏋勩�佹牸寮忓寲鍣0鎴栧ぇ闈㈢Н鏂囦欢绉诲姩銆�
+
+## 浠g爜椋庢牸涓庡懡鍚嶈鑼�
+- C#锛�4 绌烘牸缂╄繘锛涚被鍨�/鏂规硶/灞炴�т娇鐢� `PascalCase`锛涘眬閮ㄥ彉閲忓拰鍙傛暟浣跨敤 `camelCase`锛涙帴鍙d娇鐢� `I` 鍓嶇紑銆�
+- Vue/JS锛氶伒寰幇鏈� ESLint 閰嶇疆涓庨」鐩棦鏈夋ā寮忥紱鏂囦欢鍚嶅簲涓庡姛鑳戒竴鑷达紙濡� `TaskController.cs`銆佸姛鑳界洰褰曚笅 `index.vue`锛夈��
+- 榛樿瑕佹眰锛氬鏂板鎴栦慨鏀圭殑浠g爜娣诲姞璇︾粏涓枃娉ㄩ噴锛岃嚦灏戝寘鍚柟娉曠洰鐨勩�佸弬鏁板惈涔夈�佽繑鍥炲�笺�佸叧閿�昏緫姝ラ鍜屽紓甯稿鐞嗚鏄庛��
+- 娉ㄩ噴瑕佹眰鍙銆佸彲缁存姢锛岀姝⑩�滈噸澶嶄唬鐮佸瓧闈㈡剰鎬濃�濈殑鏃犳晥娉ㄩ噴銆�
+
+## 鏁版嵁涓�鑷存�т笌浜嬪姟瑙勮寖
+- 鍚屼竴涓氬姟鎿嶄綔娑夊強澶氫釜鏁版嵁瀵硅薄锛堝琛ㄣ�佸浠撳偍銆佽法鏈嶅姟鍐欏叆锛夊悓鏃舵敼鍔ㄦ椂锛屽繀椤讳娇鐢ㄦ暟鎹簱浜嬪姟锛圱ransaction锛変繚璇佸師瀛愭�с��
+- 浜嬪姟鑼冨洿鍙鐩栧繀瑕佸啓鎿嶄綔锛岀姝㈠皢闀胯�楁椂 IO/缃戠粶璋冪敤鏀惧叆浜嬪姟鍐咃紝閬垮厤闀夸簨鍔¢攣琛ㄣ��
+- 鍙戠敓寮傚父鏃跺繀椤诲洖婊氫簨鍔★紝骞惰褰曚簨鍔′笂涓嬫枃锛堜笟鍔″崟鍙枫�佸叧閿富閿�佽皟鐢ㄩ摼鏍囪瘑锛夈��
+- 鑻ユ秹鍙婂垎甯冨紡鎴栬法杈圭晫鍐欏叆锛岄渶鍦� PR 涓槑纭竴鑷存�х瓥鐣ワ紙琛ュ伩銆侀噸璇曘�佸箓绛夐敭锛夈��
+
+## 鎺ュ彛銆佹棩蹇椾笌寮傚父瑙勮寖
+- API 杩斿洖缁撴瀯淇濇寔缁熶竴锛屽瓧娈靛懡鍚嶄笌鐜版湁鍚庣搴忓垪鍖栫瓥鐣ヤ竴鑷达紝閬垮厤闅忔剰鍙樻洿鍝嶅簲瀛楁銆�
+- Service 灞傛姏鍑虹殑涓氬姟寮傚父闇�鍖呭惈鍙畾浣嶄笂涓嬫枃锛堜换鍔″彿銆佽澶囧彿銆佸叧閿弬鏁帮級銆�
+- 鏃ュ織绾у埆瑙勮寖锛氳皟璇曠粏鑺傜敤 `Debug`锛屼笟鍔″叧閿矾寰勭敤 `Information`锛屽彲鎭㈠寮傚父鐢� `Warning`锛屼笉鍙仮澶嶉敊璇敤 `Error`銆�
+- 涓ョ鍚炲紓甯革紱鎹曡幏鍚庡繀椤昏褰曚笂涓嬫枃骞跺喅瀹氶噸鎶涙垨杞崲涓轰笟鍔¢敊璇��
+- 娑夊強澶栭儴绯荤粺璋冪敤銆両O銆佺綉缁滈�氫俊銆佽澶囬�氫俊銆佹暟鎹簱璁块棶鐨勫叧閿矾寰勫繀椤讳娇鐢� `try-catch`锛沗catch` 涓嚦灏戣褰曢敊璇俊鎭笌鍏抽敭鍙傛暟锛屽苟淇濈暀鍘熷鍫嗘爤锛坄throw;`锛夛紝绂佹浠� `throw ex;`銆�
+
+## 娴嬭瘯瑙勮寖
+- 涓昏娴嬭瘯妗嗘灦涓� xUnit锛岄」鐩凡寮曞叆 `Moq`銆乣FluentAssertions`銆乣coverlet.collector`銆�
+- 娴嬭瘯鍛藉悕寤鸿锛歚MethodName_ShouldExpectedBehavior`銆�
+- 娑夊強琛屼负鍙樺寲鐨勬敼鍔紝蹇呴』鍚屾鏂板鎴栨洿鏂版祴璇曞悗鍐嶅悎骞躲��
+
+## 鎻愪氦涓� Pull Request 瑙勮寖
+- 鎻愪氦鍘嗗彶浠ヨ仛鐒﹀瀷鍓嶇紑涓轰富锛歚feat:`銆乣fix:`銆乣refactor:`銆乣docs:`銆乣chore:`锛堜腑鏂囨憳瑕侊級銆�
+- 姣忔潯鎻愪氦淇℃伅蹇呴』鍖呭惈璇︾粏鎻愪氦鍐呭锛氳嚦灏戣鏄庢敼浜嗕粈涔堛�佷负浠�涔堟敼銆佸奖鍝嶄簡鍝簺妯″潡/鏂囦欢锛涚姝粎鍐欌�滀慨鏀逛唬鐮佲�濃�滀紭鍖栤�濊繖绫绘ā绯婃弿杩般��
+- PR 蹇呴』璇存槑锛氭敼鍔ㄥ唴瀹广�佹敼鍔ㄥ師鍥犮�佸奖鍝嶈矾寰勩�侀獙璇佹柟寮忎笌缁撴灉銆佹綔鍦ㄩ闄╀笌鍥炴粴鏂规銆�
+- 浠呭湪鍓嶇鐣岄潰鍙樻洿鏃堕檮鎴浘锛涙帴鍙e彉鏇撮渶闄勮姹�/鍝嶅簲绀轰緥銆�
+
+## 瀹夊叏涓庨厤缃鑼�
+- 绂佹鎻愪氦瀵嗛挜銆佷护鐗屻�佽繛鎺ヤ覆鏄庢枃锛涙晱鎰熼厤缃繀椤绘斁鍏ョ幆澧冨彉閲忔垨鏈湴鍙楁帶閰嶇疆銆�
+- `appsettings*.json` 鐨勭幆澧冨樊寮傞」闇�鏂囨。鍖栵紝閬垮厤鎶婂紑鍙戞満閰嶇疆甯﹀叆娴嬭瘯/鐢熶骇銆�
+- 娑夊強鏉冮檺銆侀壌鏉冦�佷腑闂翠欢椤哄簭鐨勬敼鍔紝蹇呴』鍦� PR 涓崟鐙爣娉ㄣ��
+
diff --git a/Code/WCS/CLAUDE.md b/Code/WCS/CLAUDE.md
new file mode 100644
index 0000000..19fe0e5
--- /dev/null
+++ b/Code/WCS/CLAUDE.md
@@ -0,0 +1,183 @@
+# CLAUDE.md
+
+鏈枃浠朵负 Claude Code (claude.ai/code) 鍦ㄦ浠g爜搴撲腑宸ヤ綔鏃舵彁渚涙寚瀵笺��
+
+## 椤圭洰姒傝堪
+
+杩欐槸涓�涓� **WCS锛堜粨搴撴帶鍒剁郴缁燂級** - 閯編鏂拌兘婧愪粨搴撴帶鍒剁郴缁燂紝鍖呭惈锛�
+
+- **WIDESEAWCS_Client** - Vue 3 鍓嶇搴旂敤锛圗lement Plus UI锛�
+- **WIDESEAWCS_Server** - ASP.NET Core 6.0 鍚庣 API 鏈嶅姟鍣�
+
+绯荤粺绠$悊鑷姩鍖栦粨搴撲綔涓氾紝鍖呮嫭鍫嗗灈鏈恒�佽緭閫佺嚎銆佺┛姊溅鍜屾満姊版墜鐨勭墿鏂欐惉杩愪换鍔★紙缁勭洏銆佹崲鐩樸�佹媶鐩橈級銆�
+
+---
+
+## 甯哥敤鍛戒护
+
+### 鍓嶇 (WIDESEAWCS_Client)
+
+```bash
+# 瀹夎渚濊禆锛堝湪 Client 鐩綍涓級
+cd WIDESEAWCS_Client
+npm install
+
+# 寮�鍙戞湇鍔″櫒
+npm run serve
+
+# 鐢熶骇鏋勫缓
+npm run build
+
+# 浠g爜妫�鏌�
+npm run lint
+```
+
+**Node.js 18+ 娉ㄦ剰浜嬮」**锛氬鏋� `npm run serve` 鍥� OpenSSL 閿欒澶辫触锛宍package.json` 鑴氭湰宸插寘鍚� `SET NODE_OPTIONS=--openssl-legacy-provider` 瑙e喅鏂规銆�
+
+### 鍚庣 (WIDESEAWCS_Server)
+
+```bash
+# 鏋勫缓鏁翠釜瑙e喅鏂规
+cd WIDESEAWCS_Server
+dotnet build WIDESEAWCS_Server.sln
+
+# 杩愯鏈嶅姟鍣�
+dotnet run --project WIDESEAWCS_Server
+
+# 杩愯娴嬭瘯
+dotnet test WIDESEAWCS_Tests
+```
+
+**鏈嶅姟鍣ㄧ鍙�**锛欰PI 杩愯鍦� `http://*:9292`锛堝彲鍦� `appsettings.json` 涓厤缃級
+
+---
+
+## 鏋舵瀯
+
+### 鍓嶇鏋舵瀯 (Vue 3)
+
+**鎶�鏈爤**锛�
+- Vue 3 + Vite
+- Element Plus UI 妗嗘灦
+- Vue Router锛坔ash 妯″紡锛�
+- Vuex 鐘舵�佺鐞�
+- Axios HTTP 璇锋眰
+- SignalR 瀹炴椂閫氫俊锛堝彲閫夛級
+
+**鍏抽敭鐩綍**锛�
+- `src/views/` - 椤甸潰缁勪欢锛圚ome銆丩ogin銆乻ystem銆乥asicinfo銆乼askinfo銆乧harts锛�
+- `src/components/basic/` - 鍙鐢ㄧ粍浠讹紝鍖呮嫭 `ViewGrid`锛堟暟鎹〃鏍肩粍浠讹級
+- `src/api/` - HTTP 瀹㈡埛绔紙`http.js`锛夛紝甯︿护鐗岀鐞嗗拰鎷︽埅鍣�
+- `src/router/` - 璺敱瀹氫箟锛屽甫韬唤楠岃瘉瀹堝崼
+- `src/store/` - Vuex 瀛樺偍锛岀敤浜庣敤鎴蜂俊鎭拰鏉冮檺
+- `src/uitils/` - 宸ュ叿鍑芥暟
+
+**HTTP 瀹㈡埛绔�** (`src/api/http.js`)锛�
+- 鍩虹 URL 榛樿鍊硷細寮�鍙戠幆澧冿紙`http://127.0.0.1:9292/`锛夈�佺敓浜х幆澧冿紙`http://115.159.85.185:9292/`锛�
+- 鑷姩鍖呭惈 `Authorization: Bearer {token}` 璇锋眰澶�
+- 鏀跺埌 `wideseawcs_exp` 鍝嶅簲澶存椂鑷姩鍒锋柊浠ょ墝
+- 401 鑷姩閲嶅畾鍚戝埌鐧诲綍椤�
+- 瀵煎嚭鏂规硶锛歚post()`銆乣get()`銆乣download()`銆乣ajax()`
+
+**鍏ㄥ眬灞炴��**锛堝湪 `main.js` 涓寕杞斤級锛�
+- `this.$http` - HTTP 瀹㈡埛绔�
+- `this.base` - 閫氱敤宸ュ叿
+- `this.permission` - 鏉冮檺妫�鏌�
+- `this.$global` - 鍏ㄥ眬閰嶇疆锛圫ignalR 鍚敤鏍囧織銆佽〃鏍兼爣绛炬樉绀猴級
+
+### 鍚庣鏋舵瀯 (ASP.NET Core)
+
+**鎶�鏈爤**锛�
+- ASP.NET Core 6.0 Web API
+- Autofac DI锛屼娇鐢� `IDependency` 鏍囪鎺ュ彛瀹炵幇鑷姩娉ㄥ唽
+- Quartz.NET 瀹氭椂浠诲姟锛堣澶囬�氫俊寰幆锛�
+- SqlSugar ORM 鏁版嵁搴撹闂�
+- Redis锛堥�氳繃 `WIDESEAWCS_RedisService` 瀹炵幇 L1+L2 娣峰悎缂撳瓨锛�
+- TCP Socket 鏈嶅姟鍣紙绔彛 2000锛夌敤浜庡疄鏃惰澶囬�氫俊
+- HslCommunication 搴撶敤浜� PLC/纭欢閫氫俊
+
+**椤圭洰缁撴瀯**锛�
+```
+WIDESEAWCS_Server/ # 涓� API 鏈嶅姟鍣�
+WIDESEAWCS_Core/ # 鏍稿績鍩虹璁炬柦锛氬熀绫汇�丏I銆佹墿灞曘�佷腑闂翠欢
+WIDESEAWCS_Model/ # 鏁版嵁妯″瀷鍜� DTO
+WIDESEAWCS_Communicator/ # 纭欢閫氫俊椹卞姩锛堣タ闂ㄥ瓙銆佹濮嗛緳銆丮odbus 绛夛級
+WIDESEAWCS_QuartzJob/ # 浠诲姟璋冨害鍩虹璁炬柦鍜岃澶囨娊璞�
+WIDESEAWCS_Tasks/ # Quartz 浠诲姟瀹炵幇锛堣澶囬�氫俊寰幆锛�
+WIDESEAWCS_RedisService/ # Redis 鏈嶅姟锛氱紦瀛樸�侀攣銆佽鏁板櫒銆佸彂甯冭闃�
+WIDESEAWCS_*Repository/ # 鏁版嵁璁块棶灞傚疄鐜�
+WIDESEAWCS_*Service/ # 涓氬姟鏈嶅姟灞�
+WIDESEAWCS_Tests/ # 鍗曞厓娴嬭瘯
+```
+
+**渚濊禆娉ㄥ叆妯″紡**锛�
+- 瀹炵幇 `IDependency` 鏍囪鎺ュ彛鐨勬湇鍔$敱 Autofac **鑷姩娉ㄥ唽**
+- 浣嶄簬 `AutofacModuleRegister` 涓壂鎻忔墍鏈夌▼搴忛泦
+- 娣诲姞鍓嶄娇鐢� `services.Remove()` 瑕嗙洊鐜版湁娉ㄥ唽
+
+**缂撳瓨灞�** (`ICacheService`)锛�
+- L1锛堝唴瀛橈級+ L2锛圧edis锛夋贩鍚堢紦瀛�
+- 瀹炵幇锛歚MemoryCacheService`銆乣RedisCacheService`銆乣HybridCacheService`
+- 甯哥敤鏂规硶锛歚Add`銆乣Get<T>`銆乣Remove`銆乣RemoveByPrefix`銆乣GetOrAdd<T>`
+
+**璁惧閫氫俊**锛�
+- 浠诲姟缁ф壙 `JobBase` 骞跺疄鐜� `IJob`
+- 璁惧绫诲瀷锛歚IStackerCrane`锛堝爢鍨涙満锛夈�乣IConveyorLine`锛堣緭閫佺嚎锛夈�乣IShuttleCar`锛堢┛姊溅锛夈�乣IRobot`锛堟満姊版墜锛�
+- 閫氫俊鍣細`SiemensS7Communicator`銆乣OmronEtherNetCommunicator`銆乣ModbusTcpCommunicator`銆乣SerialPortCommunicator`
+- TCP Socket 鏈嶅姟鍣紙绔彛 2000锛夌敱 `SocketServerHostedService` 绠$悊
+
+---
+
+## 鍏抽敭闆嗘垚鐐�
+
+### 绯荤粺闆嗘垚 URL (BaseAPI 甯搁噺)
+- WMS锛歚http://localhost:9291/api/`
+- WCS锛堟湰鏈嶅姟鍣級锛歚http://localhost:9292/api/`
+- MES锛歚http://localhost:9293/api/`
+- ERP锛歚http://localhost:9294/api/`
+
+### 鏈烘鎵嬮�氫俊绯荤粺
+鏈烘鎵嬫帶鍒剁殑妯″潡鍖栨灦鏋勶細
+- `RobotClientManager` - TCP 瀹㈡埛绔繛鎺ョ鐞�
+- `RobotStateManager` - 绾跨▼瀹夊叏鐨勬満姊版墜鐘舵�佺紦瀛�
+- `RobotMessageHandler` - TCP 娑堟伅瑙f瀽
+- `RobotTaskProcessor` - 浠诲姟鎵ц鍜岀姸鎬佽浆鎹�
+- 浠诲姟绫诲瀷锛歚GroupPallet (500)` 缁勭洏銆乣ChangePallet (510)` 鎹㈢洏銆乣SplitPallet (520)` 鎷嗙洏
+
+### 閰嶇疆 (appsettings.json)
+鍏抽敭璁剧疆锛�
+- `"urls": "http://*:9292"` - 鏈嶅姟鍣ㄧ鍙�
+- `"QuartzJobAutoStart": true` - 鑷姩鍚姩瀹氭椂浠诲姟
+- `"SocketServer:Enabled": true` - 鍚敤 TCP 鏈嶅姟鍣�
+- `"RedisConfig:Enabled": true` - 鍚敤 Redis 缂撳瓨
+- `"DBType": "SqlServer"` - 鏁版嵁搴撶被鍨�
+
+---
+
+## 寮�鍙戞寚鍗�
+
+### 娣诲姞鏂板姛鑳�
+
+**鍚庣**锛�
+1. 鍦� `WIDESEAWCS_IService/` 涓垱寤烘湇鍔℃帴鍙�
+2. 鍦� `WIDESEAWCS_Service/` 涓垱寤烘湇鍔″疄鐜帮紝瀹炵幇 `IDependency`
+3. 鍦� `WIDESEAWCS_Tasks/` 涓垱寤轰换鍔★紝缁ф壙 `JobBase` 鍜� `IJob`
+4. 鍦� `WIDESEAWCS_QuartzJob/Device/` 涓坊鍔犺澶囩被鍨�
+
+**鍓嶇**锛�
+1. 鍦� `src/views/` 涓坊鍔犺鍥�
+2. 鍦� `src/router/index.js` 涓坊鍔犺矾鐢�
+3. 浣跨敤 `$http.post()` 鍜� `$http.get()` 杩涜 API 璋冪敤
+4. 浣跨敤 `ViewGrid` 缁勪欢鏄剧ず鏁版嵁琛ㄦ牸
+
+### 浠g爜椋庢牸
+- **C#**锛氱被鍨�/鏂规硶/灞炴�т娇鐢� PascalCase锛屽眬閮ㄥ彉閲�/鍙傛暟浣跨敤 camelCase銆�4 绌烘牸缂╄繘锛屽ぇ鎷彿鎹㈣銆�
+- **JavaScript/Vue**锛氶伒寰幇鏈夋ā寮忥紝鏂扮粍浠朵娇鐢� Vue 3 Composition API
+- **娉ㄩ噴**锛氫负鏂板/淇敼鐨勪唬鐮佹坊鍔犺缁嗙殑涓枃娉ㄩ噴锛堟柟娉曠洰鐨勩�佸弬鏁般�佽繑鍥炲�笺�侀�愯璇存槑銆佸紓甯稿鐞嗭級
+
+### 閲嶈璇存槑
+- 鍚庣浣跨敤 **CamelCase** JSON 搴忓垪鍖�
+- 鎵�鏈夋湇鍔¢�氳繃 Autofac 榛樿浣跨敤 **scoped** 鐢熷懡鍛ㄦ湡
+- Redis 杩炴帴鍦ㄩ娆¤闂椂寤惰繜鍒濆鍖�
+- 鍦ㄤ换鍔′腑浣跨敤 `ConsoleHelper.WriteSuccessLine()` / `WriteErrorLine()` 杩涜鎺у埗鍙拌緭鍑�
+- TCP Socket 鏈嶅姟鍣ㄧ嫭绔嬩簬 HTTP API 杩愯
diff --git a/Code/WMS/.omc/state/agent-replay-4cd1f4b9-ad6a-4b8f-8a01-8260579d1f66.jsonl b/Code/WMS/.omc/state/agent-replay-4cd1f4b9-ad6a-4b8f-8a01-8260579d1f66.jsonl
new file mode 100644
index 0000000..638b15d
--- /dev/null
+++ b/Code/WMS/.omc/state/agent-replay-4cd1f4b9-ad6a-4b8f-8a01-8260579d1f66.jsonl
@@ -0,0 +1,2 @@
+{"t":0,"agent":"a1dd170","agent_type":"unknown","event":"agent_stop","success":true}
+{"t":0,"agent":"a5ca246","agent_type":"unknown","event":"agent_stop","success":true}
diff --git a/Code/WMS/.omc/state/idle-notif-cooldown.json b/Code/WMS/.omc/state/idle-notif-cooldown.json
new file mode 100644
index 0000000..20c6478
--- /dev/null
+++ b/Code/WMS/.omc/state/idle-notif-cooldown.json
@@ -0,0 +1,3 @@
+{
+ "lastSentAt": "2026-03-24T02:40:56.392Z"
+}
\ No newline at end of file
diff --git a/Code/WMS/.omc/state/subagent-tracking.json b/Code/WMS/.omc/state/subagent-tracking.json
new file mode 100644
index 0000000..a44828a
--- /dev/null
+++ b/Code/WMS/.omc/state/subagent-tracking.json
@@ -0,0 +1,7 @@
+{
+ "agents": [],
+ "total_spawned": 0,
+ "total_completed": 0,
+ "total_failed": 0,
+ "last_updated": "2026-03-24T02:41:20.073Z"
+}
\ No newline at end of file
diff --git a/Code/WMS/AGENTS.md b/Code/WMS/AGENTS.md
new file mode 100644
index 0000000..bce6547
--- /dev/null
+++ b/Code/WMS/AGENTS.md
@@ -0,0 +1,70 @@
+# Repository Guidelines
+
+## 项目结构与模块组织
+仓库由两个主项目组成:
+- `WIDESEA_WMSServer/`:ASP.NET Core 后端(解决方案:`WIDESEA_WMSServer.sln`)。
+- `WIDESEA_WMSClient/`:Vue 3 前端(Vite + Yarn)。
+
+后端按职责拆分:`WIDESEA_WMSServer/`(API 启动项目)、`WIDESEA_Core/`(基础设施/基类能力)、`WIDESEA_Model/`(实体模型)、`WIDESEA_DTO/`(数据传输对象)、`WIDESEA_I*Service/`(服务接口)、`WIDESEA_*Service/`(服务实现)。前端源码位于 `WIDESEA_WMSClient/src/`,单元测试位于 `WIDESEA_WMSClient/tests/unit/`。
+
+## 构建、测试与开发命令
+后端(在 `WIDESEA_WMSServer` 目录执行):
+- `dotnet restore WIDESEA_WMSServer.sln`:还原 NuGet 依赖。
+- `dotnet build WIDESEA_WMSServer.sln`:构建全部后端项目。
+- `dotnet run --project WIDESEA_WMSServer/WIDESEA_WMSServer.csproj`:本地启动 API。
+
+前端(在 `WIDESEA_WMSClient` 目录执行):
+- `yarn install`:安装依赖。
+- `yarn dev`:启动 Vite 开发服务。
+- `yarn build`:构建生产包。
+- `yarn preview`:预览生产构建结果。
+- `yarn test:unit`:运行单元测试。
+- `yarn lint`:执行代码检查。
+
+## 开发流程强制规范
+
+- 所有任务必须在 `Code/WMS/.worktrees/<task-name>` 独立 worktree 中开发,不直接在主工作区改动。
+- 分支命名统一:`feat/<模块>-<主题>`、`fix/<模块>-<问题>`、`refactor/<模块>-<主题>`、`docs/<主题>`。
+- 每次提交前至少执行与改动相关的最小验证(前端改动跑 `npm run lint`;后端改动跑 `dotnet test` 或最小可运行验证)。
+- 禁止一次提交混入无关重构、格式化噪声或大面积文件移动。
+
+## 代码风格与命名约定
+
+前端使用 Vue Standard ESLint 规则,缩进为 4 空格(见 `package.json`)。Vue 组件采用 PascalCase;扩展配置建议放在 `src/extension/{domain}/{entity}.js`。
+
+后端遵循现有分层与命名:`I{Entity}Service`(接口)、`{Entity}Service`(实现)、`{Entity}Controller`(控制器)。新增代码应保持与现有 Autofac 注册、基础 Controller/Service 模式一致。
+
+默认要求:对新增或修改的代码添加详细中文注释,至少包含方法目的、参数含义、返回值、关键逻辑步骤和异常处理说明。
+
+注释要求可读、可维护,禁止“重复代码字面意思”的无效注释。
+
+## 数据一致性与事务规范
+
+- 同一业务操作涉及多个数据对象(多表、多仓储、跨服务写入)同时改动时,必须使用数据库事务(Transaction)保证原子性。
+- 事务范围只覆盖必要写操作,禁止将长耗时 IO/网络调用放入事务内,避免长事务锁表。
+- 发生异常时必须回滚事务,并记录事务上下文(业务单号、关键主键、调用链标识)。
+- 若涉及分布式或跨边界写入,需在 PR 中明确一致性策略(补偿、重试、幂等键)。
+
+## 接口、日志与异常规范
+
+- API 返回结构保持统一,字段命名与现有后端序列化策略一致,避免随意变更响应字段。
+- Service 层抛出的业务异常需包含可定位上下文(任务号、设备号、关键参数)。
+- 日志级别规范:调试细节用 `Debug`,业务关键路径用 `Information`,可恢复异常用 `Warning`,不可恢复错误用 `Error`。
+- 严禁吞异常;捕获后必须记录上下文并决定重抛或转换为业务错误。
+- 涉及外部系统调用、IO、网络通信、设备通信、数据库访问的关键路径必须使用 `try-catch`;`catch` 中至少记录错误信息与关键参数,并保留原始堆栈(`throw;`),禁止仅 `throw ex;`。
+
+## 测试指南
+
+前端测试采用 Vue 单元测试(`tests/unit/*.spec.js`)。涉及 UI 逻辑或接口交互变更时,应补充或更新测试,并执行 `yarn test:unit`。
+
+当前解决方案中未包含独立后端测试项目。后端改动至少需完成构建与关键 API 手工验证;复杂业务逻辑建议新增测试项目(如 xUnit)并纳入解决方案。
+
+## 提交与合并请求规范
+最近提交普遍采用 Conventional Commit 前缀:`feat:`、`fix:`、`refactor:`、`docs:`、`chore:`(中文描述)。建议一次提交聚焦一个明确改动点。
+
+PR 建议包含:
+- 变更目的与业务影响说明;
+- 涉及模块与目录范围(前端/后端);
+- 验证证据(已执行命令与结果);
+- UI 变更截图或录屏;
+- 关联任务或问题编号(如有)。
diff --git a/Code/WMS/CLAUDE.md b/Code/WMS/CLAUDE.md
new file mode 100644
index 0000000..7208508
--- /dev/null
+++ b/Code/WMS/CLAUDE.md
@@ -0,0 +1,187 @@
+# CLAUDE.md
+
+姝ゆ枃浠朵负 Claude Code (claude.ai/code) 鎻愪緵鍦ㄦ浠g爜搴撲腑宸ヤ綔鐨勬寚瀵笺��
+
+## 椤圭洰姒傝堪
+
+杩欐槸涓�涓� WMS锛堜粨搴撶鐞嗙郴缁燂級锛屽悗绔噰鐢� ASP.NET Core 6.0锛屽墠绔噰鐢� Vue 3銆傜郴缁熺鐞嗕粨搴撹繍钀ワ紝鍖呮嫭鍏ュ簱銆佸嚭搴撱�佸簱瀛樸�佷换鍔″拰鍩虹涓绘暟鎹��
+
+```
+WMS/
+鈹溾攢鈹� WIDESEA_WMSServer/ # 鍚庣 (ASP.NET Core 6.0)
+鈹� 鈹溾攢鈹� WIDESEA_WMSServer/ # 涓� API 椤圭洰
+鈹� 鈹溾攢鈹� WIDESEA_Core/ # 鏍稿績妗嗘灦锛堝熀纭�鎺у埗鍣ㄣ�佹湇鍔°�佷粨鍌級
+鈹� 鈹溾攢鈹� WIDESEA_Model/ # 鎸夐鍩熺粍缁囩殑鏁版嵁妯″瀷
+鈹� 鈹溾攢鈹� WIDESEA_*Service/ # 鏈嶅姟瀹炵幇锛圔asic銆両nbound銆丱utbound銆丼tock 绛夛級
+鈹� 鈹溾攢鈹� WIDESEA_I*Service/ # 鏈嶅姟鎺ュ彛
+鈹� 鈹溾攢鈹� WIDESEA_DTO/ # 鏁版嵁浼犺緭瀵硅薄
+鈹� 鈹斺攢鈹� WIDESEA_Common/ # 鍏叡宸ュ叿绫�
+鈹斺攢鈹� WIDESEA_WMSClient/ # 鍓嶇 (Vue 3 + Vite)
+ 鈹溾攢鈹� src/api/ # HTTP 瀹㈡埛绔拰 API 璋冪敤
+ 鈹溾攢鈹� src/components/basic/ # 鍙鐢ㄧ粍浠讹紙ViewGrid銆乂olForm銆乂olTable锛�
+ 鈹溾攢鈹� src/extension/ # 涓庡悗绔尮閰嶇殑棰嗗煙鐗瑰畾閰嶇疆
+ 鈹溾攢鈹� src/views/ # Vue 椤甸潰缁勪欢
+ 鈹溾攢鈹� src/router/ # Vue Router 閰嶇疆
+ 鈹斺攢鈹� src/store/ # Vuex 鐘舵�佺鐞�
+```
+
+## 寮�鍙戝懡浠�
+
+### 鍚庣 (ASP.NET Core)
+```bash
+# 鏋勫缓瑙e喅鏂规
+cd WIDESEA_WMSServer
+dotnet build WIDESEA_WMSServer.sln
+
+# 杩愯鏈嶅姟鍣紙榛樿绔彛锛�9291锛�
+cd WIDESEA_WMSServer/WIDESEA_WMSServer
+dotnet run
+
+# 杩樺師鍖�
+dotnet restore
+
+# 浣跨敤鐗瑰畾閰嶇疆杩愯
+dotnet run --configuration Release
+```
+
+### 鍓嶇 (Vue 3 + Vite)
+```bash
+cd WIDESEA_WMSClient
+
+# 瀹夎渚濊禆锛堜娇鐢� yarn锛�
+yarn install
+
+# 寮�鍙戞湇鍔″櫒锛堢鍙� 8080锛�
+yarn dev
+
+# 鐢熶骇鏋勫缓
+yarn build
+
+# 棰勮鐢熶骇鏋勫缓
+yarn preview
+
+# 杩愯鍗曞厓娴嬭瘯
+yarn test:unit
+
+# 浠g爜妫�鏌�
+yarn lint
+```
+
+## 鏋舵瀯
+
+### 鍚庣鏋舵瀯
+
+**閲囩敤娓呮磥鏋舵瀯鍘熷垯鐨勫垎灞傛灦鏋勶細**
+
+- **鎺у埗鍣�** (`WIDESEA_WMSServer/Controllers/`)锛氱户鎵胯嚜 `ApiBaseController<TService, TEntity>`锛岃嚜鍔ㄦ彁渚� CRUD 绔偣銆傞鍩熺壒瀹氭帶鍒跺櫒鎸夋枃浠跺す缁勭粐锛圔asic銆両nbound銆丱utbound銆丼tock銆丼ystem銆乀askInfo 绛夛級銆�
+
+- **鏈嶅姟灞�** (`WIDESEA_*Service/`)锛氫笟鍔¢�昏緫灞傘�傛湇鍔$户鎵胯嚜 `ServiceBase<T, TEntity>` 骞跺疄鐜� `WIDESEA_I*Service/` 涓殑棰嗗煙鎺ュ彛銆傞�氳繃 Autofac DI 娉ㄥ唽銆�
+
+- **浠撳偍灞�** (`WIDESEA_Core/BaseRepository/`)锛氫娇鐢� SqlSugar ORM 鐨勬暟鎹闂眰銆傛硾鍨� `IRepository<T>` 鍜� `RepositoryBase<T>` 鎻愪緵閫氱敤 CRUD 鎿嶄綔銆�
+
+- **妯″瀷** (`WIDESEA_Model/Models/`)锛氭寜棰嗗煙缁勭粐锛圔asic銆丆heck銆両nbound銆丱utbound銆丼tock銆丼ystem銆乀askInfo銆丷ecord銆丆onfig銆丄pprovalFlow锛夈�傛ā鍨嬬户鎵胯嚜 `BaseEntity` 鎴� `BaseWarehouseEntity`銆�
+
+- **DTO** (`WIDESEA_DTO/`)锛欰PI 璇锋眰/鍝嶅簲鐨勬暟鎹紶杈撳璞★紝鎸夐鍩熺粍缁囥��
+
+**鍏抽敭鍩虹璁炬柦缁勪欢锛�**
+- `WIDESEA_Core/BaseController/ApiBaseController.cs`锛氬叿鏈夎嚜鍔� CRUD 璺敱鐨勫熀纭�鎺у埗鍣�
+- `WIDESEA_Core/BaseServices/IService.cs`锛氬熀纭�鏈嶅姟鎺ュ彛
+- `WIDESEA_Core/Extensions/AutofacModuleRegister.cs`锛欰utofac DI 娉ㄥ唽
+- `WIDESEA_Core/DB/`锛歋qlSugar 鏁版嵁搴撻厤缃�
+- `WIDESEA_Core/Authorization/`锛欽WT 韬唤楠岃瘉
+- `WIDESEA_Core/Filter/`锛氬叏灞�寮傚父澶勭悊鍜屾搷浣滆繃婊ゅ櫒
+
+### 鍓嶇鏋舵瀯
+
+**甯︽湁鑷畾涔夌粍浠舵鏋剁殑 Vue 3 缁勫悎寮� API锛�**
+
+- **ViewGrid 缁勪欢** (`src/components/basic/ViewGrid/`)锛氭牳蹇冭〃鏍�/缃戞牸缁勪欢锛屽鐞嗘暟鎹樉绀恒�佸垎椤点�佹悳绱㈠拰 CRUD 鎿嶄綔銆傞�氳繃鎵╁睍鏂囦欢楂樺害鍙厤缃��
+
+- **鎵╁睍鏂囦欢** (`src/extension/`)锛氶厤缃瘡涓疄浣撶殑 ViewGrid 琛屼负鐨� JavaScript 鏂囦欢銆傚畠浠畾涔夎〃鏍煎垪銆佽〃鍗曞瓧娈点�佹悳绱㈡潯浠跺拰鑷畾涔夋搷浣溿�傛ā寮忥細`src/extension/{domain}/{entityName}.js` 鍖归厤鍚庣鎺у埗鍣ㄣ��
+
+- **API 灞�** (`src/api/`)锛氬皝瑁� Axios 鐨� HTTP 瀹㈡埛绔紝鍏锋湁韬唤楠岃瘉鍜岄敊璇鐞嗘嫤鎴櫒銆�
+
+- **璺敱鍣�** (`src/router/index.js`)锛氬甫鏈夊搱甯屾ā寮忋�佽韩浠介獙璇佸畧鍗拰浠� `viewGird.js` 鍔ㄦ�佽矾鐢卞姞杞界殑 Vue Router銆�
+
+**鍏抽敭鍓嶇妯″紡锛�**
+- 鎵╁睍鏂囦欢锛堝 `src/extension/basic/materielInfo.js`锛夊畾涔夎〃澶淬�佽〃鍗曞瓧娈靛拰鑷畾涔変笟鍔¢�昏緫
+- `src/views/` 涓殑瑙嗗浘寰堢簿绠�锛屽ぇ澶氫娇鐢ㄧ敱鎵╁睍閰嶇疆鐨� ViewGrid 缁勪欢
+- Vuex 瀛樺偍绠$悊韬唤楠岃瘉鐘舵�佸拰鍔犺浇鎸囩ず鍣�
+
+## 閰嶇疆
+
+### 鍚庣閰嶇疆
+
+`WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json` 涓殑鍏抽敭璁剧疆锛�
+- `urls`锛氭湇鍔″櫒绔彛锛堥粯璁わ細`http://*:9291`锛�
+- `ConnectionString`锛歋QL Server 鏁版嵁搴撹繛鎺�
+- `MainDB`锛氫富鏁版嵁搴撳悕绉�
+- `Cors`锛氬墠绔簮澶寸殑 CORS 绛栫暐
+- `WebSocketPort`锛氬疄鏃舵洿鏂扮殑 WebSocket 绔彛锛堥粯璁わ細9296锛�
+- `AutoOutboundTask`锛氳嚜鍔ㄥ嚭搴撴搷浣滅殑鍚庡彴浠诲姟閰嶇疆
+
+### 鍓嶇閰嶇疆
+
+- `vite.config.js`锛歏ite 鏋勫缓閰嶇疆锛宍@` 鍒悕鎸囧悜 `src/`
+- 鏈嶅姟鍣ㄩ粯璁よ繍琛屽湪绔彛 8080
+- 鍩轰簬鍝堝笇鐨勮矾鐢憋紙`createWebHashHistory`锛�
+
+## 浠g爜绾﹀畾
+
+### 鍚庣
+
+1. **鍛藉悕瑙勮寖**锛�
+ - 鎺у埗鍣細`{Entity}Controller.cs`
+ - 鏈嶅姟锛歚{Entity}Service.cs`锛堝疄鐜� `I{Entity}Service`锛�
+ - 妯″瀷锛歚Dt_{EntityName}.cs`锛堟暟鎹簱瀹炰綋浣跨敤 `Dt_` 鍓嶇紑锛�
+ - API 璺敱锛歚api/{ControllerName}`
+
+2. **鏈嶅姟娉ㄥ唽**锛氬疄鐜� `IDependency` 鐨勬湇鍔′細閫氳繃 Autofac 浠庢墍鏈夐」鐩▼搴忛泦涓嚜鍔ㄦ敞鍐屻��
+
+3. **鎺у埗鍣ㄦā寮�**锛氬ぇ澶氭暟鎺у埗鍣ㄧ户鎵胯嚜 `ApiBaseController<TService, TEntity>`锛屽彧闇�瑕佹瀯閫犲嚱鏁般�傛牴鎹渶瑕佹坊鍔犺嚜瀹氫箟鎿嶄綔銆�
+
+4. **鍝嶅簲鏍煎紡**锛歚WebResponseContent` 鍖呰鍣紝鍖呭惈 `Status`锛堝竷灏斿�硷級鍜� `Data` 灞炴�с��
+
+### 鍓嶇
+
+1. **鎵╁睍鏂囦欢妯″紡**锛氬浜庢瘡涓悗绔疄浣擄紝鍦� `src/extension/{domain}/{entity}.js` 鍒涘缓鎵╁睍鏂囦欢锛屽寘鍚細
+ - 琛ㄦ牸鍒楀畾涔�
+ - 琛ㄥ崟瀛楁閰嶇疆
+ - 鑷畾涔� URL 妯″紡
+ - 涓氬姟閫昏緫閽╁瓙
+
+2. **缁勪欢鍛藉悕**锛歏ue 缁勪欢浣跨敤 PascalCase锛屽敖鍙兘鍖归厤鍚庣瀹炰綋鍚嶇О銆�
+
+3. **API 璋冪敤**锛氫娇鐢ㄥ叏灞� `this.http` 瀵硅薄杩涜 HTTP 璇锋眰銆�
+
+## 娣诲姞鏂板姛鑳�
+
+### 鍚庣
+1. 鍦� `WIDESEA_Model/Models/{Domain}/` 涓垱寤烘ā鍨�
+2. 鍦� `WIDESEA_I{Domain}Service/` 涓垱寤烘湇鍔℃帴鍙�
+3. 鍦� `WIDESEA_{Domain}Service/` 涓垱寤烘湇鍔″疄鐜�
+4. 鍦� `WIDESEA_WMSServer/Controllers/{Domain}/` 涓垱寤烘帶鍒跺櫒锛岀户鎵胯嚜 `ApiBaseController<TService, TEntity>`
+5. 鏈嶅姟閫氳繃 `IDependency` 鎺ュ彛鑷姩娉ㄥ唽
+
+### 鍓嶇
+1. 鍦� `src/extension/{domain}/{entity}.js` 鍒涘缓鎵╁睍鏂囦欢
+2. 濡傞渶鑷畾涔� UI锛屽湪 `src/views/{domain}/{entity}.vue` 鍒涘缓鍙�夎鍥剧粍浠�
+3. 濡傞渶瑕侊紝娣诲姞璺敱閰嶇疆
+4. ViewGrid 缁勪欢閰嶅悎鎵╁睍閰嶇疆鍙嚜鍔ㄥ鐞嗗ぇ澶氭暟 CRUD 鎿嶄綔
+
+## 鏁版嵁搴�
+
+- **ORM**锛歋qlSugar
+- **鏁版嵁搴�**锛歋QL Server
+- **杩炴帴瀛楃涓�**锛氬湪 `appsettings.json` 涓厤缃�
+- **杩佺Щ**锛氶�氳繃 SqlSugar 鐨� Code First 鏂瑰紡澶勭悊
+
+## 瀹炴椂鍔熻兘
+
+- SignalR 鐢ㄤ簬鏈嶅姟鍣ㄥ拰瀹㈡埛绔箣闂寸殑瀹炴椂鏇存柊
+- WebSocket 鏈嶅姟鍣ㄥ湪鍗曠嫭绔彛锛堝彲鍦� `appsettings.json` 涓厤缃級
+- 鍓嶇 SignalR 瀹㈡埛绔泦鎴愬湪 `src/main.js` 涓�
+
+## API 鏂囨。
+
+杩愯鍚庣鏈嶅姟鍣ㄦ椂鍙敤 Swagger UI锛堟煡鐪� `/swagger` 绔偣锛夈��
diff --git a/Code/WMS/WIDESEA_WMSServer/AGENTS.md b/Code/WMS/WIDESEA_WMSServer/AGENTS.md
deleted file mode 100644
index c07a83b..0000000
--- a/Code/WMS/WIDESEA_WMSServer/AGENTS.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# AGENTS 鍗忎綔璇存槑
-
-鏈枃浠剁敤浜庣害鏉熷湪鏈粨搴撳唴鍗忎綔寮�鍙戠殑 AI Agent 涓庡紑鍙戣�呰涓恒��
-
-## 1. 鍩烘湰鍘熷垯
-
-- 鎵�鏈夋矡閫氥�佹敞閲娿�佽鏄庢枃妗i粯璁や娇鐢ㄤ腑鏂囥��
-- 浼樺厛淇濊瘉绯荤粺绋冲畾鎬э紝閬垮厤褰卞搷鐜版湁涓氬姟娴佺▼銆�
-- 淇敼搴旈伒寰�滄渶灏忔敼鍔ㄥ師鍒欌�濓紝涓嶈鍋氭棤鍏抽噸鏋勩��
-- 浠讳綍娑夊強鐘舵�佹祦杞殑鏀瑰姩锛屽繀椤绘槑纭墠缃姸鎬併�佺洰鏍囩姸鎬佷笌寮傚父澶勭悊銆�
-
-## 2. 寮�鍙戣鑼�
-
-- 淇濇寔涓庣幇鏈変唬鐮侀鏍间竴鑷达紙鍛藉悕銆佺缉杩涖�佸紓甯稿鐞嗘柟寮忥級銆�
-- 浼樺厛澶嶇敤宸叉湁鏋氫妇銆佹湇鍔′笌浠撳偍鏂规硶锛岄伩鍏嶉噸澶嶅疄鐜般��
-- 涓氬姟甯搁噺搴旀斁鍏ラ厤缃垨鏋氫妇锛屼笉鍏佽纭紪鐮侀瓟娉曞�笺��
-- 娑夊強鎵归噺澶勭悊鏃讹紝浼樺厛鑰冭檻鎵归噺鏌ヨ/鎵归噺鏇存柊锛岄伩鍏� N+1 鏌ヨ銆�
-
-## 3. 鐘舵�佷笌浜嬪姟
-
-- 娑夊強鈥滀换鍔″垱寤� + 搴撳瓨鐘舵�� + 璐т綅鐘舵�佲�濊仈鍔ㄦ椂锛屽繀椤讳繚璇佷竴鑷存�с��
-- 鑻ヤ换涓�鍏抽敭姝ラ澶辫触锛屽簲杩斿洖鏄庣‘閿欒淇℃伅锛屼笉鑳介潤榛樺け璐ャ��
-- 瀵瑰苟鍙戝満鏅繚鎸佹晱鎰燂紝閬垮厤閲嶅鍒涘缓浠诲姟鎴栭噸澶嶅垎閰嶅簱瀛樸��
-
-## 4. 鎺ュ彛涓庨泦鎴�
-
-- 瀵规帴澶栭儴绯荤粺锛堝 WCS锛夊墠锛屽厛纭璇锋眰妯″瀷涓庢帴鍙g害瀹氾紙鍗曟潯鎴栨壒閲忥級銆�
-- 澶栭儴閫氱煡澶辫触涓嶅簲闃诲涓绘祦绋嬫椂锛屽繀椤昏褰曞彲杩借釜鏃ュ織銆�
-- 鎺ュ彛鍦板潃浼樺厛閰嶇疆鍖栵紝閬垮厤鍐欐鐜鍦板潃銆�
-
-## 5. 楠岃瘉瑕佹眰
-
-- 瀹屾垚鏀瑰姩鍚庤嚦灏戞墽琛屼竴娆″彲鐢ㄧ殑缂栬瘧鎴栨祴璇曢獙璇併��
-- 鍦ㄦ彁浜ょ粨鏋滄椂锛岃鏄庯細
- - 淇敼浜嗗摢浜涙枃浠�
- - 鍏抽敭閫昏緫鍙樻洿鐐�
- - 楠岃瘉鍛戒护涓庣粨鏋�
-
-## 6. 绂佹浜嬮」
-
-- 鏈粡鏄庣‘瑕佹眰锛屼笉寰楀垹闄ゆ垨鍥炴粴浠栦汉宸叉湁鏀瑰姩銆�
-- 涓嶅緱浣跨敤楂橀闄╁懡浠わ紙濡傚己鍒堕噸缃級鐮村潖宸ヤ綔鍖恒��
-- 涓嶅緱鍦ㄦ湭楠岃瘉鐨勬儏鍐典笅瀹gО鈥滃凡淇鈥濇垨鈥滃彲涓婄嚎鈥濄��
-
-## 7. 寤鸿宸ヤ綔娴�
-
-1. 鍏堥槄璇荤浉鍏充笂涓嬫父浠g爜涓庢灇涓惧畾涔夈��
-2. 鏄庣‘杈撳叆銆佸鐞嗐�佽緭鍑轰互鍙婄姸鎬佸彉鍖栥��
-3. 瀹炴柦鏈�灏忔敼鍔ㄥ苟琛ュ厖蹇呰娉ㄩ噴銆�
-4. 缂栬瘧/娴嬭瘯楠岃瘉骞惰緭鍑虹粨鏋滄憳瑕併��
-
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/.gitignore b/Code/WMS/WIDESEA_WMS_Frontend/.gitignore
deleted file mode 100644
index d1c7d12..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/.gitignore
+++ /dev/null
@@ -1,28 +0,0 @@
-# Logs
-logs
-*.log
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-pnpm-debug.log*
-lerna-debug.log*
-
-node_modules
-dist
-dist-ssr
-*.local
-
-# Editor directories and files
-.vscode/*
-!.vscode/extensions.json
-.idea
-.DS_Store
-*.suo
-*.ntvs*
-*.njsproj
-*.sln
-*.sw?
-
-# Auto-generated
-src/auto-imports.d.ts
-src/components.d.ts
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/GUIDE.md b/Code/WMS/WIDESEA_WMS_Frontend/GUIDE.md
deleted file mode 100644
index bf8696e..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/GUIDE.md
+++ /dev/null
@@ -1,435 +0,0 @@
-# WIDESEA WMS 鍓嶇椤圭洰 - 蹇�熷紑濮嬫寚鍗�
-
-## 椤圭洰姒傝堪
-
-鏈」鐩槸鍩轰簬 Vue 3 + TypeScript + Ant Design Vue 寮�鍙戠殑 WIDESEA WMS 浠撳簱绠$悊绯荤粺鍓嶇锛屽凡瀹屾垚涓庡悗绔� API 鐨勯�傞厤銆�
-
-## 鎶�鏈爤
-
-- **妗嗘灦**: Vue 3.4 (Composition API)
-- **璇█**: TypeScript 5.3
-- **鏋勫缓宸ュ叿**: Vite 5.0
-- **UI 缁勪欢搴�**: Ant Design Vue 4.1
-- **璺敱**: Vue Router 4.2
-- **鐘舵�佺鐞�**: Pinia 2.1
-- **HTTP 瀹㈡埛绔�**: Axios 1.6
-- **鏃ユ湡澶勭悊**: Day.js 1.11
-- **宸ュ叿搴�**: Lodash-es 4.17
-
-## 椤圭洰缁撴瀯
-
-```
-WIDESEA_WMS_Frontend/
-鈹溾攢鈹� src/
-鈹� 鈹溾攢鈹� api/ # API 鎺ュ彛瀹氫箟
-鈹� 鈹� 鈹溾攢鈹� auth.ts # 璁よ瘉鐩稿叧 API
-鈹� 鈹� 鈹溾攢鈹� system/ # 绯荤粺绠$悊 API
-鈹� 鈹� 鈹斺攢鈹� basic/ # 鍩虹淇℃伅 API
-鈹� 鈹溾攢鈹� assets/ # 闈欐�佽祫婧�
-鈹� 鈹� 鈹斺攢鈹� styles/ # 鏍峰紡鏂囦欢
-鈹� 鈹溾攢鈹� layouts/ # 甯冨眬缁勪欢
-鈹� 鈹� 鈹斺攢鈹� BasicLayout.vue # 鍩虹甯冨眬
-鈹� 鈹溾攢鈹� router/ # 璺敱閰嶇疆
-鈹� 鈹� 鈹溾攢鈹� index.ts # 璺敱涓绘枃浠�
-鈹� 鈹� 鈹溾攢鈹� routes.ts # 璺敱瀹氫箟
-鈹� 鈹� 鈹斺攢鈹� guard.ts # 璺敱瀹堝崼
-鈹� 鈹溾攢鈹� stores/ # Pinia 鐘舵�佺鐞�
-鈹� 鈹� 鈹溾攢鈹� auth.ts # 璁よ瘉鐘舵��
-鈹� 鈹� 鈹斺攢鈹� app.ts # 搴旂敤鐘舵��
-鈹� 鈹溾攢鈹� types/ # TypeScript 绫诲瀷瀹氫箟
-鈹� 鈹� 鈹溾攢鈹� api.ts # API 绫诲瀷
-鈹� 鈹� 鈹溾攢鈹� user.ts # 鐢ㄦ埛绫诲瀷
-鈹� 鈹� 鈹斺攢鈹� common.ts # 閫氱敤绫诲瀷
-鈹� 鈹溾攢鈹� utils/ # 宸ュ叿鍑芥暟
-鈹� 鈹� 鈹溾攢鈹� request.ts # Axios 灏佽
-鈹� 鈹� 鈹溾攢鈹� auth.ts # 璁よ瘉宸ュ叿
-鈹� 鈹� 鈹斺攢鈹� common.ts # 閫氱敤宸ュ叿
-鈹� 鈹溾攢鈹� views/ # 椤甸潰缁勪欢
-鈹� 鈹� 鈹溾攢鈹� login/ # 鐧诲綍椤�
-鈹� 鈹� 鈹溾攢鈹� dashboard/ # 棣栭〉
-鈹� 鈹� 鈹溾攢鈹� system/ # 绯荤粺绠$悊
-鈹� 鈹� 鈹� 鈹溾攢鈹� user/ # 鐢ㄦ埛绠$悊
-鈹� 鈹� 鈹� 鈹溾攢鈹� role/ # 瑙掕壊绠$悊
-鈹� 鈹� 鈹� 鈹斺攢鈹� menu/ # 鑿滃崟绠$悊
-鈹� 鈹� 鈹溾攢鈹� basic/ # 鍩虹淇℃伅
-鈹� 鈹� 鈹� 鈹溾攢鈹� warehouse/ # 浠撳簱绠$悊
-鈹� 鈹� 鈹� 鈹溾攢鈹� location/ # 璐т綅绠$悊
-鈹� 鈹� 鈹� 鈹斺攢鈹� materiel/ # 鐗╂枡绠$悊
-鈹� 鈹� 鈹溾攢鈹� inbound/ # 鍏ュ簱绠$悊
-鈹� 鈹� 鈹� 鈹斺攢鈹� order/ # 鍏ュ簱鍗曠鐞�
-鈹� 鈹� 鈹溾攢鈹� outbound/ # 鍑哄簱绠$悊
-鈹� 鈹� 鈹� 鈹斺攢鈹� order/ # 鍑哄簱鍗曠鐞�
-鈹� 鈹� 鈹溾攢鈹� stock/ # 搴撳瓨绠$悊
-鈹� 鈹� 鈹� 鈹斺攢鈹� info/ # 搴撳瓨淇℃伅
-鈹� 鈹� 鈹溾攢鈹� check/ # 鐩樼偣绠$悊
-鈹� 鈹� 鈹� 鈹斺攢鈹� order/ # 鐩樼偣鍗曠鐞�
-鈹� 鈹� 鈹溾攢鈹� task/ # 浠诲姟绠$悊
-鈹� 鈹� 鈹� 鈹斺攢鈹� info/ # 浠诲姟淇℃伅
-鈹� 鈹� 鈹斺攢鈹� error/ # 閿欒椤甸潰
-鈹� 鈹� 鈹斺攢鈹� 404.vue # 404 椤甸潰
-鈹� 鈹溾攢鈹� App.vue # 鏍圭粍浠�
-鈹� 鈹斺攢鈹� main.ts # 鍏ュ彛鏂囦欢
-鈹溾攢鈹� index.html # HTML 妯℃澘
-鈹溾攢鈹� package.json # 椤圭洰閰嶇疆
-鈹溾攢鈹� tsconfig.json # TypeScript 閰嶇疆
-鈹溾攢鈹� vite.config.ts # Vite 閰嶇疆
-鈹斺攢鈹� README.md # 椤圭洰璇存槑
-
-## 瀹夎渚濊禆
-
-```bash
-cd WIDESEA_WMS_Frontend
-npm install
-```
-
-## 鍚姩寮�鍙戞湇鍔″櫒
-
-```bash
-npm run dev
-```
-
-璁块棶: http://localhost:3000
-
-## 鏋勫缓鐢熶骇鐗堟湰
-
-```bash
-npm run build
-```
-
-鏋勫缓浜х墿灏嗙敓鎴愬湪 `dist` 鐩綍銆�
-
-## 棰勮鐢熶骇鏋勫缓
-
-```bash
-npm run preview
-```
-
-## 鍚庣 API 閰嶇疆
-
-鍚庣 API 鍦板潃閰嶇疆鍦� `vite.config.ts` 涓細
-
-```typescript
-server: {
- proxy: {
- '/api': {
- target: 'http://localhost:9291', // 鍚庣 API 鍦板潃
- changeOrigin: true,
- },
- },
-}
-```
-
-**閲嶈**: 鍚姩鍓嶇涔嬪墠锛岃纭繚鍚庣鏈嶅姟宸茬粡鍚姩鍦� `http://localhost:9291`銆�
-
-## 鐧诲綍鍔熻兘
-
-### 鐧诲綍娴佺▼
-
-1. 璁块棶 http://localhost:3000锛岃嚜鍔ㄨ烦杞埌鐧诲綍椤�
-2. 杈撳叆鐢ㄦ埛鍚嶅拰瀵嗙爜
-3. 鐐瑰嚮鐧诲綍鎸夐挳
-4. 鐧诲綍鎴愬姛鍚庯紝Token 瀛樺偍鍦� localStorage
-5. 鑷姩璺宠浆鍒伴椤�
-
-### 璁よ瘉鏈哄埗
-
-- **Token 瀛樺偍**: localStorage (key: `token`)
-- **Token 鏈夋晥鏈�**: 120 鍒嗛挓
-- **Token 鍒锋柊**: 褰撳搷搴斿ご鍖呭惈 `widesea_exp: 1` 鏃惰嚜鍔ㄥ埛鏂�
-- **璇锋眰澶�**: `Authorization: Bearer {token}`
-- **鏈璇佸鐞�**: 401 閿欒鑷姩璺宠浆鐧诲綍椤�
-
-### 娴嬭瘯璐﹀彿
-
-璇蜂娇鐢ㄥ悗绔暟鎹簱涓殑鐢ㄦ埛璐﹀彿杩涜鐧诲綍娴嬭瘯銆�
-
-## 鍔熻兘妯″潡
-
-### 1. 绯荤粺绠$悊
-
-#### 鐢ㄦ埛绠$悊 (`/system/user`)
-- 鐢ㄦ埛鍒楄〃鏌ヨ锛堝垎椤点�佹悳绱級
-- 鏂板鐢ㄦ埛
-- 缂栬緫鐢ㄦ埛
-- 鍒犻櫎鐢ㄦ埛
-- API: `/api/User/GetPageData`, `/api/User/Add`, `/api/User/Update`, `/api/User/Del`
-
-#### 瑙掕壊绠$悊 (`/system/role`)
-- 瑙掕壊鍒楄〃鏌ヨ
-- 鏂板瑙掕壊
-- 缂栬緫瑙掕壊
-- 鍒犻櫎瑙掕壊
-- API: `/api/Role/GetPageData`, `/api/Role/Add`, `/api/Role/Update`, `/api/Role/Del`
-
-#### 鑿滃崟绠$悊 (`/system/menu`)
-- 鑿滃崟鍒楄〃鏌ヨ锛堟爲褰㈢粨鏋勶級
-- 鏂板鑿滃崟
-- 缂栬緫鑿滃崟
-- 鍒犻櫎鑿滃崟
-- API: `/api/Menu/GetPageData`, `/api/Menu/Add`, `/api/Menu/Update`, `/api/Menu/Del`
-
-### 2. 鍩虹淇℃伅
-
-#### 浠撳簱绠$悊 (`/basic/warehouse`)
-- 浠撳簱鍒楄〃鏌ヨ锛堝垎椤点�佹悳绱級
-- 鏂板浠撳簱
-- 缂栬緫浠撳簱
-- 鍒犻櫎浠撳簱
-- API: `/api/Warehouse/GetPageData`, `/api/Warehouse/Add`, `/api/Warehouse/Update`, `/api/Warehouse/Del`
-
-#### 璐т綅绠$悊 (`/basic/location`)
-- 璐т綅鍒楄〃鏌ヨ锛堝垎椤点�佹悳绱級
-- 鏂板璐т綅
-- 缂栬緫璐т綅
-- 鍒犻櫎璐т綅
-- 璐т綅鐘舵�佹樉绀猴紙绌洪棽/鍗犵敤锛�
-- API: `/api/LocationInfo/GetPageData`, `/api/LocationInfo/Add`, `/api/LocationInfo/Update`, `/api/LocationInfo/Del`
-
-#### 鐗╂枡绠$悊 (`/basic/materiel`)
-- 鐗╂枡鍒楄〃鏌ヨ锛堝垎椤点�佹悳绱級
-- 鏂板鐗╂枡
-- 缂栬緫鐗╂枡
-- 鍒犻櫎鐗╂枡
-- API: `/api/MaterielInfo/GetPageData`, `/api/MaterielInfo/Add`, `/api/MaterielInfo/Update`, `/api/MaterielInfo/Del`
-
-### 3. 鍏ュ簱绠$悊
-
-#### 鍏ュ簱鍗曠鐞� (`/inbound/order`)
-- 鍏ュ簱鍗曞垪琛ㄦ煡璇紙鍒嗛〉銆佹悳绱級
-- 鏂板鍏ュ簱鍗�
-- 鏌ョ湅鍏ュ簱鍗曡鎯�
-- 缂栬緫鍏ュ簱鍗�
-- 鍒犻櫎鍏ュ簱鍗�
-- 璁㈠崟鐘舵�佹樉绀猴紙寰呭鐞�/澶勭悊涓�/宸插畬鎴�/宸插彇娑堬級
-- API: `/api/InboundOrder/GetPageData`, `/api/InboundOrder/Add`, `/api/InboundOrder/Update`, `/api/InboundOrder/Del`
-
-### 4. 鍑哄簱绠$悊
-
-#### 鍑哄簱鍗曠鐞� (`/outbound/order`)
-- 鍑哄簱鍗曞垪琛ㄦ煡璇紙鍒嗛〉銆佹悳绱級
-- 鏂板鍑哄簱鍗�
-- 鏌ョ湅鍑哄簱鍗曡鎯�
-- 缂栬緫鍑哄簱鍗�
-- 鍒犻櫎鍑哄簱鍗�
-- 璁㈠崟鐘舵�佹樉绀猴紙寰呭鐞�/澶勭悊涓�/宸插畬鎴�/宸插彇娑堬級
-- API: `/api/OutboundOrder/GetPageData`, `/api/OutboundOrder/Add`, `/api/OutboundOrder/Update`, `/api/OutboundOrder/Del`
-
-### 5. 搴撳瓨绠$悊
-
-#### 搴撳瓨淇℃伅 (`/stock/info`)
-- 搴撳瓨鍒楄〃鏌ヨ锛堝垎椤点�佹悳绱級
-- 鏌ョ湅搴撳瓨鏄庣粏
-- 瀵煎嚭搴撳瓨鏁版嵁
-- 鏄剧ず鎬绘暟閲忋�佸彲鐢ㄦ暟閲忋�侀攣瀹氭暟閲�
-- API: `/api/StockInfo/GetPageData`, `/api/StockInfoDetail/GetDetailPage`
-
-### 6. 鐩樼偣绠$悊
-
-#### 鐩樼偣鍗曠鐞� (`/check/order`)
-- 鐩樼偣鍗曞垪琛ㄦ煡璇紙鍒嗛〉銆佹悳绱級
-- 鏂板鐩樼偣鍗�
-- 鏌ョ湅鐩樼偣鍗曡鎯�
-- 缂栬緫鐩樼偣鍗�
-- 鍒犻櫎鐩樼偣鍗�
-- 鐩樼偣鐘舵�佹樉绀猴紙寰呯洏鐐�/鐩樼偣涓�/宸插畬鎴愶級
-- API: `/api/CheckOrder/GetPageData`, `/api/CheckOrder/Add`, `/api/CheckOrder/Update`, `/api/CheckOrder/Del`
-
-### 7. 浠诲姟绠$悊
-
-#### 浠诲姟淇℃伅 (`/task/info`)
-- 浠诲姟鍒楄〃鏌ヨ锛堝垎椤点�佹悳绱級
-- 浠诲姟鐘舵�佺瓫閫�
-- 鏌ョ湅浠诲姟璇︽儏
-- 浠诲姟鐘舵�佹樉绀猴紙寰呭鐞�/澶勭悊涓�/宸插畬鎴�/宸插彇娑堬級
-- API: `/api/Task/GetPageData`
-
-## API 璇锋眰鏍煎紡
-
-### 鍒嗛〉璇锋眰
-
-```typescript
-{
- page: 1, // 褰撳墠椤电爜
- rows: 20, // 姣忛〉鏉℃暟
- sort: 'CreateDate', // 鎺掑簭瀛楁
- order: 'desc', // 鎺掑簭鏂瑰紡 (asc/desc)
- wheres: [ // 鏌ヨ鏉′欢锛堝彲閫夛級
- {
- name: 'UserName', // 瀛楁鍚�
- value: 'admin', // 瀛楁鍊�
- displayType: 'like' // 鏌ヨ绫诲瀷 (like/equal/notEqual/greaterThan/lessThan/in/notIn)
- }
- ]
-}
-```
-
-### 鍝嶅簲鏍煎紡
-
-```typescript
-{
- status: true, // 鎴愬姛/澶辫触
- message: '', // 娑堟伅
- data: { // 鏁版嵁
- rows: [], // 鏁版嵁鍒楄〃
- total: 0, // 鎬绘潯鏁�
- page: 1, // 褰撳墠椤�
- records: 20 // 姣忛〉鏉℃暟
- }
-}
-```
-
-## 寮�鍙戞寚鍗�
-
-### 娣诲姞鏂伴〉闈�
-
-1. 鍦� `src/views` 涓嬪垱寤洪〉闈㈢粍浠�
-2. 鍦� `src/router/routes.ts` 涓坊鍔犺矾鐢遍厤缃�
-3. 鍦� `src/api` 涓坊鍔� API 鎺ュ彛瀹氫箟
-4. 鍦� `src/types` 涓坊鍔犵被鍨嬪畾涔夛紙濡傞渶瑕侊級
-
-### 娣诲姞鏂� API
-
-鍦� `src/api` 鐩綍涓嬪垱寤烘垨缂栬緫 API 鏂囦欢锛�
-
-```typescript
-import request from '../utils/request';
-import type { ApiResponse, PageRequest, PageResponse } from '../types/api';
-
-export function getList(data: PageRequest) {
- return request<ApiResponse<PageResponse<YourType>>>({
- url: '/YourController/GetPageData',
- method: 'post',
- data,
- });
-}
-
-export function add(data: Partial<YourType>) {
- return request<ApiResponse<boolean>>({
- url: '/YourController/Add',
- method: 'post',
- data,
- });
-}
-```
-
-### 鐘舵�佺鐞�
-
-浣跨敤 Pinia 杩涜鐘舵�佺鐞嗭紝宸插垱寤虹殑 Store锛�
-
-- `useAuthStore`: 璁よ瘉鐘舵�侊紙鐧诲綍銆佺櫥鍑恒�佺敤鎴蜂俊鎭級
-- `useAppStore`: 搴旂敤鐘舵�侊紙渚ц竟鏍忔姌鍙犮�佸姞杞界姸鎬侊級
-
-鍒涘缓鏂� Store锛�
-
-```typescript
-import { defineStore } from 'pinia';
-import { ref } from 'vue';
-
-export const useYourStore = defineStore('your-store', () => {
- const data = ref<any>(null);
-
- function setData(value: any) {
- data.value = value;
- }
-
- return {
- data,
- setData,
- };
-});
-```
-
-## 甯歌闂
-
-### 1. 鐧诲綍鍚� Token 鏈敓鏁�
-
-妫�鏌ワ細
-- 鍚庣鏄惁姝g‘杩斿洖 Token
-- Token 鏄惁瀛樺偍鍦� localStorage
-- 璇锋眰澶存槸鍚﹀寘鍚� `Authorization: Bearer {token}`
-
-### 2. API 璇锋眰 404
-
-妫�鏌ワ細
-- 鍚庣鏈嶅姟鏄惁鍚姩
-- API 璺緞鏄惁姝g‘
-- Vite 浠g悊閰嶇疆鏄惁姝g‘
-
-### 3. 璺ㄥ煙闂
-
-宸插湪 `vite.config.ts` 涓厤缃唬鐞嗭紝寮�鍙戠幆澧冧笉浼氭湁璺ㄥ煙闂銆傜敓浜х幆澧冮渶瑕佸悗绔厤缃� CORS銆�
-
-### 4. Token 杩囨湡澶勭悊
-
-绯荤粺浼氳嚜鍔ㄥ鐞� Token 杩囨湡锛�
-- 401 閿欒鑷姩璺宠浆鐧诲綍椤�
-- Token 鍗冲皢杩囨湡鏃惰嚜鍔ㄥ埛鏂帮紙鍝嶅簲澶� `widesea_exp: 1`锛�
-
-## 閮ㄧ讲
-
-### 寮�鍙戠幆澧�
-
-```bash
-npm run dev
-```
-
-### 鐢熶骇鐜
-
-1. 鏋勫缓椤圭洰锛�
-```bash
-npm run build
-```
-
-2. 灏� `dist` 鐩綍閮ㄧ讲鍒� Web 鏈嶅姟鍣紙Nginx銆丄pache 绛夛級
-
-3. 閰嶇疆 Nginx 鍙嶅悜浠g悊锛堢ず渚嬶級锛�
-
-```nginx
-server {
- listen 80;
- server_name your-domain.com;
-
- location / {
- root /path/to/dist;
- try_files $uri $uri/ /index.html;
- }
-
- location /api {
- proxy_pass http://localhost:9291;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- }
-}
-```
-
-## 鍚庣画鎵╁睍
-
-### 寰呭畬鍠勫姛鑳�
-
-1. **鍏ュ簱/鍑哄簱鍗曟槑缁�**: 娣诲姞鏄庣粏琛ㄦ牸鍜岀紪杈戝姛鑳�
-2. **鏉冮檺鎺у埗**: 鍩轰簬瑙掕壊鐨勮彍鍗曞拰鎸夐挳鏉冮檺鎺у埗
-3. **鏁版嵁瀵煎嚭**: Excel 瀵煎嚭鍔熻兘
-4. **鏁版嵁瀵煎叆**: Excel 鎵归噺瀵煎叆鍔熻兘
-5. **鎶ヨ〃缁熻**: 鍚勭被涓氬姟鎶ヨ〃鍜屽浘琛�
-6. **娑堟伅閫氱煡**: WebSocket 瀹炴椂娑堟伅鎺ㄩ��
-7. **鎿嶄綔鏃ュ織**: 鐢ㄦ埛鎿嶄綔鏃ュ織璁板綍鍜屾煡璇�
-8. **鏁版嵁瀛楀吀**: 瀛楀吀绠$悊鍜屽瓧鍏搁」绠$悊
-9. **鏂囦欢涓婁紶**: 鍥剧墖鍜屾枃浠朵笂浼犲姛鑳�
-10. **鎵撳嵃鍔熻兘**: 鍗曟嵁鎵撳嵃鍔熻兘
-
-### 鎬ц兘浼樺寲
-
-1. 璺敱鎳掑姞杞斤紙宸插疄鐜帮級
-2. 缁勪欢鎳掑姞杞�
-3. 鍥剧墖鎳掑姞杞�
-4. 铏氭嫙婊氬姩锛堝ぇ鏁版嵁閲忚〃鏍硷級
-5. 璇锋眰闃叉姈鍜岃妭娴�
-6. 缂撳瓨浼樺寲
-
-## 鎶�鏈敮鎸�
-
-濡傛湁闂锛岃鑱旂郴寮�鍙戝洟闃熸垨鏌ョ湅鍚庣 API 鏂囨。銆�
-
-## 璁稿彲璇�
-
-MIT
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/README.md b/Code/WMS/WIDESEA_WMS_Frontend/README.md
deleted file mode 100644
index 28dcec2..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/README.md
+++ /dev/null
@@ -1,114 +0,0 @@
-# WIDESEA WMS 鍓嶇绯荤粺
-
-鍩轰簬 Vue 3 + TypeScript + Ant Design Vue 鐨勪粨搴撶鐞嗙郴缁熷墠绔��
-
-## 鎶�鏈爤
-
-- Vue 3.4
-- TypeScript 5.3
-- Vite 5.0
-- Ant Design Vue 4.1
-- Vue Router 4.2
-- Pinia 2.1
-- Axios 1.6
-
-## 鍔熻兘妯″潡
-
-### 绯荤粺绠$悊
-- 鐢ㄦ埛绠$悊
-- 瑙掕壊绠$悊
-- 鑿滃崟绠$悊
-- 瀛楀吀绠$悊
-- 鏃ュ織绠$悊
-- 绉熸埛绠$悊
-
-### 鍩虹淇℃伅
-- 浠撳簱绠$悊
-- 璐т綅绠$悊
-- 鐗╂枡绠$悊
-- 鐗╂枡缂栫爜绠$悊
-- 鎵樼洏缂栫爜绠$悊
-
-### 鍏ュ簱绠$悊
-- 鍏ュ簱鍗曠鐞�
-- 鍏ュ簱鍗曟槑缁�
-- 閲囪喘鍗曠鐞�
-- 鏀惰揣鍗曠鐞�
-
-### 鍑哄簱绠$悊
-- 鍑哄簱鍗曠鐞�
-- 鍑哄簱鍗曟槑缁�
-- 鍑哄簱閿佸畾淇℃伅
-
-### 搴撳瓨绠$悊
-- 搴撳瓨淇℃伅
-- 搴撳瓨鏄庣粏
-- 搴撳瓨瑙嗗浘
-
-### 鐩樼偣绠$悊
-- 鐩樼偣鍗曠鐞�
-- 鐩樼偣缁撴灉
-
-### 浠诲姟绠$悊
-- 浠诲姟淇℃伅
-- 浠诲姟鍘嗗彶
-
-## 寮�鍙�
-
-```bash
-# 瀹夎渚濊禆
-npm install
-
-# 鍚姩寮�鍙戞湇鍔″櫒
-npm run dev
-
-# 鏋勫缓鐢熶骇鐗堟湰
-npm run build
-
-# 棰勮鐢熶骇鏋勫缓
-npm run preview
-```
-
-## 閰嶇疆
-
-鍚庣 API 鍦板潃閰嶇疆鍦� `vite.config.ts` 涓細
-
-```typescript
-server: {
- proxy: {
- '/api': {
- target: 'http://localhost:9291',
- changeOrigin: true,
- },
- },
-}
-```
-
-## 鐩綍缁撴瀯
-
-```
-src/
-鈹溾攢鈹� api/ # API 鎺ュ彛
-鈹溾攢鈹� assets/ # 闈欐�佽祫婧�
-鈹溾攢鈹� components/ # 鍏叡缁勪欢
-鈹溾攢鈹� layouts/ # 甯冨眬缁勪欢
-鈹溾攢鈹� router/ # 璺敱閰嶇疆
-鈹溾攢鈹� stores/ # Pinia 鐘舵�佺鐞�
-鈹溾攢鈹� types/ # TypeScript 绫诲瀷瀹氫箟
-鈹溾攢鈹� utils/ # 宸ュ叿鍑芥暟
-鈹溾攢鈹� views/ # 椤甸潰缁勪欢
-鈹溾攢鈹� App.vue # 鏍圭粍浠�
-鈹斺攢鈹� main.ts # 鍏ュ彛鏂囦欢
-```
-
-## 璁よ瘉鏈哄埗
-
-绯荤粺浣跨敤 JWT Token 杩涜璁よ瘉锛�
-- Token 瀛樺偍鍦� localStorage
-- 璇锋眰澶磋嚜鍔ㄦ坊鍔� Authorization: Bearer {token}
-- Token 杩囨湡鑷姩鍒锋柊
-- 鏈璇佽嚜鍔ㄨ烦杞櫥褰曢〉
-
-## 璁稿彲璇�
-
-MIT
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/index.html b/Code/WMS/WIDESEA_WMS_Frontend/index.html
deleted file mode 100644
index 72508ff..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh-CN">
- <head>
- <meta charset="UTF-8" />
- <link rel="icon" type="image/svg+xml" href="/vite.svg" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <title>WIDESEA WMS - 浠撳簱绠$悊绯荤粺</title>
- </head>
- <body>
- <div id="app"></div>
- <script type="module" src="/src/main.ts"></script>
- </body>
-</html>
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/package-lock.json b/Code/WMS/WIDESEA_WMS_Frontend/package-lock.json
deleted file mode 100644
index 988bad4..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/package-lock.json
+++ /dev/null
@@ -1,4654 +0,0 @@
-{
- "name": "widesea-wms-frontend",
- "version": "1.0.0",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "widesea-wms-frontend",
- "version": "1.0.0",
- "license": "MIT",
- "dependencies": {
- "@ant-design/icons-vue": "^7.0.1",
- "ant-design-vue": "^4.1.0",
- "axios": "^1.6.2",
- "dayjs": "^1.11.10",
- "lodash-es": "^4.17.21",
- "nprogress": "^0.2.0",
- "pinia": "^2.1.7",
- "vue": "^3.4.0",
- "vue-router": "^4.2.5"
- },
- "devDependencies": {
- "@types/lodash-es": "^4.17.12",
- "@types/node": "^20.10.5",
- "@types/nprogress": "^0.2.3",
- "@vitejs/plugin-vue": "^5.0.0",
- "@vitejs/plugin-vue-jsx": "^3.1.0",
- "eslint": "^8.56.0",
- "prettier": "^3.1.1",
- "typescript": "^5.3.3",
- "unplugin-auto-import": "^0.17.2",
- "unplugin-vue-components": "^0.26.0",
- "vite": "^5.0.8",
- "vue-tsc": "^1.8.27"
- }
- },
- "node_modules/@ant-design/colors": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-6.0.0.tgz",
- "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==",
- "license": "MIT",
- "dependencies": {
- "@ctrl/tinycolor": "^3.4.0"
- }
- },
- "node_modules/@ant-design/icons-svg": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz",
- "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==",
- "license": "MIT"
- },
- "node_modules/@ant-design/icons-vue": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/@ant-design/icons-vue/-/icons-vue-7.0.1.tgz",
- "integrity": "sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q==",
- "license": "MIT",
- "dependencies": {
- "@ant-design/colors": "^6.0.0",
- "@ant-design/icons-svg": "^4.2.1"
- },
- "peerDependencies": {
- "vue": ">=3.0.3"
- }
- },
- "node_modules/@antfu/utils": {
- "version": "0.7.10",
- "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.10.tgz",
- "integrity": "sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
- "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.28.5",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.1.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/compat-data": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz",
- "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/core": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz",
- "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.29.0",
- "@babel/generator": "^7.29.0",
- "@babel/helper-compilation-targets": "^7.28.6",
- "@babel/helper-module-transforms": "^7.28.6",
- "@babel/helpers": "^7.28.6",
- "@babel/parser": "^7.29.0",
- "@babel/template": "^7.28.6",
- "@babel/traverse": "^7.29.0",
- "@babel/types": "^7.29.0",
- "@jridgewell/remapping": "^2.3.5",
- "convert-source-map": "^2.0.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.3",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
- }
- },
- "node_modules/@babel/generator": {
- "version": "7.29.1",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
- "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.29.0",
- "@babel/types": "^7.29.0",
- "@jridgewell/gen-mapping": "^0.3.12",
- "@jridgewell/trace-mapping": "^0.3.28",
- "jsesc": "^3.0.2"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-annotate-as-pure": {
- "version": "7.27.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz",
- "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.27.3"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
- "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/compat-data": "^7.28.6",
- "@babel/helper-validator-option": "^7.27.1",
- "browserslist": "^4.24.0",
- "lru-cache": "^5.1.1",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz",
- "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.27.3",
- "@babel/helper-member-expression-to-functions": "^7.28.5",
- "@babel/helper-optimise-call-expression": "^7.27.1",
- "@babel/helper-replace-supers": "^7.28.6",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
- "@babel/traverse": "^7.28.6",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-globals": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
- "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz",
- "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.28.5",
- "@babel/types": "^7.28.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-imports": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
- "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.28.6",
- "@babel/types": "^7.28.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-transforms": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
- "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-module-imports": "^7.28.6",
- "@babel/helper-validator-identifier": "^7.28.5",
- "@babel/traverse": "^7.28.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-optimise-call-expression": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz",
- "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-plugin-utils": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
- "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-replace-supers": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz",
- "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-member-expression-to-functions": "^7.28.5",
- "@babel/helper-optimise-call-expression": "^7.27.1",
- "@babel/traverse": "^7.28.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz",
- "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.27.1",
- "@babel/types": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-string-parser": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
- "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
- "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-option": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
- "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helpers": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz",
- "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/template": "^7.28.6",
- "@babel/types": "^7.28.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz",
- "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.29.0"
- },
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz",
- "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.28.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-typescript": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz",
- "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.28.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-typescript": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz",
- "integrity": "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.27.3",
- "@babel/helper-create-class-features-plugin": "^7.28.6",
- "@babel/helper-plugin-utils": "^7.28.6",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
- "@babel/plugin-syntax-typescript": "^7.28.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/runtime": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz",
- "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/template": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
- "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.28.6",
- "@babel/parser": "^7.28.6",
- "@babel/types": "^7.28.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
- "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.29.0",
- "@babel/generator": "^7.29.0",
- "@babel/helper-globals": "^7.28.0",
- "@babel/parser": "^7.29.0",
- "@babel/template": "^7.28.6",
- "@babel/types": "^7.29.0",
- "debug": "^4.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/types": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
- "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-string-parser": "^7.27.1",
- "@babel/helper-validator-identifier": "^7.28.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@ctrl/tinycolor": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz",
- "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@emotion/hash": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz",
- "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==",
- "license": "MIT"
- },
- "node_modules/@emotion/unitless": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz",
- "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==",
- "license": "MIT"
- },
- "node_modules/@esbuild/aix-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
- "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "aix"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
- "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
- "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
- "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
- "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/darwin-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
- "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/freebsd-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
- "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/freebsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
- "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
- "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
- "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
- "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
- "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-mips64el": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
- "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
- "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-riscv64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
- "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-s390x": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
- "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
- "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/netbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
- "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/openbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
- "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/sunos-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
- "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
- "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
- "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
- "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@eslint-community/eslint-utils": {
- "version": "4.9.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz",
- "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "eslint-visitor-keys": "^3.4.3"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- },
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
- }
- },
- "node_modules/@eslint-community/regexpp": {
- "version": "4.12.2",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz",
- "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
- }
- },
- "node_modules/@eslint/eslintrc": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
- "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.6.0",
- "globals": "^13.19.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@eslint/js": {
- "version": "8.57.1",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
- "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
- "node_modules/@humanwhocodes/config-array": {
- "version": "0.13.0",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
- "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
- "deprecated": "Use @eslint/config-array instead",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@humanwhocodes/object-schema": "^2.0.3",
- "debug": "^4.3.1",
- "minimatch": "^3.0.5"
- },
- "engines": {
- "node": ">=10.10.0"
- }
- },
- "node_modules/@humanwhocodes/module-importer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
- "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=12.22"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- }
- },
- "node_modules/@humanwhocodes/object-schema": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
- "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
- "deprecated": "Use @eslint/object-schema instead",
- "dev": true,
- "license": "BSD-3-Clause"
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.13",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
- "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.0",
- "@jridgewell/trace-mapping": "^0.3.24"
- }
- },
- "node_modules/@jridgewell/remapping": {
- "version": "2.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
- "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.24"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
- "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.31",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
- "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@rollup/pluginutils": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz",
- "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "estree-walker": "^2.0.2",
- "picomatch": "^4.0.2"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz",
- "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-android-arm64": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz",
- "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz",
- "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz",
- "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-freebsd-arm64": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz",
- "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ]
- },
- "node_modules/@rollup/rollup-freebsd-x64": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz",
- "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz",
- "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz",
- "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz",
- "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz",
- "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-loong64-gnu": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz",
- "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-loong64-musl": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz",
- "integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-ppc64-gnu": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz",
- "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-ppc64-musl": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz",
- "integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz",
- "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-riscv64-musl": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz",
- "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz",
- "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz",
- "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz",
- "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-openbsd-x64": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz",
- "integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ]
- },
- "node_modules/@rollup/rollup-openharmony-arm64": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz",
- "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
- ]
- },
- "node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz",
- "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz",
- "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-x64-gnu": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz",
- "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz",
- "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@simonwep/pickr": {
- "version": "1.8.2",
- "resolved": "https://registry.npmjs.org/@simonwep/pickr/-/pickr-1.8.2.tgz",
- "integrity": "sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==",
- "license": "MIT",
- "dependencies": {
- "core-js": "^3.15.1",
- "nanopop": "^2.1.0"
- }
- },
- "node_modules/@types/estree": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
- "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/lodash": {
- "version": "4.17.23",
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.23.tgz",
- "integrity": "sha512-RDvF6wTulMPjrNdCoYRC8gNR880JNGT8uB+REUpC2Ns4pRqQJhGz90wh7rgdXDPpCczF3VGktDuFGVnz8zP7HA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/lodash-es": {
- "version": "4.17.12",
- "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz",
- "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/lodash": "*"
- }
- },
- "node_modules/@types/node": {
- "version": "20.19.33",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.33.tgz",
- "integrity": "sha512-Rs1bVAIdBs5gbTIKza/tgpMuG1k3U/UMJLWecIMxNdJFDMzcM5LOiLVRYh3PilWEYDIeUDv7bpiHPLPsbydGcw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "undici-types": "~6.21.0"
- }
- },
- "node_modules/@types/nprogress": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/@types/nprogress/-/nprogress-0.2.3.tgz",
- "integrity": "sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@ungap/structured-clone": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
- "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/@vitejs/plugin-vue": {
- "version": "5.2.4",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz",
- "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.0.0 || >=20.0.0"
- },
- "peerDependencies": {
- "vite": "^5.0.0 || ^6.0.0",
- "vue": "^3.2.25"
- }
- },
- "node_modules/@vitejs/plugin-vue-jsx": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz",
- "integrity": "sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.23.3",
- "@babel/plugin-transform-typescript": "^7.23.3",
- "@vue/babel-plugin-jsx": "^1.1.5"
- },
- "engines": {
- "node": "^14.18.0 || >=16.0.0"
- },
- "peerDependencies": {
- "vite": "^4.0.0 || ^5.0.0",
- "vue": "^3.0.0"
- }
- },
- "node_modules/@volar/language-core": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.11.1.tgz",
- "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@volar/source-map": "1.11.1"
- }
- },
- "node_modules/@volar/source-map": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.11.1.tgz",
- "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "muggle-string": "^0.3.1"
- }
- },
- "node_modules/@volar/typescript": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.11.1.tgz",
- "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@volar/language-core": "1.11.1",
- "path-browserify": "^1.0.1"
- }
- },
- "node_modules/@vue/babel-helper-vue-transform-on": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.5.0.tgz",
- "integrity": "sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@vue/babel-plugin-jsx": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.5.0.tgz",
- "integrity": "sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-module-imports": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/plugin-syntax-jsx": "^7.27.1",
- "@babel/template": "^7.27.2",
- "@babel/traverse": "^7.28.0",
- "@babel/types": "^7.28.2",
- "@vue/babel-helper-vue-transform-on": "1.5.0",
- "@vue/babel-plugin-resolve-type": "1.5.0",
- "@vue/shared": "^3.5.18"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- },
- "peerDependenciesMeta": {
- "@babel/core": {
- "optional": true
- }
- }
- },
- "node_modules/@vue/babel-plugin-resolve-type": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.5.0.tgz",
- "integrity": "sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.27.1",
- "@babel/helper-module-imports": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1",
- "@babel/parser": "^7.28.0",
- "@vue/compiler-sfc": "^3.5.18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sxzz"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@vue/compiler-core": {
- "version": "3.5.27",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.27.tgz",
- "integrity": "sha512-gnSBQjZA+//qDZen+6a2EdHqJ68Z7uybrMf3SPjEGgG4dicklwDVmMC1AeIHxtLVPT7sn6sH1KOO+tS6gwOUeQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.28.5",
- "@vue/shared": "3.5.27",
- "entities": "^7.0.0",
- "estree-walker": "^2.0.2",
- "source-map-js": "^1.2.1"
- }
- },
- "node_modules/@vue/compiler-dom": {
- "version": "3.5.27",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.27.tgz",
- "integrity": "sha512-oAFea8dZgCtVVVTEC7fv3T5CbZW9BxpFzGGxC79xakTr6ooeEqmRuvQydIiDAkglZEAd09LgVf1RoDnL54fu5w==",
- "license": "MIT",
- "dependencies": {
- "@vue/compiler-core": "3.5.27",
- "@vue/shared": "3.5.27"
- }
- },
- "node_modules/@vue/compiler-sfc": {
- "version": "3.5.27",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.27.tgz",
- "integrity": "sha512-sHZu9QyDPeDmN/MRoshhggVOWE5WlGFStKFwu8G52swATgSny27hJRWteKDSUUzUH+wp+bmeNbhJnEAel/auUQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.28.5",
- "@vue/compiler-core": "3.5.27",
- "@vue/compiler-dom": "3.5.27",
- "@vue/compiler-ssr": "3.5.27",
- "@vue/shared": "3.5.27",
- "estree-walker": "^2.0.2",
- "magic-string": "^0.30.21",
- "postcss": "^8.5.6",
- "source-map-js": "^1.2.1"
- }
- },
- "node_modules/@vue/compiler-ssr": {
- "version": "3.5.27",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.27.tgz",
- "integrity": "sha512-Sj7h+JHt512fV1cTxKlYhg7qxBvack+BGncSpH+8vnN+KN95iPIcqB5rsbblX40XorP+ilO7VIKlkuu3Xq2vjw==",
- "license": "MIT",
- "dependencies": {
- "@vue/compiler-dom": "3.5.27",
- "@vue/shared": "3.5.27"
- }
- },
- "node_modules/@vue/devtools-api": {
- "version": "6.6.4",
- "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
- "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==",
- "license": "MIT"
- },
- "node_modules/@vue/language-core": {
- "version": "1.8.27",
- "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.27.tgz",
- "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@volar/language-core": "~1.11.1",
- "@volar/source-map": "~1.11.1",
- "@vue/compiler-dom": "^3.3.0",
- "@vue/shared": "^3.3.0",
- "computeds": "^0.0.1",
- "minimatch": "^9.0.3",
- "muggle-string": "^0.3.1",
- "path-browserify": "^1.0.1",
- "vue-template-compiler": "^2.7.14"
- },
- "peerDependencies": {
- "typescript": "*"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@vue/language-core/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/@vue/language-core/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@vue/reactivity": {
- "version": "3.5.27",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.27.tgz",
- "integrity": "sha512-vvorxn2KXfJ0nBEnj4GYshSgsyMNFnIQah/wczXlsNXt+ijhugmW+PpJ2cNPe4V6jpnBcs0MhCODKllWG+nvoQ==",
- "license": "MIT",
- "dependencies": {
- "@vue/shared": "3.5.27"
- }
- },
- "node_modules/@vue/runtime-core": {
- "version": "3.5.27",
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.27.tgz",
- "integrity": "sha512-fxVuX/fzgzeMPn/CLQecWeDIFNt3gQVhxM0rW02Tvp/YmZfXQgcTXlakq7IMutuZ/+Ogbn+K0oct9J3JZfyk3A==",
- "license": "MIT",
- "dependencies": {
- "@vue/reactivity": "3.5.27",
- "@vue/shared": "3.5.27"
- }
- },
- "node_modules/@vue/runtime-dom": {
- "version": "3.5.27",
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.27.tgz",
- "integrity": "sha512-/QnLslQgYqSJ5aUmb5F0z0caZPGHRB8LEAQ1s81vHFM5CBfnun63rxhvE/scVb/j3TbBuoZwkJyiLCkBluMpeg==",
- "license": "MIT",
- "dependencies": {
- "@vue/reactivity": "3.5.27",
- "@vue/runtime-core": "3.5.27",
- "@vue/shared": "3.5.27",
- "csstype": "^3.2.3"
- }
- },
- "node_modules/@vue/server-renderer": {
- "version": "3.5.27",
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.27.tgz",
- "integrity": "sha512-qOz/5thjeP1vAFc4+BY3Nr6wxyLhpeQgAE/8dDtKo6a6xdk+L4W46HDZgNmLOBUDEkFXV3G7pRiUqxjX0/2zWA==",
- "license": "MIT",
- "dependencies": {
- "@vue/compiler-ssr": "3.5.27",
- "@vue/shared": "3.5.27"
- },
- "peerDependencies": {
- "vue": "3.5.27"
- }
- },
- "node_modules/@vue/shared": {
- "version": "3.5.27",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.27.tgz",
- "integrity": "sha512-dXr/3CgqXsJkZ0n9F3I4elY8wM9jMJpP3pvRG52r6m0tu/MsAFIe6JpXVGeNMd/D9F4hQynWT8Rfuj0bdm9kFQ==",
- "license": "MIT"
- },
- "node_modules/acorn": {
- "version": "8.15.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
- "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/ant-design-vue": {
- "version": "4.2.6",
- "resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-4.2.6.tgz",
- "integrity": "sha512-t7eX13Yj3i9+i5g9lqFyYneoIb3OzTvQjq9Tts1i+eiOd3Eva/6GagxBSXM1fOCjqemIu0FYVE1ByZ/38epR3Q==",
- "license": "MIT",
- "dependencies": {
- "@ant-design/colors": "^6.0.0",
- "@ant-design/icons-vue": "^7.0.0",
- "@babel/runtime": "^7.10.5",
- "@ctrl/tinycolor": "^3.5.0",
- "@emotion/hash": "^0.9.0",
- "@emotion/unitless": "^0.8.0",
- "@simonwep/pickr": "~1.8.0",
- "array-tree-filter": "^2.1.0",
- "async-validator": "^4.0.0",
- "csstype": "^3.1.1",
- "dayjs": "^1.10.5",
- "dom-align": "^1.12.1",
- "dom-scroll-into-view": "^2.0.0",
- "lodash": "^4.17.21",
- "lodash-es": "^4.17.15",
- "resize-observer-polyfill": "^1.5.1",
- "scroll-into-view-if-needed": "^2.2.25",
- "shallow-equal": "^1.0.0",
- "stylis": "^4.1.3",
- "throttle-debounce": "^5.0.0",
- "vue-types": "^3.0.0",
- "warning": "^4.0.0"
- },
- "engines": {
- "node": ">=12.22.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/ant-design-vue"
- },
- "peerDependencies": {
- "vue": ">=3.2.0"
- }
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/anymatch/node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true,
- "license": "Python-2.0"
- },
- "node_modules/array-tree-filter": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz",
- "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==",
- "license": "MIT"
- },
- "node_modules/async-validator": {
- "version": "4.2.5",
- "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz",
- "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==",
- "license": "MIT"
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "license": "MIT"
- },
- "node_modules/axios": {
- "version": "1.13.4",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.4.tgz",
- "integrity": "sha512-1wVkUaAO6WyaYtCkcYCOx12ZgpGf9Zif+qXa4n+oYzK558YryKqiL6UWwd5DqiH3VRW0GYhTZQ/vlgJrCoNQlg==",
- "license": "MIT",
- "dependencies": {
- "follow-redirects": "^1.15.6",
- "form-data": "^4.0.4",
- "proxy-from-env": "^1.1.0"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/baseline-browser-mapping": {
- "version": "2.9.19",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz",
- "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==",
- "dev": true,
- "license": "Apache-2.0",
- "bin": {
- "baseline-browser-mapping": "dist/cli.js"
- }
- },
- "node_modules/binary-extensions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
- "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/braces": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fill-range": "^7.1.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browserslist": {
- "version": "4.28.1",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
- "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "baseline-browser-mapping": "^2.9.0",
- "caniuse-lite": "^1.0.30001759",
- "electron-to-chromium": "^1.5.263",
- "node-releases": "^2.0.27",
- "update-browserslist-db": "^1.2.0"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/call-bind-apply-helpers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
- "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001769",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001769.tgz",
- "integrity": "sha512-BCfFL1sHijQlBGWBMuJyhZUhzo7wer5sVj9hqekB/7xn0Ypy+pER/edCYQm4exbXj4WiySGp40P8UuTh6w1srg==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "CC-BY-4.0"
- },
- "node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/chokidar/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "license": "MIT",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/compute-scroll-into-view": {
- "version": "1.0.20",
- "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz",
- "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==",
- "license": "MIT"
- },
- "node_modules/computeds": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz",
- "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/confbox": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
- "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/convert-source-map": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
- "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/core-js": {
- "version": "3.48.0",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.48.0.tgz",
- "integrity": "sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ==",
- "hasInstallScript": true,
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
- "node_modules/cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/csstype": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
- "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
- "license": "MIT"
- },
- "node_modules/dayjs": {
- "version": "1.11.19",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz",
- "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==",
- "license": "MIT"
- },
- "node_modules/de-indent": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
- "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/debug": {
- "version": "4.4.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
- "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "license": "MIT",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/dom-align": {
- "version": "1.12.4",
- "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.4.tgz",
- "integrity": "sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==",
- "license": "MIT"
- },
- "node_modules/dom-scroll-into-view": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz",
- "integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==",
- "license": "MIT"
- },
- "node_modules/dunder-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
- "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
- "license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.1",
- "es-errors": "^1.3.0",
- "gopd": "^1.2.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/electron-to-chromium": {
- "version": "1.5.286",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz",
- "integrity": "sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/entities": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz",
- "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/es-define-property": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
- "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-errors": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-object-atoms": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
- "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-set-tostringtag": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
- "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.6",
- "has-tostringtag": "^1.0.2",
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/esbuild": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
- "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=12"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.21.5",
- "@esbuild/android-arm": "0.21.5",
- "@esbuild/android-arm64": "0.21.5",
- "@esbuild/android-x64": "0.21.5",
- "@esbuild/darwin-arm64": "0.21.5",
- "@esbuild/darwin-x64": "0.21.5",
- "@esbuild/freebsd-arm64": "0.21.5",
- "@esbuild/freebsd-x64": "0.21.5",
- "@esbuild/linux-arm": "0.21.5",
- "@esbuild/linux-arm64": "0.21.5",
- "@esbuild/linux-ia32": "0.21.5",
- "@esbuild/linux-loong64": "0.21.5",
- "@esbuild/linux-mips64el": "0.21.5",
- "@esbuild/linux-ppc64": "0.21.5",
- "@esbuild/linux-riscv64": "0.21.5",
- "@esbuild/linux-s390x": "0.21.5",
- "@esbuild/linux-x64": "0.21.5",
- "@esbuild/netbsd-x64": "0.21.5",
- "@esbuild/openbsd-x64": "0.21.5",
- "@esbuild/sunos-x64": "0.21.5",
- "@esbuild/win32-arm64": "0.21.5",
- "@esbuild/win32-ia32": "0.21.5",
- "@esbuild/win32-x64": "0.21.5"
- }
- },
- "node_modules/escalade": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
- "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint": {
- "version": "8.57.1",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
- "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
- "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.6.1",
- "@eslint/eslintrc": "^2.1.4",
- "@eslint/js": "8.57.1",
- "@humanwhocodes/config-array": "^0.13.0",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "@ungap/structured-clone": "^1.2.0",
- "ajv": "^6.12.4",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.2.2",
- "eslint-visitor-keys": "^3.4.3",
- "espree": "^9.6.1",
- "esquery": "^1.4.2",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "globals": "^13.19.0",
- "graphemer": "^1.4.0",
- "ignore": "^5.2.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.3",
- "strip-ansi": "^6.0.1",
- "text-table": "^0.2.0"
- },
- "bin": {
- "eslint": "bin/eslint.js"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-scope": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
- "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/espree": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
- "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "acorn": "^8.9.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.4.1"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/esquery": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz",
- "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "estraverse": "^5.1.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "license": "MIT"
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/exsolve": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz",
- "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/fast-glob": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
- "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.8"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/fast-glob/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/fastq": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
- "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/file-entry-cache": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "flat-cache": "^3.0.4"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- }
- },
- "node_modules/fill-range": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/flat-cache": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
- "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "flatted": "^3.2.9",
- "keyv": "^4.5.3",
- "rimraf": "^3.0.2"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- }
- },
- "node_modules/flatted": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
- "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/follow-redirects": {
- "version": "1.15.11",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
- "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
- }
- },
- "node_modules/form-data": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
- "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
- "license": "MIT",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "es-set-tostringtag": "^2.1.0",
- "hasown": "^2.0.2",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
- "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
- "license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.2",
- "es-define-property": "^1.0.1",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.1.1",
- "function-bind": "^1.1.2",
- "get-proto": "^1.0.1",
- "gopd": "^1.2.0",
- "has-symbols": "^1.1.0",
- "hasown": "^2.0.2",
- "math-intrinsics": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
- "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
- "license": "MIT",
- "dependencies": {
- "dunder-proto": "^1.0.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/globals": {
- "version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "type-fest": "^0.20.2"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/gopd": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
- "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/graphemer": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
- "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-tostringtag": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
- "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
- "license": "MIT",
- "dependencies": {
- "has-symbols": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
- "license": "MIT",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/he": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "he": "bin/he"
- }
- },
- "node_modules/ignore": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
- "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/import-fresh": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
- "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.16.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
- "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-plain-object": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz",
- "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "license": "MIT"
- },
- "node_modules/js-yaml": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
- "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/jsesc": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
- "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/json-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/keyv": {
- "version": "4.5.4",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
- "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "json-buffer": "3.0.1"
- }
- },
- "node_modules/levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/local-pkg": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz",
- "integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mlly": "^1.7.3",
- "pkg-types": "^1.2.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lodash": {
- "version": "4.17.23",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
- "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
- "license": "MIT"
- },
- "node_modules/lodash-es": {
- "version": "4.17.23",
- "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.23.tgz",
- "integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==",
- "license": "MIT"
- },
- "node_modules/lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "license": "MIT",
- "dependencies": {
- "js-tokens": "^3.0.0 || ^4.0.0"
- },
- "bin": {
- "loose-envify": "cli.js"
- }
- },
- "node_modules/lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "yallist": "^3.0.2"
- }
- },
- "node_modules/magic-string": {
- "version": "0.30.21",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
- "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.5"
- }
- },
- "node_modules/math-intrinsics": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
- "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/micromatch": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "braces": "^3.0.3",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/micromatch/node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "license": "MIT",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/mlly": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz",
- "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.15.0",
- "pathe": "^2.0.3",
- "pkg-types": "^1.3.1",
- "ufo": "^1.6.1"
- }
- },
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/muggle-string": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz",
- "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/nanoid": {
- "version": "3.3.11",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
- "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/nanopop": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/nanopop/-/nanopop-2.4.2.tgz",
- "integrity": "sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw==",
- "license": "MIT"
- },
- "node_modules/natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/node-releases": {
- "version": "2.0.27",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
- "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nprogress": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz",
- "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==",
- "license": "MIT"
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/optionator": {
- "version": "0.9.4",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
- "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.5"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "callsites": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/path-browserify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
- "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/pathe": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
- "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/picocolors": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "license": "ISC"
- },
- "node_modules/picomatch": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
- "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pinia": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.3.1.tgz",
- "integrity": "sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==",
- "license": "MIT",
- "dependencies": {
- "@vue/devtools-api": "^6.6.3",
- "vue-demi": "^0.14.10"
- },
- "funding": {
- "url": "https://github.com/sponsors/posva"
- },
- "peerDependencies": {
- "typescript": ">=4.4.4",
- "vue": "^2.7.0 || ^3.5.11"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/pkg-types": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz",
- "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "confbox": "^0.1.8",
- "mlly": "^1.7.4",
- "pathe": "^2.0.1"
- }
- },
- "node_modules/postcss": {
- "version": "8.5.6",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
- "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "nanoid": "^3.3.11",
- "picocolors": "^1.1.1",
- "source-map-js": "^1.2.1"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/prettier": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz",
- "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "prettier": "bin/prettier.cjs"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/prettier/prettier?sponsor=1"
- }
- },
- "node_modules/proxy-from-env": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
- "license": "MIT"
- },
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/quansync": {
- "version": "0.2.11",
- "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz",
- "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/antfu"
- },
- {
- "type": "individual",
- "url": "https://github.com/sponsors/sxzz"
- }
- ],
- "license": "MIT"
- },
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/readdirp/node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/resize-observer-polyfill": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
- "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==",
- "license": "MIT"
- },
- "node_modules/resolve": {
- "version": "1.22.11",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
- "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-core-module": "^2.16.1",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/reusify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
- "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/rollup": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz",
- "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "1.0.8"
- },
- "bin": {
- "rollup": "dist/bin/rollup"
- },
- "engines": {
- "node": ">=18.0.0",
- "npm": ">=8.0.0"
- },
- "optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.57.1",
- "@rollup/rollup-android-arm64": "4.57.1",
- "@rollup/rollup-darwin-arm64": "4.57.1",
- "@rollup/rollup-darwin-x64": "4.57.1",
- "@rollup/rollup-freebsd-arm64": "4.57.1",
- "@rollup/rollup-freebsd-x64": "4.57.1",
- "@rollup/rollup-linux-arm-gnueabihf": "4.57.1",
- "@rollup/rollup-linux-arm-musleabihf": "4.57.1",
- "@rollup/rollup-linux-arm64-gnu": "4.57.1",
- "@rollup/rollup-linux-arm64-musl": "4.57.1",
- "@rollup/rollup-linux-loong64-gnu": "4.57.1",
- "@rollup/rollup-linux-loong64-musl": "4.57.1",
- "@rollup/rollup-linux-ppc64-gnu": "4.57.1",
- "@rollup/rollup-linux-ppc64-musl": "4.57.1",
- "@rollup/rollup-linux-riscv64-gnu": "4.57.1",
- "@rollup/rollup-linux-riscv64-musl": "4.57.1",
- "@rollup/rollup-linux-s390x-gnu": "4.57.1",
- "@rollup/rollup-linux-x64-gnu": "4.57.1",
- "@rollup/rollup-linux-x64-musl": "4.57.1",
- "@rollup/rollup-openbsd-x64": "4.57.1",
- "@rollup/rollup-openharmony-arm64": "4.57.1",
- "@rollup/rollup-win32-arm64-msvc": "4.57.1",
- "@rollup/rollup-win32-ia32-msvc": "4.57.1",
- "@rollup/rollup-win32-x64-gnu": "4.57.1",
- "@rollup/rollup-win32-x64-msvc": "4.57.1",
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/scroll-into-view-if-needed": {
- "version": "2.2.31",
- "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz",
- "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==",
- "license": "MIT",
- "dependencies": {
- "compute-scroll-into-view": "^1.0.20"
- }
- },
- "node_modules/scule": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz",
- "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/shallow-equal": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz",
- "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==",
- "license": "MIT"
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/strip-literal": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz",
- "integrity": "sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "js-tokens": "^9.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/strip-literal/node_modules/js-tokens": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
- "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/stylis": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz",
- "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==",
- "license": "MIT"
- },
- "node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/throttle-debounce": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz",
- "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==",
- "license": "MIT",
- "engines": {
- "node": ">=12.22"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "prelude-ls": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/typescript": {
- "version": "5.9.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
- "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
- "devOptional": true,
- "license": "Apache-2.0",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
- "node_modules/ufo": {
- "version": "1.6.3",
- "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz",
- "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/undici-types": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
- "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/unimport": {
- "version": "3.14.6",
- "resolved": "https://registry.npmjs.org/unimport/-/unimport-3.14.6.tgz",
- "integrity": "sha512-CYvbDaTT04Rh8bmD8jz3WPmHYZRG/NnvYVzwD6V1YAlvvKROlAeNDUBhkBGzNav2RKaeuXvlWYaa1V4Lfi/O0g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@rollup/pluginutils": "^5.1.4",
- "acorn": "^8.14.0",
- "escape-string-regexp": "^5.0.0",
- "estree-walker": "^3.0.3",
- "fast-glob": "^3.3.3",
- "local-pkg": "^1.0.0",
- "magic-string": "^0.30.17",
- "mlly": "^1.7.4",
- "pathe": "^2.0.1",
- "picomatch": "^4.0.2",
- "pkg-types": "^1.3.0",
- "scule": "^1.3.0",
- "strip-literal": "^2.1.1",
- "unplugin": "^1.16.1"
- }
- },
- "node_modules/unimport/node_modules/confbox": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz",
- "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/unimport/node_modules/escape-string-regexp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
- "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/unimport/node_modules/estree-walker": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
- "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0"
- }
- },
- "node_modules/unimport/node_modules/local-pkg": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.2.tgz",
- "integrity": "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mlly": "^1.7.4",
- "pkg-types": "^2.3.0",
- "quansync": "^0.2.11"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/unimport/node_modules/local-pkg/node_modules/pkg-types": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz",
- "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "confbox": "^0.2.2",
- "exsolve": "^1.0.7",
- "pathe": "^2.0.3"
- }
- },
- "node_modules/unplugin": {
- "version": "1.16.1",
- "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz",
- "integrity": "sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.14.0",
- "webpack-virtual-modules": "^0.6.2"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/unplugin-auto-import": {
- "version": "0.17.8",
- "resolved": "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-0.17.8.tgz",
- "integrity": "sha512-CHryj6HzJ+n4ASjzwHruD8arhbdl+UXvhuAIlHDs15Y/IMecG3wrf7FVg4pVH/DIysbq/n0phIjNHAjl7TG7Iw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@antfu/utils": "^0.7.10",
- "@rollup/pluginutils": "^5.1.0",
- "fast-glob": "^3.3.2",
- "local-pkg": "^0.5.0",
- "magic-string": "^0.30.10",
- "minimatch": "^9.0.4",
- "unimport": "^3.7.2",
- "unplugin": "^1.11.0"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "@nuxt/kit": "^3.2.2",
- "@vueuse/core": "*"
- },
- "peerDependenciesMeta": {
- "@nuxt/kit": {
- "optional": true
- },
- "@vueuse/core": {
- "optional": true
- }
- }
- },
- "node_modules/unplugin-auto-import/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/unplugin-auto-import/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/unplugin-vue-components": {
- "version": "0.26.0",
- "resolved": "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-0.26.0.tgz",
- "integrity": "sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@antfu/utils": "^0.7.6",
- "@rollup/pluginutils": "^5.0.4",
- "chokidar": "^3.5.3",
- "debug": "^4.3.4",
- "fast-glob": "^3.3.1",
- "local-pkg": "^0.4.3",
- "magic-string": "^0.30.3",
- "minimatch": "^9.0.3",
- "resolve": "^1.22.4",
- "unplugin": "^1.4.0"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "@babel/parser": "^7.15.8",
- "@nuxt/kit": "^3.2.2",
- "vue": "2 || 3"
- },
- "peerDependenciesMeta": {
- "@babel/parser": {
- "optional": true
- },
- "@nuxt/kit": {
- "optional": true
- }
- }
- },
- "node_modules/unplugin-vue-components/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/unplugin-vue-components/node_modules/local-pkg": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
- "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/unplugin-vue-components/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/update-browserslist-db": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
- "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "escalade": "^3.2.0",
- "picocolors": "^1.1.1"
- },
- "bin": {
- "update-browserslist-db": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/vite": {
- "version": "5.4.21",
- "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz",
- "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "esbuild": "^0.21.3",
- "postcss": "^8.4.43",
- "rollup": "^4.20.0"
- },
- "bin": {
- "vite": "bin/vite.js"
- },
- "engines": {
- "node": "^18.0.0 || >=20.0.0"
- },
- "funding": {
- "url": "https://github.com/vitejs/vite?sponsor=1"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- },
- "peerDependencies": {
- "@types/node": "^18.0.0 || >=20.0.0",
- "less": "*",
- "lightningcss": "^1.21.0",
- "sass": "*",
- "sass-embedded": "*",
- "stylus": "*",
- "sugarss": "*",
- "terser": "^5.4.0"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "lightningcss": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "sass-embedded": {
- "optional": true
- },
- "stylus": {
- "optional": true
- },
- "sugarss": {
- "optional": true
- },
- "terser": {
- "optional": true
- }
- }
- },
- "node_modules/vue": {
- "version": "3.5.27",
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.27.tgz",
- "integrity": "sha512-aJ/UtoEyFySPBGarREmN4z6qNKpbEguYHMmXSiOGk69czc+zhs0NF6tEFrY8TZKAl8N/LYAkd4JHVd5E/AsSmw==",
- "license": "MIT",
- "dependencies": {
- "@vue/compiler-dom": "3.5.27",
- "@vue/compiler-sfc": "3.5.27",
- "@vue/runtime-dom": "3.5.27",
- "@vue/server-renderer": "3.5.27",
- "@vue/shared": "3.5.27"
- },
- "peerDependencies": {
- "typescript": "*"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/vue-demi": {
- "version": "0.14.10",
- "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
- "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "vue-demi-fix": "bin/vue-demi-fix.js",
- "vue-demi-switch": "bin/vue-demi-switch.js"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "@vue/composition-api": "^1.0.0-rc.1",
- "vue": "^3.0.0-0 || ^2.6.0"
- },
- "peerDependenciesMeta": {
- "@vue/composition-api": {
- "optional": true
- }
- }
- },
- "node_modules/vue-router": {
- "version": "4.6.4",
- "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.4.tgz",
- "integrity": "sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==",
- "license": "MIT",
- "dependencies": {
- "@vue/devtools-api": "^6.6.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/posva"
- },
- "peerDependencies": {
- "vue": "^3.5.0"
- }
- },
- "node_modules/vue-template-compiler": {
- "version": "2.7.16",
- "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz",
- "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "de-indent": "^1.0.2",
- "he": "^1.2.0"
- }
- },
- "node_modules/vue-tsc": {
- "version": "1.8.27",
- "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.27.tgz",
- "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@volar/typescript": "~1.11.1",
- "@vue/language-core": "1.8.27",
- "semver": "^7.5.4"
- },
- "bin": {
- "vue-tsc": "bin/vue-tsc.js"
- },
- "peerDependencies": {
- "typescript": "*"
- }
- },
- "node_modules/vue-tsc/node_modules/semver": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
- "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/vue-types": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/vue-types/-/vue-types-3.0.2.tgz",
- "integrity": "sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==",
- "license": "MIT",
- "dependencies": {
- "is-plain-object": "3.0.1"
- },
- "engines": {
- "node": ">=10.15.0"
- },
- "peerDependencies": {
- "vue": "^3.0.0"
- }
- },
- "node_modules/warning": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
- "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.0.0"
- }
- },
- "node_modules/webpack-virtual-modules": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",
- "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/word-wrap": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
- "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- }
- }
-}
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/package.json b/Code/WMS/WIDESEA_WMS_Frontend/package.json
deleted file mode 100644
index 6058e0d..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/package.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "widesea-wms-frontend",
- "version": "1.0.0",
- "description": "WIDESEA WMS 浠撳簱绠$悊绯荤粺鍓嶇",
- "author": "WIDESEA",
- "license": "MIT",
- "scripts": {
- "dev": "vite",
- "build": "vue-tsc && vite build",
- "preview": "vite preview",
- "lint": "eslint . --ext .vue,.js,.ts,.jsx,.tsx --fix",
- "format": "prettier --write ."
- },
- "dependencies": {
- "vue": "^3.4.0",
- "vue-router": "^4.2.5",
- "pinia": "^2.1.7",
- "axios": "^1.6.2",
- "ant-design-vue": "^4.1.0",
- "@ant-design/icons-vue": "^7.0.1",
- "dayjs": "^1.11.10",
- "lodash-es": "^4.17.21",
- "nprogress": "^0.2.0"
- },
- "devDependencies": {
- "@types/node": "^20.10.5",
- "@types/nprogress": "^0.2.3",
- "@types/lodash-es": "^4.17.12",
- "@vitejs/plugin-vue": "^5.0.0",
- "@vitejs/plugin-vue-jsx": "^3.1.0",
- "typescript": "^5.3.3",
- "vite": "^5.0.8",
- "vue-tsc": "^1.8.27",
- "eslint": "^8.56.0",
- "prettier": "^3.1.1",
- "unplugin-auto-import": "^0.17.2",
- "unplugin-vue-components": "^0.26.0"
- }
-}
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/App.vue b/Code/WMS/WIDESEA_WMS_Frontend/src/App.vue
deleted file mode 100644
index f7f206a..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/App.vue
+++ /dev/null
@@ -1,14 +0,0 @@
-<template>
- <router-view />
-</template>
-
-<script setup lang="ts">
-// App root component
-</script>
-
-<style>
-#app {
- width: 100%;
- height: 100%;
-}
-</style>
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/api/auth.ts b/Code/WMS/WIDESEA_WMS_Frontend/src/api/auth.ts
deleted file mode 100644
index d21b542..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/api/auth.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import request from '../utils/request';
-import type { ApiResponse, LoginParams, LoginResult, UserInfo } from '../types/user';
-
-/**
- * 鐧诲綍
- */
-export function login(data: LoginParams) {
- return request<ApiResponse<LoginResult>>({
- url: '/User/login',
- method: 'post',
- data,
- });
-}
-
-/**
- * 鑾峰彇褰撳墠鐢ㄦ埛淇℃伅
- */
-export function getCurrentUserInfo() {
- return request<ApiResponse<UserInfo>>({
- url: '/User/getCurrentUserInfo',
- method: 'post',
- });
-}
-
-/**
- * 鍒锋柊 Token
- */
-export function replaceToken(token: string) {
- return request<ApiResponse<string>>({
- url: '/User/replaceToken',
- method: 'post',
- data: { token },
- });
-}
-
-/**
- * 淇敼瀵嗙爜
- */
-export function modifyPassword(data: { oldPassword: string; newPassword: string }) {
- return request<ApiResponse<boolean>>({
- url: '/User/modifyPwd',
- method: 'post',
- data,
- });
-}
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/api/basic/index.ts b/Code/WMS/WIDESEA_WMS_Frontend/src/api/basic/index.ts
deleted file mode 100644
index a5e6d04..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/api/basic/index.ts
+++ /dev/null
@@ -1,139 +0,0 @@
-import request from '../../utils/request';
-import type { ApiResponse, PageRequest, PageResponse } from '../../types/api';
-import type {
- WarehouseInfo,
- LocationInfo,
- MaterielInfo,
-} from '../../types/common';
-
-/**
- * 鑾峰彇浠撳簱鍒楄〃
- */
-export function getWarehouseList(data: PageRequest) {
- return request<ApiResponse<PageResponse<WarehouseInfo>>>({
- url: '/Warehouse/GetPageData',
- method: 'post',
- data,
- });
-}
-
-/**
- * 娣诲姞浠撳簱
- */
-export function addWarehouse(data: Partial<WarehouseInfo>) {
- return request<ApiResponse<boolean>>({
- url: '/Warehouse/Add',
- method: 'post',
- data,
- });
-}
-
-/**
- * 鏇存柊浠撳簱
- */
-export function updateWarehouse(data: Partial<WarehouseInfo>) {
- return request<ApiResponse<boolean>>({
- url: '/Warehouse/Update',
- method: 'post',
- data,
- });
-}
-
-/**
- * 鍒犻櫎浠撳簱
- */
-export function deleteWarehouse(ids: string[]) {
- return request<ApiResponse<boolean>>({
- url: '/Warehouse/Del',
- method: 'post',
- data: ids,
- });
-}
-
-/**
- * 鑾峰彇璐т綅鍒楄〃
- */
-export function getLocationList(data: PageRequest) {
- return request<ApiResponse<PageResponse<LocationInfo>>>({
- url: '/LocationInfo/GetPageData',
- method: 'post',
- data,
- });
-}
-
-/**
- * 娣诲姞璐т綅
- */
-export function addLocation(data: Partial<LocationInfo>) {
- return request<ApiResponse<boolean>>({
- url: '/LocationInfo/Add',
- method: 'post',
- data,
- });
-}
-
-/**
- * 鏇存柊璐т綅
- */
-export function updateLocation(data: Partial<LocationInfo>) {
- return request<ApiResponse<boolean>>({
- url: '/LocationInfo/Update',
- method: 'post',
- data,
- });
-}
-
-/**
- * 鍒犻櫎璐т綅
- */
-export function deleteLocation(ids: string[]) {
- return request<ApiResponse<boolean>>({
- url: '/LocationInfo/Del',
- method: 'post',
- data: ids,
- });
-}
-
-/**
- * 鑾峰彇鐗╂枡鍒楄〃
- */
-export function getMaterielList(data: PageRequest) {
- return request<ApiResponse<PageResponse<MaterielInfo>>>({
- url: '/MaterielInfo/GetPageData',
- method: 'post',
- data,
- });
-}
-
-/**
- * 娣诲姞鐗╂枡
- */
-export function addMateriel(data: Partial<MaterielInfo>) {
- return request<ApiResponse<boolean>>({
- url: '/MaterielInfo/Add',
- method: 'post',
- data,
- });
-}
-
-/**
- * 鏇存柊鐗╂枡
- */
-export function updateMateriel(data: Partial<MaterielInfo>) {
- return request<ApiResponse<boolean>>({
- url: '/MaterielInfo/Update',
- method: 'post',
- data,
- });
-}
-
-/**
- * 鍒犻櫎鐗╂枡
- */
-export function deleteMateriel(ids: string[]) {
- return request<ApiResponse<boolean>>({
- url: '/MaterielInfo/Del',
- method: 'post',
- data: ids,
- });
-}
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/api/system/index.ts b/Code/WMS/WIDESEA_WMS_Frontend/src/api/system/index.ts
deleted file mode 100644
index 9b86dd9..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/api/system/index.ts
+++ /dev/null
@@ -1,135 +0,0 @@
-import request from '../../utils/request';
-import type { ApiResponse, PageRequest, PageResponse } from '../../types/api';
-import type { UserInfo, RoleInfo, MenuInfo } from '../../types/user';
-
-/**
- * 鑾峰彇鐢ㄦ埛鍒楄〃
- */
-export function getUserList(data: PageRequest) {
- return request<ApiResponse<PageResponse<UserInfo>>>({
- url: '/User/GetPageData',
- method: 'post',
- data,
- });
-}
-
-/**
- * 娣诲姞鐢ㄦ埛
- */
-export function addUser(data: Partial<UserInfo>) {
- return request<ApiResponse<boolean>>({
- url: '/User/Add',
- method: 'post',
- data,
- });
-}
-
-/**
- * 鏇存柊鐢ㄦ埛
- */
-export function updateUser(data: Partial<UserInfo>) {
- return request<ApiResponse<boolean>>({
- url: '/User/Update',
- method: 'post',
- data,
- });
-}
-
-/**
- * 鍒犻櫎鐢ㄦ埛
- */
-export function deleteUser(ids: string[]) {
- return request<ApiResponse<boolean>>({
- url: '/User/Del',
- method: 'post',
- data: ids,
- });
-}
-
-/**
- * 鑾峰彇瑙掕壊鍒楄〃
- */
-export function getRoleList(data: PageRequest) {
- return request<ApiResponse<PageResponse<RoleInfo>>>({
- url: '/Role/GetPageData',
- method: 'post',
- data,
- });
-}
-
-/**
- * 娣诲姞瑙掕壊
- */
-export function addRole(data: Partial<RoleInfo>) {
- return request<ApiResponse<boolean>>({
- url: '/Role/Add',
- method: 'post',
- data,
- });
-}
-
-/**
- * 鏇存柊瑙掕壊
- */
-export function updateRole(data: Partial<RoleInfo>) {
- return request<ApiResponse<boolean>>({
- url: '/Role/Update',
- method: 'post',
- data,
- });
-}
-
-/**
- * 鍒犻櫎瑙掕壊
- */
-export function deleteRole(ids: string[]) {
- return request<ApiResponse<boolean>>({
- url: '/Role/Del',
- method: 'post',
- data: ids,
- });
-}
-
-/**
- * 鑾峰彇鑿滃崟鍒楄〃
- */
-export function getMenuList(data: PageRequest) {
- return request<ApiResponse<PageResponse<MenuInfo>>>({
- url: '/Menu/GetPageData',
- method: 'post',
- data,
- });
-}
-
-/**
- * 娣诲姞鑿滃崟
- */
-export function addMenu(data: Partial<MenuInfo>) {
- return request<ApiResponse<boolean>>({
- url: '/Menu/Add',
- method: 'post',
- data,
- });
-}
-
-/**
- * 鏇存柊鑿滃崟
- */
-export function updateMenu(data: Partial<MenuInfo>) {
- return request<ApiResponse<boolean>>({
- url: '/Menu/Update',
- method: 'post',
- data,
- });
-}
-
-/**
- * 鍒犻櫎鑿滃崟
- */
-export function deleteMenu(ids: string[]) {
- return request<ApiResponse<boolean>>({
- url: '/Menu/Del',
- method: 'post',
- data: ids,
- });
-}
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/assets/styles/index.css b/Code/WMS/WIDESEA_WMS_Frontend/src/assets/styles/index.css
deleted file mode 100644
index 4614f9d..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/assets/styles/index.css
+++ /dev/null
@@ -1,15 +0,0 @@
-* {
- margin: 0;
- padding: 0;
- box-sizing: border-box;
-}
-
-html,
-body,
-#app {
- width: 100%;
- height: 100%;
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
- 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
- 'Noto Color Emoji';
-}
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/layouts/BasicLayout.vue b/Code/WMS/WIDESEA_WMS_Frontend/src/layouts/BasicLayout.vue
deleted file mode 100644
index 0a5ba9d..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/layouts/BasicLayout.vue
+++ /dev/null
@@ -1,337 +0,0 @@
-<template>
- <a-layout class="basic-layout">
- <a-layout-sider v-model:collapsed="collapsed" :trigger="null" collapsible>
- <div class="logo">
- <h1>{{ collapsed ? 'WMS' : 'WIDESEA WMS' }}</h1>
- </div>
- <a-menu
- v-model:selectedKeys="selectedKeys"
- v-model:openKeys="openKeys"
- theme="dark"
- mode="inline"
- :items="menuItems"
- @click="handleMenuClick"
- />
- </a-layout-sider>
- <a-layout>
- <a-layout-header class="header">
- <menu-unfold-outlined
- v-if="collapsed"
- class="trigger"
- @click="() => (collapsed = !collapsed)"
- />
- <menu-fold-outlined v-else class="trigger" @click="() => (collapsed = !collapsed)" />
- <div class="header-right">
- <a-dropdown>
- <a class="ant-dropdown-link" @click.prevent>
- <user-outlined />
- <span class="username">{{ userInfo?.UserTrueName || userInfo?.UserName }}</span>
- <down-outlined />
- </a>
- <template #overlay>
- <a-menu>
- <a-menu-item key="profile">
- <user-outlined />
- 涓汉淇℃伅
- </a-menu-item>
- <a-menu-item key="password">
- <lock-outlined />
- 淇敼瀵嗙爜
- </a-menu-item>
- <a-menu-divider />
- <a-menu-item key="logout" @click="handleLogout">
- <logout-outlined />
- 閫�鍑虹櫥褰�
- </a-menu-item>
- </a-menu>
- </template>
- </a-dropdown>
- </div>
- </a-layout-header>
- <a-layout-content class="content">
- <router-view />
- </a-layout-content>
- </a-layout>
- </a-layout>
-</template>
-
-<script setup lang="ts">
-import { ref, computed, watch, h } from 'vue';
-import { useRouter, useRoute } from 'vue-router';
-import { useAuthStore } from '../stores/auth';
-import {
- MenuUnfoldOutlined,
- MenuFoldOutlined,
- UserOutlined,
- DownOutlined,
- LockOutlined,
- LogoutOutlined,
- HomeOutlined,
- SettingOutlined,
- TeamOutlined,
- MenuOutlined,
- DatabaseOutlined,
- ShopOutlined,
- AppstoreOutlined,
- InboxOutlined,
- ImportOutlined,
- ExportOutlined,
- FileTextOutlined,
- ContainerOutlined,
- UnorderedListOutlined,
- AuditOutlined,
- CarryOutOutlined,
-} from '@ant-design/icons-vue';
-import { Modal } from 'ant-design-vue';
-
-const router = useRouter();
-const route = useRoute();
-const authStore = useAuthStore();
-
-const collapsed = ref(false);
-const selectedKeys = ref<string[]>([]);
-const openKeys = ref<string[]>([]);
-
-const userInfo = computed(() => authStore.userInfo);
-
-// 鍥炬爣鏄犲皠
-const iconMap: Record<string, any> = {
- HomeOutlined,
- SettingOutlined,
- UserOutlined,
- TeamOutlined,
- MenuOutlined,
- DatabaseOutlined,
- ShopOutlined,
- AppstoreOutlined,
- InboxOutlined,
- ImportOutlined,
- ExportOutlined,
- FileTextOutlined,
- ContainerOutlined,
- UnorderedListOutlined,
- AuditOutlined,
- CarryOutOutlined,
-};
-
-// 鑿滃崟椤�
-const menuItems = computed(() => {
- return [
- {
- key: '/dashboard',
- icon: () => h(HomeOutlined),
- label: '棣栭〉',
- title: '棣栭〉',
- },
- {
- key: '/system',
- icon: () => h(SettingOutlined),
- label: '绯荤粺绠$悊',
- title: '绯荤粺绠$悊',
- children: [
- {
- key: '/system/user',
- icon: () => h(UserOutlined),
- label: '鐢ㄦ埛绠$悊',
- title: '鐢ㄦ埛绠$悊',
- },
- {
- key: '/system/role',
- icon: () => h(TeamOutlined),
- label: '瑙掕壊绠$悊',
- title: '瑙掕壊绠$悊',
- },
- {
- key: '/system/menu',
- icon: () => h(MenuOutlined),
- label: '鑿滃崟绠$悊',
- title: '鑿滃崟绠$悊',
- },
- ],
- },
- {
- key: '/basic',
- icon: () => h(DatabaseOutlined),
- label: '鍩虹淇℃伅',
- title: '鍩虹淇℃伅',
- children: [
- {
- key: '/basic/warehouse',
- icon: () => h(ShopOutlined),
- label: '浠撳簱绠$悊',
- title: '浠撳簱绠$悊',
- },
- {
- key: '/basic/location',
- icon: () => h(AppstoreOutlined),
- label: '璐т綅绠$悊',
- title: '璐т綅绠$悊',
- },
- {
- key: '/basic/materiel',
- icon: () => h(InboxOutlined),
- label: '鐗╂枡绠$悊',
- title: '鐗╂枡绠$悊',
- },
- ],
- },
- {
- key: '/inbound',
- icon: () => h(ImportOutlined),
- label: '鍏ュ簱绠$悊',
- title: '鍏ュ簱绠$悊',
- children: [
- {
- key: '/inbound/order',
- icon: () => h(FileTextOutlined),
- label: '鍏ュ簱鍗曠鐞�',
- title: '鍏ュ簱鍗曠鐞�',
- },
- ],
- },
- {
- key: '/outbound',
- icon: () => h(ExportOutlined),
- label: '鍑哄簱绠$悊',
- title: '鍑哄簱绠$悊',
- children: [
- {
- key: '/outbound/order',
- icon: () => h(FileTextOutlined),
- label: '鍑哄簱鍗曠鐞�',
- title: '鍑哄簱鍗曠鐞�',
- },
- ],
- },
- {
- key: '/stock',
- icon: () => h(ContainerOutlined),
- label: '搴撳瓨绠$悊',
- title: '搴撳瓨绠$悊',
- children: [
- {
- key: '/stock/info',
- icon: () => h(UnorderedListOutlined),
- label: '搴撳瓨淇℃伅',
- title: '搴撳瓨淇℃伅',
- },
- ],
- },
- {
- key: '/check',
- icon: () => h(AuditOutlined),
- label: '鐩樼偣绠$悊',
- title: '鐩樼偣绠$悊',
- children: [
- {
- key: '/check/order',
- icon: () => h(FileTextOutlined),
- label: '鐩樼偣鍗曠鐞�',
- title: '鐩樼偣鍗曠鐞�',
- },
- ],
- },
- {
- key: '/task',
- icon: () => h(CarryOutOutlined),
- label: '浠诲姟绠$悊',
- title: '浠诲姟绠$悊',
- children: [
- {
- key: '/task/info',
- icon: () => h(UnorderedListOutlined),
- label: '浠诲姟淇℃伅',
- title: '浠诲姟淇℃伅',
- },
- ],
- },
- ];
-});
-
-// 鐩戝惉璺敱鍙樺寲
-watch(
- () => route.path,
- (path) => {
- selectedKeys.value = [path];
- // 鑷姩灞曞紑鐖惰彍鍗�
- const parts = path.split('/').filter(Boolean);
- if (parts.length > 1) {
- openKeys.value = [`/${parts[0]}`];
- }
- },
- { immediate: true }
-);
-
-// 鑿滃崟鐐瑰嚮
-function handleMenuClick({ key }: { key: string }) {
- router.push(key);
-}
-
-// 閫�鍑虹櫥褰�
-function handleLogout() {
- Modal.confirm({
- title: '纭閫�鍑�',
- content: '纭畾瑕侀��鍑虹櫥褰曞悧锛�',
- onOk() {
- authStore.logout();
- router.push('/login');
- },
- });
-}
-</script>
-
-<style scoped>
-.basic-layout {
- min-height: 100vh;
-}
-
-.logo {
- height: 64px;
- display: flex;
- align-items: center;
- justify-content: center;
- background: rgba(255, 255, 255, 0.2);
-}
-
-.logo h1 {
- color: #fff;
- font-size: 20px;
- font-weight: bold;
- margin: 0;
-}
-
-.header {
- background: #fff;
- padding: 0 24px;
- display: flex;
- align-items: center;
- justify-content: space-between;
- box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
-}
-
-.trigger {
- font-size: 18px;
- cursor: pointer;
- transition: color 0.3s;
-}
-
-.trigger:hover {
- color: #1890ff;
-}
-
-.header-right {
- display: flex;
- align-items: center;
-}
-
-.username {
- margin: 0 8px;
-}
-
-.content {
- margin: 24px;
- padding: 24px;
- background: #fff;
- min-height: 280px;
-}
-</style>
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/main.ts b/Code/WMS/WIDESEA_WMS_Frontend/src/main.ts
deleted file mode 100644
index ce9142a..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/main.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { createApp } from 'vue';
-import { createPinia } from 'pinia';
-import Antd from 'ant-design-vue';
-import App from './App.vue';
-import router from './router';
-import 'ant-design-vue/dist/reset.css';
-import './assets/styles/index.css';
-
-const app = createApp(App);
-const pinia = createPinia();
-
-app.use(pinia);
-app.use(router);
-app.use(Antd);
-
-app.mount('#app');
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/router/guard.ts b/Code/WMS/WIDESEA_WMS_Frontend/src/router/guard.ts
deleted file mode 100644
index 1c5f2b4..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/router/guard.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import type { Router } from 'vue-router';
-import { useAuthStore } from '../stores/auth';
-import NProgress from 'nprogress';
-import 'nprogress/nprogress.css';
-
-NProgress.configure({ showSpinner: false });
-
-export function setupRouterGuard(router: Router) {
- router.beforeEach((to, from, next) => {
- NProgress.start();
-
- const authStore = useAuthStore();
- const requiresAuth = to.meta.requiresAuth !== false;
-
- if (requiresAuth && !authStore.isLoggedIn) {
- // 闇�瑕佽璇佷絾鏈櫥褰曪紝璺宠浆鍒扮櫥褰曢〉
- next({ path: '/login', query: { redirect: to.fullPath } });
- } else if (to.path === '/login' && authStore.isLoggedIn) {
- // 宸茬櫥褰曡闂櫥褰曢〉锛岃烦杞埌棣栭〉
- next({ path: '/' });
- } else {
- next();
- }
- });
-
- router.afterEach(() => {
- NProgress.done();
- });
-}
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/router/index.ts b/Code/WMS/WIDESEA_WMS_Frontend/src/router/index.ts
deleted file mode 100644
index d277527..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/router/index.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { createRouter, createWebHistory } from 'vue-router';
-import { routes } from './routes';
-import { setupRouterGuard } from './guard';
-
-const router = createRouter({
- history: createWebHistory(),
- routes,
-});
-
-setupRouterGuard(router);
-
-export default router;
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/router/routes.ts b/Code/WMS/WIDESEA_WMS_Frontend/src/router/routes.ts
deleted file mode 100644
index 6c51eeb..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/router/routes.ts
+++ /dev/null
@@ -1,218 +0,0 @@
-import type { RouteRecordRaw } from 'vue-router';
-
-export const routes: RouteRecordRaw[] = [
- {
- path: '/login',
- name: 'Login',
- component: () => import('../views/login/index.vue'),
- meta: {
- title: '鐧诲綍',
- requiresAuth: false,
- },
- },
- {
- path: '/',
- name: 'Layout',
- component: () => import('../layouts/BasicLayout.vue'),
- redirect: '/dashboard',
- meta: {
- requiresAuth: true,
- },
- children: [
- {
- path: '/dashboard',
- name: 'Dashboard',
- component: () => import('../views/dashboard/index.vue'),
- meta: {
- title: '棣栭〉',
- icon: 'HomeOutlined',
- },
- },
- // 绯荤粺绠$悊
- {
- path: '/system',
- name: 'System',
- meta: {
- title: '绯荤粺绠$悊',
- icon: 'SettingOutlined',
- },
- children: [
- {
- path: '/system/user',
- name: 'SystemUser',
- component: () => import('../views/system/user/index.vue'),
- meta: {
- title: '鐢ㄦ埛绠$悊',
- icon: 'UserOutlined',
- },
- },
- {
- path: '/system/role',
- name: 'SystemRole',
- component: () => import('../views/system/role/index.vue'),
- meta: {
- title: '瑙掕壊绠$悊',
- icon: 'TeamOutlined',
- },
- },
- {
- path: '/system/menu',
- name: 'SystemMenu',
- component: () => import('../views/system/menu/index.vue'),
- meta: {
- title: '鑿滃崟绠$悊',
- icon: 'MenuOutlined',
- },
- },
- ],
- },
- // 鍩虹淇℃伅
- {
- path: '/basic',
- name: 'Basic',
- meta: {
- title: '鍩虹淇℃伅',
- icon: 'DatabaseOutlined',
- },
- children: [
- {
- path: '/basic/warehouse',
- name: 'BasicWarehouse',
- component: () => import('../views/basic/warehouse/index.vue'),
- meta: {
- title: '浠撳簱绠$悊',
- icon: 'ShopOutlined',
- },
- },
- {
- path: '/basic/location',
- name: 'BasicLocation',
- component: () => import('../views/basic/location/index.vue'),
- meta: {
- title: '璐т綅绠$悊',
- icon: 'AppstoreOutlined',
- },
- },
- {
- path: '/basic/materiel',
- name: 'BasicMateriel',
- component: () => import('../views/basic/materiel/index.vue'),
- meta: {
- title: '鐗╂枡绠$悊',
- icon: 'InboxOutlined',
- },
- },
- ],
- },
- // 鍏ュ簱绠$悊
- {
- path: '/inbound',
- name: 'Inbound',
- meta: {
- title: '鍏ュ簱绠$悊',
- icon: 'ImportOutlined',
- },
- children: [
- {
- path: '/inbound/order',
- name: 'InboundOrder',
- component: () => import('../views/inbound/order/index.vue'),
- meta: {
- title: '鍏ュ簱鍗曠鐞�',
- icon: 'FileTextOutlined',
- },
- },
- ],
- },
- // 鍑哄簱绠$悊
- {
- path: '/outbound',
- name: 'Outbound',
- meta: {
- title: '鍑哄簱绠$悊',
- icon: 'ExportOutlined',
- },
- children: [
- {
- path: '/outbound/order',
- name: 'OutboundOrder',
- component: () => import('../views/outbound/order/index.vue'),
- meta: {
- title: '鍑哄簱鍗曠鐞�',
- icon: 'FileTextOutlined',
- },
- },
- ],
- },
- // 搴撳瓨绠$悊
- {
- path: '/stock',
- name: 'Stock',
- meta: {
- title: '搴撳瓨绠$悊',
- icon: 'ContainerOutlined',
- },
- children: [
- {
- path: '/stock/info',
- name: 'StockInfo',
- component: () => import('../views/stock/info/index.vue'),
- meta: {
- title: '搴撳瓨淇℃伅',
- icon: 'UnorderedListOutlined',
- },
- },
- ],
- },
- // 鐩樼偣绠$悊
- {
- path: '/check',
- name: 'Check',
- meta: {
- title: '鐩樼偣绠$悊',
- icon: 'AuditOutlined',
- },
- children: [
- {
- path: '/check/order',
- name: 'CheckOrder',
- component: () => import('../views/check/order/index.vue'),
- meta: {
- title: '鐩樼偣鍗曠鐞�',
- icon: 'FileTextOutlined',
- },
- },
- ],
- },
- // 浠诲姟绠$悊
- {
- path: '/task',
- name: 'Task',
- meta: {
- title: '浠诲姟绠$悊',
- icon: 'CarryOutOutlined',
- },
- children: [
- {
- path: '/task/info',
- name: 'TaskInfo',
- component: () => import('../views/task/info/index.vue'),
- meta: {
- title: '浠诲姟淇℃伅',
- icon: 'UnorderedListOutlined',
- },
- },
- ],
- },
- ],
- },
- {
- path: '/:pathMatch(.*)*',
- name: 'NotFound',
- component: () => import('../views/error/404.vue'),
- meta: {
- title: '404',
- requiresAuth: false,
- },
- },
-];
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/stores/app.ts b/Code/WMS/WIDESEA_WMS_Frontend/src/stores/app.ts
deleted file mode 100644
index 1899cc7..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/stores/app.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { defineStore } from 'pinia';
-import { ref } from 'vue';
-
-export const useAppStore = defineStore('app', () => {
- const collapsed = ref<boolean>(false);
- const loading = ref<boolean>(false);
-
- /**
- * 鍒囨崲渚ц竟鏍忔姌鍙犵姸鎬�
- */
- function toggleCollapsed() {
- collapsed.value = !collapsed.value;
- }
-
- /**
- * 璁剧疆鍔犺浇鐘舵��
- */
- function setLoading(value: boolean) {
- loading.value = value;
- }
-
- return {
- collapsed,
- loading,
- toggleCollapsed,
- setLoading,
- };
-});
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/stores/auth.ts b/Code/WMS/WIDESEA_WMS_Frontend/src/stores/auth.ts
deleted file mode 100644
index f707b7a..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/stores/auth.ts
+++ /dev/null
@@ -1,79 +0,0 @@
-import { defineStore } from 'pinia';
-import { ref } from 'vue';
-import type { UserInfo } from '../types/user';
-import { getToken, setToken, getUserInfo, setUserInfo, clearAuth } from '../utils/auth';
-import { login as loginApi, getCurrentUserInfo } from '../api/auth';
-
-export const useAuthStore = defineStore('auth', () => {
- const token = ref<string | null>(getToken());
- const userInfo = ref<UserInfo | null>(getUserInfo());
- const isLoggedIn = ref<boolean>(!!token.value);
-
- /**
- * 鐧诲綍
- */
- async function login(username: string, password: string) {
- try {
- const res = await loginApi({ UserName: username, Password: password });
- if (res.status && res.data) {
- const { token: newToken, ...user } = res.data;
- token.value = newToken;
- userInfo.value = user;
- isLoggedIn.value = true;
- setToken(newToken);
- setUserInfo(user);
- return true;
- }
- return false;
- } catch (error) {
- console.error('Login failed:', error);
- return false;
- }
- }
-
- /**
- * 鐧诲嚭
- */
- function logout() {
- token.value = null;
- userInfo.value = null;
- isLoggedIn.value = false;
- clearAuth();
- }
-
- /**
- * 鑾峰彇褰撳墠鐢ㄦ埛淇℃伅
- */
- async function fetchUserInfo() {
- try {
- const res = await getCurrentUserInfo();
- if (res.status && res.data) {
- userInfo.value = res.data;
- setUserInfo(res.data);
- return true;
- }
- return false;
- } catch (error) {
- console.error('Fetch user info failed:', error);
- return false;
- }
- }
-
- /**
- * 鏇存柊 Token
- */
- function updateToken(newToken: string) {
- token.value = newToken;
- setToken(newToken);
- }
-
- return {
- token,
- userInfo,
- isLoggedIn,
- login,
- logout,
- fetchUserInfo,
- updateToken,
- };
-});
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/types/api.ts b/Code/WMS/WIDESEA_WMS_Frontend/src/types/api.ts
deleted file mode 100644
index 4f0c9c3..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/types/api.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * API 鍝嶅簲鍩虹绫诲瀷
- */
-export interface ApiResponse<T = any> {
- status: boolean;
- message: string;
- data: T;
- total?: number;
-}
-
-/**
- * 鍒嗛〉璇锋眰鍙傛暟
- */
-export interface PageRequest {
- page: number;
- rows: number;
- sort?: string;
- order?: 'asc' | 'desc';
- wheres?: WhereCondition[];
-}
-
-/**
- * 鏌ヨ鏉′欢
- */
-export interface WhereCondition {
- name: string;
- value: any;
- displayType?: 'like' | 'equal' | 'notEqual' | 'greaterThan' | 'lessThan' | 'in' | 'notIn';
-}
-
-/**
- * 鍒嗛〉鍝嶅簲鏁版嵁
- */
-export interface PageResponse<T = any> {
- rows: T[];
- total: number;
- page: number;
- records: number;
-}
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/types/common.ts b/Code/WMS/WIDESEA_WMS_Frontend/src/types/common.ts
deleted file mode 100644
index d4048b9..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/types/common.ts
+++ /dev/null
@@ -1,111 +0,0 @@
-/**
- * 浠撳簱淇℃伅
- */
-export interface WarehouseInfo {
- Id: string;
- WarehouseCode: string;
- WarehouseName: string;
- WarehouseType?: string;
- Enable: number;
- CreateDate?: string;
- Creator?: string;
-}
-
-/**
- * 璐т綅淇℃伅
- */
-export interface LocationInfo {
- Id: string;
- LocationCode: string;
- LocationName: string;
- WarehouseCode: string;
- WarehouseName?: string;
- LocationType?: string;
- LocationStatus?: number;
- Enable: number;
- CreateDate?: string;
-}
-
-/**
- * 鐗╂枡淇℃伅
- */
-export interface MaterielInfo {
- Id: string;
- MaterielCode: string;
- MaterielName: string;
- MaterielType?: string;
- Specification?: string;
- Unit?: string;
- Enable: number;
- CreateDate?: string;
-}
-
-/**
- * 鍏ュ簱鍗曚俊鎭�
- */
-export interface InboundOrderInfo {
- Id: string;
- InboundOrderNo: string;
- InboundType?: string;
- WarehouseCode: string;
- WarehouseName?: string;
- OrderStatus?: number;
- CreateDate?: string;
- Creator?: string;
-}
-
-/**
- * 鍑哄簱鍗曚俊鎭�
- */
-export interface OutboundOrderInfo {
- Id: string;
- OutboundOrderNo: string;
- OutboundType?: string;
- WarehouseCode: string;
- WarehouseName?: string;
- OrderStatus?: number;
- CreateDate?: string;
- Creator?: string;
-}
-
-/**
- * 搴撳瓨淇℃伅
- */
-export interface StockInfo {
- Id: string;
- WarehouseCode: string;
- WarehouseName?: string;
- LocationCode: string;
- MaterielCode: string;
- MaterielName?: string;
- Quantity: number;
- AvailableQuantity: number;
- LockedQuantity: number;
- CreateDate?: string;
-}
-
-/**
- * 鐩樼偣鍗曚俊鎭�
- */
-export interface CheckOrderInfo {
- Id: string;
- CheckOrderNo: string;
- WarehouseCode: string;
- WarehouseName?: string;
- CheckStatus?: number;
- CreateDate?: string;
- Creator?: string;
-}
-
-/**
- * 浠诲姟淇℃伅
- */
-export interface TaskInfo {
- Id: string;
- TaskNo: string;
- TaskType?: string;
- TaskStatus?: number;
- WarehouseCode: string;
- CreateDate?: string;
- Creator?: string;
-}
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/types/user.ts b/Code/WMS/WIDESEA_WMS_Frontend/src/types/user.ts
deleted file mode 100644
index d6dadc9..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/types/user.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * 鐢ㄦ埛淇℃伅
- */
-export interface UserInfo {
- Id: string;
- UserName: string;
- UserTrueName: string;
- Role_Id: string;
- RoleName?: string;
- DepartmentName?: string;
- Enable: number;
- CreateDate?: string;
- Creator?: string;
- Token?: string;
-}
-
-/**
- * 鐧诲綍璇锋眰鍙傛暟
- */
-export interface LoginParams {
- UserName: string;
- Password: string;
-}
-
-/**
- * 鐧诲綍鍝嶅簲鏁版嵁
- */
-export interface LoginResult {
- token: string;
- userInfo: UserInfo;
-}
-
-/**
- * 瑙掕壊淇℃伅
- */
-export interface RoleInfo {
- Id: string;
- RoleName: string;
- OrderNo?: number;
- Enable: number;
- CreateDate?: string;
- Creator?: string;
-}
-
-/**
- * 鑿滃崟淇℃伅
- */
-export interface MenuInfo {
- Id: string;
- ParentId?: string;
- MenuName: string;
- Url?: string;
- Icon?: string;
- OrderNo?: number;
- Enable: number;
- children?: MenuInfo[];
-}
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/utils/auth.ts b/Code/WMS/WIDESEA_WMS_Frontend/src/utils/auth.ts
deleted file mode 100644
index 3ace419..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/utils/auth.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-const TOKEN_KEY = 'token';
-const USER_INFO_KEY = 'userInfo';
-
-/**
- * 鑾峰彇 Token
- */
-export function getToken(): string | null {
- return localStorage.getItem(TOKEN_KEY);
-}
-
-/**
- * 璁剧疆 Token
- */
-export function setToken(token: string): void {
- localStorage.setItem(TOKEN_KEY, token);
-}
-
-/**
- * 绉婚櫎 Token
- */
-export function removeToken(): void {
- localStorage.removeItem(TOKEN_KEY);
-}
-
-/**
- * 鑾峰彇鐢ㄦ埛淇℃伅
- */
-export function getUserInfo(): any {
- const userInfo = localStorage.getItem(USER_INFO_KEY);
- return userInfo ? JSON.parse(userInfo) : null;
-}
-
-/**
- * 璁剧疆鐢ㄦ埛淇℃伅
- */
-export function setUserInfo(userInfo: any): void {
- localStorage.setItem(USER_INFO_KEY, JSON.stringify(userInfo));
-}
-
-/**
- * 绉婚櫎鐢ㄦ埛淇℃伅
- */
-export function removeUserInfo(): void {
- localStorage.removeItem(USER_INFO_KEY);
-}
-
-/**
- * 娓呴櫎鎵�鏈夎璇佷俊鎭�
- */
-export function clearAuth(): void {
- removeToken();
- removeUserInfo();
-}
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/utils/common.ts b/Code/WMS/WIDESEA_WMS_Frontend/src/utils/common.ts
deleted file mode 100644
index 07549ae..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/utils/common.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-import dayjs from 'dayjs';
-
-/**
- * 鏍煎紡鍖栨棩鏈�
- */
-export function formatDate(date: string | Date, format = 'YYYY-MM-DD HH:mm:ss'): string {
- if (!date) return '';
- return dayjs(date).format(format);
-}
-
-/**
- * 鏍煎紡鍖栨棩鏈燂紙浠呮棩鏈燂級
- */
-export function formatDateOnly(date: string | Date): string {
- return formatDate(date, 'YYYY-MM-DD');
-}
-
-/**
- * 娣辨嫹璐�
- */
-export function deepClone<T>(obj: T): T {
- return JSON.parse(JSON.stringify(obj));
-}
-
-/**
- * 闃叉姈
- */
-export function debounce<T extends (...args: any[]) => any>(
- func: T,
- wait: number
-): (...args: Parameters<T>) => void {
- let timeout: NodeJS.Timeout | null = null;
- return function (this: any, ...args: Parameters<T>) {
- if (timeout) clearTimeout(timeout);
- timeout = setTimeout(() => {
- func.apply(this, args);
- }, wait);
- };
-}
-
-/**
- * 鑺傛祦
- */
-export function throttle<T extends (...args: any[]) => any>(
- func: T,
- wait: number
-): (...args: Parameters<T>) => void {
- let timeout: NodeJS.Timeout | null = null;
- return function (this: any, ...args: Parameters<T>) {
- if (!timeout) {
- timeout = setTimeout(() => {
- timeout = null;
- func.apply(this, args);
- }, wait);
- }
- };
-}
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/utils/request.ts b/Code/WMS/WIDESEA_WMS_Frontend/src/utils/request.ts
deleted file mode 100644
index 07dab8d..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/utils/request.ts
+++ /dev/null
@@ -1,130 +0,0 @@
-import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse, AxiosError } from 'axios';
-import { message } from 'ant-design-vue';
-import { getToken, setToken, clearAuth } from './auth';
-import router from '../router';
-
-// 鍒涘缓 axios 瀹炰緥
-const service: AxiosInstance = axios.create({
- baseURL: '/api',
- timeout: 30000,
- headers: {
- 'Content-Type': 'application/json;charset=UTF-8',
- },
-});
-
-// 璇锋眰鎷︽埅鍣�
-service.interceptors.request.use(
- (config: any) => {
- // 娣诲姞 Token 鍒拌姹傚ご
- const token = getToken();
- if (token) {
- config.headers.Authorization = `Bearer ${token}`;
- }
-
- // 纭繚 POST 璇锋眰鐨勬暟鎹姝g‘搴忓垪鍖栦负 JSON
- if (config.method === 'post' && config.data) {
- // 濡傛灉 data 涓嶆槸 FormData锛岀‘淇濆畠鏄� JSON 瀛楃涓�
- if (!(config.data instanceof FormData)) {
- config.headers['Content-Type'] = 'application/json;charset=UTF-8';
- // axios 浼氳嚜鍔ㄥ皢瀵硅薄杞崲涓� JSON锛屼絾鎴戜滑纭繚 Content-Type 姝g‘
- }
- }
-
- // 寮�鍙戠幆澧冧笅鎵撳嵃璇锋眰淇℃伅
- if (import.meta.env.DEV) {
- console.log('Request:', {
- url: config.url,
- method: config.method,
- data: config.data,
- headers: config.headers,
- });
- }
-
- return config;
- },
- (error: AxiosError) => {
- console.error('Request error:', error);
- return Promise.reject(error);
- }
-);
-
-// 鍝嶅簲鎷︽埅鍣�
-service.interceptors.response.use(
- (response: AxiosResponse) => {
- // 妫�鏌ユ槸鍚﹂渶瑕佸埛鏂� Token
- const expHeader = response.headers['widesea_exp'];
- if (expHeader === '1') {
- // Token 鍗冲皢杩囨湡锛屽埛鏂� Token
- refreshToken();
- }
-
- const res = response.data;
-
- // 濡傛灉鍝嶅簲鐘舵�佷笉鏄� true锛屾樉绀洪敊璇秷鎭�
- if (res.status === false) {
- message.error(res.message || '璇锋眰澶辫触');
- return Promise.reject(new Error(res.message || '璇锋眰澶辫触'));
- }
-
- return res;
- },
- (error: AxiosError) => {
- console.error('Response error:', error);
-
- if (error.response) {
- const status = error.response.status;
-
- switch (status) {
- case 401:
- // 鏈璇侊紝娓呴櫎 Token 骞惰烦杞埌鐧诲綍椤�
- message.error('鐧诲綍宸茶繃鏈燂紝璇烽噸鏂扮櫥褰�');
- clearAuth();
- router.push('/login');
- break;
- case 403:
- message.error('娌℃湁鏉冮檺璁块棶璇ヨ祫婧�');
- break;
- case 404:
- message.error('璇锋眰鐨勮祫婧愪笉瀛樺湪');
- break;
- case 500:
- message.error('鏈嶅姟鍣ㄩ敊璇�');
- break;
- default:
- message.error(error.message || '璇锋眰澶辫触');
- }
- } else {
- message.error('缃戠粶閿欒锛岃妫�鏌ョ綉缁滆繛鎺�');
- }
-
- return Promise.reject(error);
- }
-);
-
-/**
- * 鍒锋柊 Token
- */
-async function refreshToken() {
- try {
- const token = getToken();
- if (!token) return;
-
- const response = await axios.post(
- '/api/User/replaceToken',
- { token },
- {
- headers: {
- Authorization: `Bearer ${token}`,
- },
- }
- );
-
- if (response.data.status && response.data.data) {
- setToken(response.data.data);
- }
- } catch (error) {
- console.error('Token refresh failed:', error);
- }
-}
-
-export default service;
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/views/basic/location/index.vue b/Code/WMS/WIDESEA_WMS_Frontend/src/views/basic/location/index.vue
deleted file mode 100644
index 278c07e..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/views/basic/location/index.vue
+++ /dev/null
@@ -1,230 +0,0 @@
-<template>
- <div class="location-page">
- <a-card>
- <a-space style="margin-bottom: 16px">
- <a-button type="primary" @click="handleAdd">
- <template #icon><plus-outlined /></template>
- 鏂板璐т綅
- </a-button>
- <a-input-search
- v-model:value="searchText"
- placeholder="鎼滅储璐т綅缂栫爜"
- style="width: 200px"
- @search="handleSearch"
- />
- </a-space>
-
- <a-table
- :columns="columns"
- :data-source="dataSource"
- :loading="loading"
- :pagination="pagination"
- @change="handleTableChange"
- row-key="Id"
- >
- <template #bodyCell="{ column, record }">
- <template v-if="column.key === 'LocationStatus'">
- <a-tag :color="record.LocationStatus === 1 ? 'green' : 'orange'">
- {{ record.LocationStatus === 1 ? '绌洪棽' : '鍗犵敤' }}
- </a-tag>
- </template>
- <template v-else-if="column.key === 'Enable'">
- <a-tag :color="record.Enable === 1 ? 'green' : 'red'">
- {{ record.Enable === 1 ? '鍚敤' : '绂佺敤' }}
- </a-tag>
- </template>
- <template v-else-if="column.key === 'action'">
- <a-space>
- <a @click="handleEdit(record)">缂栬緫</a>
- <a-divider type="vertical" />
- <a-popconfirm title="纭畾瑕佸垹闄ゅ悧锛�" @confirm="handleDelete(record)">
- <a style="color: red">鍒犻櫎</a>
- </a-popconfirm>
- </a-space>
- </template>
- </template>
- </a-table>
- </a-card>
-
- <a-modal
- v-model:open="modalVisible"
- :title="modalTitle"
- @ok="handleModalOk"
- @cancel="handleModalCancel"
- >
- <a-form
- ref="formRef"
- :model="formState"
- :rules="rules"
- :label-col="{ span: 6 }"
- :wrapper-col="{ span: 16 }"
- >
- <a-form-item label="璐т綅缂栫爜" name="LocationCode">
- <a-input v-model:value="formState.LocationCode" />
- </a-form-item>
- <a-form-item label="璐т綅鍚嶇О" name="LocationName">
- <a-input v-model:value="formState.LocationName" />
- </a-form-item>
- <a-form-item label="浠撳簱缂栫爜" name="WarehouseCode">
- <a-input v-model:value="formState.WarehouseCode" />
- </a-form-item>
- <a-form-item label="璐т綅绫诲瀷" name="LocationType">
- <a-input v-model:value="formState.LocationType" />
- </a-form-item>
- <a-form-item label="鐘舵��" name="Enable">
- <a-select v-model:value="formState.Enable">
- <a-select-option :value="1">鍚敤</a-select-option>
- <a-select-option :value="0">绂佺敤</a-select-option>
- </a-select>
- </a-form-item>
- </a-form>
- </a-modal>
- </div>
-</template>
-
-<script setup lang="ts">
-import { ref, reactive, onMounted } from 'vue';
-import { message } from 'ant-design-vue';
-import { PlusOutlined } from '@ant-design/icons-vue';
-import {
- getLocationList,
- addLocation,
- updateLocation,
- deleteLocation,
-} from '../../../api/basic';
-import type { LocationInfo } from '../../../types/common';
-
-const columns = [
- { title: '璐т綅缂栫爜', dataIndex: 'LocationCode', key: 'LocationCode' },
- { title: '璐т綅鍚嶇О', dataIndex: 'LocationName', key: 'LocationName' },
- { title: '浠撳簱缂栫爜', dataIndex: 'WarehouseCode', key: 'WarehouseCode' },
- { title: '璐т綅绫诲瀷', dataIndex: 'LocationType', key: 'LocationType' },
- { title: '璐т綅鐘舵��', dataIndex: 'LocationStatus', key: 'LocationStatus' },
- { title: '鐘舵��', dataIndex: 'Enable', key: 'Enable' },
- { title: '鍒涘缓鏃堕棿', dataIndex: 'CreateDate', key: 'CreateDate' },
- { title: '鎿嶄綔', key: 'action', width: 150 },
-];
-
-const dataSource = ref<LocationInfo[]>([]);
-const loading = ref(false);
-const searchText = ref('');
-const pagination = reactive({
- current: 1,
- pageSize: 20,
- total: 0,
- showSizeChanger: true,
- showTotal: (total: number) => `鍏� ${total} 鏉,
-});
-
-const modalVisible = ref(false);
-const modalTitle = ref('鏂板璐т綅');
-const formRef = ref();
-const formState = reactive<Partial<LocationInfo>>({
- LocationCode: '',
- LocationName: '',
- WarehouseCode: '',
- LocationType: '',
- Enable: 1,
-});
-
-const rules = {
- LocationCode: [{ required: true, message: '璇疯緭鍏ヨ揣浣嶇紪鐮�', trigger: 'blur' }],
- LocationName: [{ required: true, message: '璇疯緭鍏ヨ揣浣嶅悕绉�', trigger: 'blur' }],
- WarehouseCode: [{ required: true, message: '璇疯緭鍏ヤ粨搴撶紪鐮�', trigger: 'blur' }],
-};
-
-onMounted(() => {
- fetchData();
-});
-
-async function fetchData() {
- loading.value = true;
- try {
- const res = await getLocationList({
- page: pagination.current,
- rows: pagination.pageSize,
- sort: 'CreateDate',
- order: 'desc',
- wheres: searchText.value
- ? [{ name: 'LocationCode', value: searchText.value, displayType: 'like' }]
- : [],
- });
- if (res.status && res.data) {
- dataSource.value = res.data.rows || [];
- pagination.total = res.data.total || 0;
- }
- } catch (error) {
- console.error('Fetch data error:', error);
- } finally {
- loading.value = false;
- }
-}
-
-function handleTableChange(pag: any) {
- pagination.current = pag.current;
- pagination.pageSize = pag.pageSize;
- fetchData();
-}
-
-function handleSearch() {
- pagination.current = 1;
- fetchData();
-}
-
-function handleAdd() {
- modalTitle.value = '鏂板璐т綅';
- Object.assign(formState, {
- Id: undefined,
- LocationCode: '',
- LocationName: '',
- WarehouseCode: '',
- LocationType: '',
- Enable: 1,
- });
- modalVisible.value = true;
-}
-
-function handleEdit(record: LocationInfo) {
- modalTitle.value = '缂栬緫璐т綅';
- Object.assign(formState, record);
- modalVisible.value = true;
-}
-
-async function handleModalOk() {
- try {
- await formRef.value.validate();
- const api = formState.Id ? updateLocation : addLocation;
- const res = await api(formState);
- if (res.status) {
- message.success(formState.Id ? '鏇存柊鎴愬姛' : '鏂板鎴愬姛');
- modalVisible.value = false;
- fetchData();
- }
- } catch (error) {
- console.error('Save error:', error);
- }
-}
-
-function handleModalCancel() {
- modalVisible.value = false;
- formRef.value?.resetFields();
-}
-
-async function handleDelete(record: LocationInfo) {
- try {
- const res = await deleteLocation([record.Id]);
- if (res.status) {
- message.success('鍒犻櫎鎴愬姛');
- fetchData();
- }
- } catch (error) {
- console.error('Delete error:', error);
- }
-}
-</script>
-
-<style scoped>
-.location-page {
- padding: 0;
-}
-</style>
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/views/basic/materiel/index.vue b/Code/WMS/WIDESEA_WMS_Frontend/src/views/basic/materiel/index.vue
deleted file mode 100644
index 3f0d409..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/views/basic/materiel/index.vue
+++ /dev/null
@@ -1,229 +0,0 @@
-<template>
- <div class="materiel-page">
- <a-card>
- <a-space style="margin-bottom: 16px">
- <a-button type="primary" @click="handleAdd">
- <template #icon><plus-outlined /></template>
- 鏂板鐗╂枡
- </a-button>
- <a-input-search
- v-model:value="searchText"
- placeholder="鎼滅储鐗╂枡鍚嶇О"
- style="width: 200px"
- @search="handleSearch"
- />
- </a-space>
-
- <a-table
- :columns="columns"
- :data-source="dataSource"
- :loading="loading"
- :pagination="pagination"
- @change="handleTableChange"
- row-key="Id"
- >
- <template #bodyCell="{ column, record }">
- <template v-if="column.key === 'Enable'">
- <a-tag :color="record.Enable === 1 ? 'green' : 'red'">
- {{ record.Enable === 1 ? '鍚敤' : '绂佺敤' }}
- </a-tag>
- </template>
- <template v-else-if="column.key === 'action'">
- <a-space>
- <a @click="handleEdit(record)">缂栬緫</a>
- <a-divider type="vertical" />
- <a-popconfirm title="纭畾瑕佸垹闄ゅ悧锛�" @confirm="handleDelete(record)">
- <a style="color: red">鍒犻櫎</a>
- </a-popconfirm>
- </a-space>
- </template>
- </template>
- </a-table>
- </a-card>
-
- <a-modal
- v-model:open="modalVisible"
- :title="modalTitle"
- @ok="handleModalOk"
- @cancel="handleModalCancel"
- >
- <a-form
- ref="formRef"
- :model="formState"
- :rules="rules"
- :label-col="{ span: 6 }"
- :wrapper-col="{ span: 16 }"
- >
- <a-form-item label="鐗╂枡缂栫爜" name="MaterielCode">
- <a-input v-model:value="formState.MaterielCode" />
- </a-form-item>
- <a-form-item label="鐗╂枡鍚嶇О" name="MaterielName">
- <a-input v-model:value="formState.MaterielName" />
- </a-form-item>
- <a-form-item label="鐗╂枡绫诲瀷" name="MaterielType">
- <a-input v-model:value="formState.MaterielType" />
- </a-form-item>
- <a-form-item label="瑙勬牸" name="Specification">
- <a-input v-model:value="formState.Specification" />
- </a-form-item>
- <a-form-item label="鍗曚綅" name="Unit">
- <a-input v-model:value="formState.Unit" />
- </a-form-item>
- <a-form-item label="鐘舵��" name="Enable">
- <a-select v-model:value="formState.Enable">
- <a-select-option :value="1">鍚敤</a-select-option>
- <a-select-option :value="0">绂佺敤</a-select-option>
- </a-select>
- </a-form-item>
- </a-form>
- </a-modal>
- </div>
-</template>
-
-<script setup lang="ts">
-import { ref, reactive, onMounted } from 'vue';
-import { message } from 'ant-design-vue';
-import { PlusOutlined } from '@ant-design/icons-vue';
-import {
- getMaterielList,
- addMateriel,
- updateMateriel,
- deleteMateriel,
-} from '../../../api/basic';
-import type { MaterielInfo } from '../../../types/common';
-
-const columns = [
- { title: '鐗╂枡缂栫爜', dataIndex: 'MaterielCode', key: 'MaterielCode' },
- { title: '鐗╂枡鍚嶇О', dataIndex: 'MaterielName', key: 'MaterielName' },
- { title: '鐗╂枡绫诲瀷', dataIndex: 'MaterielType', key: 'MaterielType' },
- { title: '瑙勬牸', dataIndex: 'Specification', key: 'Specification' },
- { title: '鍗曚綅', dataIndex: 'Unit', key: 'Unit' },
- { title: '鐘舵��', dataIndex: 'Enable', key: 'Enable' },
- { title: '鍒涘缓鏃堕棿', dataIndex: 'CreateDate', key: 'CreateDate' },
- { title: '鎿嶄綔', key: 'action', width: 150 },
-];
-
-const dataSource = ref<MaterielInfo[]>([]);
-const loading = ref(false);
-const searchText = ref('');
-const pagination = reactive({
- current: 1,
- pageSize: 20,
- total: 0,
- showSizeChanger: true,
- showTotal: (total: number) => `鍏� ${total} 鏉,
-});
-
-const modalVisible = ref(false);
-const modalTitle = ref('鏂板鐗╂枡');
-const formRef = ref();
-const formState = reactive<Partial<MaterielInfo>>({
- MaterielCode: '',
- MaterielName: '',
- MaterielType: '',
- Specification: '',
- Unit: '',
- Enable: 1,
-});
-
-const rules = {
- MaterielCode: [{ required: true, message: '璇疯緭鍏ョ墿鏂欑紪鐮�', trigger: 'blur' }],
- MaterielName: [{ required: true, message: '璇疯緭鍏ョ墿鏂欏悕绉�', trigger: 'blur' }],
-};
-
-onMounted(() => {
- fetchData();
-});
-
-async function fetchData() {
- loading.value = true;
- try {
- const res = await getMaterielList({
- page: pagination.current,
- rows: pagination.pageSize,
- sort: 'CreateDate',
- order: 'desc',
- wheres: searchText.value
- ? [{ name: 'MaterielName', value: searchText.value, displayType: 'like' }]
- : [],
- });
- if (res.status && res.data) {
- dataSource.value = res.data.rows || [];
- pagination.total = res.data.total || 0;
- }
- } catch (error) {
- console.error('Fetch data error:', error);
- } finally {
- loading.value = false;
- }
-}
-
-function handleTableChange(pag: any) {
- pagination.current = pag.current;
- pagination.pageSize = pag.pageSize;
- fetchData();
-}
-
-function handleSearch() {
- pagination.current = 1;
- fetchData();
-}
-
-function handleAdd() {
- modalTitle.value = '鏂板鐗╂枡';
- Object.assign(formState, {
- Id: undefined,
- MaterielCode: '',
- MaterielName: '',
- MaterielType: '',
- Specification: '',
- Unit: '',
- Enable: 1,
- });
- modalVisible.value = true;
-}
-
-function handleEdit(record: MaterielInfo) {
- modalTitle.value = '缂栬緫鐗╂枡';
- Object.assign(formState, record);
- modalVisible.value = true;
-}
-
-async function handleModalOk() {
- try {
- await formRef.value.validate();
- const api = formState.Id ? updateMateriel : addMateriel;
- const res = await api(formState);
- if (res.status) {
- message.success(formState.Id ? '鏇存柊鎴愬姛' : '鏂板鎴愬姛');
- modalVisible.value = false;
- fetchData();
- }
- } catch (error) {
- console.error('Save error:', error);
- }
-}
-
-function handleModalCancel() {
- modalVisible.value = false;
- formRef.value?.resetFields();
-}
-
-async function handleDelete(record: MaterielInfo) {
- try {
- const res = await deleteMateriel([record.Id]);
- if (res.status) {
- message.success('鍒犻櫎鎴愬姛');
- fetchData();
- }
- } catch (error) {
- console.error('Delete error:', error);
- }
-}
-</script>
-
-<style scoped>
-.materiel-page {
- padding: 0;
-}
-</style>
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/views/basic/warehouse/index.vue b/Code/WMS/WIDESEA_WMS_Frontend/src/views/basic/warehouse/index.vue
deleted file mode 100644
index d1d8c03..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/views/basic/warehouse/index.vue
+++ /dev/null
@@ -1,217 +0,0 @@
-<template>
- <div class="warehouse-page">
- <a-card>
- <a-space style="margin-bottom: 16px">
- <a-button type="primary" @click="handleAdd">
- <template #icon><plus-outlined /></template>
- 鏂板浠撳簱
- </a-button>
- <a-input-search
- v-model:value="searchText"
- placeholder="鎼滅储浠撳簱鍚嶇О"
- style="width: 200px"
- @search="handleSearch"
- />
- </a-space>
-
- <a-table
- :columns="columns"
- :data-source="dataSource"
- :loading="loading"
- :pagination="pagination"
- @change="handleTableChange"
- row-key="Id"
- >
- <template #bodyCell="{ column, record }">
- <template v-if="column.key === 'Enable'">
- <a-tag :color="record.Enable === 1 ? 'green' : 'red'">
- {{ record.Enable === 1 ? '鍚敤' : '绂佺敤' }}
- </a-tag>
- </template>
- <template v-else-if="column.key === 'action'">
- <a-space>
- <a @click="handleEdit(record)">缂栬緫</a>
- <a-divider type="vertical" />
- <a-popconfirm title="纭畾瑕佸垹闄ゅ悧锛�" @confirm="handleDelete(record)">
- <a style="color: red">鍒犻櫎</a>
- </a-popconfirm>
- </a-space>
- </template>
- </template>
- </a-table>
- </a-card>
-
- <a-modal
- v-model:open="modalVisible"
- :title="modalTitle"
- @ok="handleModalOk"
- @cancel="handleModalCancel"
- >
- <a-form
- ref="formRef"
- :model="formState"
- :rules="rules"
- :label-col="{ span: 6 }"
- :wrapper-col="{ span: 16 }"
- >
- <a-form-item label="浠撳簱缂栫爜" name="WarehouseCode">
- <a-input v-model:value="formState.WarehouseCode" />
- </a-form-item>
- <a-form-item label="浠撳簱鍚嶇О" name="WarehouseName">
- <a-input v-model:value="formState.WarehouseName" />
- </a-form-item>
- <a-form-item label="浠撳簱绫诲瀷" name="WarehouseType">
- <a-input v-model:value="formState.WarehouseType" />
- </a-form-item>
- <a-form-item label="鐘舵��" name="Enable">
- <a-select v-model:value="formState.Enable">
- <a-select-option :value="1">鍚敤</a-select-option>
- <a-select-option :value="0">绂佺敤</a-select-option>
- </a-select>
- </a-form-item>
- </a-form>
- </a-modal>
- </div>
-</template>
-
-<script setup lang="ts">
-import { ref, reactive, onMounted } from 'vue';
-import { message } from 'ant-design-vue';
-import { PlusOutlined } from '@ant-design/icons-vue';
-import {
- getWarehouseList,
- addWarehouse,
- updateWarehouse,
- deleteWarehouse,
-} from '../../../api/basic';
-import type { WarehouseInfo } from '../../../types/common';
-
-const columns = [
- { title: '浠撳簱缂栫爜', dataIndex: 'WarehouseCode', key: 'WarehouseCode' },
- { title: '浠撳簱鍚嶇О', dataIndex: 'WarehouseName', key: 'WarehouseName' },
- { title: '浠撳簱绫诲瀷', dataIndex: 'WarehouseType', key: 'WarehouseType' },
- { title: '鐘舵��', dataIndex: 'Enable', key: 'Enable' },
- { title: '鍒涘缓鏃堕棿', dataIndex: 'CreateDate', key: 'CreateDate' },
- { title: '鎿嶄綔', key: 'action', width: 150 },
-];
-
-const dataSource = ref<WarehouseInfo[]>([]);
-const loading = ref(false);
-const searchText = ref('');
-const pagination = reactive({
- current: 1,
- pageSize: 20,
- total: 0,
- showSizeChanger: true,
- showTotal: (total: number) => `鍏� ${total} 鏉,
-});
-
-const modalVisible = ref(false);
-const modalTitle = ref('鏂板浠撳簱');
-const formRef = ref();
-const formState = reactive<Partial<WarehouseInfo>>({
- WarehouseCode: '',
- WarehouseName: '',
- WarehouseType: '',
- Enable: 1,
-});
-
-const rules = {
- WarehouseCode: [{ required: true, message: '璇疯緭鍏ヤ粨搴撶紪鐮�', trigger: 'blur' }],
- WarehouseName: [{ required: true, message: '璇疯緭鍏ヤ粨搴撳悕绉�', trigger: 'blur' }],
-};
-
-onMounted(() => {
- fetchData();
-});
-
-async function fetchData() {
- loading.value = true;
- try {
- const res = await getWarehouseList({
- page: pagination.current,
- rows: pagination.pageSize,
- sort: 'CreateDate',
- order: 'desc',
- wheres: searchText.value
- ? [{ name: 'WarehouseName', value: searchText.value, displayType: 'like' }]
- : [],
- });
- if (res.status && res.data) {
- dataSource.value = res.data.rows || [];
- pagination.total = res.data.total || 0;
- }
- } catch (error) {
- console.error('Fetch data error:', error);
- } finally {
- loading.value = false;
- }
-}
-
-function handleTableChange(pag: any) {
- pagination.current = pag.current;
- pagination.pageSize = pag.pageSize;
- fetchData();
-}
-
-function handleSearch() {
- pagination.current = 1;
- fetchData();
-}
-
-function handleAdd() {
- modalTitle.value = '鏂板浠撳簱';
- Object.assign(formState, {
- Id: undefined,
- WarehouseCode: '',
- WarehouseName: '',
- WarehouseType: '',
- Enable: 1,
- });
- modalVisible.value = true;
-}
-
-function handleEdit(record: WarehouseInfo) {
- modalTitle.value = '缂栬緫浠撳簱';
- Object.assign(formState, record);
- modalVisible.value = true;
-}
-
-async function handleModalOk() {
- try {
- await formRef.value.validate();
- const api = formState.Id ? updateWarehouse : addWarehouse;
- const res = await api(formState);
- if (res.status) {
- message.success(formState.Id ? '鏇存柊鎴愬姛' : '鏂板鎴愬姛');
- modalVisible.value = false;
- fetchData();
- }
- } catch (error) {
- console.error('Save error:', error);
- }
-}
-
-function handleModalCancel() {
- modalVisible.value = false;
- formRef.value?.resetFields();
-}
-
-async function handleDelete(record: WarehouseInfo) {
- try {
- const res = await deleteWarehouse([record.Id]);
- if (res.status) {
- message.success('鍒犻櫎鎴愬姛');
- fetchData();
- }
- } catch (error) {
- console.error('Delete error:', error);
- }
-}
-</script>
-
-<style scoped>
-.warehouse-page {
- padding: 0;
-}
-</style>
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/views/check/order/index.vue b/Code/WMS/WIDESEA_WMS_Frontend/src/views/check/order/index.vue
deleted file mode 100644
index ef52b48..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/views/check/order/index.vue
+++ /dev/null
@@ -1,145 +0,0 @@
-<template>
- <div class="check-order-page">
- <a-card>
- <a-space style="margin-bottom: 16px">
- <a-button type="primary" @click="handleAdd">
- <template #icon><plus-outlined /></template>
- 鏂板鐩樼偣鍗�
- </a-button>
- <a-input-search
- v-model:value="searchText"
- placeholder="鎼滅储鐩樼偣鍗曞彿"
- style="width: 200px"
- @search="handleSearch"
- />
- </a-space>
-
- <a-table
- :columns="columns"
- :data-source="dataSource"
- :loading="loading"
- :pagination="pagination"
- @change="handleTableChange"
- row-key="Id"
- >
- <template #bodyCell="{ column, record }">
- <template v-if="column.key === 'CheckStatus'">
- <a-tag :color="getStatusColor(record.CheckStatus)">
- {{ getStatusText(record.CheckStatus) }}
- </a-tag>
- </template>
- <template v-else-if="column.key === 'action'">
- <a-space>
- <a @click="handleView(record)">鏌ョ湅</a>
- <a-divider type="vertical" />
- <a @click="handleEdit(record)">缂栬緫</a>
- <a-divider type="vertical" />
- <a-popconfirm title="纭畾瑕佸垹闄ゅ悧锛�" @confirm="handleDelete(record)">
- <a style="color: red">鍒犻櫎</a>
- </a-popconfirm>
- </a-space>
- </template>
- </template>
- </a-table>
- </a-card>
- </div>
-</template>
-
-<script setup lang="ts">
-import { ref, reactive, onMounted } from 'vue';
-import { message } from 'ant-design-vue';
-import { PlusOutlined } from '@ant-design/icons-vue';
-import type { CheckOrderInfo } from '../../../types/common';
-
-const columns = [
- { title: '鐩樼偣鍗曞彿', dataIndex: 'CheckOrderNo', key: 'CheckOrderNo' },
- { title: '浠撳簱缂栫爜', dataIndex: 'WarehouseCode', key: 'WarehouseCode' },
- { title: '浠撳簱鍚嶇О', dataIndex: 'WarehouseName', key: 'WarehouseName' },
- { title: '鐩樼偣鐘舵��', dataIndex: 'CheckStatus', key: 'CheckStatus' },
- { title: '鍒涘缓鏃堕棿', dataIndex: 'CreateDate', key: 'CreateDate' },
- { title: '鍒涘缓浜�', dataIndex: 'Creator', key: 'Creator' },
- { title: '鎿嶄綔', key: 'action', width: 200 },
-];
-
-const dataSource = ref<CheckOrderInfo[]>([]);
-const loading = ref(false);
-const searchText = ref('');
-const pagination = reactive({
- current: 1,
- pageSize: 20,
- total: 0,
- showSizeChanger: true,
- showTotal: (total: number) => `鍏� ${total} 鏉,
-});
-
-onMounted(() => {
- fetchData();
-});
-
-async function fetchData() {
- loading.value = true;
- try {
- // 杩欓噷璋冪敤瀹為檯鐨� API
- setTimeout(() => {
- dataSource.value = [];
- pagination.total = 0;
- loading.value = false;
- }, 500);
- } catch (error) {
- console.error('Fetch data error:', error);
- loading.value = false;
- }
-}
-
-function handleTableChange(pag: any) {
- pagination.current = pag.current;
- pagination.pageSize = pag.pageSize;
- fetchData();
-}
-
-function handleSearch() {
- pagination.current = 1;
- fetchData();
-}
-
-function handleAdd() {
- message.info('鏂板鐩樼偣鍗曞姛鑳�');
-}
-
-function handleView(record: CheckOrderInfo) {
- message.info(`鏌ョ湅鐩樼偣鍗�: ${record.CheckOrderNo}`);
-}
-
-function handleEdit(record: CheckOrderInfo) {
- message.info(`缂栬緫鐩樼偣鍗�: ${record.CheckOrderNo}`);
-}
-
-async function handleDelete(record: CheckOrderInfo) {
- message.success('鍒犻櫎鎴愬姛');
- fetchData();
-}
-
-function getStatusColor(status?: number) {
- const colorMap: Record<number, string> = {
- 0: 'default',
- 1: 'processing',
- 2: 'success',
- };
- return colorMap[status || 0] || 'default';
-}
-
-function getStatusText(status?: number) {
- const textMap: Record<number, string> = {
- 0: '寰呯洏鐐�',
- 1: '鐩樼偣涓�',
- 2: '宸插畬鎴�',
- };
- return textMap[status || 0] || '鏈煡';
-}
-</script>
-
-<style scoped>
-.check-order-page {
- padding: 0;
-}
-</style>
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/views/dashboard/index.vue b/Code/WMS/WIDESEA_WMS_Frontend/src/views/dashboard/index.vue
deleted file mode 100644
index ad867b3..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/views/dashboard/index.vue
+++ /dev/null
@@ -1,93 +0,0 @@
-<template>
- <div class="dashboard">
- <a-row :gutter="16">
- <a-col :span="6">
- <a-card>
- <a-statistic
- title="鍏ュ簱鍗曟�绘暟"
- :value="statistics.inboundCount"
- :prefix="() => h(ImportOutlined)"
- />
- </a-card>
- </a-col>
- <a-col :span="6">
- <a-card>
- <a-statistic
- title="鍑哄簱鍗曟�绘暟"
- :value="statistics.outboundCount"
- :prefix="() => h(ExportOutlined)"
- />
- </a-card>
- </a-col>
- <a-col :span="6">
- <a-card>
- <a-statistic
- title="搴撳瓨鎬婚噺"
- :value="statistics.stockCount"
- :prefix="() => h(ContainerOutlined)"
- />
- </a-card>
- </a-col>
- <a-col :span="6">
- <a-card>
- <a-statistic
- title="寰呭鐞嗕换鍔�"
- :value="statistics.taskCount"
- :prefix="() => h(CarryOutOutlined)"
- />
- </a-card>
- </a-col>
- </a-row>
-
- <a-row :gutter="16" style="margin-top: 16px">
- <a-col :span="24">
- <a-card title="娆㈣繋浣跨敤 WIDESEA WMS 浠撳簱绠$悊绯荤粺">
- <p>绯荤粺鍔熻兘妯″潡锛�</p>
- <ul>
- <li>绯荤粺绠$悊锛氱敤鎴枫�佽鑹层�佽彍鍗曠鐞�</li>
- <li>鍩虹淇℃伅锛氫粨搴撱�佽揣浣嶃�佺墿鏂欑鐞�</li>
- <li>鍏ュ簱绠$悊锛氬叆搴撳崟銆侀噰璐崟銆佹敹璐у崟绠$悊</li>
- <li>鍑哄簱绠$悊锛氬嚭搴撳崟銆佸嚭搴撻攣瀹氫俊鎭鐞�</li>
- <li>搴撳瓨绠$悊锛氬簱瀛樹俊鎭�佸簱瀛樻槑缁嗐�佸簱瀛樿鍥�</li>
- <li>鐩樼偣绠$悊锛氱洏鐐瑰崟銆佺洏鐐圭粨鏋滅鐞�</li>
- <li>浠诲姟绠$悊锛氫换鍔′俊鎭�佷换鍔″巻鍙茬鐞�</li>
- </ul>
- </a-card>
- </a-col>
- </a-row>
- </div>
-</template>
-
-<script setup lang="ts">
-import { ref, onMounted, h } from 'vue';
-import {
- ImportOutlined,
- ExportOutlined,
- ContainerOutlined,
- CarryOutOutlined,
-} from '@ant-design/icons-vue';
-
-const statistics = ref({
- inboundCount: 0,
- outboundCount: 0,
- stockCount: 0,
- taskCount: 0,
-});
-
-onMounted(() => {
- // 杩欓噷鍙互璋冪敤 API 鑾峰彇缁熻鏁版嵁
- // 鏆傛椂浣跨敤妯℃嫙鏁版嵁
- statistics.value = {
- inboundCount: 128,
- outboundCount: 96,
- stockCount: 1024,
- taskCount: 12,
- };
-});
-</script>
-
-<style scoped>
-.dashboard {
- padding: 0;
-}
-</style>
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/views/error/404.vue b/Code/WMS/WIDESEA_WMS_Frontend/src/views/error/404.vue
deleted file mode 100644
index 6706c5b..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/views/error/404.vue
+++ /dev/null
@@ -1,32 +0,0 @@
-<template>
- <div class="error-page">
- <a-result
- status="404"
- title="404"
- sub-title="鎶辨瓑锛屾偍璁块棶鐨勯〉闈笉瀛樺湪"
- >
- <template #extra>
- <a-button type="primary" @click="goHome">杩斿洖棣栭〉</a-button>
- </template>
- </a-result>
- </div>
-</template>
-
-<script setup lang="ts">
-import { useRouter } from 'vue-router';
-
-const router = useRouter();
-
-function goHome() {
- router.push('/');
-}
-</script>
-
-<style scoped>
-.error-page {
- display: flex;
- align-items: center;
- justify-content: center;
- min-height: 400px;
-}
-</style>
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/views/inbound/order/index.vue b/Code/WMS/WIDESEA_WMS_Frontend/src/views/inbound/order/index.vue
deleted file mode 100644
index f900554..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/views/inbound/order/index.vue
+++ /dev/null
@@ -1,150 +0,0 @@
-<template>
- <div class="inbound-order-page">
- <a-card>
- <a-space style="margin-bottom: 16px">
- <a-button type="primary" @click="handleAdd">
- <template #icon><plus-outlined /></template>
- 鏂板鍏ュ簱鍗�
- </a-button>
- <a-input-search
- v-model:value="searchText"
- placeholder="鎼滅储鍏ュ簱鍗曞彿"
- style="width: 200px"
- @search="handleSearch"
- />
- </a-space>
-
- <a-table
- :columns="columns"
- :data-source="dataSource"
- :loading="loading"
- :pagination="pagination"
- @change="handleTableChange"
- row-key="Id"
- >
- <template #bodyCell="{ column, record }">
- <template v-if="column.key === 'OrderStatus'">
- <a-tag :color="getStatusColor(record.OrderStatus)">
- {{ getStatusText(record.OrderStatus) }}
- </a-tag>
- </template>
- <template v-else-if="column.key === 'action'">
- <a-space>
- <a @click="handleView(record)">鏌ョ湅</a>
- <a-divider type="vertical" />
- <a @click="handleEdit(record)">缂栬緫</a>
- <a-divider type="vertical" />
- <a-popconfirm title="纭畾瑕佸垹闄ゅ悧锛�" @confirm="handleDelete(record)">
- <a style="color: red">鍒犻櫎</a>
- </a-popconfirm>
- </a-space>
- </template>
- </template>
- </a-table>
- </a-card>
- </div>
-</template>
-
-<script setup lang="ts">
-import { ref, reactive, onMounted } from 'vue';
-import { message } from 'ant-design-vue';
-import { PlusOutlined } from '@ant-design/icons-vue';
-import type { InboundOrderInfo } from '../../../types/common';
-
-const columns = [
- { title: '鍏ュ簱鍗曞彿', dataIndex: 'InboundOrderNo', key: 'InboundOrderNo' },
- { title: '鍏ュ簱绫诲瀷', dataIndex: 'InboundType', key: 'InboundType' },
- { title: '浠撳簱缂栫爜', dataIndex: 'WarehouseCode', key: 'WarehouseCode' },
- { title: '浠撳簱鍚嶇О', dataIndex: 'WarehouseName', key: 'WarehouseName' },
- { title: '璁㈠崟鐘舵��', dataIndex: 'OrderStatus', key: 'OrderStatus' },
- { title: '鍒涘缓鏃堕棿', dataIndex: 'CreateDate', key: 'CreateDate' },
- { title: '鍒涘缓浜�', dataIndex: 'Creator', key: 'Creator' },
- { title: '鎿嶄綔', key: 'action', width: 200 },
-];
-
-const dataSource = ref<InboundOrderInfo[]>([]);
-const loading = ref(false);
-const searchText = ref('');
-const pagination = reactive({
- current: 1,
- pageSize: 20,
- total: 0,
- showSizeChanger: true,
- showTotal: (total: number) => `鍏� ${total} 鏉,
-});
-
-onMounted(() => {
- fetchData();
-});
-
-async function fetchData() {
- loading.value = true;
- try {
- // 杩欓噷璋冪敤瀹為檯鐨� API
- // const res = await getInboundOrderList({...});
- // 鏆傛椂浣跨敤妯℃嫙鏁版嵁
- setTimeout(() => {
- dataSource.value = [];
- pagination.total = 0;
- loading.value = false;
- }, 500);
- } catch (error) {
- console.error('Fetch data error:', error);
- loading.value = false;
- }
-}
-
-function handleTableChange(pag: any) {
- pagination.current = pag.current;
- pagination.pageSize = pag.pageSize;
- fetchData();
-}
-
-function handleSearch() {
- pagination.current = 1;
- fetchData();
-}
-
-function handleAdd() {
- message.info('鏂板鍏ュ簱鍗曞姛鑳�');
-}
-
-function handleView(record: InboundOrderInfo) {
- message.info(`鏌ョ湅鍏ュ簱鍗�: ${record.InboundOrderNo}`);
-}
-
-function handleEdit(record: InboundOrderInfo) {
- message.info(`缂栬緫鍏ュ簱鍗�: ${record.InboundOrderNo}`);
-}
-
-async function handleDelete(record: InboundOrderInfo) {
- message.success('鍒犻櫎鎴愬姛');
- fetchData();
-}
-
-function getStatusColor(status?: number) {
- const colorMap: Record<number, string> = {
- 0: 'default',
- 1: 'processing',
- 2: 'success',
- 3: 'error',
- };
- return colorMap[status || 0] || 'default';
-}
-
-function getStatusText(status?: number) {
- const textMap: Record<number, string> = {
- 0: '寰呭鐞�',
- 1: '澶勭悊涓�',
- 2: '宸插畬鎴�',
- 3: '宸插彇娑�',
- };
- return textMap[status || 0] || '鏈煡';
-}
-</script>
-
-<style scoped>
-.inbound-order-page {
- padding: 0;
-}
-</style>
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/views/login/index.vue b/Code/WMS/WIDESEA_WMS_Frontend/src/views/login/index.vue
deleted file mode 100644
index 7731f98..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/views/login/index.vue
+++ /dev/null
@@ -1,133 +0,0 @@
-<template>
- <div class="login-container">
- <div class="login-box">
- <div class="login-header">
- <h1>WIDESEA WMS</h1>
- <p>浠撳簱绠$悊绯荤粺</p>
- </div>
- <a-form
- :model="formState"
- :rules="rules"
- @finish="handleLogin"
- class="login-form"
- >
- <a-form-item name="username">
- <a-input
- v-model:value="formState.username"
- size="large"
- placeholder="璇疯緭鍏ョ敤鎴峰悕"
- >
- <template #prefix>
- <user-outlined />
- </template>
- </a-input>
- </a-form-item>
- <a-form-item name="password">
- <a-input-password
- v-model:value="formState.password"
- size="large"
- placeholder="璇疯緭鍏ュ瘑鐮�"
- >
- <template #prefix>
- <lock-outlined />
- </template>
- </a-input-password>
- </a-form-item>
- <a-form-item>
- <a-button
- type="primary"
- html-type="submit"
- size="large"
- :loading="loading"
- block
- >
- 鐧诲綍
- </a-button>
- </a-form-item>
- </a-form>
- </div>
- </div>
-</template>
-
-<script setup lang="ts">
-import { reactive, ref } from 'vue';
-import { useRouter, useRoute } from 'vue-router';
-import { message } from 'ant-design-vue';
-import { UserOutlined, LockOutlined } from '@ant-design/icons-vue';
-import { useAuthStore } from '../../stores/auth';
-
-const router = useRouter();
-const route = useRoute();
-const authStore = useAuthStore();
-
-const formState = reactive({
- username: '',
- password: '',
-});
-
-const rules = {
- username: [{ required: true, message: '璇疯緭鍏ョ敤鎴峰悕', trigger: 'blur' }],
- password: [{ required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur' }],
-};
-
-const loading = ref(false);
-
-async function handleLogin() {
- loading.value = true;
- try {
- const success = await authStore.login(formState.username, formState.password);
- if (success) {
- message.success('鐧诲綍鎴愬姛');
- const redirect = (route.query.redirect as string) || '/';
- router.push(redirect);
- } else {
- message.error('鐧诲綍澶辫触锛岃妫�鏌ョ敤鎴峰悕鍜屽瘑鐮�');
- }
- } catch (error) {
- console.error('Login error:', error);
- message.error('鐧诲綍澶辫触');
- } finally {
- loading.value = false;
- }
-}
-</script>
-
-<style scoped>
-.login-container {
- display: flex;
- align-items: center;
- justify-content: center;
- min-height: 100vh;
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
-}
-
-.login-box {
- width: 400px;
- padding: 40px;
- background: #fff;
- border-radius: 8px;
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
-}
-
-.login-header {
- text-align: center;
- margin-bottom: 32px;
-}
-
-.login-header h1 {
- font-size: 32px;
- font-weight: bold;
- color: #333;
- margin: 0 0 8px 0;
-}
-
-.login-header p {
- font-size: 14px;
- color: #666;
- margin: 0;
-}
-
-.login-form {
- margin-top: 24px;
-}
-</style>
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/views/outbound/order/index.vue b/Code/WMS/WIDESEA_WMS_Frontend/src/views/outbound/order/index.vue
deleted file mode 100644
index 5bdc61b..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/views/outbound/order/index.vue
+++ /dev/null
@@ -1,148 +0,0 @@
-<template>
- <div class="outbound-order-page">
- <a-card>
- <a-space style="margin-bottom: 16px">
- <a-button type="primary" @click="handleAdd">
- <template #icon><plus-outlined /></template>
- 鏂板鍑哄簱鍗�
- </a-button>
- <a-input-search
- v-model:value="searchText"
- placeholder="鎼滅储鍑哄簱鍗曞彿"
- style="width: 200px"
- @search="handleSearch"
- />
- </a-space>
-
- <a-table
- :columns="columns"
- :data-source="dataSource"
- :loading="loading"
- :pagination="pagination"
- @change="handleTableChange"
- row-key="Id"
- >
- <template #bodyCell="{ column, record }">
- <template v-if="column.key === 'OrderStatus'">
- <a-tag :color="getStatusColor(record.OrderStatus)">
- {{ getStatusText(record.OrderStatus) }}
- </a-tag>
- </template>
- <template v-else-if="column.key === 'action'">
- <a-space>
- <a @click="handleView(record)">鏌ョ湅</a>
- <a-divider type="vertical" />
- <a @click="handleEdit(record)">缂栬緫</a>
- <a-divider type="vertical" />
- <a-popconfirm title="纭畾瑕佸垹闄ゅ悧锛�" @confirm="handleDelete(record)">
- <a style="color: red">鍒犻櫎</a>
- </a-popconfirm>
- </a-space>
- </template>
- </template>
- </a-table>
- </a-card>
- </div>
-</template>
-
-<script setup lang="ts">
-import { ref, reactive, onMounted } from 'vue';
-import { message } from 'ant-design-vue';
-import { PlusOutlined } from '@ant-design/icons-vue';
-import type { OutboundOrderInfo } from '../../../types/common';
-
-const columns = [
- { title: '鍑哄簱鍗曞彿', dataIndex: 'OutboundOrderNo', key: 'OutboundOrderNo' },
- { title: '鍑哄簱绫诲瀷', dataIndex: 'OutboundType', key: 'OutboundType' },
- { title: '浠撳簱缂栫爜', dataIndex: 'WarehouseCode', key: 'WarehouseCode' },
- { title: '浠撳簱鍚嶇О', dataIndex: 'WarehouseName', key: 'WarehouseName' },
- { title: '璁㈠崟鐘舵��', dataIndex: 'OrderStatus', key: 'OrderStatus' },
- { title: '鍒涘缓鏃堕棿', dataIndex: 'CreateDate', key: 'CreateDate' },
- { title: '鍒涘缓浜�', dataIndex: 'Creator', key: 'Creator' },
- { title: '鎿嶄綔', key: 'action', width: 200 },
-];
-
-const dataSource = ref<OutboundOrderInfo[]>([]);
-const loading = ref(false);
-const searchText = ref('');
-const pagination = reactive({
- current: 1,
- pageSize: 20,
- total: 0,
- showSizeChanger: true,
- showTotal: (total: number) => `鍏� ${total} 鏉,
-});
-
-onMounted(() => {
- fetchData();
-});
-
-async function fetchData() {
- loading.value = true;
- try {
- // 杩欓噷璋冪敤瀹為檯鐨� API
- setTimeout(() => {
- dataSource.value = [];
- pagination.total = 0;
- loading.value = false;
- }, 500);
- } catch (error) {
- console.error('Fetch data error:', error);
- loading.value = false;
- }
-}
-
-function handleTableChange(pag: any) {
- pagination.current = pag.current;
- pagination.pageSize = pag.pageSize;
- fetchData();
-}
-
-function handleSearch() {
- pagination.current = 1;
- fetchData();
-}
-
-function handleAdd() {
- message.info('鏂板鍑哄簱鍗曞姛鑳�');
-}
-
-function handleView(record: OutboundOrderInfo) {
- message.info(`鏌ョ湅鍑哄簱鍗�: ${record.OutboundOrderNo}`);
-}
-
-function handleEdit(record: OutboundOrderInfo) {
- message.info(`缂栬緫鍑哄簱鍗�: ${record.OutboundOrderNo}`);
-}
-
-async function handleDelete(record: OutboundOrderInfo) {
- message.success('鍒犻櫎鎴愬姛');
- fetchData();
-}
-
-function getStatusColor(status?: number) {
- const colorMap: Record<number, string> = {
- 0: 'default',
- 1: 'processing',
- 2: 'success',
- 3: 'error',
- };
- return colorMap[status || 0] || 'default';
-}
-
-function getStatusText(status?: number) {
- const textMap: Record<number, string> = {
- 0: '寰呭鐞�',
- 1: '澶勭悊涓�',
- 2: '宸插畬鎴�',
- 3: '宸插彇娑�',
- };
- return textMap[status || 0] || '鏈煡';
-}
-</script>
-
-<style scoped>
-.outbound-order-page {
- padding: 0;
-}
-</style>
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/views/stock/info/index.vue b/Code/WMS/WIDESEA_WMS_Frontend/src/views/stock/info/index.vue
deleted file mode 100644
index 026e58f..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/views/stock/info/index.vue
+++ /dev/null
@@ -1,108 +0,0 @@
-<template>
- <div class="stock-info-page">
- <a-card>
- <a-space style="margin-bottom: 16px">
- <a-input-search
- v-model:value="searchText"
- placeholder="鎼滅储鐗╂枡缂栫爜"
- style="width: 200px"
- @search="handleSearch"
- />
- <a-button @click="handleExport">
- <template #icon><download-outlined /></template>
- 瀵煎嚭
- </a-button>
- </a-space>
-
- <a-table
- :columns="columns"
- :data-source="dataSource"
- :loading="loading"
- :pagination="pagination"
- @change="handleTableChange"
- row-key="Id"
- >
- <template #bodyCell="{ column, record }">
- <template v-if="column.key === 'action'">
- <a @click="handleView(record)">鏌ョ湅鏄庣粏</a>
- </template>
- </template>
- </a-table>
- </a-card>
- </div>
-</template>
-
-<script setup lang="ts">
-import { ref, reactive, onMounted } from 'vue';
-import { message } from 'ant-design-vue';
-import { DownloadOutlined } from '@ant-design/icons-vue';
-import type { StockInfo } from '../../../types/common';
-
-const columns = [
- { title: '浠撳簱缂栫爜', dataIndex: 'WarehouseCode', key: 'WarehouseCode' },
- { title: '浠撳簱鍚嶇О', dataIndex: 'WarehouseName', key: 'WarehouseName' },
- { title: '璐т綅缂栫爜', dataIndex: 'LocationCode', key: 'LocationCode' },
- { title: '鐗╂枡缂栫爜', dataIndex: 'MaterielCode', key: 'MaterielCode' },
- { title: '鐗╂枡鍚嶇О', dataIndex: 'MaterielName', key: 'MaterielName' },
- { title: '鎬绘暟閲�', dataIndex: 'Quantity', key: 'Quantity' },
- { title: '鍙敤鏁伴噺', dataIndex: 'AvailableQuantity', key: 'AvailableQuantity' },
- { title: '閿佸畾鏁伴噺', dataIndex: 'LockedQuantity', key: 'LockedQuantity' },
- { title: '鍒涘缓鏃堕棿', dataIndex: 'CreateDate', key: 'CreateDate' },
- { title: '鎿嶄綔', key: 'action', width: 120 },
-];
-
-const dataSource = ref<StockInfo[]>([]);
-const loading = ref(false);
-const searchText = ref('');
-const pagination = reactive({
- current: 1,
- pageSize: 20,
- total: 0,
- showSizeChanger: true,
- showTotal: (total: number) => `鍏� ${total} 鏉,
-});
-
-onMounted(() => {
- fetchData();
-});
-
-async function fetchData() {
- loading.value = true;
- try {
- // 杩欓噷璋冪敤瀹為檯鐨� API
- setTimeout(() => {
- dataSource.value = [];
- pagination.total = 0;
- loading.value = false;
- }, 500);
- } catch (error) {
- console.error('Fetch data error:', error);
- loading.value = false;
- }
-}
-
-function handleTableChange(pag: any) {
- pagination.current = pag.current;
- pagination.pageSize = pag.pageSize;
- fetchData();
-}
-
-function handleSearch() {
- pagination.current = 1;
- fetchData();
-}
-
-function handleView(record: StockInfo) {
- message.info(`鏌ョ湅搴撳瓨鏄庣粏: ${record.MaterielCode}`);
-}
-
-function handleExport() {
- message.info('瀵煎嚭搴撳瓨鏁版嵁');
-}
-</script>
-
-<style scoped>
-.stock-info-page {
- padding: 0;
-}
-</style>
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/views/system/menu/index.vue b/Code/WMS/WIDESEA_WMS_Frontend/src/views/system/menu/index.vue
deleted file mode 100644
index e65c995..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/views/system/menu/index.vue
+++ /dev/null
@@ -1,186 +0,0 @@
-<template>
- <div class="menu-page">
- <a-card>
- <a-space style="margin-bottom: 16px">
- <a-button type="primary" @click="handleAdd">
- <template #icon><plus-outlined /></template>
- 鏂板鑿滃崟
- </a-button>
- </a-space>
-
- <a-table
- :columns="columns"
- :data-source="dataSource"
- :loading="loading"
- :pagination="false"
- row-key="Id"
- >
- <template #bodyCell="{ column, record }">
- <template v-if="column.key === 'Enable'">
- <a-tag :color="record.Enable === 1 ? 'green' : 'red'">
- {{ record.Enable === 1 ? '鍚敤' : '绂佺敤' }}
- </a-tag>
- </template>
- <template v-else-if="column.key === 'action'">
- <a-space>
- <a @click="handleEdit(record)">缂栬緫</a>
- <a-divider type="vertical" />
- <a-popconfirm title="纭畾瑕佸垹闄ゅ悧锛�" @confirm="handleDelete(record)">
- <a style="color: red">鍒犻櫎</a>
- </a-popconfirm>
- </a-space>
- </template>
- </template>
- </a-table>
- </a-card>
-
- <a-modal
- v-model:open="modalVisible"
- :title="modalTitle"
- @ok="handleModalOk"
- @cancel="handleModalCancel"
- >
- <a-form
- ref="formRef"
- :model="formState"
- :rules="rules"
- :label-col="{ span: 6 }"
- :wrapper-col="{ span: 16 }"
- >
- <a-form-item label="鑿滃崟鍚嶇О" name="MenuName">
- <a-input v-model:value="formState.MenuName" />
- </a-form-item>
- <a-form-item label="鑿滃崟璺緞" name="Url">
- <a-input v-model:value="formState.Url" />
- </a-form-item>
- <a-form-item label="鍥炬爣" name="Icon">
- <a-input v-model:value="formState.Icon" />
- </a-form-item>
- <a-form-item label="鎺掑簭鍙�" name="OrderNo">
- <a-input-number v-model:value="formState.OrderNo" style="width: 100%" />
- </a-form-item>
- <a-form-item label="鐘舵��" name="Enable">
- <a-select v-model:value="formState.Enable">
- <a-select-option :value="1">鍚敤</a-select-option>
- <a-select-option :value="0">绂佺敤</a-select-option>
- </a-select>
- </a-form-item>
- </a-form>
- </a-modal>
- </div>
-</template>
-
-<script setup lang="ts">
-import { ref, reactive, onMounted } from 'vue';
-import { message } from 'ant-design-vue';
-import { PlusOutlined } from '@ant-design/icons-vue';
-import { getMenuList, addMenu, updateMenu, deleteMenu } from '../../../api/system';
-import type { MenuInfo } from '../../../types/user';
-
-const columns = [
- { title: '鑿滃崟鍚嶇О', dataIndex: 'MenuName', key: 'MenuName' },
- { title: '鑿滃崟璺緞', dataIndex: 'Url', key: 'Url' },
- { title: '鍥炬爣', dataIndex: 'Icon', key: 'Icon' },
- { title: '鎺掑簭鍙�', dataIndex: 'OrderNo', key: 'OrderNo' },
- { title: '鐘舵��', dataIndex: 'Enable', key: 'Enable' },
- { title: '鎿嶄綔', key: 'action', width: 150 },
-];
-
-const dataSource = ref<MenuInfo[]>([]);
-const loading = ref(false);
-
-const modalVisible = ref(false);
-const modalTitle = ref('鏂板鑿滃崟');
-const formRef = ref();
-const formState = reactive<Partial<MenuInfo>>({
- MenuName: '',
- Url: '',
- Icon: '',
- OrderNo: 0,
- Enable: 1,
-});
-
-const rules = {
- MenuName: [{ required: true, message: '璇疯緭鍏ヨ彍鍗曞悕绉�', trigger: 'blur' }],
-};
-
-onMounted(() => {
- fetchData();
-});
-
-async function fetchData() {
- loading.value = true;
- try {
- const res = await getMenuList({
- page: 1,
- rows: 1000,
- sort: 'OrderNo',
- order: 'asc',
- });
- if (res.status && res.data) {
- dataSource.value = res.data.rows || [];
- }
- } catch (error) {
- console.error('Fetch data error:', error);
- } finally {
- loading.value = false;
- }
-}
-
-function handleAdd() {
- modalTitle.value = '鏂板鑿滃崟';
- Object.assign(formState, {
- Id: undefined,
- MenuName: '',
- Url: '',
- Icon: '',
- OrderNo: 0,
- Enable: 1,
- });
- modalVisible.value = true;
-}
-
-function handleEdit(record: MenuInfo) {
- modalTitle.value = '缂栬緫鑿滃崟';
- Object.assign(formState, record);
- modalVisible.value = true;
-}
-
-async function handleModalOk() {
- try {
- await formRef.value.validate();
- const api = formState.Id ? updateMenu : addMenu;
- const res = await api(formState);
- if (res.status) {
- message.success(formState.Id ? '鏇存柊鎴愬姛' : '鏂板鎴愬姛');
- modalVisible.value = false;
- fetchData();
- }
- } catch (error) {
- console.error('Save error:', error);
- }
-}
-
-function handleModalCancel() {
- modalVisible.value = false;
- formRef.value?.resetFields();
-}
-
-async function handleDelete(record: MenuInfo) {
- try {
- const res = await deleteMenu([record.Id]);
- if (res.status) {
- message.success('鍒犻櫎鎴愬姛');
- fetchData();
- }
- } catch (error) {
- console.error('Delete error:', error);
- }
-}
-</script>
-
-<style scoped>
-.menu-page {
- padding: 0;
-}
-</style>
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/views/system/role/index.vue b/Code/WMS/WIDESEA_WMS_Frontend/src/views/system/role/index.vue
deleted file mode 100644
index c3a2628..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/views/system/role/index.vue
+++ /dev/null
@@ -1,190 +0,0 @@
-<template>
- <div class="role-page">
- <a-card>
- <a-space style="margin-bottom: 16px">
- <a-button type="primary" @click="handleAdd">
- <template #icon><plus-outlined /></template>
- 鏂板瑙掕壊
- </a-button>
- </a-space>
-
- <a-table
- :columns="columns"
- :data-source="dataSource"
- :loading="loading"
- :pagination="pagination"
- @change="handleTableChange"
- row-key="Id"
- >
- <template #bodyCell="{ column, record }">
- <template v-if="column.key === 'Enable'">
- <a-tag :color="record.Enable === 1 ? 'green' : 'red'">
- {{ record.Enable === 1 ? '鍚敤' : '绂佺敤' }}
- </a-tag>
- </template>
- <template v-else-if="column.key === 'action'">
- <a-space>
- <a @click="handleEdit(record)">缂栬緫</a>
- <a-divider type="vertical" />
- <a-popconfirm title="纭畾瑕佸垹闄ゅ悧锛�" @confirm="handleDelete(record)">
- <a style="color: red">鍒犻櫎</a>
- </a-popconfirm>
- </a-space>
- </template>
- </template>
- </a-table>
- </a-card>
-
- <a-modal
- v-model:open="modalVisible"
- :title="modalTitle"
- @ok="handleModalOk"
- @cancel="handleModalCancel"
- >
- <a-form
- ref="formRef"
- :model="formState"
- :rules="rules"
- :label-col="{ span: 6 }"
- :wrapper-col="{ span: 16 }"
- >
- <a-form-item label="瑙掕壊鍚嶇О" name="RoleName">
- <a-input v-model:value="formState.RoleName" />
- </a-form-item>
- <a-form-item label="鎺掑簭鍙�" name="OrderNo">
- <a-input-number v-model:value="formState.OrderNo" style="width: 100%" />
- </a-form-item>
- <a-form-item label="鐘舵��" name="Enable">
- <a-select v-model:value="formState.Enable">
- <a-select-option :value="1">鍚敤</a-select-option>
- <a-select-option :value="0">绂佺敤</a-select-option>
- </a-select>
- </a-form-item>
- </a-form>
- </a-modal>
- </div>
-</template>
-
-<script setup lang="ts">
-import { ref, reactive, onMounted } from 'vue';
-import { message } from 'ant-design-vue';
-import { PlusOutlined } from '@ant-design/icons-vue';
-import { getRoleList, addRole, updateRole, deleteRole } from '../../../api/system';
-import type { RoleInfo } from '../../../types/user';
-
-const columns = [
- { title: '瑙掕壊鍚嶇О', dataIndex: 'RoleName', key: 'RoleName' },
- { title: '鎺掑簭鍙�', dataIndex: 'OrderNo', key: 'OrderNo' },
- { title: '鐘舵��', dataIndex: 'Enable', key: 'Enable' },
- { title: '鍒涘缓鏃堕棿', dataIndex: 'CreateDate', key: 'CreateDate' },
- { title: '鎿嶄綔', key: 'action', width: 150 },
-];
-
-const dataSource = ref<RoleInfo[]>([]);
-const loading = ref(false);
-const pagination = reactive({
- current: 1,
- pageSize: 20,
- total: 0,
- showSizeChanger: true,
- showTotal: (total: number) => `鍏� ${total} 鏉,
-});
-
-const modalVisible = ref(false);
-const modalTitle = ref('鏂板瑙掕壊');
-const formRef = ref();
-const formState = reactive<Partial<RoleInfo>>({
- RoleName: '',
- OrderNo: 0,
- Enable: 1,
-});
-
-const rules = {
- RoleName: [{ required: true, message: '璇疯緭鍏ヨ鑹插悕绉�', trigger: 'blur' }],
-};
-
-onMounted(() => {
- fetchData();
-});
-
-async function fetchData() {
- loading.value = true;
- try {
- const res = await getRoleList({
- page: pagination.current,
- rows: pagination.pageSize,
- sort: 'OrderNo',
- order: 'asc',
- });
- if (res.status && res.data) {
- dataSource.value = res.data.rows || [];
- pagination.total = res.data.total || 0;
- }
- } catch (error) {
- console.error('Fetch data error:', error);
- } finally {
- loading.value = false;
- }
-}
-
-function handleTableChange(pag: any) {
- pagination.current = pag.current;
- pagination.pageSize = pag.pageSize;
- fetchData();
-}
-
-function handleAdd() {
- modalTitle.value = '鏂板瑙掕壊';
- Object.assign(formState, {
- Id: undefined,
- RoleName: '',
- OrderNo: 0,
- Enable: 1,
- });
- modalVisible.value = true;
-}
-
-function handleEdit(record: RoleInfo) {
- modalTitle.value = '缂栬緫瑙掕壊';
- Object.assign(formState, record);
- modalVisible.value = true;
-}
-
-async function handleModalOk() {
- try {
- await formRef.value.validate();
- const api = formState.Id ? updateRole : addRole;
- const res = await api(formState);
- if (res.status) {
- message.success(formState.Id ? '鏇存柊鎴愬姛' : '鏂板鎴愬姛');
- modalVisible.value = false;
- fetchData();
- }
- } catch (error) {
- console.error('Save error:', error);
- }
-}
-
-function handleModalCancel() {
- modalVisible.value = false;
- formRef.value?.resetFields();
-}
-
-async function handleDelete(record: RoleInfo) {
- try {
- const res = await deleteRole([record.Id]);
- if (res.status) {
- message.success('鍒犻櫎鎴愬姛');
- fetchData();
- }
- } catch (error) {
- console.error('Delete error:', error);
- }
-}
-</script>
-
-<style scoped>
-.role-page {
- padding: 0;
-}
-</style>
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/views/system/user/index.vue b/Code/WMS/WIDESEA_WMS_Frontend/src/views/system/user/index.vue
deleted file mode 100644
index adab39c..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/views/system/user/index.vue
+++ /dev/null
@@ -1,216 +0,0 @@
-<template>
- <div class="user-page">
- <a-card>
- <a-space style="margin-bottom: 16px">
- <a-button type="primary" @click="handleAdd">
- <template #icon><plus-outlined /></template>
- 鏂板鐢ㄦ埛
- </a-button>
- <a-input-search
- v-model:value="searchText"
- placeholder="鎼滅储鐢ㄦ埛鍚�"
- style="width: 200px"
- @search="handleSearch"
- />
- </a-space>
-
- <a-table
- :columns="columns"
- :data-source="dataSource"
- :loading="loading"
- :pagination="pagination"
- @change="handleTableChange"
- row-key="Id"
- >
- <template #bodyCell="{ column, record }">
- <template v-if="column.key === 'Enable'">
- <a-tag :color="record.Enable === 1 ? 'green' : 'red'">
- {{ record.Enable === 1 ? '鍚敤' : '绂佺敤' }}
- </a-tag>
- </template>
- <template v-else-if="column.key === 'action'">
- <a-space>
- <a @click="handleEdit(record)">缂栬緫</a>
- <a-divider type="vertical" />
- <a-popconfirm
- title="纭畾瑕佸垹闄ゅ悧锛�"
- @confirm="handleDelete(record)"
- >
- <a style="color: red">鍒犻櫎</a>
- </a-popconfirm>
- </a-space>
- </template>
- </template>
- </a-table>
- </a-card>
-
- <a-modal
- v-model:open="modalVisible"
- :title="modalTitle"
- @ok="handleModalOk"
- @cancel="handleModalCancel"
- >
- <a-form
- ref="formRef"
- :model="formState"
- :rules="rules"
- :label-col="{ span: 6 }"
- :wrapper-col="{ span: 16 }"
- >
- <a-form-item label="鐢ㄦ埛鍚�" name="UserName">
- <a-input v-model:value="formState.UserName" />
- </a-form-item>
- <a-form-item label="鐪熷疄濮撳悕" name="UserTrueName">
- <a-input v-model:value="formState.UserTrueName" />
- </a-form-item>
- <a-form-item label="瀵嗙爜" name="Password" v-if="!formState.Id">
- <a-input-password v-model:value="formState.Password" />
- </a-form-item>
- <a-form-item label="鐘舵��" name="Enable">
- <a-select v-model:value="formState.Enable">
- <a-select-option :value="1">鍚敤</a-select-option>
- <a-select-option :value="0">绂佺敤</a-select-option>
- </a-select>
- </a-form-item>
- </a-form>
- </a-modal>
- </div>
-</template>
-
-<script setup lang="ts">
-import { ref, reactive, onMounted } from 'vue';
-import { message } from 'ant-design-vue';
-import { PlusOutlined } from '@ant-design/icons-vue';
-import { getUserList, addUser, updateUser, deleteUser } from '../../../api/system';
-import type { UserInfo } from '../../../types/user';
-
-const columns = [
- { title: '鐢ㄦ埛鍚�', dataIndex: 'UserName', key: 'UserName' },
- { title: '鐪熷疄濮撳悕', dataIndex: 'UserTrueName', key: 'UserTrueName' },
- { title: '瑙掕壊', dataIndex: 'RoleName', key: 'RoleName' },
- { title: '鐘舵��', dataIndex: 'Enable', key: 'Enable' },
- { title: '鍒涘缓鏃堕棿', dataIndex: 'CreateDate', key: 'CreateDate' },
- { title: '鎿嶄綔', key: 'action', width: 150 },
-];
-
-const dataSource = ref<UserInfo[]>([]);
-const loading = ref(false);
-const searchText = ref('');
-const pagination = reactive({
- current: 1,
- pageSize: 20,
- total: 0,
- showSizeChanger: true,
- showTotal: (total: number) => `鍏� ${total} 鏉,
-});
-
-const modalVisible = ref(false);
-const modalTitle = ref('鏂板鐢ㄦ埛');
-const formRef = ref();
-const formState = reactive<Partial<UserInfo>>({
- UserName: '',
- UserTrueName: '',
- Password: '',
- Enable: 1,
-});
-
-const rules = {
- UserName: [{ required: true, message: '璇疯緭鍏ョ敤鎴峰悕', trigger: 'blur' }],
- UserTrueName: [{ required: true, message: '璇疯緭鍏ョ湡瀹炲鍚�', trigger: 'blur' }],
- Password: [{ required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur' }],
-};
-
-onMounted(() => {
- fetchData();
-});
-
-async function fetchData() {
- loading.value = true;
- try {
- const res = await getUserList({
- page: pagination.current,
- rows: pagination.pageSize,
- sort: 'CreateDate',
- order: 'desc',
- wheres: searchText.value
- ? [{ name: 'UserName', value: searchText.value, displayType: 'like' }]
- : [],
- });
- if (res.status && res.data) {
- dataSource.value = res.data.rows || [];
- pagination.total = res.data.total || 0;
- }
- } catch (error) {
- console.error('Fetch data error:', error);
- } finally {
- loading.value = false;
- }
-}
-
-function handleTableChange(pag: any) {
- pagination.current = pag.current;
- pagination.pageSize = pag.pageSize;
- fetchData();
-}
-
-function handleSearch() {
- pagination.current = 1;
- fetchData();
-}
-
-function handleAdd() {
- modalTitle.value = '鏂板鐢ㄦ埛';
- Object.assign(formState, {
- Id: undefined,
- UserName: '',
- UserTrueName: '',
- Password: '',
- Enable: 1,
- });
- modalVisible.value = true;
-}
-
-function handleEdit(record: UserInfo) {
- modalTitle.value = '缂栬緫鐢ㄦ埛';
- Object.assign(formState, { ...record, Password: undefined });
- modalVisible.value = true;
-}
-
-async function handleModalOk() {
- try {
- await formRef.value.validate();
- const api = formState.Id ? updateUser : addUser;
- const res = await api(formState);
- if (res.status) {
- message.success(formState.Id ? '鏇存柊鎴愬姛' : '鏂板鎴愬姛');
- modalVisible.value = false;
- fetchData();
- }
- } catch (error) {
- console.error('Save error:', error);
- }
-}
-
-function handleModalCancel() {
- modalVisible.value = false;
- formRef.value?.resetFields();
-}
-
-async function handleDelete(record: UserInfo) {
- try {
- const res = await deleteUser([record.Id]);
- if (res.status) {
- message.success('鍒犻櫎鎴愬姛');
- fetchData();
- }
- } catch (error) {
- console.error('Delete error:', error);
- }
-}
-</script>
-
-<style scoped>
-.user-page {
- padding: 0;
-}
-</style>
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/src/views/task/info/index.vue b/Code/WMS/WIDESEA_WMS_Frontend/src/views/task/info/index.vue
deleted file mode 100644
index b80c85f..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/src/views/task/info/index.vue
+++ /dev/null
@@ -1,134 +0,0 @@
-<template>
- <div class="task-info-page">
- <a-card>
- <a-space style="margin-bottom: 16px">
- <a-input-search
- v-model:value="searchText"
- placeholder="鎼滅储浠诲姟鍙�"
- style="width: 200px"
- @search="handleSearch"
- />
- <a-select
- v-model:value="statusFilter"
- placeholder="浠诲姟鐘舵��"
- style="width: 120px"
- @change="handleSearch"
- allowClear
- >
- <a-select-option :value="0">寰呭鐞�</a-select-option>
- <a-select-option :value="1">澶勭悊涓�</a-select-option>
- <a-select-option :value="2">宸插畬鎴�</a-select-option>
- <a-select-option :value="3">宸插彇娑�</a-select-option>
- </a-select>
- </a-space>
-
- <a-table
- :columns="columns"
- :data-source="dataSource"
- :loading="loading"
- :pagination="pagination"
- @change="handleTableChange"
- row-key="Id"
- >
- <template #bodyCell="{ column, record }">
- <template v-if="column.key === 'TaskStatus'">
- <a-tag :color="getStatusColor(record.TaskStatus)">
- {{ getStatusText(record.TaskStatus) }}
- </a-tag>
- </template>
- <template v-else-if="column.key === 'action'">
- <a @click="handleView(record)">鏌ョ湅璇︽儏</a>
- </template>
- </template>
- </a-table>
- </a-card>
- </div>
-</template>
-
-<script setup lang="ts">
-import { ref, reactive, onMounted } from 'vue';
-import { message } from 'ant-design-vue';
-import type { TaskInfo } from '../../../types/common';
-
-const columns = [
- { title: '浠诲姟鍙�', dataIndex: 'TaskNo', key: 'TaskNo' },
- { title: '浠诲姟绫诲瀷', dataIndex: 'TaskType', key: 'TaskType' },
- { title: '浠诲姟鐘舵��', dataIndex: 'TaskStatus', key: 'TaskStatus' },
- { title: '浠撳簱缂栫爜', dataIndex: 'WarehouseCode', key: 'WarehouseCode' },
- { title: '鍒涘缓鏃堕棿', dataIndex: 'CreateDate', key: 'CreateDate' },
- { title: '鍒涘缓浜�', dataIndex: 'Creator', key: 'Creator' },
- { title: '鎿嶄綔', key: 'action', width: 120 },
-];
-
-const dataSource = ref<TaskInfo[]>([]);
-const loading = ref(false);
-const searchText = ref('');
-const statusFilter = ref<number>();
-const pagination = reactive({
- current: 1,
- pageSize: 20,
- total: 0,
- showSizeChanger: true,
- showTotal: (total: number) => `鍏� ${total} 鏉,
-});
-
-onMounted(() => {
- fetchData();
-});
-
-async function fetchData() {
- loading.value = true;
- try {
- // 杩欓噷璋冪敤瀹為檯鐨� API
- setTimeout(() => {
- dataSource.value = [];
- pagination.total = 0;
- loading.value = false;
- }, 500);
- } catch (error) {
- console.error('Fetch data error:', error);
- loading.value = false;
- }
-}
-
-function handleTableChange(pag: any) {
- pagination.current = pag.current;
- pagination.pageSize = pag.pageSize;
- fetchData();
-}
-
-function handleSearch() {
- pagination.current = 1;
- fetchData();
-}
-
-function handleView(record: TaskInfo) {
- message.info(`鏌ョ湅浠诲姟璇︽儏: ${record.TaskNo}`);
-}
-
-function getStatusColor(status?: number) {
- const colorMap: Record<number, string> = {
- 0: 'default',
- 1: 'processing',
- 2: 'success',
- 3: 'error',
- };
- return colorMap[status || 0] || 'default';
-}
-
-function getStatusText(status?: number) {
- const textMap: Record<number, string> = {
- 0: '寰呭鐞�',
- 1: '澶勭悊涓�',
- 2: '宸插畬鎴�',
- 3: '宸插彇娑�',
- };
- return textMap[status || 0] || '鏈煡';
-}
-</script>
-
-<style scoped>
-.task-info-page {
- padding: 0;
-}
-</style>
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/tsconfig.json b/Code/WMS/WIDESEA_WMS_Frontend/tsconfig.json
deleted file mode 100644
index 16521e6..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/tsconfig.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "compilerOptions": {
- "target": "ES2020",
- "useDefineForClassFields": true,
- "module": "ESNext",
- "lib": ["ES2020", "DOM", "DOM.Iterable"],
- "skipLibCheck": true,
-
- /* Bundler mode */
- "moduleResolution": "bundler",
- "allowImportingTsExtensions": true,
- "resolveJsonModule": true,
- "isolatedModules": true,
- "noEmit": true,
- "jsx": "preserve",
-
- /* Linting */
- "strict": true,
- "noUnusedLocals": true,
- "noUnusedParameters": true,
- "noFallthroughCasesInSwitch": true,
-
- /* Path mapping */
- "baseUrl": ".",
- "paths": {
- "@/*": ["src/*"]
- }
- },
- "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
- "references": [{ "path": "./tsconfig.node.json" }]
-}
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/tsconfig.node.json b/Code/WMS/WIDESEA_WMS_Frontend/tsconfig.node.json
deleted file mode 100644
index 42872c5..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/tsconfig.node.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "compilerOptions": {
- "composite": true,
- "skipLibCheck": true,
- "module": "ESNext",
- "moduleResolution": "bundler",
- "allowSyntheticDefaultImports": true
- },
- "include": ["vite.config.ts"]
-}
diff --git a/Code/WMS/WIDESEA_WMS_Frontend/vite.config.ts b/Code/WMS/WIDESEA_WMS_Frontend/vite.config.ts
deleted file mode 100644
index f90a5a5..0000000
--- a/Code/WMS/WIDESEA_WMS_Frontend/vite.config.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import { defineConfig } from 'vite';
-import vue from '@vitejs/plugin-vue';
-import vueJsx from '@vitejs/plugin-vue-jsx';
-import { resolve } from 'path';
-import AutoImport from 'unplugin-auto-import/vite';
-import Components from 'unplugin-vue-components/vite';
-import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers';
-
-// https://vitejs.dev/config/
-export default defineConfig({
- plugins: [
- vue(),
- vueJsx(),
- AutoImport({
- imports: ['vue', 'vue-router', 'pinia'],
- dts: 'src/auto-imports.d.ts',
- }),
- Components({
- resolvers: [
- AntDesignVueResolver({
- importStyle: false,
- }),
- ],
- dts: 'src/components.d.ts',
- }),
- ],
- resolve: {
- alias: {
- '@': resolve(__dirname, 'src'),
- },
- },
- server: {
- host: '0.0.0.0',
- port: 3031,
- proxy: {
- '/api': {
- target: 'http://localhost:9291',
- changeOrigin: true,
- },
- },
- },
- build: {
- outDir: 'dist',
- sourcemap: false,
- chunkSizeWarningLimit: 1500,
- rollupOptions: {
- output: {
- manualChunks: {
- 'vue-vendor': ['vue', 'vue-router', 'pinia'],
- 'ant-design-vue': ['ant-design-vue', '@ant-design/icons-vue'],
- },
- },
- },
- },
-});
--
Gitblit v1.9.3