This commit is contained in:
unknown 2026-01-30 20:17:59 +08:00
parent 7639a25b33
commit d8cb830841
6672 changed files with 1399982 additions and 0 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
login time:[2025-12-24 01:46:35] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-24 02:23:08] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-28 21:14:18] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-28 22:38:10] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2026-01-05 05:09:34] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2026-01-05 22:59:29] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2026-01-06 23:19:27] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]

6
finance_history.json Normal file
View File

@ -0,0 +1,6 @@
{
"usd_cny": 6.9733,
"gold": 4625.212,
"silver": 85.669,
"date": "2026-01-13"
}

128
libs/windows/logininfo.log Normal file
View File

@ -0,0 +1,128 @@
login time:[2025-12-01 23:18:32] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 19:39:13] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 20:15:31] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 20:23:24] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 20:27:47] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 20:28:43] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 20:45:42] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 20:46:12] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 20:46:37] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 20:54:59] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 20:55:46] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 21:13:18] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 21:13:55] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 21:16:36] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 21:54:37] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 21:55:15] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 22:02:53] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 22:10:46] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 22:21:41] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 22:28:40] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 22:29:26] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 22:37:35] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 22:38:47] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 22:43:22] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 22:43:49] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 22:44:56] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 22:46:43] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 22:46:59] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 22:48:29] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 22:50:00] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 22:52:07] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 22:53:24] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 22:55:15] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 23:21:02] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 23:23:41] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 23:29:24] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 23:31:20] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 23:48:04] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 23:50:29] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-03 23:57:00] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 00:04:05] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 00:04:14] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 00:04:56] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 00:14:46] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 00:14:57] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 00:15:21] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 00:17:11] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 00:19:39] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 00:19:42] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 00:33:51] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 00:33:52] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 01:00:59] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 01:07:12] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 01:12:57] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 01:14:43] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 01:16:15] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 01:16:46] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 01:31:13] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 01:38:11] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 01:45:49] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 01:47:16] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 01:48:31] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 01:49:58] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-04 01:51:48] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 20:06:44] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 20:07:08] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 20:40:30] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 21:33:52] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 21:49:09] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 21:52:30] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 21:56:39] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 22:05:38] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 22:07:09] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 22:09:21] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 22:10:11] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 22:11:50] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 22:12:39] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 22:22:17] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 22:25:18] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 22:29:15] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 22:35:19] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 22:35:25] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 22:35:35] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 22:37:06] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 22:39:35] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 22:40:39] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 22:41:06] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 22:42:30] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 22:44:05] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-05 22:46:35] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-06 21:00:05] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-06 21:01:19] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-06 21:46:55] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-06 21:54:05] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-06 21:59:13] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-06 22:22:52] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-06 22:27:32] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-06 22:31:53] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-06 22:37:10] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-06 22:43:44] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-06 22:47:05] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-06 23:00:03] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-06 23:15:50] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-06 23:23:12] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-06 23:29:37] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-06 23:55:08] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-06 23:58:08] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-06 23:58:34] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-07 00:01:36] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-07 00:06:58] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-07 00:11:55] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-07 00:12:40] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-07 00:27:42] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-07 00:29:18] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-07 00:29:52] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-07 00:33:51] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-07 00:40:50] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-07 01:01:31] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-07 22:19:55] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-07 22:23:33] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-07 22:28:39] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-07 22:30:23] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-07 22:30:23] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-08 02:31:11] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-08 02:48:59] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-08 03:05:19] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-08 03:05:33] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]
login time:[2025-12-08 03:07:26] devicenumber:[C0880036A83430850D078CA4F293D0CD] version:[2.6.1.0] lang:[Python Windows][403]

View File

@ -0,0 +1,89 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
测试K线更新时同时采集板块信息的功能
"""
import json
import os
import sys
# 添加路径
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'TradingShared'))
def test_kline_with_industry():
"""测试K线更新时同步采集板块信息"""
from TradingShared.api.comprehensive_data_collector import \
ComprehensiveDataCollector
print("=" * 60)
print("测试K线更新时同步采集板块信息")
print("=" * 60)
# 创建采集器
collector = ComprehensiveDataCollector()
# 读取现有数据
existing_data = collector.load_existing_data()
print(f"\n加载现有数据: {len(existing_data)} 只股票")
# 随机选择5只主板股票进行测试
test_codes = []
for code in existing_data.keys():
if code.startswith(('600', '601', '603', '000', '001', '002')):
test_codes.append(code)
if len(test_codes) >= 5:
break
if not test_codes:
print("错误:没有找到主板股票进行测试")
return
print(f"\n测试股票: {', '.join(test_codes)}")
# 检查这些股票当前是否有板块信息
print("\n检查现有板块信息:")
for code in test_codes:
if code in existing_data:
industry_info = existing_data[code].get('industry_concept', {})
industry = industry_info.get('industry', '未知')
sector = industry_info.get('sector', '未知')
print(f" {code}: 行业={industry}, 板块={sector}, 来源={industry_info.get('source', '未知')}")
else:
print(f" {code}: 无数据")
# 模拟批量采集板块信息(测试功能)
print(f"\n开始测试批量采集板块信息...")
try:
batch_industry_data = collector.collect_batch_industry_concept(test_codes, 'auto')
print(f"\n采集结果:")
for code in test_codes:
if code in batch_industry_data:
info = batch_industry_data[code]
print(f" {code}:")
print(f" 行业: {info.get('industry', '未知')}")
print(f" 板块: {info.get('sector', '未知')}")
print(f" 概念: {', '.join(info.get('concepts', [])[:3]) if info.get('concepts') else ''}")
print(f" 来源: {info.get('source', '未知')}")
else:
print(f" {code}: 采集失败")
print(f"\n✓ 板块信息采集功能测试通过")
except Exception as e:
print(f"\n✗ 板块信息采集失败: {e}")
import traceback
traceback.print_exc()
return
print("\n" + "=" * 60)
print("测试完成!")
print("=" * 60)
print("\n说明:")
print("1. K线更新时会自动采集板块信息行业、概念等")
print("2. 只更新缺失或使用默认值的股票,避免重复采集")
print("3. 超过10只股票时会跳过概念查询避免API限制")
print("4. 板块信息会保存到数据文件,供后续分析使用")
if __name__ == '__main__':
test_kline_with_industry()

83
web-ui/README.md Normal file
View File

@ -0,0 +1,83 @@
# A股交易分析系统 - Web UI
现代化的 Web 界面,用于替代原有的 tkinter GUI。
## 技术栈
### 后端
- **FastAPI** - 高性能异步 Web 框架
- **Uvicorn** - ASGI 服务器
- **Pydantic** - 数据验证
### 前端
- **React 18** - UI 框架
- **TypeScript** - 类型安全
- **Vite** - 构建工具
- **Tailwind CSS** - 样式框架
- **Lucide React** - 图标库
## 快速启动
### Windows
双击运行 `启动Web界面.bat`
### 手动启动
1. 启动后端:
```bash
cd backend
pip install -r requirements.txt
uvicorn main:app --reload --host 0.0.0.0 --port 8000
```
2. 启动前端:
```bash
cd frontend
npm install
npm run dev
```
3. 访问 http://localhost:3000
## 项目结构
```
web-ui/
├── backend/
│ ├── main.py # FastAPI 主入口
│ └── requirements.txt # Python 依赖
├── frontend/
│ ├── src/
│ │ ├── components/ # React 组件
│ │ │ ├── Header.tsx
│ │ │ ├── Sidebar.tsx
│ │ │ ├── MetricCards.tsx
│ │ │ ├── StockAnalysis.tsx
│ │ │ ├── StockTable.tsx
│ │ │ ├── Recommendations.tsx
│ │ │ └── SystemStatus.tsx
│ │ ├── App.tsx # 主应用组件
│ │ ├── main.tsx # 入口文件
│ │ └── index.css # 全局样式
│ ├── package.json
│ ├── tailwind.config.js
│ └── vite.config.ts
└── 启动Web界面.bat
```
## API 端点
| 端点 | 方法 | 描述 |
|------|------|------|
| `/api/market/overview` | GET | 获取市场概览数据 |
| `/api/stocks/ranking` | GET | 获取股票排行榜 |
| `/api/stocks/recommendations` | GET | 获取 AI 推荐 |
| `/api/stocks/analyze` | POST | 分析指定股票 |
| `/api/system/status` | GET | 获取系统状态 |
## 设计规范
- **主题色**: Vermillion Red (#E42313)
- **字体**: Space Grotesk (标题) + Inter (正文)
- **圆角**: 0px (Swiss Clean 风格)
- **边框**: 1px #E8E8E8

Binary file not shown.

237
web-ui/backend/main.py Normal file
View File

@ -0,0 +1,237 @@
"""
A股交易分析系统 - FastAPI 后端服务
基于现代 Web 架构的全新实现
"""
import os
import sys
from datetime import datetime
from typing import Any, Dict, List, Optional
from fastapi import FastAPI, HTTPException
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel
# 添加 TradingShared 路径
SHARED_PATH = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), 'TradingShared')
if SHARED_PATH not in sys.path:
sys.path.insert(0, SHARED_PATH)
if os.path.join(SHARED_PATH, 'api') not in sys.path:
sys.path.insert(0, os.path.join(SHARED_PATH, 'api'))
# 创建 FastAPI 应用
app = FastAPI(
title="A股交易分析系统 API",
description="提供股票分析、智能推荐、竞价排行等功能",
version="2.0.0"
)
# 配置 CORS
app.add_middleware(
CORSMiddleware,
allow_origins=["http://localhost:3000", "http://localhost:5173", "*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# ==================== 数据模型 ====================
class StockInfo(BaseModel):
code: str
name: str
price: Optional[float] = None
change_percent: Optional[float] = None
score: Optional[int] = None
recommendation: Optional[str] = None
class StockAnalysisRequest(BaseModel):
stock_code: str
llm_model: str = "none"
period: str = "short" # short, medium, long
class StockAnalysisResponse(BaseModel):
stock_code: str
stock_name: str
technical_score: int
fundamental_score: int
combined_score: int
recommendation: str
analysis_detail: str
timestamp: str
class MarketOverview(BaseModel):
total_stocks: int
rising_stocks: int
falling_stocks: int
ai_recommendations: int
last_update: str
class SystemStatus(BaseModel):
data_source: str
kline_data: str
choice_terminal: str
ai_model: str
# ==================== 模拟数据 ====================
MOCK_STOCKS = [
{"code": "600519", "name": "贵州茅台", "price": 1856.00, "change_percent": 5.23, "score": 92},
{"code": "000858", "name": "五粮液", "price": 168.50, "change_percent": 4.87, "score": 88},
{"code": "601318", "name": "中国平安", "price": 48.20, "change_percent": 3.56, "score": 85},
{"code": "600036", "name": "招商银行", "price": 35.80, "change_percent": -1.24, "score": 72},
{"code": "600000", "name": "浦发银行", "price": 8.65, "change_percent": 2.18, "score": 78},
{"code": "300750", "name": "宁德时代", "price": 215.00, "change_percent": 6.32, "score": 89},
{"code": "002594", "name": "比亚迪", "price": 268.00, "change_percent": 4.15, "score": 87},
{"code": "600276", "name": "恒瑞医药", "price": 42.30, "change_percent": -0.85, "score": 75},
]
# ==================== API 路由 ====================
@app.get("/")
async def root():
"""API 根路径"""
return {
"message": "A股交易分析系统 API",
"version": "2.0.0",
"docs": "/docs"
}
@app.get("/api/market/overview", response_model=MarketOverview)
async def get_market_overview():
"""获取市场概览数据"""
rising = len([s for s in MOCK_STOCKS if s["change_percent"] > 0])
falling = len([s for s in MOCK_STOCKS if s["change_percent"] < 0])
high_score = len([s for s in MOCK_STOCKS if s["score"] >= 80])
return MarketOverview(
total_stocks=4396,
rising_stocks=2847,
falling_stocks=1243,
ai_recommendations=86,
last_update=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
)
@app.get("/api/system/status", response_model=SystemStatus)
async def get_system_status():
"""获取系统状态"""
return SystemStatus(
data_source="正常",
kline_data="已更新",
choice_terminal="待连接",
ai_model="DeepSeek"
)
@app.get("/api/stocks/ranking", response_model=List[StockInfo])
async def get_stock_ranking(limit: int = 10):
"""获取竞价排行榜"""
sorted_stocks = sorted(MOCK_STOCKS, key=lambda x: x["change_percent"], reverse=True)
return [
StockInfo(
code=s["code"],
name=s["name"],
price=s["price"],
change_percent=s["change_percent"],
score=s["score"]
)
for s in sorted_stocks[:limit]
]
@app.get("/api/stocks/recommendations", response_model=List[StockInfo])
async def get_recommendations(limit: int = 5):
"""获取 AI 智能推荐"""
sorted_stocks = sorted(MOCK_STOCKS, key=lambda x: x["score"], reverse=True)
recommendations = ["短期强势", "技术突破", "成长潜力", "价值低估", "趋势向好"]
return [
StockInfo(
code=s["code"],
name=s["name"],
price=s["price"],
change_percent=s["change_percent"],
score=s["score"],
recommendation=recommendations[i] if i < len(recommendations) else "潜力股"
)
for i, s in enumerate(sorted_stocks[:limit])
]
@app.get("/api/stocks/{stock_code}", response_model=StockInfo)
async def get_stock_info(stock_code: str):
"""获取单只股票信息"""
stock = next((s for s in MOCK_STOCKS if s["code"] == stock_code), None)
if not stock:
raise HTTPException(status_code=404, detail=f"股票 {stock_code} 未找到")
return StockInfo(
code=stock["code"],
name=stock["name"],
price=stock["price"],
change_percent=stock["change_percent"],
score=stock["score"]
)
@app.post("/api/stocks/analyze", response_model=StockAnalysisResponse)
async def analyze_stock(request: StockAnalysisRequest):
"""分析单只股票"""
stock = next((s for s in MOCK_STOCKS if s["code"] == request.stock_code), None)
if not stock:
# 如果不在模拟数据中,返回一个默认分析
stock = {"code": request.stock_code, "name": f"股票{request.stock_code}", "score": 75}
# 模拟分析结果
technical_score = min(100, stock.get("score", 75) + 5)
fundamental_score = max(0, stock.get("score", 75) - 5)
combined_score = stock.get("score", 75)
period_map = {
"short": "短期1-5天",
"medium": "中期1-4周",
"long": "长期1-6个月"
}
return StockAnalysisResponse(
stock_code=request.stock_code,
stock_name=stock["name"],
technical_score=technical_score,
fundamental_score=fundamental_score,
combined_score=combined_score,
recommendation="买入" if combined_score >= 80 else "持有" if combined_score >= 60 else "观望",
analysis_detail=f"基于{period_map.get(request.period, '短期')}分析,该股票技术面评分{technical_score}分,"
f"基本面评分{fundamental_score}分,综合评分{combined_score}分。"
f"当前市场表现{'强势' if combined_score >= 80 else '稳健' if combined_score >= 60 else '偏弱'}",
timestamp=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
)
@app.get("/api/llm/models")
async def get_llm_models():
"""获取可用的 LLM 模型列表"""
return {
"models": [
{"id": "none", "name": "无 AI 分析", "status": "available"},
{"id": "deepseek", "name": "DeepSeek", "status": "available"},
{"id": "minimax", "name": "MiniMax", "status": "available"},
{"id": "openrouter", "name": "OpenRouter", "status": "available"},
{"id": "gemini", "name": "Gemini", "status": "available"},
],
"default": "deepseek"
}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)

View File

@ -0,0 +1,5 @@
fastapi>=0.109.0
uvicorn[standard]>=0.27.0
pydantic>=2.0.0
python-multipart>=0.0.6
httpx>=0.26.0

View File

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html lang="zh-CN" class="h-full">
<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>A股交易分析系统</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Space+Grotesk:wght@400;500;600&display=swap"
rel="stylesheet">
</head>
<body class="h-full">
<div id="root" class="h-full"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>

16
web-ui/frontend/node_modules/.bin/autoprefixer generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../autoprefixer/bin/autoprefixer" "$@"
else
exec node "$basedir/../autoprefixer/bin/autoprefixer" "$@"
fi

17
web-ui/frontend/node_modules/.bin/autoprefixer.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\autoprefixer\bin\autoprefixer" %*

28
web-ui/frontend/node_modules/.bin/autoprefixer.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args
} else {
& "$basedir/node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args
} else {
& "node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args
}
$ret=$LASTEXITCODE
}
exit $ret

View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../baseline-browser-mapping/dist/cli.js" "$@"
else
exec node "$basedir/../baseline-browser-mapping/dist/cli.js" "$@"
fi

View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\baseline-browser-mapping\dist\cli.js" %*

View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../baseline-browser-mapping/dist/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../baseline-browser-mapping/dist/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../baseline-browser-mapping/dist/cli.js" $args
} else {
& "node$exe" "$basedir/../baseline-browser-mapping/dist/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
web-ui/frontend/node_modules/.bin/browserslist generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../browserslist/cli.js" "$@"
else
exec node "$basedir/../browserslist/cli.js" "$@"
fi

17
web-ui/frontend/node_modules/.bin/browserslist.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\browserslist\cli.js" %*

28
web-ui/frontend/node_modules/.bin/browserslist.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../browserslist/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../browserslist/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../browserslist/cli.js" $args
} else {
& "node$exe" "$basedir/../browserslist/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
web-ui/frontend/node_modules/.bin/cssesc generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../cssesc/bin/cssesc" "$@"
else
exec node "$basedir/../cssesc/bin/cssesc" "$@"
fi

17
web-ui/frontend/node_modules/.bin/cssesc.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\cssesc\bin\cssesc" %*

28
web-ui/frontend/node_modules/.bin/cssesc.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../cssesc/bin/cssesc" $args
} else {
& "$basedir/node$exe" "$basedir/../cssesc/bin/cssesc" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../cssesc/bin/cssesc" $args
} else {
& "node$exe" "$basedir/../cssesc/bin/cssesc" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
web-ui/frontend/node_modules/.bin/esbuild generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../esbuild/bin/esbuild" "$@"
else
exec node "$basedir/../esbuild/bin/esbuild" "$@"
fi

17
web-ui/frontend/node_modules/.bin/esbuild.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esbuild\bin\esbuild" %*

28
web-ui/frontend/node_modules/.bin/esbuild.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../esbuild/bin/esbuild" $args
} else {
& "$basedir/node$exe" "$basedir/../esbuild/bin/esbuild" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../esbuild/bin/esbuild" $args
} else {
& "node$exe" "$basedir/../esbuild/bin/esbuild" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
web-ui/frontend/node_modules/.bin/jiti generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../jiti/bin/jiti.js" "$@"
else
exec node "$basedir/../jiti/bin/jiti.js" "$@"
fi

17
web-ui/frontend/node_modules/.bin/jiti.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\jiti\bin\jiti.js" %*

28
web-ui/frontend/node_modules/.bin/jiti.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../jiti/bin/jiti.js" $args
} else {
& "$basedir/node$exe" "$basedir/../jiti/bin/jiti.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../jiti/bin/jiti.js" $args
} else {
& "node$exe" "$basedir/../jiti/bin/jiti.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
web-ui/frontend/node_modules/.bin/jsesc generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../jsesc/bin/jsesc" "$@"
else
exec node "$basedir/../jsesc/bin/jsesc" "$@"
fi

17
web-ui/frontend/node_modules/.bin/jsesc.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\jsesc\bin\jsesc" %*

28
web-ui/frontend/node_modules/.bin/jsesc.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../jsesc/bin/jsesc" $args
} else {
& "$basedir/node$exe" "$basedir/../jsesc/bin/jsesc" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../jsesc/bin/jsesc" $args
} else {
& "node$exe" "$basedir/../jsesc/bin/jsesc" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
web-ui/frontend/node_modules/.bin/json5 generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../json5/lib/cli.js" "$@"
else
exec node "$basedir/../json5/lib/cli.js" "$@"
fi

17
web-ui/frontend/node_modules/.bin/json5.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\json5\lib\cli.js" %*

28
web-ui/frontend/node_modules/.bin/json5.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../json5/lib/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../json5/lib/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../json5/lib/cli.js" $args
} else {
& "node$exe" "$basedir/../json5/lib/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
web-ui/frontend/node_modules/.bin/loose-envify generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../loose-envify/cli.js" "$@"
else
exec node "$basedir/../loose-envify/cli.js" "$@"
fi

17
web-ui/frontend/node_modules/.bin/loose-envify.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\loose-envify\cli.js" %*

28
web-ui/frontend/node_modules/.bin/loose-envify.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../loose-envify/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../loose-envify/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../loose-envify/cli.js" $args
} else {
& "node$exe" "$basedir/../loose-envify/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
web-ui/frontend/node_modules/.bin/nanoid generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../nanoid/bin/nanoid.cjs" "$@"
else
exec node "$basedir/../nanoid/bin/nanoid.cjs" "$@"
fi

17
web-ui/frontend/node_modules/.bin/nanoid.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nanoid\bin\nanoid.cjs" %*

28
web-ui/frontend/node_modules/.bin/nanoid.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
} else {
& "$basedir/node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
} else {
& "node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
web-ui/frontend/node_modules/.bin/parser generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../@babel/parser/bin/babel-parser.js" "$@"
else
exec node "$basedir/../@babel/parser/bin/babel-parser.js" "$@"
fi

17
web-ui/frontend/node_modules/.bin/parser.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\@babel\parser\bin\babel-parser.js" %*

28
web-ui/frontend/node_modules/.bin/parser.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
} else {
& "$basedir/node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
} else {
& "node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
web-ui/frontend/node_modules/.bin/resolve generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../resolve/bin/resolve" "$@"
else
exec node "$basedir/../resolve/bin/resolve" "$@"
fi

17
web-ui/frontend/node_modules/.bin/resolve.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\resolve\bin\resolve" %*

28
web-ui/frontend/node_modules/.bin/resolve.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../resolve/bin/resolve" $args
} else {
& "$basedir/node$exe" "$basedir/../resolve/bin/resolve" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../resolve/bin/resolve" $args
} else {
& "node$exe" "$basedir/../resolve/bin/resolve" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
web-ui/frontend/node_modules/.bin/rollup generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../rollup/dist/bin/rollup" "$@"
else
exec node "$basedir/../rollup/dist/bin/rollup" "$@"
fi

17
web-ui/frontend/node_modules/.bin/rollup.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\rollup\dist\bin\rollup" %*

28
web-ui/frontend/node_modules/.bin/rollup.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../rollup/dist/bin/rollup" $args
} else {
& "$basedir/node$exe" "$basedir/../rollup/dist/bin/rollup" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../rollup/dist/bin/rollup" $args
} else {
& "node$exe" "$basedir/../rollup/dist/bin/rollup" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
web-ui/frontend/node_modules/.bin/semver generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@"
else
exec node "$basedir/../semver/bin/semver.js" "$@"
fi

17
web-ui/frontend/node_modules/.bin/semver.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver.js" %*

28
web-ui/frontend/node_modules/.bin/semver.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args
} else {
& "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../semver/bin/semver.js" $args
} else {
& "node$exe" "$basedir/../semver/bin/semver.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
web-ui/frontend/node_modules/.bin/sucrase generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../sucrase/bin/sucrase" "$@"
else
exec node "$basedir/../sucrase/bin/sucrase" "$@"
fi

16
web-ui/frontend/node_modules/.bin/sucrase-node generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../sucrase/bin/sucrase-node" "$@"
else
exec node "$basedir/../sucrase/bin/sucrase-node" "$@"
fi

17
web-ui/frontend/node_modules/.bin/sucrase-node.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\sucrase\bin\sucrase-node" %*

28
web-ui/frontend/node_modules/.bin/sucrase-node.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../sucrase/bin/sucrase-node" $args
} else {
& "$basedir/node$exe" "$basedir/../sucrase/bin/sucrase-node" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../sucrase/bin/sucrase-node" $args
} else {
& "node$exe" "$basedir/../sucrase/bin/sucrase-node" $args
}
$ret=$LASTEXITCODE
}
exit $ret

17
web-ui/frontend/node_modules/.bin/sucrase.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\sucrase\bin\sucrase" %*

28
web-ui/frontend/node_modules/.bin/sucrase.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../sucrase/bin/sucrase" $args
} else {
& "$basedir/node$exe" "$basedir/../sucrase/bin/sucrase" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../sucrase/bin/sucrase" $args
} else {
& "node$exe" "$basedir/../sucrase/bin/sucrase" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
web-ui/frontend/node_modules/.bin/tailwind generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../tailwindcss/lib/cli.js" "$@"
else
exec node "$basedir/../tailwindcss/lib/cli.js" "$@"
fi

17
web-ui/frontend/node_modules/.bin/tailwind.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\tailwindcss\lib\cli.js" %*

28
web-ui/frontend/node_modules/.bin/tailwind.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../tailwindcss/lib/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../tailwindcss/lib/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../tailwindcss/lib/cli.js" $args
} else {
& "node$exe" "$basedir/../tailwindcss/lib/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
web-ui/frontend/node_modules/.bin/tailwindcss generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../tailwindcss/lib/cli.js" "$@"
else
exec node "$basedir/../tailwindcss/lib/cli.js" "$@"
fi

17
web-ui/frontend/node_modules/.bin/tailwindcss.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\tailwindcss\lib\cli.js" %*

28
web-ui/frontend/node_modules/.bin/tailwindcss.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../tailwindcss/lib/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../tailwindcss/lib/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../tailwindcss/lib/cli.js" $args
} else {
& "node$exe" "$basedir/../tailwindcss/lib/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
web-ui/frontend/node_modules/.bin/tsc generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
else
exec node "$basedir/../typescript/bin/tsc" "$@"
fi

17
web-ui/frontend/node_modules/.bin/tsc.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\typescript\bin\tsc" %*

28
web-ui/frontend/node_modules/.bin/tsc.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../typescript/bin/tsc" $args
} else {
& "$basedir/node$exe" "$basedir/../typescript/bin/tsc" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../typescript/bin/tsc" $args
} else {
& "node$exe" "$basedir/../typescript/bin/tsc" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
web-ui/frontend/node_modules/.bin/tsserver generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
else
exec node "$basedir/../typescript/bin/tsserver" "$@"
fi

17
web-ui/frontend/node_modules/.bin/tsserver.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\typescript\bin\tsserver" %*

28
web-ui/frontend/node_modules/.bin/tsserver.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../typescript/bin/tsserver" $args
} else {
& "$basedir/node$exe" "$basedir/../typescript/bin/tsserver" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../typescript/bin/tsserver" $args
} else {
& "node$exe" "$basedir/../typescript/bin/tsserver" $args
}
$ret=$LASTEXITCODE
}
exit $ret

View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../update-browserslist-db/cli.js" "$@"
else
exec node "$basedir/../update-browserslist-db/cli.js" "$@"
fi

View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\update-browserslist-db\cli.js" %*

View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../update-browserslist-db/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../update-browserslist-db/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../update-browserslist-db/cli.js" $args
} else {
& "node$exe" "$basedir/../update-browserslist-db/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
web-ui/frontend/node_modules/.bin/vite generated vendored Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../vite/bin/vite.js" "$@"
else
exec node "$basedir/../vite/bin/vite.js" "$@"
fi

17
web-ui/frontend/node_modules/.bin/vite.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\vite\bin\vite.js" %*

28
web-ui/frontend/node_modules/.bin/vite.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../vite/bin/vite.js" $args
} else {
& "$basedir/node$exe" "$basedir/../vite/bin/vite.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../vite/bin/vite.js" $args
} else {
& "node$exe" "$basedir/../vite/bin/vite.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

Some files were not shown because too many files have changed in this diff Show More